From 279fb3408ae36dc104bfb294dfc3019b4889157e Mon Sep 17 00:00:00 2001 From: Bartek Tofel Date: Tue, 26 Nov 2024 10:02:50 +0100 Subject: [PATCH] [TT-1722] WASP new docs as mdbook (#1360) --- book/README.md | 24 +- book/book.toml | 6 +- book/mermaid-init.js | 35 + book/mermaid.min.js | 2186 +++++++++++++++++ book/src/SUMMARY.md | 28 +- .../src/lib/wasp/how-to/run_included_tests.md | 1 + .../src/libs/wasp/components/alert_checker.md | 20 + book/src/libs/wasp/components/dashboard.md | 77 + book/src/libs/wasp/components/generator.md | 58 + book/src/libs/wasp/components/loki.md | 16 + book/src/libs/wasp/components/overview.md | 13 + book/src/libs/wasp/components/profile.md | 17 + book/src/libs/wasp/components/sampler.md | 16 + book/src/libs/wasp/components/schedule.md | 19 + book/src/libs/wasp/configuration.md | 49 + book/src/libs/wasp/first_test.md | 116 + book/src/libs/wasp/getting_started.md | 17 + book/src/libs/wasp/how-to/chose_rps_vu.md | 109 + .../src/libs/wasp/how-to/debug_loki_errors.md | 44 + .../wasp/how-to/define_nfr_check_alerts.md | 83 + .../wasp/how-to/incorporate_load_tests.md | 66 + book/src/libs/wasp/how-to/overview.md | 12 + book/src/libs/wasp/how-to/parallelise_load.md | 134 + .../wasp/how-to/reuse_dashboard_components.md | 42 + .../libs/wasp/how-to/run_included_tests.md | 62 + .../how-to/start_local_observability_stack.md | 77 + book/src/libs/wasp/how-to/use_labels.md | 125 + book/src/libs/wasp/images/dashboard_basic.png | Bin 0 -> 651751 bytes book/src/libs/wasp/images/how-it-works.png | Bin 0 -> 130430 bytes book/src/libs/wasp/images/wasp.png | Bin 0 -> 36767 bytes book/src/libs/wasp/overview.md | 14 + book/src/libs/wasp/profile_test.md | 117 + book/src/libs/wasp/stateful_test.md | 124 + book/src/libs/wasp/testing_alerts.md | 199 ++ book/src/libs/wasp/user_journey_test.md | 116 + wasp/HOW_IT_WORKS.md | 235 -- wasp/Makefile | 2 +- wasp/cluster.go | 235 -- wasp/compose/docker-compose.yaml | 2 - wasp/examples/README.md | 122 - wasp/examples/go.mod | 114 +- wasp/examples/go.sum | 292 ++- .../profiles/node_background_load_test.go | 251 ++ wasp/examples/profiles/node_mixed_test.go | 48 + .../profiles/node_vu_grafana_opts_test.go | 47 + wasp/examples/profiles/vu.go | 30 +- wasp/examples/scenario/vu.go | 22 +- wasp/examples/simple_rps/main_test.go | 9 +- wasp/examples/simple_vu/main_test.go | 19 +- wasp/examples/zcluster/Dockerfile | 22 - wasp/examples/zcluster/build.sh | 38 - wasp/examples/zcluster/cluster_test.go | 34 - wasp/profile.go | 21 +- wasp/scripts/generate_grafana_token.sh | 29 + 54 files changed, 4639 insertions(+), 955 deletions(-) create mode 100644 book/mermaid-init.js create mode 100644 book/mermaid.min.js create mode 100644 book/src/lib/wasp/how-to/run_included_tests.md create mode 100644 book/src/libs/wasp/components/alert_checker.md create mode 100644 book/src/libs/wasp/components/dashboard.md create mode 100644 book/src/libs/wasp/components/generator.md create mode 100644 book/src/libs/wasp/components/loki.md create mode 100644 book/src/libs/wasp/components/overview.md create mode 100644 book/src/libs/wasp/components/profile.md create mode 100644 book/src/libs/wasp/components/sampler.md create mode 100644 book/src/libs/wasp/components/schedule.md create mode 100644 book/src/libs/wasp/configuration.md create mode 100644 book/src/libs/wasp/first_test.md create mode 100644 book/src/libs/wasp/getting_started.md create mode 100644 book/src/libs/wasp/how-to/chose_rps_vu.md create mode 100644 book/src/libs/wasp/how-to/debug_loki_errors.md create mode 100644 book/src/libs/wasp/how-to/define_nfr_check_alerts.md create mode 100644 book/src/libs/wasp/how-to/incorporate_load_tests.md create mode 100644 book/src/libs/wasp/how-to/overview.md create mode 100644 book/src/libs/wasp/how-to/parallelise_load.md create mode 100644 book/src/libs/wasp/how-to/reuse_dashboard_components.md create mode 100644 book/src/libs/wasp/how-to/run_included_tests.md create mode 100644 book/src/libs/wasp/how-to/start_local_observability_stack.md create mode 100644 book/src/libs/wasp/how-to/use_labels.md create mode 100644 book/src/libs/wasp/images/dashboard_basic.png create mode 100644 book/src/libs/wasp/images/how-it-works.png create mode 100644 book/src/libs/wasp/images/wasp.png create mode 100644 book/src/libs/wasp/overview.md create mode 100644 book/src/libs/wasp/profile_test.md create mode 100644 book/src/libs/wasp/stateful_test.md create mode 100644 book/src/libs/wasp/testing_alerts.md create mode 100644 book/src/libs/wasp/user_journey_test.md delete mode 100644 wasp/HOW_IT_WORKS.md delete mode 100644 wasp/cluster.go delete mode 100644 wasp/examples/README.md create mode 100644 wasp/examples/profiles/node_background_load_test.go create mode 100644 wasp/examples/profiles/node_mixed_test.go create mode 100644 wasp/examples/profiles/node_vu_grafana_opts_test.go delete mode 100755 wasp/examples/zcluster/Dockerfile delete mode 100755 wasp/examples/zcluster/build.sh delete mode 100644 wasp/examples/zcluster/cluster_test.go create mode 100755 wasp/scripts/generate_grafana_token.sh diff --git a/book/README.md b/book/README.md index 44a2ffe22..4a1c93566 100644 --- a/book/README.md +++ b/book/README.md @@ -1,18 +1,16 @@ -# Chainlink Testing Framework Docs - -We use [mdBook](https://github.com/rust-lang/mdBook) for our docs. They can be found [here](https://smartcontractkit.github.io/chainlink-testing-framework/). - -## Development - -First [install Rust](https://doc.rust-lang.org/cargo/getting-started/installation.html), then [mdbook](https://github.com/rust-lang/mdBook). - -```sh -# Install mdBook +## MDBook +Install [mdbook](https://github.com/rust-lang/mdBook) +``` cargo install mdbook && \ cargo install mdbook-alerts && \ -cargo install mdbook-cmdrun -# Run the mdBook +cargo install mdbook-cmdrun && +cargo install mdbook-mermaid +``` + +Run it locally +``` make run ``` +Open your browser [here](http://localhost:9999/) -Visit [localhost:9999](http://localhost:9999) to see your local version. +GitHub hosted [version](https://smartcontractkit.github.io/chainlink-testing-framework/overview.html) \ No newline at end of file diff --git a/book/book.toml b/book/book.toml index 75626054c..ea17be3c8 100644 --- a/book/book.toml +++ b/book/book.toml @@ -10,6 +10,10 @@ build-dir = "docs" [output.html] default-theme = "ayu" +additional-js = ["mermaid.min.js", "mermaid-init.js"] [preprocessor.alerts] -[preprocessor.cmdrun] \ No newline at end of file +[preprocessor.cmdrun] + +[preprocessor.mermaid] +command = "mdbook-mermaid" diff --git a/book/mermaid-init.js b/book/mermaid-init.js new file mode 100644 index 000000000..15a7f4e57 --- /dev/null +++ b/book/mermaid-init.js @@ -0,0 +1,35 @@ +(() => { + const darkThemes = ['ayu', 'navy', 'coal']; + const lightThemes = ['light', 'rust']; + + const classList = document.getElementsByTagName('html')[0].classList; + + let lastThemeWasLight = true; + for (const cssClass of classList) { + if (darkThemes.includes(cssClass)) { + lastThemeWasLight = false; + break; + } + } + + const theme = lastThemeWasLight ? 'default' : 'dark'; + mermaid.initialize({ startOnLoad: true, theme }); + + // Simplest way to make mermaid re-render the diagrams in the new theme is via refreshing the page + + for (const darkTheme of darkThemes) { + document.getElementById(darkTheme).addEventListener('click', () => { + if (lastThemeWasLight) { + window.location.reload(); + } + }); + } + + for (const lightTheme of lightThemes) { + document.getElementById(lightTheme).addEventListener('click', () => { + if (!lastThemeWasLight) { + window.location.reload(); + } + }); + } +})(); diff --git a/book/mermaid.min.js b/book/mermaid.min.js new file mode 100644 index 000000000..9f2882748 --- /dev/null +++ b/book/mermaid.min.js @@ -0,0 +1,2186 @@ +"use strict";var __esbuild_esm_mermaid=(()=>{var Pve=Object.create;var G1=Object.defineProperty;var Bve=Object.getOwnPropertyDescriptor;var Fve=Object.getOwnPropertyNames;var zve=Object.getPrototypeOf,Gve=Object.prototype.hasOwnProperty;var o=(t,e)=>G1(t,"name",{value:e,configurable:!0});var R=(t,e)=>()=>(t&&(e=t(t=0)),e);var gi=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),hr=(t,e)=>{for(var r in e)G1(t,r,{get:e[r],enumerable:!0})},Rb=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Fve(e))!Gve.call(t,i)&&i!==r&&G1(t,i,{get:()=>e[i],enumerable:!(n=Bve(e,i))||n.enumerable});return t},dr=(t,e,r)=>(Rb(t,e,"default"),r&&Rb(r,e,"default")),Xi=(t,e,r)=>(r=t!=null?Pve(zve(t)):{},Rb(e||!t||!t.__esModule?G1(r,"default",{value:t,enumerable:!0}):r,t)),$ve=t=>Rb(G1({},"__esModule",{value:!0}),t);var Nb=gi((AC,_C)=>{"use strict";(function(t,e){typeof AC=="object"&&typeof _C<"u"?_C.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(AC,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",a="minute",s="hour",l="day",u="week",h="month",f="quarter",d="year",p="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:o(function(k){var I=["th","st","nd","rd"],C=k%100;return"["+k+(I[(C-20)%10]||I[C]||I[0])+"]"},"ordinal")},x=o(function(k,I,C){var O=String(k);return!O||O.length>=I?k:""+Array(I+1-O.length).join(C)+k},"m"),b={s:x,z:o(function(k){var I=-k.utcOffset(),C=Math.abs(I),O=Math.floor(C/60),D=C%60;return(I<=0?"+":"-")+x(O,2,"0")+":"+x(D,2,"0")},"z"),m:o(function k(I,C){if(I.date()1)return k(F[0])}else{var B=I.name;S[B]=I,D=B}return!O&&D&&(w=D),D||!O&&w},"t"),A=o(function(k,I){if(E(k))return k.clone();var C=typeof I=="object"?I:{};return C.date=k,C.args=arguments,new M(C)},"O"),L=b;L.l=_,L.i=E,L.w=function(k,I){return A(k,{locale:I.$L,utc:I.$u,x:I.$x,$offset:I.$offset})};var M=function(){function k(C){this.$L=_(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[T]=!0}o(k,"M");var I=k.prototype;return I.parse=function(C){this.$d=function(O){var D=O.date,P=O.utc;if(D===null)return new Date(NaN);if(L.u(D))return new Date;if(D instanceof Date)return new Date(D);if(typeof D=="string"&&!/Z$/i.test(D)){var F=D.match(g);if(F){var B=F[2]-1||0,$=(F[7]||"0").substring(0,3);return P?new Date(Date.UTC(F[1],B,F[3]||1,F[4]||0,F[5]||0,F[6]||0,$)):new Date(F[1],B,F[3]||1,F[4]||0,F[5]||0,F[6]||0,$)}}return new Date(D)}(C),this.init()},I.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},I.$utils=function(){return L},I.isValid=function(){return this.$d.toString()!==m},I.isSame=function(C,O){var D=A(C);return this.startOf(O)<=D&&D<=this.endOf(O)},I.isAfter=function(C,O){return A(C){"use strict";LF=Xi(Nb(),1),Zc={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},V={trace:o((...t)=>{},"trace"),debug:o((...t)=>{},"debug"),info:o((...t)=>{},"info"),warn:o((...t)=>{},"warn"),error:o((...t)=>{},"error"),fatal:o((...t)=>{},"fatal")},$1=o(function(t="fatal"){let e=Zc.fatal;typeof t=="string"?t.toLowerCase()in Zc&&(e=Zc[t]):typeof t=="number"&&(e=t),V.trace=()=>{},V.debug=()=>{},V.info=()=>{},V.warn=()=>{},V.error=()=>{},V.fatal=()=>{},e<=Zc.fatal&&(V.fatal=console.error?console.error.bind(console,Eo("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Eo("FATAL"))),e<=Zc.error&&(V.error=console.error?console.error.bind(console,Eo("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Eo("ERROR"))),e<=Zc.warn&&(V.warn=console.warn?console.warn.bind(console,Eo("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Eo("WARN"))),e<=Zc.info&&(V.info=console.info?console.info.bind(console,Eo("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Eo("INFO"))),e<=Zc.debug&&(V.debug=console.debug?console.debug.bind(console,Eo("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Eo("DEBUG"))),e<=Zc.trace&&(V.trace=console.debug?console.debug.bind(console,Eo("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Eo("TRACE")))},"setLogLevel"),Eo=o(t=>`%c${(0,LF.default)().format("ss.SSS")} : ${t} : `,"format")});var Vve,np,LC,DF,Mb=R(()=>{"use strict";Vve=Object.freeze({left:0,top:0,width:16,height:16}),np=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),LC=Object.freeze({...Vve,...np}),DF=Object.freeze({...LC,body:"",hidden:!1})});var Uve,RF,NF=R(()=>{"use strict";Mb();Uve=Object.freeze({width:null,height:null}),RF=Object.freeze({...Uve,...np})});var Ib,DC,Ob,MF=R(()=>{"use strict";Ib=/^[a-z0-9]+(-[a-z0-9]+)*$/,DC=o((t,e,r,n="")=>{let i=t.split(":");if(t.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;n=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){let l=i.pop(),u=i.pop(),h={provider:i.length>0?i[0]:n,prefix:u,name:l};return e&&!Ob(h)?null:h}let a=i[0],s=a.split("-");if(s.length>1){let l={provider:n,prefix:s.shift(),name:s.join("-")};return e&&!Ob(l)?null:l}if(r&&n===""){let l={provider:n,prefix:"",name:a};return e&&!Ob(l,r)?null:l}return null},"stringToIcon"),Ob=o((t,e)=>t?!!((t.provider===""||t.provider.match(Ib))&&(e&&t.prefix===""||t.prefix.match(Ib))&&t.name.match(Ib)):!1,"validateIconName")});function IF(t,e){let r={};!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0);let n=((t.rotate||0)+(e.rotate||0))%4;return n&&(r.rotate=n),r}var OF=R(()=>{"use strict";o(IF,"mergeIconTransformations")});function RC(t,e){let r=IF(t,e);for(let n in DF)n in np?n in t&&!(n in r)&&(r[n]=np[n]):n in e?r[n]=e[n]:n in t&&(r[n]=t[n]);return r}var PF=R(()=>{"use strict";Mb();OF();o(RC,"mergeIconData")});function BF(t,e){let r=t.icons,n=t.aliases||Object.create(null),i=Object.create(null);function a(s){if(r[s])return i[s]=[];if(!(s in i)){i[s]=null;let l=n[s]&&n[s].parent,u=l&&a(l);u&&(i[s]=[l].concat(u))}return i[s]}return o(a,"resolve"),(e||Object.keys(r).concat(Object.keys(n))).forEach(a),i}var FF=R(()=>{"use strict";o(BF,"getIconsTree")});function zF(t,e,r){let n=t.icons,i=t.aliases||Object.create(null),a={};function s(l){a=RC(n[l]||i[l],a)}return o(s,"parse"),s(e),r.forEach(s),RC(t,a)}function NC(t,e){if(t.icons[e])return zF(t,e,[]);let r=BF(t,[e])[e];return r?zF(t,e,r):null}var GF=R(()=>{"use strict";PF();FF();o(zF,"internalGetIconData");o(NC,"getIconData")});function MC(t,e,r){if(e===1)return t;if(r=r||100,typeof t=="number")return Math.ceil(t*e*r)/r;if(typeof t!="string")return t;let n=t.split(Hve);if(n===null||!n.length)return t;let i=[],a=n.shift(),s=Yve.test(a);for(;;){if(s){let l=parseFloat(a);isNaN(l)?i.push(a):i.push(Math.ceil(l*e*r)/r)}else i.push(a);if(a=n.shift(),a===void 0)return i.join("");s=!s}}var Hve,Yve,$F=R(()=>{"use strict";Hve=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Yve=/^-?[0-9.]*[0-9]+[0-9.]*$/g;o(MC,"calculateSize")});function Wve(t,e="defs"){let r="",n=t.indexOf("<"+e);for(;n>=0;){let i=t.indexOf(">",n),a=t.indexOf("",a);if(s===-1)break;r+=t.slice(i+1,a).trim(),t=t.slice(0,n).trim()+t.slice(s+1)}return{defs:r,content:t}}function qve(t,e){return t?""+t+""+e:e}function VF(t,e,r){let n=Wve(t);return qve(n.defs,e+n.content+r)}var UF=R(()=>{"use strict";o(Wve,"splitSVGDefs");o(qve,"mergeDefsAndContent");o(VF,"wrapSVGContent")});function IC(t,e){let r={...LC,...t},n={...RF,...e},i={left:r.left,top:r.top,width:r.width,height:r.height},a=r.body;[r,n].forEach(y=>{let v=[],x=y.hFlip,b=y.vFlip,w=y.rotate;x?b?w+=2:(v.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),v.push("scale(-1 1)"),i.top=i.left=0):b&&(v.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),v.push("scale(1 -1)"),i.top=i.left=0);let S;switch(w<0&&(w-=Math.floor(w/4)*4),w=w%4,w){case 1:S=i.height/2+i.top,v.unshift("rotate(90 "+S.toString()+" "+S.toString()+")");break;case 2:v.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:S=i.width/2+i.left,v.unshift("rotate(-90 "+S.toString()+" "+S.toString()+")");break}w%2===1&&(i.left!==i.top&&(S=i.left,i.left=i.top,i.top=S),i.width!==i.height&&(S=i.width,i.width=i.height,i.height=S)),v.length&&(a=VF(a,'',""))});let s=n.width,l=n.height,u=i.width,h=i.height,f,d;s===null?(d=l===null?"1em":l==="auto"?h:l,f=MC(d,u/h)):(f=s==="auto"?u:s,d=l===null?MC(f,h/u):l==="auto"?h:l);let p={},m=o((y,v)=>{Xve(v)||(p[y]=v.toString())},"setAttr");m("width",f),m("height",d);let g=[i.left,i.top,u,h];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:a}}var Xve,HF=R(()=>{"use strict";Mb();NF();$F();UF();Xve=o(t=>t==="unset"||t==="undefined"||t==="none","isUnsetKeyword");o(IC,"iconToSVG")});function OC(t,e=Kve){let r=[],n;for(;n=jve.exec(t);)r.push(n[1]);if(!r.length)return t;let i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(a=>{let s=typeof e=="function"?e(a):e+(Qve++).toString(),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),t=t.replace(new RegExp(i,"g"),""),t}var jve,Kve,Qve,YF=R(()=>{"use strict";jve=/\sid="(\S+)"/g,Kve="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),Qve=0;o(OC,"replaceIDs")});function PC(t,e){let r=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let n in e)r+=" "+n+'="'+e[n]+'"';return'"+t+""}var WF=R(()=>{"use strict";o(PC,"iconToHTML")});var XF=gi((ait,qF)=>{"use strict";var ip=1e3,ap=ip*60,sp=ap*60,$f=sp*24,Zve=$f*7,Jve=$f*365.25;qF.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return e2e(t);if(r==="number"&&isFinite(t))return e.long?r2e(t):t2e(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function e2e(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Jve;case"weeks":case"week":case"w":return r*Zve;case"days":case"day":case"d":return r*$f;case"hours":case"hour":case"hrs":case"hr":case"h":return r*sp;case"minutes":case"minute":case"mins":case"min":case"m":return r*ap;case"seconds":case"second":case"secs":case"sec":case"s":return r*ip;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}o(e2e,"parse");function t2e(t){var e=Math.abs(t);return e>=$f?Math.round(t/$f)+"d":e>=sp?Math.round(t/sp)+"h":e>=ap?Math.round(t/ap)+"m":e>=ip?Math.round(t/ip)+"s":t+"ms"}o(t2e,"fmtShort");function r2e(t){var e=Math.abs(t);return e>=$f?Pb(t,e,$f,"day"):e>=sp?Pb(t,e,sp,"hour"):e>=ap?Pb(t,e,ap,"minute"):e>=ip?Pb(t,e,ip,"second"):t+" ms"}o(r2e,"fmtLong");function Pb(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}o(Pb,"plural")});var KF=gi((oit,jF)=>{"use strict";function n2e(t){r.debug=r,r.default=r,r.coerce=u,r.disable=a,r.enable=i,r.enabled=s,r.humanize=XF(),r.destroy=h,Object.keys(t).forEach(f=>{r[f]=t[f]}),r.names=[],r.skips=[],r.formatters={};function e(f){let d=0;for(let p=0;p{if(E==="%%")return"%";S++;let A=r.formatters[_];if(typeof A=="function"){let L=v[S];E=A.call(x,L),v.splice(S,1),S--}return E}),r.formatArgs.call(x,v),(x.log||r.log).apply(x,v)}return o(y,"debug"),y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:o(()=>p!==null?p:(m!==r.namespaces&&(m=r.namespaces,g=r.enabled(f)),g),"get"),set:o(v=>{p=v},"set")}),typeof r.init=="function"&&r.init(y),y}o(r,"createDebug");function n(f,d){let p=r(this.namespace+(typeof d>"u"?":":d)+f);return p.log=this.log,p}o(n,"extend");function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let d,p=(typeof f=="string"?f:"").split(/[\s,]+/),m=p.length;for(d=0;d"-"+d)].join(",");return r.enable(""),f}o(a,"disable");function s(f){if(f[f.length-1]==="*")return!0;let d,p;for(d=0,p=r.skips.length;d{"use strict";Ys.formatArgs=a2e;Ys.save=s2e;Ys.load=o2e;Ys.useColors=i2e;Ys.storage=l2e();Ys.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Ys.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function i2e(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}o(i2e,"useColors");function a2e(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Bb.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}o(a2e,"formatArgs");Ys.log=console.debug||console.log||(()=>{});function s2e(t){try{t?Ys.storage.setItem("debug",t):Ys.storage.removeItem("debug")}catch{}}o(s2e,"save");function o2e(){let t;try{t=Ys.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}o(o2e,"load");function l2e(){try{return localStorage}catch{}}o(l2e,"localstorage");Bb.exports=KF()(Ys);var{formatters:c2e}=Bb.exports;c2e.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var uit,ZF=R(()=>{"use strict";MF();GF();HF();YF();WF();uit=Xi(QF(),1)});var FC,BC,JF,Fb,u2e,zb,V1=R(()=>{"use strict";ut();ZF();FC={body:'?',height:80,width:80},BC=new Map,JF=new Map,Fb=o(t=>{for(let e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(V.debug("Registering icon pack:",e.name),"loader"in e)JF.set(e.name,e.loader);else if("icons"in e)BC.set(e.name,e.icons);else throw V.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),u2e=o(async(t,e)=>{let r=DC(t,!0,e!==void 0);if(!r)throw new Error(`Invalid icon name: ${t}`);let n=r.prefix||e;if(!n)throw new Error(`Icon name must contain a prefix: ${t}`);let i=BC.get(n);if(!i){let s=JF.get(n);if(!s)throw new Error(`Icon set not found: ${r.prefix}`);try{i={...await s(),prefix:n},BC.set(n,i)}catch(l){throw V.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}let a=NC(i,r.name);if(!a)throw new Error(`Icon not found: ${t}`);return a},"getRegisteredIconData"),zb=o(async(t,e)=>{let r;try{r=await u2e(t,e?.fallbackPrefix)}catch(a){V.error(a),r=FC}let n=IC(r,e);return PC(OC(n.body),n.attributes)},"getIconSVG")});function Gb(t){for(var e=[],r=1;r{"use strict";o(Gb,"dedent")});var $b,Vf,ez,Vb=R(()=>{"use strict";$b=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,Vf=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,ez=/\s*%%.*\n/gm});var op,GC=R(()=>{"use strict";op=class extends Error{static{o(this,"UnknownDiagramError")}constructor(e){super(e),this.name="UnknownDiagramError"}}});var Uf,lp,Ub,$C,tz,Hf=R(()=>{"use strict";ut();Vb();GC();Uf={},lp=o(function(t,e){t=t.replace($b,"").replace(Vf,"").replace(ez,` +`);for(let[r,{detector:n}]of Object.entries(Uf))if(n(t,e))return r;throw new op(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),Ub=o((...t)=>{for(let{id:e,detector:r,loader:n}of t)$C(e,r,n)},"registerLazyLoadedDiagrams"),$C=o((t,e,r)=>{Uf[t]&&V.warn(`Detector with key ${t} already exists. Overwriting.`),Uf[t]={detector:e,loader:r},V.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),tz=o(t=>Uf[t].loader,"getDiagramLoader")});var U1,rz,VC=R(()=>{"use strict";U1=function(){var t=o(function(_e,me,W,fe){for(W=W||{},fe=_e.length;fe--;W[_e[fe]]=me);return W},"o"),e=[1,24],r=[1,25],n=[1,26],i=[1,27],a=[1,28],s=[1,63],l=[1,64],u=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],m=[1,29],g=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],w=[1,35],S=[1,36],T=[1,37],E=[1,38],_=[1,39],A=[1,40],L=[1,41],M=[1,42],N=[1,43],k=[1,44],I=[1,45],C=[1,46],O=[1,47],D=[1,48],P=[1,50],F=[1,51],B=[1,52],$=[1,53],z=[1,54],Y=[1,55],Q=[1,56],X=[1,57],ie=[1,58],j=[1,59],J=[1,60],Z=[14,42],H=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],q=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],K=[1,82],se=[1,83],ce=[1,84],ue=[1,85],te=[12,14,42],De=[12,14,33,42],oe=[12,14,33,42,76,77,79,80],ke=[12,33],Ie=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Se={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:o(function(me,W,fe,ge,re,he,ne){var ae=he.length-1;switch(re){case 3:ge.setDirection("TB");break;case 4:ge.setDirection("BT");break;case 5:ge.setDirection("RL");break;case 6:ge.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:ge.setC4Type(he[ae-3]);break;case 19:ge.setTitle(he[ae].substring(6)),this.$=he[ae].substring(6);break;case 20:ge.setAccDescription(he[ae].substring(15)),this.$=he[ae].substring(15);break;case 21:this.$=he[ae].trim(),ge.setTitle(this.$);break;case 22:case 23:this.$=he[ae].trim(),ge.setAccDescription(this.$);break;case 28:he[ae].splice(2,0,"ENTERPRISE"),ge.addPersonOrSystemBoundary(...he[ae]),this.$=he[ae];break;case 29:he[ae].splice(2,0,"SYSTEM"),ge.addPersonOrSystemBoundary(...he[ae]),this.$=he[ae];break;case 30:ge.addPersonOrSystemBoundary(...he[ae]),this.$=he[ae];break;case 31:he[ae].splice(2,0,"CONTAINER"),ge.addContainerBoundary(...he[ae]),this.$=he[ae];break;case 32:ge.addDeploymentNode("node",...he[ae]),this.$=he[ae];break;case 33:ge.addDeploymentNode("nodeL",...he[ae]),this.$=he[ae];break;case 34:ge.addDeploymentNode("nodeR",...he[ae]),this.$=he[ae];break;case 35:ge.popBoundaryParseStack();break;case 39:ge.addPersonOrSystem("person",...he[ae]),this.$=he[ae];break;case 40:ge.addPersonOrSystem("external_person",...he[ae]),this.$=he[ae];break;case 41:ge.addPersonOrSystem("system",...he[ae]),this.$=he[ae];break;case 42:ge.addPersonOrSystem("system_db",...he[ae]),this.$=he[ae];break;case 43:ge.addPersonOrSystem("system_queue",...he[ae]),this.$=he[ae];break;case 44:ge.addPersonOrSystem("external_system",...he[ae]),this.$=he[ae];break;case 45:ge.addPersonOrSystem("external_system_db",...he[ae]),this.$=he[ae];break;case 46:ge.addPersonOrSystem("external_system_queue",...he[ae]),this.$=he[ae];break;case 47:ge.addContainer("container",...he[ae]),this.$=he[ae];break;case 48:ge.addContainer("container_db",...he[ae]),this.$=he[ae];break;case 49:ge.addContainer("container_queue",...he[ae]),this.$=he[ae];break;case 50:ge.addContainer("external_container",...he[ae]),this.$=he[ae];break;case 51:ge.addContainer("external_container_db",...he[ae]),this.$=he[ae];break;case 52:ge.addContainer("external_container_queue",...he[ae]),this.$=he[ae];break;case 53:ge.addComponent("component",...he[ae]),this.$=he[ae];break;case 54:ge.addComponent("component_db",...he[ae]),this.$=he[ae];break;case 55:ge.addComponent("component_queue",...he[ae]),this.$=he[ae];break;case 56:ge.addComponent("external_component",...he[ae]),this.$=he[ae];break;case 57:ge.addComponent("external_component_db",...he[ae]),this.$=he[ae];break;case 58:ge.addComponent("external_component_queue",...he[ae]),this.$=he[ae];break;case 60:ge.addRel("rel",...he[ae]),this.$=he[ae];break;case 61:ge.addRel("birel",...he[ae]),this.$=he[ae];break;case 62:ge.addRel("rel_u",...he[ae]),this.$=he[ae];break;case 63:ge.addRel("rel_d",...he[ae]),this.$=he[ae];break;case 64:ge.addRel("rel_l",...he[ae]),this.$=he[ae];break;case 65:ge.addRel("rel_r",...he[ae]),this.$=he[ae];break;case 66:ge.addRel("rel_b",...he[ae]),this.$=he[ae];break;case 67:he[ae].splice(0,1),ge.addRel("rel",...he[ae]),this.$=he[ae];break;case 68:ge.updateElStyle("update_el_style",...he[ae]),this.$=he[ae];break;case 69:ge.updateRelStyle("update_rel_style",...he[ae]),this.$=he[ae];break;case 70:ge.updateLayoutConfig("update_layout_config",...he[ae]),this.$=he[ae];break;case 71:this.$=[he[ae]];break;case 72:he[ae].unshift(he[ae-1]),this.$=he[ae];break;case 73:case 75:this.$=he[ae].trim();break;case 74:let we={};we[he[ae-1].trim()]=he[ae].trim(),this.$=we;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:$,68:z,69:Y,70:Q,71:X,72:ie,73:j,74:J},{13:70,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:$,68:z,69:Y,70:Q,71:X,72:ie,73:j,74:J},{13:71,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:$,68:z,69:Y,70:Q,71:X,72:ie,73:j,74:J},{13:72,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:$,68:z,69:Y,70:Q,71:X,72:ie,73:j,74:J},{13:73,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:$,68:z,69:Y,70:Q,71:X,72:ie,73:j,74:J},{14:[1,74]},t(Z,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:$,68:z,69:Y,70:Q,71:X,72:ie,73:j,74:J}),t(Z,[2,14]),t(H,[2,16],{12:[1,76]}),t(Z,[2,36],{12:[1,77]}),t(q,[2,19]),t(q,[2,20]),{25:[1,78]},{27:[1,79]},t(q,[2,23]),{35:80,75:81,76:K,77:se,79:ce,80:ue},{35:86,75:81,76:K,77:se,79:ce,80:ue},{35:87,75:81,76:K,77:se,79:ce,80:ue},{35:88,75:81,76:K,77:se,79:ce,80:ue},{35:89,75:81,76:K,77:se,79:ce,80:ue},{35:90,75:81,76:K,77:se,79:ce,80:ue},{35:91,75:81,76:K,77:se,79:ce,80:ue},{35:92,75:81,76:K,77:se,79:ce,80:ue},{35:93,75:81,76:K,77:se,79:ce,80:ue},{35:94,75:81,76:K,77:se,79:ce,80:ue},{35:95,75:81,76:K,77:se,79:ce,80:ue},{35:96,75:81,76:K,77:se,79:ce,80:ue},{35:97,75:81,76:K,77:se,79:ce,80:ue},{35:98,75:81,76:K,77:se,79:ce,80:ue},{35:99,75:81,76:K,77:se,79:ce,80:ue},{35:100,75:81,76:K,77:se,79:ce,80:ue},{35:101,75:81,76:K,77:se,79:ce,80:ue},{35:102,75:81,76:K,77:se,79:ce,80:ue},{35:103,75:81,76:K,77:se,79:ce,80:ue},{35:104,75:81,76:K,77:se,79:ce,80:ue},t(te,[2,59]),{35:105,75:81,76:K,77:se,79:ce,80:ue},{35:106,75:81,76:K,77:se,79:ce,80:ue},{35:107,75:81,76:K,77:se,79:ce,80:ue},{35:108,75:81,76:K,77:se,79:ce,80:ue},{35:109,75:81,76:K,77:se,79:ce,80:ue},{35:110,75:81,76:K,77:se,79:ce,80:ue},{35:111,75:81,76:K,77:se,79:ce,80:ue},{35:112,75:81,76:K,77:se,79:ce,80:ue},{35:113,75:81,76:K,77:se,79:ce,80:ue},{35:114,75:81,76:K,77:se,79:ce,80:ue},{35:115,75:81,76:K,77:se,79:ce,80:ue},{20:116,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:$,68:z,69:Y,70:Q,71:X,72:ie,73:j,74:J},{12:[1,118],33:[1,117]},{35:119,75:81,76:K,77:se,79:ce,80:ue},{35:120,75:81,76:K,77:se,79:ce,80:ue},{35:121,75:81,76:K,77:se,79:ce,80:ue},{35:122,75:81,76:K,77:se,79:ce,80:ue},{35:123,75:81,76:K,77:se,79:ce,80:ue},{35:124,75:81,76:K,77:se,79:ce,80:ue},{35:125,75:81,76:K,77:se,79:ce,80:ue},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(Z,[2,15]),t(H,[2,17],{21:22,19:130,22:e,23:r,24:n,26:i,28:a}),t(Z,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:r,24:n,26:i,28:a,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:$,68:z,69:Y,70:Q,71:X,72:ie,73:j,74:J}),t(q,[2,21]),t(q,[2,22]),t(te,[2,39]),t(De,[2,71],{75:81,35:132,76:K,77:se,79:ce,80:ue}),t(oe,[2,73]),{78:[1,133]},t(oe,[2,75]),t(oe,[2,76]),t(te,[2,40]),t(te,[2,41]),t(te,[2,42]),t(te,[2,43]),t(te,[2,44]),t(te,[2,45]),t(te,[2,46]),t(te,[2,47]),t(te,[2,48]),t(te,[2,49]),t(te,[2,50]),t(te,[2,51]),t(te,[2,52]),t(te,[2,53]),t(te,[2,54]),t(te,[2,55]),t(te,[2,56]),t(te,[2,57]),t(te,[2,58]),t(te,[2,60]),t(te,[2,61]),t(te,[2,62]),t(te,[2,63]),t(te,[2,64]),t(te,[2,65]),t(te,[2,66]),t(te,[2,67]),t(te,[2,68]),t(te,[2,69]),t(te,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(ke,[2,28]),t(ke,[2,29]),t(ke,[2,30]),t(ke,[2,31]),t(ke,[2,32]),t(ke,[2,33]),t(ke,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(H,[2,18]),t(Z,[2,38]),t(De,[2,72]),t(oe,[2,74]),t(te,[2,24]),t(te,[2,35]),t(Ie,[2,25]),t(Ie,[2,26],{12:[1,138]}),t(Ie,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:o(function(me,W){if(W.recoverable)this.trace(me);else{var fe=new Error(me);throw fe.hash=W,fe}},"parseError"),parse:o(function(me){var W=this,fe=[0],ge=[],re=[null],he=[],ne=this.table,ae="",we=0,Te=0,Ce=0,Ae=2,Ge=1,Me=he.slice.call(arguments,1),ye=Object.create(this.lexer),He={yy:{}};for(var ze in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ze)&&(He.yy[ze]=this.yy[ze]);ye.setInput(me,He.yy),He.yy.lexer=ye,He.yy.parser=this,typeof ye.yylloc>"u"&&(ye.yylloc={});var Ze=ye.yylloc;he.push(Ze);var gt=ye.options&&ye.options.ranges;typeof He.yy.parseError=="function"?this.parseError=He.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function yt(St){fe.length=fe.length-2*St,re.length=re.length-St,he.length=he.length-St}o(yt,"popStack");function tt(){var St;return St=ge.pop()||ye.lex()||Ge,typeof St!="number"&&(St instanceof Array&&(ge=St,St=ge.pop()),St=W.symbols_[St]||St),St}o(tt,"lex");for(var Ye,Je,Ve,je,kt,at,xt={},it,dt,lt,It;;){if(Ve=fe[fe.length-1],this.defaultActions[Ve]?je=this.defaultActions[Ve]:((Ye===null||typeof Ye>"u")&&(Ye=tt()),je=ne[Ve]&&ne[Ve][Ye]),typeof je>"u"||!je.length||!je[0]){var mt="";It=[];for(it in ne[Ve])this.terminals_[it]&&it>Ae&&It.push("'"+this.terminals_[it]+"'");ye.showPosition?mt="Parse error on line "+(we+1)+`: +`+ye.showPosition()+` +Expecting `+It.join(", ")+", got '"+(this.terminals_[Ye]||Ye)+"'":mt="Parse error on line "+(we+1)+": Unexpected "+(Ye==Ge?"end of input":"'"+(this.terminals_[Ye]||Ye)+"'"),this.parseError(mt,{text:ye.match,token:this.terminals_[Ye]||Ye,line:ye.yylineno,loc:Ze,expected:It})}if(je[0]instanceof Array&&je.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ve+", token: "+Ye);switch(je[0]){case 1:fe.push(Ye),re.push(ye.yytext),he.push(ye.yylloc),fe.push(je[1]),Ye=null,Je?(Ye=Je,Je=null):(Te=ye.yyleng,ae=ye.yytext,we=ye.yylineno,Ze=ye.yylloc,Ce>0&&Ce--);break;case 2:if(dt=this.productions_[je[1]][1],xt.$=re[re.length-dt],xt._$={first_line:he[he.length-(dt||1)].first_line,last_line:he[he.length-1].last_line,first_column:he[he.length-(dt||1)].first_column,last_column:he[he.length-1].last_column},gt&&(xt._$.range=[he[he.length-(dt||1)].range[0],he[he.length-1].range[1]]),at=this.performAction.apply(xt,[ae,Te,we,He.yy,je[1],re,he].concat(Me)),typeof at<"u")return at;dt&&(fe=fe.slice(0,-1*dt*2),re=re.slice(0,-1*dt),he=he.slice(0,-1*dt)),fe.push(this.productions_[je[1]][0]),re.push(xt.$),he.push(xt._$),lt=ne[fe[fe.length-2]][fe[fe.length-1]],fe.push(lt);break;case 3:return!0}}return!0},"parse")},Ue=function(){var _e={EOF:1,parseError:o(function(W,fe){if(this.yy.parser)this.yy.parser.parseError(W,fe);else throw new Error(W)},"parseError"),setInput:o(function(me,W){return this.yy=W||this.yy||{},this._input=me,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var me=this._input[0];this.yytext+=me,this.yyleng++,this.offset++,this.match+=me,this.matched+=me;var W=me.match(/(?:\r\n?|\n).*/g);return W?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),me},"input"),unput:o(function(me){var W=me.length,fe=me.split(/(?:\r\n?|\n)/g);this._input=me+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-W),this.offset-=W;var ge=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),fe.length-1&&(this.yylineno-=fe.length-1);var re=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:fe?(fe.length===ge.length?this.yylloc.first_column:0)+ge[ge.length-fe.length].length-fe[0].length:this.yylloc.first_column-W},this.options.ranges&&(this.yylloc.range=[re[0],re[0]+this.yyleng-W]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(me){this.unput(this.match.slice(me))},"less"),pastInput:o(function(){var me=this.matched.substr(0,this.matched.length-this.match.length);return(me.length>20?"...":"")+me.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var me=this.match;return me.length<20&&(me+=this._input.substr(0,20-me.length)),(me.substr(0,20)+(me.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var me=this.pastInput(),W=new Array(me.length+1).join("-");return me+this.upcomingInput()+` +`+W+"^"},"showPosition"),test_match:o(function(me,W){var fe,ge,re;if(this.options.backtrack_lexer&&(re={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(re.yylloc.range=this.yylloc.range.slice(0))),ge=me[0].match(/(?:\r\n?|\n).*/g),ge&&(this.yylineno+=ge.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ge?ge[ge.length-1].length-ge[ge.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+me[0].length},this.yytext+=me[0],this.match+=me[0],this.matches=me,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(me[0].length),this.matched+=me[0],fe=this.performAction.call(this,this.yy,this,W,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),fe)return fe;if(this._backtrack){for(var he in re)this[he]=re[he];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var me,W,fe,ge;this._more||(this.yytext="",this.match="");for(var re=this._currentRules(),he=0;heW[0].length)){if(W=fe,ge=he,this.options.backtrack_lexer){if(me=this.test_match(fe,re[he]),me!==!1)return me;if(this._backtrack){W=!1;continue}else return!1}else if(!this.options.flex)break}return W?(me=this.test_match(W,re[ge]),me!==!1?me:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var W=this.next();return W||this.lex()},"lex"),begin:o(function(W){this.conditionStack.push(W)},"begin"),popState:o(function(){var W=this.conditionStack.length-1;return W>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(W){return W=this.conditionStack.length-1-Math.abs(W||0),W>=0?this.conditionStack[W]:"INITIAL"},"topState"),pushState:o(function(W){this.begin(W)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(W,fe,ge,re){var he=re;switch(ge){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";break;case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return _e}();Se.lexer=Ue;function Pe(){this.yy={}}return o(Pe,"Parser"),Pe.prototype=Se,Se.Parser=Pe,new Pe}();U1.parser=U1;rz=U1});var UC,On,cp=R(()=>{"use strict";UC=o((t,e,{depth:r=2,clobber:n=!1}={})=>{let i={depth:r,clobber:n};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(a=>UC(t,a,i)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(a=>{t.includes(a)||t.push(a)}),t):t===void 0||r<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(a=>{typeof e[a]=="object"&&(t[a]===void 0||typeof t[a]=="object")?(t[a]===void 0&&(t[a]=Array.isArray(e[a])?[]:{}),t[a]=UC(t[a],e[a],{depth:r-1,clobber:n})):(n||typeof t[a]!="object"&&typeof e[a]!="object")&&(t[a]=e[a])}),t)},"assignWithDepth"),On=UC});var Hb,nz,iz=R(()=>{"use strict";Hb={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:o(t=>t>=255?255:t<0?0:t,"r"),g:o(t=>t>=255?255:t<0?0:t,"g"),b:o(t=>t>=255?255:t<0?0:t,"b"),h:o(t=>t%360,"h"),s:o(t=>t>=100?100:t<0?0:t,"s"),l:o(t=>t>=100?100:t<0?0:t,"l"),a:o(t=>t>=1?1:t<0?0:t,"a")},toLinear:o(t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},"toLinear"),hue2rgb:o((t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?t+(e-t)*6*r:r<.5?e:r<.6666666666666666?t+(e-t)*(.6666666666666666-r)*6:t),"hue2rgb"),hsl2rgb:o(({h:t,s:e,l:r},n)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let i=r<.5?r*(1+e):r+e-r*e,a=2*r-i;switch(n){case"r":return Hb.hue2rgb(a,i,t+.3333333333333333)*255;case"g":return Hb.hue2rgb(a,i,t)*255;case"b":return Hb.hue2rgb(a,i,t-.3333333333333333)*255}},"hsl2rgb"),rgb2hsl:o(({r:t,g:e,b:r},n)=>{t/=255,e/=255,r/=255;let i=Math.max(t,e,r),a=Math.min(t,e,r),s=(i+a)/2;if(n==="l")return s*100;if(i===a)return 0;let l=i-a,u=s>.5?l/(2-i-a):l/(i+a);if(n==="s")return u*100;switch(i){case t:return((e-r)/l+(e{"use strict";h2e={clamp:o((t,e,r)=>e>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),"clamp"),round:o(t=>Math.round(t*1e10)/1e10,"round")},az=h2e});var f2e,oz,lz=R(()=>{"use strict";f2e={dec2hex:o(t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`},"dec2hex")},oz=f2e});var d2e,Bt,jl=R(()=>{"use strict";iz();sz();lz();d2e={channel:nz,lang:az,unit:oz},Bt=d2e});var Jc,Li,H1=R(()=>{"use strict";jl();Jc={};for(let t=0;t<=255;t++)Jc[t]=Bt.unit.dec2hex(t);Li={ALL:0,RGB:1,HSL:2}});var HC,cz,uz=R(()=>{"use strict";H1();HC=class{static{o(this,"Type")}constructor(){this.type=Li.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=Li.ALL}is(e){return this.type===e}},cz=HC});var YC,hz,fz=R(()=>{"use strict";jl();uz();H1();YC=class{static{o(this,"Channels")}constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new cz}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=Li.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:n,l:i}=e;r===void 0&&(e.h=Bt.channel.rgb2hsl(e,"h")),n===void 0&&(e.s=Bt.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=Bt.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:n,b:i}=e;r===void 0&&(e.r=Bt.channel.hsl2rgb(e,"r")),n===void 0&&(e.g=Bt.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=Bt.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(Li.HSL)&&r!==void 0?r:(this._ensureHSL(),Bt.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(Li.HSL)&&r!==void 0?r:(this._ensureHSL(),Bt.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(Li.HSL)&&r!==void 0?r:(this._ensureHSL(),Bt.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(Li.RGB)&&r!==void 0?r:(this._ensureRGB(),Bt.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(Li.RGB)&&r!==void 0?r:(this._ensureRGB(),Bt.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(Li.RGB)&&r!==void 0?r:(this._ensureRGB(),Bt.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(Li.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(Li.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(Li.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(Li.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(Li.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(Li.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},hz=YC});var p2e,oh,Y1=R(()=>{"use strict";fz();p2e=new hz({r:0,g:0,b:0,a:0},"transparent"),oh=p2e});var dz,Yf,WC=R(()=>{"use strict";Y1();H1();dz={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:o(t=>{if(t.charCodeAt(0)!==35)return;let e=t.match(dz.re);if(!e)return;let r=e[1],n=parseInt(r,16),i=r.length,a=i%4===0,s=i>4,l=s?1:17,u=s?8:4,h=a?0:-1,f=s?255:15;return oh.set({r:(n>>u*(h+3)&f)*l,g:(n>>u*(h+2)&f)*l,b:(n>>u*(h+1)&f)*l,a:a?(n&f)*l/255:1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`#${Jc[Math.round(e)]}${Jc[Math.round(r)]}${Jc[Math.round(n)]}${Jc[Math.round(i*255)]}`:`#${Jc[Math.round(e)]}${Jc[Math.round(r)]}${Jc[Math.round(n)]}`},"stringify")},Yf=dz});var Yb,W1,pz=R(()=>{"use strict";jl();Y1();Yb={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:o(t=>{let e=t.match(Yb.hueRe);if(e){let[,r,n]=e;switch(n){case"grad":return Bt.channel.clamp.h(parseFloat(r)*.9);case"rad":return Bt.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return Bt.channel.clamp.h(parseFloat(r)*360)}}return Bt.channel.clamp.h(parseFloat(t))},"_hue2deg"),parse:o(t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(Yb.re);if(!r)return;let[,n,i,a,s,l]=r;return oh.set({h:Yb._hue2deg(n),s:Bt.channel.clamp.s(parseFloat(i)),l:Bt.channel.clamp.l(parseFloat(a)),a:s?Bt.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},t)},"parse"),stringify:o(t=>{let{h:e,s:r,l:n,a:i}=t;return i<1?`hsla(${Bt.lang.round(e)}, ${Bt.lang.round(r)}%, ${Bt.lang.round(n)}%, ${i})`:`hsl(${Bt.lang.round(e)}, ${Bt.lang.round(r)}%, ${Bt.lang.round(n)}%)`},"stringify")},W1=Yb});var Wb,qC,mz=R(()=>{"use strict";WC();Wb={colors:{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",cyanaqua:"#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",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:o(t=>{t=t.toLowerCase();let e=Wb.colors[t];if(e)return Yf.parse(e)},"parse"),stringify:o(t=>{let e=Yf.stringify(t);for(let r in Wb.colors)if(Wb.colors[r]===e)return r},"stringify")},qC=Wb});var gz,q1,yz=R(()=>{"use strict";jl();Y1();gz={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:o(t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(gz.re);if(!r)return;let[,n,i,a,s,l,u,h,f]=r;return oh.set({r:Bt.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:Bt.channel.clamp.g(s?parseFloat(a)*2.55:parseFloat(a)),b:Bt.channel.clamp.b(u?parseFloat(l)*2.55:parseFloat(l)),a:h?Bt.channel.clamp.a(f?parseFloat(h)/100:parseFloat(h)):1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`rgba(${Bt.lang.round(e)}, ${Bt.lang.round(r)}, ${Bt.lang.round(n)}, ${Bt.lang.round(i)})`:`rgb(${Bt.lang.round(e)}, ${Bt.lang.round(r)}, ${Bt.lang.round(n)})`},"stringify")},q1=gz});var m2e,Di,eu=R(()=>{"use strict";WC();pz();mz();yz();H1();m2e={format:{keyword:qC,hex:Yf,rgb:q1,rgba:q1,hsl:W1,hsla:W1},parse:o(t=>{if(typeof t!="string")return t;let e=Yf.parse(t)||q1.parse(t)||W1.parse(t)||qC.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},"parse"),stringify:o(t=>!t.changed&&t.color?t.color:t.type.is(Li.HSL)||t.data.r===void 0?W1.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?q1.stringify(t):Yf.stringify(t),"stringify")},Di=m2e});var g2e,qb,XC=R(()=>{"use strict";jl();eu();g2e=o((t,e)=>{let r=Di.parse(t);for(let n in e)r[n]=Bt.channel.clamp[n](e[n]);return Di.stringify(r)},"change"),qb=g2e});var y2e,Ws,jC=R(()=>{"use strict";jl();Y1();eu();XC();y2e=o((t,e,r=0,n=1)=>{if(typeof t!="number")return qb(t,{a:e});let i=oh.set({r:Bt.channel.clamp.r(t),g:Bt.channel.clamp.g(e),b:Bt.channel.clamp.b(r),a:Bt.channel.clamp.a(n)});return Di.stringify(i)},"rgba"),Ws=y2e});var v2e,X1,vz=R(()=>{"use strict";jl();eu();v2e=o((t,e)=>Bt.lang.round(Di.parse(t)[e]),"channel"),X1=v2e});var x2e,xz,bz=R(()=>{"use strict";jl();eu();x2e=o(t=>{let{r:e,g:r,b:n}=Di.parse(t),i=.2126*Bt.channel.toLinear(e)+.7152*Bt.channel.toLinear(r)+.0722*Bt.channel.toLinear(n);return Bt.lang.round(i)},"luminance"),xz=x2e});var b2e,wz,Tz=R(()=>{"use strict";bz();b2e=o(t=>xz(t)>=.5,"isLight"),wz=b2e});var w2e,Wa,kz=R(()=>{"use strict";Tz();w2e=o(t=>!wz(t),"isDark"),Wa=w2e});var T2e,Xb,KC=R(()=>{"use strict";jl();eu();T2e=o((t,e,r)=>{let n=Di.parse(t),i=n[e],a=Bt.channel.clamp[e](i+r);return i!==a&&(n[e]=a),Di.stringify(n)},"adjustChannel"),Xb=T2e});var k2e,Et,Ez=R(()=>{"use strict";KC();k2e=o((t,e)=>Xb(t,"l",e),"lighten"),Et=k2e});var E2e,Dt,Cz=R(()=>{"use strict";KC();E2e=o((t,e)=>Xb(t,"l",-e),"darken"),Dt=E2e});var C2e,Oe,Sz=R(()=>{"use strict";eu();XC();C2e=o((t,e)=>{let r=Di.parse(t),n={};for(let i in e)e[i]&&(n[i]=r[i]+e[i]);return qb(t,n)},"adjust"),Oe=C2e});var S2e,Az,_z=R(()=>{"use strict";eu();jC();S2e=o((t,e,r=50)=>{let{r:n,g:i,b:a,a:s}=Di.parse(t),{r:l,g:u,b:h,a:f}=Di.parse(e),d=r/100,p=d*2-1,m=s-f,y=((p*m===-1?p:(p+m)/(1+p*m))+1)/2,v=1-y,x=n*y+l*v,b=i*y+u*v,w=a*y+h*v,S=s*d+f*(1-d);return Ws(x,b,w,S)},"mix"),Az=S2e});var A2e,ot,Lz=R(()=>{"use strict";eu();_z();A2e=o((t,e=100)=>{let r=Di.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,Az(r,t,e)},"invert"),ot=A2e});var Dz=R(()=>{"use strict";jC();vz();kz();Ez();Cz();Sz();Lz()});var al=R(()=>{"use strict";Dz()});var lh,ch,j1=R(()=>{"use strict";lh="#ffffff",ch="#f2f2f2"});var yi,up=R(()=>{"use strict";al();yi=o((t,e)=>e?Oe(t,{s:-40,l:10}):Oe(t,{s:-40,l:-10}),"mkBorder")});var QC,Nz,Mz=R(()=>{"use strict";al();j1();up();QC=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Oe(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Oe(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||yi(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||yi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||yi(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||yi(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||ot(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||ot(this.tertiaryColor),this.lineColor=this.lineColor||ot(this.background),this.arrowheadColor=this.arrowheadColor||ot(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Dt(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Dt(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||ot(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Et(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Oe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Oe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Oe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Oe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Oe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Oe(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Oe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Oe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Oe(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Nz=o(t=>{let e=new QC;return e.calculate(t),e},"getThemeVariables")});var ZC,Iz,Oz=R(()=>{"use strict";al();up();ZC=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Et(this.primaryColor,16),this.tertiaryColor=Oe(this.primaryColor,{h:-160}),this.primaryBorderColor=ot(this.background),this.secondaryBorderColor=yi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=yi(this.tertiaryColor,this.darkMode),this.primaryTextColor=ot(this.primaryColor),this.secondaryTextColor=ot(this.secondaryColor),this.tertiaryTextColor=ot(this.tertiaryColor),this.lineColor=ot(this.background),this.textColor=ot(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Et(ot("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=Ws(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=Dt("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Dt(this.sectionBkgColor,10),this.taskBorderColor=Ws(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=Ws(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=Et(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Et(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Et(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Oe(this.primaryColor,{h:64}),this.fillType3=Oe(this.secondaryColor,{h:64}),this.fillType4=Oe(this.primaryColor,{h:-64}),this.fillType5=Oe(this.secondaryColor,{h:-64}),this.fillType6=Oe(this.primaryColor,{h:128}),this.fillType7=Oe(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Oe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Oe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Oe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Oe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Oe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Oe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Oe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Oe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Oe(this.primaryColor,{h:330});for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Iz=o(t=>{let e=new ZC;return e.calculate(t),e},"getThemeVariables")});var JC,hp,jb=R(()=>{"use strict";al();up();j1();JC=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Oe(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Oe(this.primaryColor,{h:-160}),this.primaryBorderColor=yi(this.primaryColor,this.darkMode),this.secondaryBorderColor=yi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=yi(this.tertiaryColor,this.darkMode),this.primaryTextColor=ot(this.primaryColor),this.secondaryTextColor=ot(this.secondaryColor),this.tertiaryTextColor=ot(this.tertiaryColor),this.lineColor=ot(this.background),this.textColor=ot(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=Ws(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Oe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Oe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Oe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Oe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Oe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Oe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Oe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Oe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Oe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Dt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Dt(this.tertiaryColor,40);for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},hp=o(t=>{let e=new JC;return e.calculate(t),e},"getThemeVariables")});var e7,Pz,Bz=R(()=>{"use strict";al();j1();up();e7=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Et("#cde498",10),this.primaryBorderColor=yi(this.primaryColor,this.darkMode),this.secondaryBorderColor=yi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=yi(this.tertiaryColor,this.darkMode),this.primaryTextColor=ot(this.primaryColor),this.secondaryTextColor=ot(this.secondaryColor),this.tertiaryTextColor=ot(this.primaryColor),this.lineColor=ot(this.background),this.textColor=ot(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=Dt(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Oe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Oe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Oe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Oe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Oe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Oe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Oe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Oe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Oe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Dt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Dt(this.tertiaryColor,40);for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Pz=o(t=>{let e=new e7;return e.calculate(t),e},"getThemeVariables")});var t7,Fz,zz=R(()=>{"use strict";al();up();j1();t7=class{static{o(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Et(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Oe(this.primaryColor,{h:-160}),this.primaryBorderColor=yi(this.primaryColor,this.darkMode),this.secondaryBorderColor=yi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=yi(this.tertiaryColor,this.darkMode),this.primaryTextColor=ot(this.primaryColor),this.secondaryTextColor=ot(this.secondaryColor),this.tertiaryTextColor=ot(this.tertiaryColor),this.lineColor=ot(this.background),this.textColor=ot(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=Et(this.contrast,55),this.border2=this.contrast,this.actorBorder=Et(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Fz=o(t=>{let e=new t7;return e.calculate(t),e},"getThemeVariables")});var Co,Kb=R(()=>{"use strict";Mz();Oz();jb();Bz();zz();Co={base:{getThemeVariables:Nz},dark:{getThemeVariables:Iz},default:{getThemeVariables:hp},forest:{getThemeVariables:Pz},neutral:{getThemeVariables:Fz}}});var tu,Gz=R(()=>{"use strict";tu={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}});var $z,Vz,Uz,mr,sl=R(()=>{"use strict";Kb();Gz();$z={...tu,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"SIMPLE"},themeCSS:void 0,themeVariables:Co.default.getThemeVariables(),sequence:{...tu.sequence,messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:o(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:o(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},gantt:{...tu.gantt,tickInterval:void 0,useWidth:void 0},c4:{...tu.c4,useWidth:void 0,personFont:o(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:o(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:o(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:o(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:o(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:o(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:o(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:o(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:o(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:o(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:o(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:o(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:o(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:o(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:o(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:o(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:o(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:o(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:o(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:o(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:o(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...tu.pie,useWidth:984},xyChart:{...tu.xyChart,useWidth:void 0},requirement:{...tu.requirement,useWidth:void 0},packet:{...tu.packet}},Vz=o((t,e="")=>Object.keys(t).reduce((r,n)=>Array.isArray(t[n])?r:typeof t[n]=="object"&&t[n]!==null?[...r,e+n,...Vz(t[n],"")]:[...r,e+n],[]),"keyify"),Uz=new Set(Vz($z,"")),mr=$z});var fp,_2e,r7=R(()=>{"use strict";sl();ut();fp=o(t=>{if(V.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>fp(e));return}for(let e of Object.keys(t)){if(V.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Uz.has(e)||t[e]==null){V.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){V.debug("sanitizing object",e),fp(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let n of r)e.includes(n)&&(V.debug("sanitizing css option",e),t[e]=_2e(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}V.debug("After sanitization",t)}},"sanitizeDirective"),_2e=o(t=>{let e=0,r=0;for(let n of t){if(e{"use strict";cp();ut();Kb();sl();r7();uh=Object.freeze(mr),fs=On({},uh),dp=[],K1=On({},uh),Qb=o((t,e)=>{let r=On({},t),n={};for(let i of e)Xz(i),n=On(n,i);if(r=On(r,n),n.theme&&n.theme in Co){let i=On({},Yz),a=On(i.themeVariables||{},n.themeVariables);r.theme&&r.theme in Co&&(r.themeVariables=Co[r.theme].getThemeVariables(a))}return K1=r,Kz(K1),K1},"updateCurrentConfig"),n7=o(t=>(fs=On({},uh),fs=On(fs,t),t.theme&&Co[t.theme]&&(fs.themeVariables=Co[t.theme].getThemeVariables(t.themeVariables)),Qb(fs,dp),fs),"setSiteConfig"),Wz=o(t=>{Yz=On({},t)},"saveConfigFromInitialize"),qz=o(t=>(fs=On(fs,t),Qb(fs,dp),fs),"updateSiteConfig"),i7=o(()=>On({},fs),"getSiteConfig"),Zb=o(t=>(Kz(t),On(K1,t),Or()),"setConfig"),Or=o(()=>On({},K1),"getConfig"),Xz=o(t=>{t&&(["secure",...fs.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(V.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&Xz(t[e])}))},"sanitize"),jz=o(t=>{fp(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),dp.push(t),Qb(fs,dp)},"addDirective"),Q1=o((t=fs)=>{dp=[],Qb(t,dp)},"reset"),L2e={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},Hz={},D2e=o(t=>{Hz[t]||(V.warn(L2e[t]),Hz[t]=!0)},"issueWarning"),Kz=o(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&D2e("LAZY_LOAD_DEPRECATED")},"checkConfig")});var o7=gi((a7,s7)=>{"use strict";(function(t,e){typeof a7=="object"&&typeof s7<"u"?s7.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self,t.DOMPurify=e())})(a7,function(){"use strict";let{entries:t,setPrototypeOf:e,isFrozen:r,getPrototypeOf:n,getOwnPropertyDescriptor:i}=Object,{freeze:a,seal:s,create:l}=Object,{apply:u,construct:h}=typeof Reflect<"u"&&Reflect;a||(a=o(function(Se){return Se},"freeze")),s||(s=o(function(Se){return Se},"seal")),u||(u=o(function(Se,Ue,Pe){return Se.apply(Ue,Pe)},"apply")),h||(h=o(function(Se,Ue){return new Se(...Ue)},"construct"));let f=E(Array.prototype.forEach),d=E(Array.prototype.pop),p=E(Array.prototype.push),m=E(String.prototype.toLowerCase),g=E(String.prototype.toString),y=E(String.prototype.match),v=E(String.prototype.replace),x=E(String.prototype.indexOf),b=E(String.prototype.trim),w=E(Object.prototype.hasOwnProperty),S=E(RegExp.prototype.test),T=_(TypeError);function E(Ie){return function(Se){for(var Ue=arguments.length,Pe=new Array(Ue>1?Ue-1:0),_e=1;_e2&&arguments[2]!==void 0?arguments[2]:m;e&&e(Ie,null);let Pe=Se.length;for(;Pe--;){let _e=Se[Pe];if(typeof _e=="string"){let me=Ue(_e);me!==_e&&(r(Se)||(Se[Pe]=me),_e=me)}Ie[_e]=!0}return Ie}o(A,"addToSet");function L(Ie){for(let Se=0;Se/gm),ie=s(/\${[\w\W]*}/gm),j=s(/^data-[\-\w.\u00B7-\uFFFF]/),J=s(/^aria-[\-\w]+$/),Z=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),H=s(/^(?:\w+script|data):/i),q=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),K=s(/^html$/i),se=s(/^[a-z][.\w]*(-[.\w]+)+$/i);var ce=Object.freeze({__proto__:null,MUSTACHE_EXPR:Q,ERB_EXPR:X,TMPLIT_EXPR:ie,DATA_ATTR:j,ARIA_ATTR:J,IS_ALLOWED_URI:Z,IS_SCRIPT_OR_DATA:H,ATTR_WHITESPACE:q,DOCTYPE_NAME:K,CUSTOM_ELEMENT:se});let ue={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},te=o(function(){return typeof window>"u"?null:window},"getGlobal"),De=o(function(Se,Ue){if(typeof Se!="object"||typeof Se.createPolicy!="function")return null;let Pe=null,_e="data-tt-policy-suffix";Ue&&Ue.hasAttribute(_e)&&(Pe=Ue.getAttribute(_e));let me="dompurify"+(Pe?"#"+Pe:"");try{return Se.createPolicy(me,{createHTML(W){return W},createScriptURL(W){return W}})}catch{return console.warn("TrustedTypes policy "+me+" could not be created."),null}},"_createTrustedTypesPolicy");function oe(){let Ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:te(),Se=o(Ft=>oe(Ft),"DOMPurify");if(Se.version="3.1.6",Se.removed=[],!Ie||!Ie.document||Ie.document.nodeType!==ue.document)return Se.isSupported=!1,Se;let{document:Ue}=Ie,Pe=Ue,_e=Pe.currentScript,{DocumentFragment:me,HTMLTemplateElement:W,Node:fe,Element:ge,NodeFilter:re,NamedNodeMap:he=Ie.NamedNodeMap||Ie.MozNamedAttrMap,HTMLFormElement:ne,DOMParser:ae,trustedTypes:we}=Ie,Te=ge.prototype,Ce=N(Te,"cloneNode"),Ae=N(Te,"remove"),Ge=N(Te,"nextSibling"),Me=N(Te,"childNodes"),ye=N(Te,"parentNode");if(typeof W=="function"){let Ft=Ue.createElement("template");Ft.content&&Ft.content.ownerDocument&&(Ue=Ft.content.ownerDocument)}let He,ze="",{implementation:Ze,createNodeIterator:gt,createDocumentFragment:yt,getElementsByTagName:tt}=Ue,{importNode:Ye}=Pe,Je={};Se.isSupported=typeof t=="function"&&typeof ye=="function"&&Ze&&Ze.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:Ve,ERB_EXPR:je,TMPLIT_EXPR:kt,DATA_ATTR:at,ARIA_ATTR:xt,IS_SCRIPT_OR_DATA:it,ATTR_WHITESPACE:dt,CUSTOM_ELEMENT:lt}=ce,{IS_ALLOWED_URI:It}=ce,mt=null,St=A({},[...k,...I,...C,...D,...F]),gr=null,xn=A({},[...B,...$,...z,...Y]),jt=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),rn=null,Er=null,Kn=!0,hn=!0,Qn=!1,on=!0,Rn=!1,Ha=!0,_a=!1,To=!1,qi=!1,ht=!1,At=!1,$t=!1,rt=!0,Ot=!1,pe="user-content-",ur=!0,be=!1,Ir={},Xc=null,M1=A({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),_b=null,I1=A({},["audio","video","img","source","image","track"]),O1=null,ci=A({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ko="http://www.w3.org/1998/Math/MathML",ih="http://www.w3.org/2000/svg",Us="http://www.w3.org/1999/xhtml",ah=Us,Lb=!1,P1=null,sa=A({},[ko,ih,Us],g),jc=null,Kc=["application/xhtml+xml","text/html"],us="text/html",_i=null,Wl=null,sh=Ue.createElement("form"),zf=o(function(Re){return Re instanceof RegExp||Re instanceof Function},"isRegexOrFunction"),Hs=o(function(){let Re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Wl&&Wl===Re)){if((!Re||typeof Re!="object")&&(Re={}),Re=M(Re),jc=Kc.indexOf(Re.PARSER_MEDIA_TYPE)===-1?us:Re.PARSER_MEDIA_TYPE,_i=jc==="application/xhtml+xml"?g:m,mt=w(Re,"ALLOWED_TAGS")?A({},Re.ALLOWED_TAGS,_i):St,gr=w(Re,"ALLOWED_ATTR")?A({},Re.ALLOWED_ATTR,_i):xn,P1=w(Re,"ALLOWED_NAMESPACES")?A({},Re.ALLOWED_NAMESPACES,g):sa,O1=w(Re,"ADD_URI_SAFE_ATTR")?A(M(ci),Re.ADD_URI_SAFE_ATTR,_i):ci,_b=w(Re,"ADD_DATA_URI_TAGS")?A(M(I1),Re.ADD_DATA_URI_TAGS,_i):I1,Xc=w(Re,"FORBID_CONTENTS")?A({},Re.FORBID_CONTENTS,_i):M1,rn=w(Re,"FORBID_TAGS")?A({},Re.FORBID_TAGS,_i):{},Er=w(Re,"FORBID_ATTR")?A({},Re.FORBID_ATTR,_i):{},Ir=w(Re,"USE_PROFILES")?Re.USE_PROFILES:!1,Kn=Re.ALLOW_ARIA_ATTR!==!1,hn=Re.ALLOW_DATA_ATTR!==!1,Qn=Re.ALLOW_UNKNOWN_PROTOCOLS||!1,on=Re.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Rn=Re.SAFE_FOR_TEMPLATES||!1,Ha=Re.SAFE_FOR_XML!==!1,_a=Re.WHOLE_DOCUMENT||!1,ht=Re.RETURN_DOM||!1,At=Re.RETURN_DOM_FRAGMENT||!1,$t=Re.RETURN_TRUSTED_TYPE||!1,qi=Re.FORCE_BODY||!1,rt=Re.SANITIZE_DOM!==!1,Ot=Re.SANITIZE_NAMED_PROPS||!1,ur=Re.KEEP_CONTENT!==!1,be=Re.IN_PLACE||!1,It=Re.ALLOWED_URI_REGEXP||Z,ah=Re.NAMESPACE||Us,jt=Re.CUSTOM_ELEMENT_HANDLING||{},Re.CUSTOM_ELEMENT_HANDLING&&zf(Re.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(jt.tagNameCheck=Re.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Re.CUSTOM_ELEMENT_HANDLING&&zf(Re.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(jt.attributeNameCheck=Re.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Re.CUSTOM_ELEMENT_HANDLING&&typeof Re.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(jt.allowCustomizedBuiltInElements=Re.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Rn&&(hn=!1),At&&(ht=!0),Ir&&(mt=A({},F),gr=[],Ir.html===!0&&(A(mt,k),A(gr,B)),Ir.svg===!0&&(A(mt,I),A(gr,$),A(gr,Y)),Ir.svgFilters===!0&&(A(mt,C),A(gr,$),A(gr,Y)),Ir.mathMl===!0&&(A(mt,D),A(gr,z),A(gr,Y))),Re.ADD_TAGS&&(mt===St&&(mt=M(mt)),A(mt,Re.ADD_TAGS,_i)),Re.ADD_ATTR&&(gr===xn&&(gr=M(gr)),A(gr,Re.ADD_ATTR,_i)),Re.ADD_URI_SAFE_ATTR&&A(O1,Re.ADD_URI_SAFE_ATTR,_i),Re.FORBID_CONTENTS&&(Xc===M1&&(Xc=M(Xc)),A(Xc,Re.FORBID_CONTENTS,_i)),ur&&(mt["#text"]=!0),_a&&A(mt,["html","head","body"]),mt.table&&(A(mt,["tbody"]),delete rn.tbody),Re.TRUSTED_TYPES_POLICY){if(typeof Re.TRUSTED_TYPES_POLICY.createHTML!="function")throw T('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Re.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw T('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');He=Re.TRUSTED_TYPES_POLICY,ze=He.createHTML("")}else He===void 0&&(He=De(we,_e)),He!==null&&typeof ze=="string"&&(ze=He.createHTML(""));a&&a(Re),Wl=Re}},"_parseConfig"),B1=A({},["mi","mo","mn","ms","mtext"]),Gf=A({},["foreignobject","annotation-xml"]),F1=A({},["title","style","font","a","script"]),La=A({},[...I,...C,...O]),vF=A({},[...D,...P]),Ive=o(function(Re){let st=ye(Re);(!st||!st.tagName)&&(st={namespaceURI:ah,tagName:"template"});let Rt=m(Re.tagName),bn=m(st.tagName);return P1[Re.namespaceURI]?Re.namespaceURI===ih?st.namespaceURI===Us?Rt==="svg":st.namespaceURI===ko?Rt==="svg"&&(bn==="annotation-xml"||B1[bn]):!!La[Rt]:Re.namespaceURI===ko?st.namespaceURI===Us?Rt==="math":st.namespaceURI===ih?Rt==="math"&&Gf[bn]:!!vF[Rt]:Re.namespaceURI===Us?st.namespaceURI===ih&&!Gf[bn]||st.namespaceURI===ko&&!B1[bn]?!1:!vF[Rt]&&(F1[Rt]||!La[Rt]):!!(jc==="application/xhtml+xml"&&P1[Re.namespaceURI]):!1},"_checkValidNamespace"),ql=o(function(Re){p(Se.removed,{element:Re});try{ye(Re).removeChild(Re)}catch{Ae(Re)}},"_forceRemove"),Db=o(function(Re,st){try{p(Se.removed,{attribute:st.getAttributeNode(Re),from:st})}catch{p(Se.removed,{attribute:null,from:st})}if(st.removeAttribute(Re),Re==="is"&&!gr[Re])if(ht||At)try{ql(st)}catch{}else try{st.setAttribute(Re,"")}catch{}},"_removeAttribute"),xF=o(function(Re){let st=null,Rt=null;if(qi)Re=""+Re;else{let oa=y(Re,/^[\r\n\t ]+/);Rt=oa&&oa[0]}jc==="application/xhtml+xml"&&ah===Us&&(Re=''+Re+"");let bn=He?He.createHTML(Re):Re;if(ah===Us)try{st=new ae().parseFromString(bn,jc)}catch{}if(!st||!st.documentElement){st=Ze.createDocument(ah,"template",null);try{st.documentElement.innerHTML=Lb?ze:bn}catch{}}let Da=st.body||st.documentElement;return Re&&Rt&&Da.insertBefore(Ue.createTextNode(Rt),Da.childNodes[0]||null),ah===Us?tt.call(st,_a?"html":"body")[0]:_a?st.documentElement:Da},"_initDocument"),bF=o(function(Re){return gt.call(Re.ownerDocument||Re,Re,re.SHOW_ELEMENT|re.SHOW_COMMENT|re.SHOW_TEXT|re.SHOW_PROCESSING_INSTRUCTION|re.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),wF=o(function(Re){return Re instanceof ne&&(typeof Re.nodeName!="string"||typeof Re.textContent!="string"||typeof Re.removeChild!="function"||!(Re.attributes instanceof he)||typeof Re.removeAttribute!="function"||typeof Re.setAttribute!="function"||typeof Re.namespaceURI!="string"||typeof Re.insertBefore!="function"||typeof Re.hasChildNodes!="function")},"_isClobbered"),TF=o(function(Re){return typeof fe=="function"&&Re instanceof fe},"_isNode"),Qc=o(function(Re,st,Rt){Je[Re]&&f(Je[Re],bn=>{bn.call(Se,st,Rt,Wl)})},"_executeHook"),kF=o(function(Re){let st=null;if(Qc("beforeSanitizeElements",Re,null),wF(Re))return ql(Re),!0;let Rt=_i(Re.nodeName);if(Qc("uponSanitizeElement",Re,{tagName:Rt,allowedTags:mt}),Re.hasChildNodes()&&!TF(Re.firstElementChild)&&S(/<[/\w]/g,Re.innerHTML)&&S(/<[/\w]/g,Re.textContent)||Re.nodeType===ue.progressingInstruction||Ha&&Re.nodeType===ue.comment&&S(/<[/\w]/g,Re.data))return ql(Re),!0;if(!mt[Rt]||rn[Rt]){if(!rn[Rt]&&CF(Rt)&&(jt.tagNameCheck instanceof RegExp&&S(jt.tagNameCheck,Rt)||jt.tagNameCheck instanceof Function&&jt.tagNameCheck(Rt)))return!1;if(ur&&!Xc[Rt]){let bn=ye(Re)||Re.parentNode,Da=Me(Re)||Re.childNodes;if(Da&&bn){let oa=Da.length;for(let hs=oa-1;hs>=0;--hs){let Xl=Ce(Da[hs],!0);Xl.__removalCount=(Re.__removalCount||0)+1,bn.insertBefore(Xl,Ge(Re))}}}return ql(Re),!0}return Re instanceof ge&&!Ive(Re)||(Rt==="noscript"||Rt==="noembed"||Rt==="noframes")&&S(/<\/no(script|embed|frames)/i,Re.innerHTML)?(ql(Re),!0):(Rn&&Re.nodeType===ue.text&&(st=Re.textContent,f([Ve,je,kt],bn=>{st=v(st,bn," ")}),Re.textContent!==st&&(p(Se.removed,{element:Re.cloneNode()}),Re.textContent=st)),Qc("afterSanitizeElements",Re,null),!1)},"_sanitizeElements"),EF=o(function(Re,st,Rt){if(rt&&(st==="id"||st==="name")&&(Rt in Ue||Rt in sh))return!1;if(!(hn&&!Er[st]&&S(at,st))){if(!(Kn&&S(xt,st))){if(!gr[st]||Er[st]){if(!(CF(Re)&&(jt.tagNameCheck instanceof RegExp&&S(jt.tagNameCheck,Re)||jt.tagNameCheck instanceof Function&&jt.tagNameCheck(Re))&&(jt.attributeNameCheck instanceof RegExp&&S(jt.attributeNameCheck,st)||jt.attributeNameCheck instanceof Function&&jt.attributeNameCheck(st))||st==="is"&&jt.allowCustomizedBuiltInElements&&(jt.tagNameCheck instanceof RegExp&&S(jt.tagNameCheck,Rt)||jt.tagNameCheck instanceof Function&&jt.tagNameCheck(Rt))))return!1}else if(!O1[st]){if(!S(It,v(Rt,dt,""))){if(!((st==="src"||st==="xlink:href"||st==="href")&&Re!=="script"&&x(Rt,"data:")===0&&_b[Re])){if(!(Qn&&!S(it,v(Rt,dt,"")))){if(Rt)return!1}}}}}}return!0},"_isValidAttribute"),CF=o(function(Re){return Re!=="annotation-xml"&&y(Re,lt)},"_isBasicCustomElement"),SF=o(function(Re){Qc("beforeSanitizeAttributes",Re,null);let{attributes:st}=Re;if(!st)return;let Rt={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:gr},bn=st.length;for(;bn--;){let Da=st[bn],{name:oa,namespaceURI:hs,value:Xl}=Da,z1=_i(oa),Ya=oa==="value"?Xl:b(Xl);if(Rt.attrName=z1,Rt.attrValue=Ya,Rt.keepAttr=!0,Rt.forceKeepAttr=void 0,Qc("uponSanitizeAttribute",Re,Rt),Ya=Rt.attrValue,Ha&&S(/((--!?|])>)|<\/(style|title)/i,Ya)){Db(oa,Re);continue}if(Rt.forceKeepAttr||(Db(oa,Re),!Rt.keepAttr))continue;if(!on&&S(/\/>/i,Ya)){Db(oa,Re);continue}Rn&&f([Ve,je,kt],_F=>{Ya=v(Ya,_F," ")});let AF=_i(Re.nodeName);if(EF(AF,z1,Ya)){if(Ot&&(z1==="id"||z1==="name")&&(Db(oa,Re),Ya=pe+Ya),He&&typeof we=="object"&&typeof we.getAttributeType=="function"&&!hs)switch(we.getAttributeType(AF,z1)){case"TrustedHTML":{Ya=He.createHTML(Ya);break}case"TrustedScriptURL":{Ya=He.createScriptURL(Ya);break}}try{hs?Re.setAttributeNS(hs,oa,Ya):Re.setAttribute(oa,Ya),wF(Re)?ql(Re):d(Se.removed)}catch{}}}Qc("afterSanitizeAttributes",Re,null)},"_sanitizeAttributes"),Ove=o(function Ft(Re){let st=null,Rt=bF(Re);for(Qc("beforeSanitizeShadowDOM",Re,null);st=Rt.nextNode();)Qc("uponSanitizeShadowNode",st,null),!kF(st)&&(st.content instanceof me&&Ft(st.content),SF(st));Qc("afterSanitizeShadowDOM",Re,null)},"_sanitizeShadowDOM");return Se.sanitize=function(Ft){let Re=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},st=null,Rt=null,bn=null,Da=null;if(Lb=!Ft,Lb&&(Ft=""),typeof Ft!="string"&&!TF(Ft))if(typeof Ft.toString=="function"){if(Ft=Ft.toString(),typeof Ft!="string")throw T("dirty is not a string, aborting")}else throw T("toString is not a function");if(!Se.isSupported)return Ft;if(To||Hs(Re),Se.removed=[],typeof Ft=="string"&&(be=!1),be){if(Ft.nodeName){let Xl=_i(Ft.nodeName);if(!mt[Xl]||rn[Xl])throw T("root node is forbidden and cannot be sanitized in-place")}}else if(Ft instanceof fe)st=xF(""),Rt=st.ownerDocument.importNode(Ft,!0),Rt.nodeType===ue.element&&Rt.nodeName==="BODY"||Rt.nodeName==="HTML"?st=Rt:st.appendChild(Rt);else{if(!ht&&!Rn&&!_a&&Ft.indexOf("<")===-1)return He&&$t?He.createHTML(Ft):Ft;if(st=xF(Ft),!st)return ht?null:$t?ze:""}st&&qi&&ql(st.firstChild);let oa=bF(be?Ft:st);for(;bn=oa.nextNode();)kF(bn)||(bn.content instanceof me&&Ove(bn.content),SF(bn));if(be)return Ft;if(ht){if(At)for(Da=yt.call(st.ownerDocument);st.firstChild;)Da.appendChild(st.firstChild);else Da=st;return(gr.shadowroot||gr.shadowrootmode)&&(Da=Ye.call(Pe,Da,!0)),Da}let hs=_a?st.outerHTML:st.innerHTML;return _a&&mt["!doctype"]&&st.ownerDocument&&st.ownerDocument.doctype&&st.ownerDocument.doctype.name&&S(K,st.ownerDocument.doctype.name)&&(hs=" +`+hs),Rn&&f([Ve,je,kt],Xl=>{hs=v(hs,Xl," ")}),He&&$t?He.createHTML(hs):hs},Se.setConfig=function(){let Ft=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Hs(Ft),To=!0},Se.clearConfig=function(){Wl=null,To=!1},Se.isValidAttribute=function(Ft,Re,st){Wl||Hs({});let Rt=_i(Ft),bn=_i(Re);return EF(Rt,bn,st)},Se.addHook=function(Ft,Re){typeof Re=="function"&&(Je[Ft]=Je[Ft]||[],p(Je[Ft],Re))},Se.removeHook=function(Ft){if(Je[Ft])return d(Je[Ft])},Se.removeHooks=function(Ft){Je[Ft]&&(Je[Ft]=[])},Se.removeAllHooks=function(){Je={}},Se}o(oe,"createDOMPurify");var ke=oe();return ke})});var k$={};hr(k$,{default:()=>Ebe});function B2e(t){return String(t).replace(P2e,e=>O2e[e])}function $2e(t){if(t.default)return t.default;var e=t.type,r=Array.isArray(e)?e[0]:e;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function X2e(t){for(var e=0;e=i[0]&&t<=i[1])return r.name}return null}function LG(t){for(var e=0;e=h4[e]&&t<=h4[e+1])return!0;return!1}function axe(t,e){Zl[t]=e}function M7(t,e,r){if(!Zl[e])throw new Error("Font metrics not found for font: "+e+".");var n=t.charCodeAt(0),i=Zl[e][n];if(!i&&t[0]in Zz&&(n=Zz[t[0]].charCodeAt(0),i=Zl[e][n]),!i&&r==="text"&&LG(n)&&(i=Zl[e][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function sxe(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!l7[e]){var r=l7[e]={cssEmPerMu:Jb.quad[e]/18};for(var n in Jb)Jb.hasOwnProperty(n)&&(r[n]=Jb[n][e])}return l7[e]}function tG(t){if(t instanceof ms)return t;throw new Error("Expected symbolNode but got "+String(t)+".")}function uxe(t){if(t instanceof jf)return t;throw new Error("Expected span but got "+String(t)+".")}function G(t,e,r,n,i,a){wn[t][i]={font:e,group:r,replace:n},a&&n&&(wn[t][n]=wn[t][i])}function vt(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},u=0;u0&&(a.push(s4(s,e)),s=[]),a.push(n[l]));s.length>0&&a.push(s4(s,e));var h;r?(h=s4(Ri(r,e,!0)),h.classes=["tag"],a.push(h)):i&&a.push(i);var f=su(["katex-html"],a);if(f.setAttribute("aria-hidden","true"),h){var d=h.children[0];d.style.height=ct(f.height+f.depth),f.depth&&(d.style.verticalAlign=ct(-f.depth))}return f}function $G(t){return new Xf(t)}function sG(t,e,r,n,i){var a=gs(t,r),s;a.length===1&&a[0]instanceof ps&&Vt.contains(["mrow","mtable"],a[0].type)?s=a[0]:s=new et.MathNode("mrow",a);var l=new et.MathNode("annotation",[new et.TextNode(e)]);l.setAttribute("encoding","application/x-tex");var u=new et.MathNode("semantics",[s,l]),h=new et.MathNode("math",[u]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&h.setAttribute("display","block");var f=i?"katex":"katex-mathml";return Be.makeSpan([f],[h])}function ir(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function B7(t){var e=T4(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function T4(t){return t&&(t.type==="atom"||fxe.hasOwnProperty(t.type))?t:null}function YG(t,e){var r=Ri(t.body,e,!0);return Vxe([t.mclass],r,e)}function WG(t,e){var r,n=gs(t.body,e);return t.mclass==="minner"?r=new et.MathNode("mpadded",n):t.mclass==="mord"?t.isCharacterBox?(r=n[0],r.type="mi"):r=new et.MathNode("mi",n):(t.isCharacterBox?(r=n[0],r.type="mo"):r=new et.MathNode("mo",n),t.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):t.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):t.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}function Yxe(t,e,r){var n=Uxe[t];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[e[0]],[]),a={type:"atom",text:n,mode:"math",family:"rel"},s=r.callFunction("\\Big",[a],[]),l=r.callFunction("\\\\cdright",[e[1]],[]),u={type:"ordgroup",mode:"math",body:[i,s,l]};return r.callFunction("\\\\cdparent",[u],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function Wxe(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var r=t.fetch().text;if(r==="&"||r==="\\\\")t.consume();else if(r==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new nt("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var n=[],i=[n],a=0;a-1))if("<>AV".indexOf(h)>-1)for(var d=0;d<2;d++){for(var p=!0,m=u+1;mAV=|." after @',s[u]);var g=Yxe(h,f,t),y={type:"styling",body:[g],mode:"math",style:"display"};n.push(y),l=oG()}a%2===0?n.push(l):n.shift(),n=[],i.push(n)}t.gullet.endGroup(),t.gullet.endGroup();var v=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}function E4(t,e){var r=T4(t);if(r&&Vt.contains(abe,r.text))return r;throw r?new nt("Invalid delimiter '"+r.text+"' after '"+e.funcName+"'",t):new nt("Invalid delimiter type '"+t.type+"'",t)}function uG(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function ec(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},u=0;u1||!f)&&y.pop(),x.length{"use strict";Xs=class t{static{o(this,"SourceLocation")}constructor(e,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=r,this.end=n}static range(e,r){return r?!e||!e.loc||!r.loc||e.loc.lexer!==r.loc.lexer?null:new t(e.loc.lexer,e.loc.start,r.loc.end):e&&e.loc}},Ao=class t{static{o(this,"Token")}constructor(e,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=r}range(e,r){return new t(r,Xs.range(this,e))}},nt=class t{static{o(this,"ParseError")}constructor(e,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+e,i,a,s=r&&r.loc;if(s&&s.start<=s.end){var l=s.lexer.input;i=s.start,a=s.end,i===l.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var u=l.slice(i,a).replace(/[^]/g,"$&\u0332"),h;i>15?h="\u2026"+l.slice(i-15,i):h=l.slice(0,i);var f;a+15":">","<":"<",'"':""","'":"'"},P2e=/[&><"']/g;o(B2e,"escape");_G=o(function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},"getBaseElem"),F2e=o(function(e){var r=_G(e);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},"isCharacterBox"),z2e=o(function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},"assert"),G2e=o(function(e){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},"protocolFromUrl"),Vt={contains:R2e,deflt:N2e,escape:B2e,hyphenate:I2e,getBaseElem:_G,isCharacterBox:F2e,protocolFromUrl:G2e},u4={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:o(t=>"#"+t,"cliProcessor")},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:o((t,e)=>(e.push(t),e),"cliProcessor")},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:o(t=>Math.max(0,t),"processor"),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:o(t=>Math.max(0,t),"processor"),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:o(t=>Math.max(0,t),"processor"),cli:"-e, --max-expand ",cliProcessor:o(t=>t==="Infinity"?1/0:parseInt(t),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}};o($2e,"getDefaultValue");ry=class{static{o(this,"Settings")}constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var r in u4)if(u4.hasOwnProperty(r)){var n=u4[r];this[r]=e[r]!==void 0?n.processor?n.processor(e[r]):e[r]:$2e(n)}}reportNonstrict(e,r,n){var i=this.strict;if(typeof i=="function"&&(i=i(e,r,n)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new nt("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+e+"]"),n);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]"))}}useStrictBehavior(e,r,n){var i=this.strict;if(typeof i=="function")try{i=i(e,r,n)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var r=Vt.protocolFromUrl(e.url);if(r==null)return!1;e.protocol=r}var n=typeof this.trust=="function"?this.trust(e):this.trust;return!!n}},Kl=class{static{o(this,"Style")}constructor(e,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=r,this.cramped=n}sup(){return Ql[V2e[this.id]]}sub(){return Ql[U2e[this.id]]}fracNum(){return Ql[H2e[this.id]]}fracDen(){return Ql[Y2e[this.id]]}cramp(){return Ql[W2e[this.id]]}text(){return Ql[q2e[this.id]]}isTight(){return this.size>=2}},N7=0,f4=1,gp=2,iu=3,ny=4,So=5,yp=6,qa=7,Ql=[new Kl(N7,0,!1),new Kl(f4,0,!0),new Kl(gp,1,!1),new Kl(iu,1,!0),new Kl(ny,2,!1),new Kl(So,2,!0),new Kl(yp,3,!1),new Kl(qa,3,!0)],V2e=[ny,So,ny,So,yp,qa,yp,qa],U2e=[So,So,So,So,qa,qa,qa,qa],H2e=[gp,iu,ny,So,yp,qa,yp,qa],Y2e=[iu,iu,So,So,qa,qa,qa,qa],W2e=[f4,f4,iu,iu,So,So,qa,qa],q2e=[N7,f4,gp,iu,gp,iu,gp,iu],Ht={DISPLAY:Ql[N7],TEXT:Ql[gp],SCRIPT:Ql[ny],SCRIPTSCRIPT:Ql[yp]},b7=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];o(X2e,"scriptFromCodepoint");h4=[];b7.forEach(t=>t.blocks.forEach(e=>h4.push(...e)));o(LG,"supportedCodepoint");mp=80,j2e=o(function(e,r){return"M95,"+(622+e+r)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtMain"),K2e=o(function(e,r){return"M263,"+(601+e+r)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize1"),Q2e=o(function(e,r){return"M983 "+(10+e+r)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize2"),Z2e=o(function(e,r){return"M424,"+(2398+e+r)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+r+` +h400000v`+(40+e)+"h-400000z"},"sqrtSize3"),J2e=o(function(e,r){return"M473,"+(2713+e+r)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+r+"h400000v"+(40+e)+"H1017.7z"},"sqrtSize4"),exe=o(function(e){var r=e/2;return"M400000 "+e+" H0 L"+r+" 0 l65 45 L145 "+(e-80)+" H400000z"},"phasePath"),txe=o(function(e,r,n){var i=n-54-r-e;return"M702 "+(e+r)+"H400000"+(40+e)+` +H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+r+"H400000v"+(40+e)+"H742z"},"sqrtTall"),rxe=o(function(e,r,n){r=1e3*r;var i="";switch(e){case"sqrtMain":i=j2e(r,mp);break;case"sqrtSize1":i=K2e(r,mp);break;case"sqrtSize2":i=Q2e(r,mp);break;case"sqrtSize3":i=Z2e(r,mp);break;case"sqrtSize4":i=J2e(r,mp);break;case"sqrtTall":i=txe(r,mp,n)}return i},"sqrtPath"),nxe=o(function(e,r){switch(e){case"\u239C":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"\u2223":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"\u2225":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"\u239F":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"\u23A2":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"\u23A5":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"\u23AA":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"\u23D0":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"\u2016":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},"innerPath"),Qz={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},ixe=o(function(e,r){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z +M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z +M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z +M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},"tallDelim"),Xf=class{static{o(this,"DocumentFragment")}constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return Vt.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),r=0;rr.toText(),"toText");return this.children.map(e).join("")}},Zl={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},Jb={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Zz={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};o(axe,"setFontMetrics");o(M7,"getCharacterMetrics");l7={};o(sxe,"getGlobalMetrics");oxe=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Jz=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],eG=o(function(e,r){return r.size<2?e:oxe[e-1][r.size-1]},"sizeAtStyle"),d4=class t{static{o(this,"Options")}constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||t.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=Jz[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return new t(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:eG(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Jz[e-1]})}havingBaseStyle(e){e=e||this.style.text();var r=eG(t.BASESIZE,e);return this.size===r&&this.textSize===t.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==t.BASESIZE?["sizing","reset-size"+this.size,"size"+t.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=sxe(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};d4.BASESIZE=6;w7={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},lxe={ex:!0,em:!0,mu:!0},DG=o(function(e){return typeof e!="string"&&(e=e.unit),e in w7||e in lxe||e==="ex"},"validUnit"),Hn=o(function(e,r){var n;if(e.unit in w7)n=w7[e.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(e.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var i;if(r.style.isTight()?i=r.havingStyle(r.style.text()):i=r,e.unit==="ex")n=i.fontMetrics().xHeight;else if(e.unit==="em")n=i.fontMetrics().quad;else throw new nt("Invalid unit: '"+e.unit+"'");i!==r&&(n*=i.sizeMultiplier/r.sizeMultiplier)}return Math.min(e.number*n,r.maxSize)},"calculateSize"),ct=o(function(e){return+e.toFixed(4)+"em"},"makeEm"),dh=o(function(e){return e.filter(r=>r).join(" ")},"createClass"),RG=o(function(e,r,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}},"initNode"),NG=o(function(e){var r=document.createElement(e);r.className=dh(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&r.setAttribute(i,this.attributes[i]);for(var a=0;a",r},"toMarkup"),jf=class{static{o(this,"Span")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,RG.call(this,e,n,i),this.children=r||[]}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return Vt.contains(this.classes,e)}toNode(){return NG.call(this,"span")}toMarkup(){return MG.call(this,"span")}},iy=class{static{o(this,"Anchor")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,RG.call(this,r,i),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return Vt.contains(this.classes,e)}toNode(){return NG.call(this,"a")}toMarkup(){return MG.call(this,"a")}},T7=class{static{o(this,"Img")}constructor(e,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return Vt.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);return e}toMarkup(){var e=''+Vt.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=ct(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=dh(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(e),r):e}toMarkup(){var e=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=Vt.hyphenate(i)+":"+this.style[i]+";");n&&(e=!0,r+=' style="'+Vt.escape(n)+'"');var a=Vt.escape(this.text);return e?(r+=">",r+=a,r+="",r):a}},ll=class{static{o(this,"SvgNode")}constructor(e,r){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=r||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var i=0;i':''}},ay=class{static{o(this,"LineNode")}constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var e="","\\gt",!0);G(U,ee,xe,"\u2208","\\in",!0);G(U,ee,xe,"\uE020","\\@not");G(U,ee,xe,"\u2282","\\subset",!0);G(U,ee,xe,"\u2283","\\supset",!0);G(U,ee,xe,"\u2286","\\subseteq",!0);G(U,ee,xe,"\u2287","\\supseteq",!0);G(U,ve,xe,"\u2288","\\nsubseteq",!0);G(U,ve,xe,"\u2289","\\nsupseteq",!0);G(U,ee,xe,"\u22A8","\\models");G(U,ee,xe,"\u2190","\\leftarrow",!0);G(U,ee,xe,"\u2264","\\le");G(U,ee,xe,"\u2264","\\leq",!0);G(U,ee,xe,"<","\\lt",!0);G(U,ee,xe,"\u2192","\\rightarrow",!0);G(U,ee,xe,"\u2192","\\to");G(U,ve,xe,"\u2271","\\ngeq",!0);G(U,ve,xe,"\u2270","\\nleq",!0);G(U,ee,lu,"\xA0","\\ ");G(U,ee,lu,"\xA0","\\space");G(U,ee,lu,"\xA0","\\nobreakspace");G(Qe,ee,lu,"\xA0","\\ ");G(Qe,ee,lu,"\xA0"," ");G(Qe,ee,lu,"\xA0","\\space");G(Qe,ee,lu,"\xA0","\\nobreakspace");G(U,ee,lu,null,"\\nobreak");G(U,ee,lu,null,"\\allowbreak");G(U,ee,b4,",",",");G(U,ee,b4,";",";");G(U,ve,bt,"\u22BC","\\barwedge",!0);G(U,ve,bt,"\u22BB","\\veebar",!0);G(U,ee,bt,"\u2299","\\odot",!0);G(U,ee,bt,"\u2295","\\oplus",!0);G(U,ee,bt,"\u2297","\\otimes",!0);G(U,ee,Le,"\u2202","\\partial",!0);G(U,ee,bt,"\u2298","\\oslash",!0);G(U,ve,bt,"\u229A","\\circledcirc",!0);G(U,ve,bt,"\u22A1","\\boxdot",!0);G(U,ee,bt,"\u25B3","\\bigtriangleup");G(U,ee,bt,"\u25BD","\\bigtriangledown");G(U,ee,bt,"\u2020","\\dagger");G(U,ee,bt,"\u22C4","\\diamond");G(U,ee,bt,"\u22C6","\\star");G(U,ee,bt,"\u25C3","\\triangleleft");G(U,ee,bt,"\u25B9","\\triangleright");G(U,ee,js,"{","\\{");G(Qe,ee,Le,"{","\\{");G(Qe,ee,Le,"{","\\textbraceleft");G(U,ee,Xa,"}","\\}");G(Qe,ee,Le,"}","\\}");G(Qe,ee,Le,"}","\\textbraceright");G(U,ee,js,"{","\\lbrace");G(U,ee,Xa,"}","\\rbrace");G(U,ee,js,"[","\\lbrack",!0);G(Qe,ee,Le,"[","\\lbrack",!0);G(U,ee,Xa,"]","\\rbrack",!0);G(Qe,ee,Le,"]","\\rbrack",!0);G(U,ee,js,"(","\\lparen",!0);G(U,ee,Xa,")","\\rparen",!0);G(Qe,ee,Le,"<","\\textless",!0);G(Qe,ee,Le,">","\\textgreater",!0);G(U,ee,js,"\u230A","\\lfloor",!0);G(U,ee,Xa,"\u230B","\\rfloor",!0);G(U,ee,js,"\u2308","\\lceil",!0);G(U,ee,Xa,"\u2309","\\rceil",!0);G(U,ee,Le,"\\","\\backslash");G(U,ee,Le,"\u2223","|");G(U,ee,Le,"\u2223","\\vert");G(Qe,ee,Le,"|","\\textbar",!0);G(U,ee,Le,"\u2225","\\|");G(U,ee,Le,"\u2225","\\Vert");G(Qe,ee,Le,"\u2225","\\textbardbl");G(Qe,ee,Le,"~","\\textasciitilde");G(Qe,ee,Le,"\\","\\textbackslash");G(Qe,ee,Le,"^","\\textasciicircum");G(U,ee,xe,"\u2191","\\uparrow",!0);G(U,ee,xe,"\u21D1","\\Uparrow",!0);G(U,ee,xe,"\u2193","\\downarrow",!0);G(U,ee,xe,"\u21D3","\\Downarrow",!0);G(U,ee,xe,"\u2195","\\updownarrow",!0);G(U,ee,xe,"\u21D5","\\Updownarrow",!0);G(U,ee,xi,"\u2210","\\coprod");G(U,ee,xi,"\u22C1","\\bigvee");G(U,ee,xi,"\u22C0","\\bigwedge");G(U,ee,xi,"\u2A04","\\biguplus");G(U,ee,xi,"\u22C2","\\bigcap");G(U,ee,xi,"\u22C3","\\bigcup");G(U,ee,xi,"\u222B","\\int");G(U,ee,xi,"\u222B","\\intop");G(U,ee,xi,"\u222C","\\iint");G(U,ee,xi,"\u222D","\\iiint");G(U,ee,xi,"\u220F","\\prod");G(U,ee,xi,"\u2211","\\sum");G(U,ee,xi,"\u2A02","\\bigotimes");G(U,ee,xi,"\u2A01","\\bigoplus");G(U,ee,xi,"\u2A00","\\bigodot");G(U,ee,xi,"\u222E","\\oint");G(U,ee,xi,"\u222F","\\oiint");G(U,ee,xi,"\u2230","\\oiiint");G(U,ee,xi,"\u2A06","\\bigsqcup");G(U,ee,xi,"\u222B","\\smallint");G(Qe,ee,vp,"\u2026","\\textellipsis");G(U,ee,vp,"\u2026","\\mathellipsis");G(Qe,ee,vp,"\u2026","\\ldots",!0);G(U,ee,vp,"\u2026","\\ldots",!0);G(U,ee,vp,"\u22EF","\\@cdots",!0);G(U,ee,vp,"\u22F1","\\ddots",!0);G(U,ee,Le,"\u22EE","\\varvdots");G(U,ee,Pn,"\u02CA","\\acute");G(U,ee,Pn,"\u02CB","\\grave");G(U,ee,Pn,"\xA8","\\ddot");G(U,ee,Pn,"~","\\tilde");G(U,ee,Pn,"\u02C9","\\bar");G(U,ee,Pn,"\u02D8","\\breve");G(U,ee,Pn,"\u02C7","\\check");G(U,ee,Pn,"^","\\hat");G(U,ee,Pn,"\u20D7","\\vec");G(U,ee,Pn,"\u02D9","\\dot");G(U,ee,Pn,"\u02DA","\\mathring");G(U,ee,Ut,"\uE131","\\@imath");G(U,ee,Ut,"\uE237","\\@jmath");G(U,ee,Le,"\u0131","\u0131");G(U,ee,Le,"\u0237","\u0237");G(Qe,ee,Le,"\u0131","\\i",!0);G(Qe,ee,Le,"\u0237","\\j",!0);G(Qe,ee,Le,"\xDF","\\ss",!0);G(Qe,ee,Le,"\xE6","\\ae",!0);G(Qe,ee,Le,"\u0153","\\oe",!0);G(Qe,ee,Le,"\xF8","\\o",!0);G(Qe,ee,Le,"\xC6","\\AE",!0);G(Qe,ee,Le,"\u0152","\\OE",!0);G(Qe,ee,Le,"\xD8","\\O",!0);G(Qe,ee,Pn,"\u02CA","\\'");G(Qe,ee,Pn,"\u02CB","\\`");G(Qe,ee,Pn,"\u02C6","\\^");G(Qe,ee,Pn,"\u02DC","\\~");G(Qe,ee,Pn,"\u02C9","\\=");G(Qe,ee,Pn,"\u02D8","\\u");G(Qe,ee,Pn,"\u02D9","\\.");G(Qe,ee,Pn,"\xB8","\\c");G(Qe,ee,Pn,"\u02DA","\\r");G(Qe,ee,Pn,"\u02C7","\\v");G(Qe,ee,Pn,"\xA8",'\\"');G(Qe,ee,Pn,"\u02DD","\\H");G(Qe,ee,Pn,"\u25EF","\\textcircled");IG={"--":!0,"---":!0,"``":!0,"''":!0};G(Qe,ee,Le,"\u2013","--",!0);G(Qe,ee,Le,"\u2013","\\textendash");G(Qe,ee,Le,"\u2014","---",!0);G(Qe,ee,Le,"\u2014","\\textemdash");G(Qe,ee,Le,"\u2018","`",!0);G(Qe,ee,Le,"\u2018","\\textquoteleft");G(Qe,ee,Le,"\u2019","'",!0);G(Qe,ee,Le,"\u2019","\\textquoteright");G(Qe,ee,Le,"\u201C","``",!0);G(Qe,ee,Le,"\u201C","\\textquotedblleft");G(Qe,ee,Le,"\u201D","''",!0);G(Qe,ee,Le,"\u201D","\\textquotedblright");G(U,ee,Le,"\xB0","\\degree",!0);G(Qe,ee,Le,"\xB0","\\degree");G(Qe,ee,Le,"\xB0","\\textdegree",!0);G(U,ee,Le,"\xA3","\\pounds");G(U,ee,Le,"\xA3","\\mathsterling",!0);G(Qe,ee,Le,"\xA3","\\pounds");G(Qe,ee,Le,"\xA3","\\textsterling",!0);G(U,ve,Le,"\u2720","\\maltese");G(Qe,ve,Le,"\u2720","\\maltese");rG='0123456789/@."';for(e4=0;e40)return ol(a,h,i,r,s.concat(f));if(u){var d,p;if(u==="boldsymbol"){var m=mxe(a,i,r,s,n);d=m.fontName,p=[m.fontClass]}else l?(d=BG[u].fontName,p=[u]):(d=a4(u,r.fontWeight,r.fontShape),p=[u,r.fontWeight,r.fontShape]);if(w4(a,d,i).metrics)return ol(a,d,i,r,s.concat(p));if(IG.hasOwnProperty(a)&&d.slice(0,10)==="Typewriter"){for(var g=[],y=0;y{if(dh(t.classes)!==dh(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var r=t.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},"canCombine"),vxe=o(t=>{for(var e=0;er&&(r=s.height),s.depth>n&&(n=s.depth),s.maxFontSize>i&&(i=s.maxFontSize)}e.height=r,e.depth=n,e.maxFontSize=i},"sizeElementFromChildren"),ds=o(function(e,r,n,i){var a=new jf(e,r,n,i);return I7(a),a},"makeSpan"),OG=o((t,e,r,n)=>new jf(t,e,r,n),"makeSvgSpan"),xxe=o(function(e,r,n){var i=ds([e],[],r);return i.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),i.style.borderBottomWidth=ct(i.height),i.maxFontSize=1,i},"makeLineSpan"),bxe=o(function(e,r,n,i){var a=new iy(e,r,n,i);return I7(a),a},"makeAnchor"),PG=o(function(e){var r=new Xf(e);return I7(r),r},"makeFragment"),wxe=o(function(e,r){return e instanceof Xf?ds([],[e],r):e},"wrapFragment"),Txe=o(function(e){if(e.positionType==="individualShift"){for(var r=e.children,n=[r[0]],i=-r[0].shift-r[0].elem.depth,a=i,s=1;s{var r=ds(["mspace"],[],e),n=Hn(t,e);return r.style.marginRight=ct(n),r},"makeGlue"),a4=o(function(e,r,n){var i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}var a;return r==="textbf"&&n==="textit"?a="BoldItalic":r==="textbf"?a="Bold":r==="textit"?a="Italic":a="Regular",i+"-"+a},"retrieveTextFontName"),BG={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},FG={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Cxe=o(function(e,r){var[n,i,a]=FG[e],s=new Jl(n),l=new ll([s],{width:ct(i),height:ct(a),style:"width:"+ct(i),viewBox:"0 0 "+1e3*i+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),u=OG(["overlay"],[l],r);return u.height=a,u.style.height=ct(a),u.style.width=ct(i),u},"staticSvg"),Be={fontMap:BG,makeSymbol:ol,mathsym:pxe,makeSpan:ds,makeSvgSpan:OG,makeLineSpan:xxe,makeAnchor:bxe,makeFragment:PG,wrapFragment:wxe,makeVList:kxe,makeOrd:gxe,makeGlue:Exe,staticSvg:Cxe,svgData:FG,tryCombineChars:vxe},Un={number:3,unit:"mu"},Wf={number:4,unit:"mu"},nu={number:5,unit:"mu"},Sxe={mord:{mop:Un,mbin:Wf,mrel:nu,minner:Un},mop:{mord:Un,mop:Un,mrel:nu,minner:Un},mbin:{mord:Wf,mop:Wf,mopen:Wf,minner:Wf},mrel:{mord:nu,mop:nu,mopen:nu,minner:nu},mopen:{},mclose:{mop:Un,mbin:Wf,mrel:nu,minner:Un},mpunct:{mord:Un,mop:Un,mrel:nu,mopen:Un,mclose:Un,mpunct:Un,minner:Un},minner:{mord:Un,mop:Un,mbin:Wf,mrel:nu,mopen:Un,mpunct:Un,minner:Un}},Axe={mord:{mop:Un},mop:{mord:Un,mop:Un},mbin:{},mrel:{},mopen:{},mclose:{mop:Un},mpunct:{},minner:{mop:Un}},zG={},m4={},g4={};o(vt,"defineFunction");o(Kf,"defineFunctionBuilders");y4=o(function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},"normalizeArgument"),ui=o(function(e){return e.type==="ordgroup"?e.body:[e]},"ordargument"),su=Be.makeSpan,_xe=["leftmost","mbin","mopen","mrel","mop","mpunct"],Lxe=["rightmost","mrel","mclose","mpunct"],Dxe={display:Ht.DISPLAY,text:Ht.TEXT,script:Ht.SCRIPT,scriptscript:Ht.SCRIPTSCRIPT},Rxe={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},Ri=o(function(e,r,n,i){i===void 0&&(i=[null,null]);for(var a=[],s=0;s{var v=y.classes[0],x=g.classes[0];v==="mbin"&&Vt.contains(Lxe,x)?y.classes[0]="mord":x==="mbin"&&Vt.contains(_xe,v)&&(g.classes[0]="mord")},{node:d},p,m),aG(a,(g,y)=>{var v=E7(y),x=E7(g),b=v&&x?g.hasClass("mtight")?Axe[v][x]:Sxe[v][x]:null;if(b)return Be.makeGlue(b,h)},{node:d},p,m),a},"buildExpression"),aG=o(function t(e,r,n,i,a){i&&e.push(i);for(var s=0;sp=>{e.splice(d+1,0,p),s++})(s)}i&&e.pop()},"traverseNonSpaceNodes"),GG=o(function(e){return e instanceof Xf||e instanceof iy||e instanceof jf&&e.hasClass("enclosing")?e:null},"checkPartialGroup"),Nxe=o(function t(e,r){var n=GG(e);if(n){var i=n.children;if(i.length){if(r==="right")return t(i[i.length-1],"right");if(r==="left")return t(i[0],"left")}}return e},"getOutermostNode"),E7=o(function(e,r){return e?(r&&(e=Nxe(e,r)),Rxe[e.classes[0]]||null):null},"getTypeOfDomTree"),sy=o(function(e,r){var n=["nulldelimiter"].concat(e.baseSizingClasses());return su(r.concat(n))},"makeNullDelimiter"),Cr=o(function(e,r,n){if(!e)return su();if(m4[e.type]){var i=m4[e.type](e,r);if(n&&r.size!==n.size){i=su(r.sizingClasses(n),[i],r);var a=r.sizeMultiplier/n.sizeMultiplier;i.height*=a,i.depth*=a}return i}else throw new nt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(s4,"buildHTMLUnbreakable");o(C7,"buildHTML");o($G,"newDocumentFragment");ps=class{static{o(this,"MathNode")}constructor(e,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(e,r){this.attributes[e]=r}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);this.classes.length>0&&(e.className=dh(this.classes));for(var n=0;n0&&(e+=' class ="'+Vt.escape(dh(this.classes))+'"'),e+=">";for(var n=0;n",e}toText(){return this.children.map(e=>e.toText()).join("")}},qf=class{static{o(this,"TextNode")}constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return Vt.escape(this.toText())}toText(){return this.text}},S7=class{static{o(this,"SpaceNode")}constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",ct(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},et={MathNode:ps,TextNode:qf,SpaceNode:S7,newDocumentFragment:$G},_o=o(function(e,r,n){return wn[r][e]&&wn[r][e].replace&&e.charCodeAt(0)!==55349&&!(IG.hasOwnProperty(e)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(e=wn[r][e].replace),new et.TextNode(e)},"makeText"),O7=o(function(e){return e.length===1?e[0]:new et.MathNode("mrow",e)},"makeRow"),P7=o(function(e,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var i=e.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var a=e.text;if(Vt.contains(["\\imath","\\jmath"],a))return null;wn[i][a]&&wn[i][a].replace&&(a=wn[i][a].replace);var s=Be.fontMap[n].fontName;return M7(a,s,i)?Be.fontMap[n].variant:null},"getVariant"),gs=o(function(e,r,n){if(e.length===1){var i=fn(e[0],r);return n&&i instanceof ps&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var a=[],s,l=0;l0&&(d.text=d.text.slice(0,1)+"\u0338"+d.text.slice(1),a.pop())}}}a.push(u),s=u}return a},"buildExpression"),ph=o(function(e,r,n){return O7(gs(e,r,n))},"buildExpressionRow"),fn=o(function(e,r){if(!e)return new et.MathNode("mrow");if(g4[e.type]){var n=g4[e.type](e,r);return n}else throw new nt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(sG,"buildMathML");VG=o(function(e){return new d4({style:e.displayMode?Ht.DISPLAY:Ht.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},"optionsFromSettings"),UG=o(function(e,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),e=Be.makeSpan(n,[e])}return e},"displayWrap"),Mxe=o(function(e,r,n){var i=VG(n),a;if(n.output==="mathml")return sG(e,r,i,n.displayMode,!0);if(n.output==="html"){var s=C7(e,i);a=Be.makeSpan(["katex"],[s])}else{var l=sG(e,r,i,n.displayMode,!1),u=C7(e,i);a=Be.makeSpan(["katex"],[l,u])}return UG(a,n)},"buildTree"),Ixe=o(function(e,r,n){var i=VG(n),a=C7(e,i),s=Be.makeSpan(["katex"],[a]);return UG(s,n)},"buildHTMLTree"),Oxe={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Pxe=o(function(e){var r=new et.MathNode("mo",[new et.TextNode(Oxe[e.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},"mathMLnode"),Bxe={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Fxe=o(function(e){return e.type==="ordgroup"?e.body.length:1},"groupLength"),zxe=o(function(e,r){function n(){var l=4e5,u=e.label.slice(1);if(Vt.contains(["widehat","widecheck","widetilde","utilde"],u)){var h=e,f=Fxe(h.base),d,p,m;if(f>5)u==="widehat"||u==="widecheck"?(d=420,l=2364,m=.42,p=u+"4"):(d=312,l=2340,m=.34,p="tilde4");else{var g=[1,1,2,2,3,3][f];u==="widehat"||u==="widecheck"?(l=[0,1062,2364,2364,2364][g],d=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p=u+g):(l=[0,600,1033,2339,2340][g],d=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var y=new Jl(p),v=new ll([y],{width:"100%",height:ct(m),viewBox:"0 0 "+l+" "+d,preserveAspectRatio:"none"});return{span:Be.makeSvgSpan([],[v],r),minWidth:0,height:m}}else{var x=[],b=Bxe[u],[w,S,T]=b,E=T/1e3,_=w.length,A,L;if(_===1){var M=b[3];A=["hide-tail"],L=[M]}else if(_===2)A=["halfarrow-left","halfarrow-right"],L=["xMinYMin","xMaxYMin"];else if(_===3)A=["brace-left","brace-center","brace-right"],L=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+_+" children.");for(var N=0;N<_;N++){var k=new Jl(w[N]),I=new ll([k],{width:"400em",height:ct(E),viewBox:"0 0 "+l+" "+T,preserveAspectRatio:L[N]+" slice"}),C=Be.makeSvgSpan([A[N]],[I],r);if(_===1)return{span:C,minWidth:S,height:E};C.style.height=ct(E),x.push(C)}return{span:Be.makeSpan(["stretchy"],x,r),minWidth:S,height:E}}}o(n,"buildSvgSpan_");var{span:i,minWidth:a,height:s}=n();return i.height=s,i.style.height=ct(s),a>0&&(i.style.minWidth=ct(a)),i},"svgSpan"),Gxe=o(function(e,r,n,i,a){var s,l=e.height+e.depth+n+i;if(/fbox|color|angl/.test(r)){if(s=Be.makeSpan(["stretchy",r],[],a),r==="fbox"){var u=a.color&&a.getColor();u&&(s.style.borderColor=u)}}else{var h=[];/^[bx]cancel$/.test(r)&&h.push(new ay({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&h.push(new ay({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var f=new ll(h,{width:"100%",height:ct(l)});s=Be.makeSvgSpan([],[f],a)}return s.height=l,s.style.height=ct(l),s},"encloseSpan"),ou={encloseSpan:Gxe,mathMLnode:Pxe,svgSpan:zxe};o(ir,"assertNodeType");o(B7,"assertSymbolNodeType");o(T4,"checkSymbolNodeType");F7=o((t,e)=>{var r,n,i;t&&t.type==="supsub"?(n=ir(t.base,"accent"),r=n.base,t.base=r,i=uxe(Cr(t,e)),t.base=n):(n=ir(t,"accent"),r=n.base);var a=Cr(r,e.havingCrampedStyle()),s=n.isShifty&&Vt.isCharacterBox(r),l=0;if(s){var u=Vt.getBaseElem(r),h=Cr(u,e.havingCrampedStyle());l=tG(h).skew}var f=n.label==="\\c",d=f?a.height+a.depth:Math.min(a.height,e.fontMetrics().xHeight),p;if(n.isStretchy)p=ou.svgSpan(n,e),p=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+ct(2*l)+")",marginLeft:ct(2*l)}:void 0}]},e);else{var m,g;n.label==="\\vec"?(m=Be.staticSvg("vec",e),g=Be.svgData.vec[1]):(m=Be.makeOrd({mode:n.mode,text:n.label},e,"textord"),m=tG(m),m.italic=0,g=m.width,f&&(d+=m.depth)),p=Be.makeSpan(["accent-body"],[m]);var y=n.label==="\\textcircled";y&&(p.classes.push("accent-full"),d=a.height);var v=l;y||(v-=g/2),p.style.left=ct(v),n.label==="\\textcircled"&&(p.style.top=".2em"),p=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:p}]},e)}var x=Be.makeSpan(["mord","accent"],[p],e);return i?(i.children[0]=x,i.height=Math.max(x.height,i.height),i.classes[0]="mord",i):x},"htmlBuilder$a"),HG=o((t,e)=>{var r=t.isStretchy?ou.mathMLnode(t.label):new et.MathNode("mo",[_o(t.label,t.mode)]),n=new et.MathNode("mover",[fn(t.base,e),r]);return n.setAttribute("accent","true"),n},"mathmlBuilder$9"),$xe=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));vt({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:o((t,e)=>{var r=y4(e[0]),n=!$xe.test(t.funcName),i=!n||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:n,isShifty:i,base:r}},"handler"),htmlBuilder:F7,mathmlBuilder:HG});vt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:o((t,e)=>{var r=e[0],n=t.parser.mode;return n==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},"handler"),htmlBuilder:F7,mathmlBuilder:HG});vt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"accentUnder",mode:r.mode,label:n,base:i}},"handler"),htmlBuilder:o((t,e)=>{var r=Cr(t.base,e),n=ou.svgSpan(t,e),i=t.label==="\\utilde"?.12:0,a=Be.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},e);return Be.makeSpan(["mord","accentunder"],[a],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=ou.mathMLnode(t.label),n=new et.MathNode("munder",[fn(t.base,e),r]);return n.setAttribute("accentunder","true"),n},"mathmlBuilder")});o4=o(t=>{var e=new et.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e},"paddedNode");vt({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n,funcName:i}=t;return{type:"xArrow",mode:n.mode,label:i,body:e[0],below:r[0]}},htmlBuilder(t,e){var r=e.style,n=e.havingStyle(r.sup()),i=Be.wrapFragment(Cr(t.body,n,e),e),a=t.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(a+"-arrow-pad");var s;t.below&&(n=e.havingStyle(r.sub()),s=Be.wrapFragment(Cr(t.below,n,e),e),s.classes.push(a+"-arrow-pad"));var l=ou.svgSpan(t,e),u=-e.fontMetrics().axisHeight+.5*l.height,h=-e.fontMetrics().axisHeight-.5*l.height-.111;(i.depth>.25||t.label==="\\xleftequilibrium")&&(h-=i.depth);var f;if(s){var d=-e.fontMetrics().axisHeight+s.height+.5*l.height+.111;f=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u},{type:"elem",elem:s,shift:d}]},e)}else f=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u}]},e);return f.children[0].children[0].children[1].classes.push("svg-align"),Be.makeSpan(["mrel","x-arrow"],[f],e)},mathmlBuilder(t,e){var r=ou.mathMLnode(t.label);r.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(t.body){var i=o4(fn(t.body,e));if(t.below){var a=o4(fn(t.below,e));n=new et.MathNode("munderover",[r,a,i])}else n=new et.MathNode("mover",[r,i])}else if(t.below){var s=o4(fn(t.below,e));n=new et.MathNode("munder",[r,s])}else n=o4(),n=new et.MathNode("mover",[r,n]);return n}});Vxe=Be.makeSpan;o(YG,"htmlBuilder$9");o(WG,"mathmlBuilder$8");vt({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:ui(i),isCharacterBox:Vt.isCharacterBox(i)}},htmlBuilder:YG,mathmlBuilder:WG});k4=o(t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"},"binrelClass");vt({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:r}=t;return{type:"mclass",mode:r.mode,mclass:k4(e[0]),body:ui(e[1]),isCharacterBox:Vt.isCharacterBox(e[1])}}});vt({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:r,funcName:n}=t,i=e[1],a=e[0],s;n!=="\\stackrel"?s=k4(i):s="mrel";var l={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:ui(i)},u={type:"supsub",mode:a.mode,base:l,sup:n==="\\underset"?null:a,sub:n==="\\underset"?a:null};return{type:"mclass",mode:r.mode,mclass:s,body:[u],isCharacterBox:Vt.isCharacterBox(u)}},htmlBuilder:YG,mathmlBuilder:WG});vt({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"pmb",mode:r.mode,mclass:k4(e[0]),body:ui(e[0])}},htmlBuilder(t,e){var r=Ri(t.body,e,!0),n=Be.makeSpan([t.mclass],r,e);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(t,e){var r=gs(t.body,e),n=new et.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});Uxe={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},oG=o(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),lG=o(t=>t.type==="textord"&&t.text==="@","isStartOfArrow"),Hxe=o((t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e,"isLabelEnd");o(Yxe,"cdArrow");o(Wxe,"parseCD");vt({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup()),n=Be.wrapFragment(Cr(t.label,r,e),e);return n.classes.push("cd-label-"+t.side),n.style.bottom=ct(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(t,e){var r=new et.MathNode("mrow",[fn(t.label,e)]);return r=new et.MathNode("mpadded",[r]),r.setAttribute("width","0"),t.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new et.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});vt({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:r}=t;return{type:"cdlabelparent",mode:r.mode,fragment:e[0]}},htmlBuilder(t,e){var r=Be.wrapFragment(Cr(t.fragment,e),e);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(t,e){return new et.MathNode("mrow",[fn(t.fragment,e)])}});vt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:r}=t,n=ir(e[0],"ordgroup"),i=n.body,a="",s=0;s=1114111)throw new nt("\\@char with invalid code point "+a);return u<=65535?h=String.fromCharCode(u):(u-=65536,h=String.fromCharCode((u>>10)+55296,(u&1023)+56320)),{type:"textord",mode:r.mode,text:h}}});qG=o((t,e)=>{var r=Ri(t.body,e.withColor(t.color),!1);return Be.makeFragment(r)},"htmlBuilder$8"),XG=o((t,e)=>{var r=gs(t.body,e.withColor(t.color)),n=new et.MathNode("mstyle",r);return n.setAttribute("mathcolor",t.color),n},"mathmlBuilder$7");vt({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:r}=t,n=ir(e[0],"color-token").color,i=e[1];return{type:"color",mode:r.mode,color:n,body:ui(i)}},htmlBuilder:qG,mathmlBuilder:XG});vt({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:r,breakOnTokenText:n}=t,i=ir(e[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var a=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:i,body:a}},htmlBuilder:qG,mathmlBuilder:XG});vt({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var{parser:n}=t,i=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,a=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:a,size:i&&ir(i,"size").value}},htmlBuilder(t,e){var r=Be.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size&&(r.style.marginTop=ct(Hn(t.size,e)))),r},mathmlBuilder(t,e){var r=new et.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size&&r.setAttribute("height",ct(Hn(t.size,e)))),r}});A7={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},jG=o(t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new nt("Expected a control sequence",t);return e},"checkControlSequence"),qxe=o(t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},"getRHS"),KG=o((t,e,r,n)=>{var i=t.gullet.macros.get(r.text);i==null&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,i,n)},"letCommand");vt({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:r}=t;e.consumeSpaces();var n=e.fetch();if(A7[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=A7[n.text]),ir(e.parseFunction(),"internal");throw new nt("Invalid token after macro prefix",n)}});vt({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=e.gullet.popToken(),i=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new nt("Expected a control sequence",n);for(var a=0,s,l=[[]];e.gullet.future().text!=="{";)if(n=e.gullet.popToken(),n.text==="#"){if(e.gullet.future().text==="{"){s=e.gullet.future(),l[a].push("{");break}if(n=e.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new nt('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==a+1)throw new nt('Argument number "'+n.text+'" out of order');a++,l.push([])}else{if(n.text==="EOF")throw new nt("Expected a macro definition");l[a].push(n.text)}var{tokens:u}=e.gullet.consumeArg();return s&&u.unshift(s),(r==="\\edef"||r==="\\xdef")&&(u=e.gullet.expandTokens(u),u.reverse()),e.gullet.macros.set(i,{tokens:u,numArgs:a,delimiters:l},r===A7[r]),{type:"internal",mode:e.mode}}});vt({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=jG(e.gullet.popToken());e.gullet.consumeSpaces();var i=qxe(e);return KG(e,n,i,r==="\\\\globallet"),{type:"internal",mode:e.mode}}});vt({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=jG(e.gullet.popToken()),i=e.gullet.popToken(),a=e.gullet.popToken();return KG(e,n,a,r==="\\\\globalfuture"),e.gullet.pushToken(a),e.gullet.pushToken(i),{type:"internal",mode:e.mode}}});ey=o(function(e,r,n){var i=wn.math[e]&&wn.math[e].replace,a=M7(i||e,r,n);if(!a)throw new Error("Unsupported symbol "+e+" and font size "+r+".");return a},"getMetrics"),z7=o(function(e,r,n,i){var a=n.havingBaseStyle(r),s=Be.makeSpan(i.concat(a.sizingClasses(n)),[e],n),l=a.sizeMultiplier/n.sizeMultiplier;return s.height*=l,s.depth*=l,s.maxFontSize=a.sizeMultiplier,s},"styleWrap"),QG=o(function(e,r,n){var i=r.havingBaseStyle(n),a=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=ct(a),e.height-=a,e.depth+=a},"centerSpan"),Xxe=o(function(e,r,n,i,a,s){var l=Be.makeSymbol(e,"Main-Regular",a,i),u=z7(l,r,i,s);return n&&QG(u,i,r),u},"makeSmallDelim"),jxe=o(function(e,r,n,i){return Be.makeSymbol(e,"Size"+r+"-Regular",n,i)},"mathrmSize"),ZG=o(function(e,r,n,i,a,s){var l=jxe(e,r,a,i),u=z7(Be.makeSpan(["delimsizing","size"+r],[l],i),Ht.TEXT,i,s);return n&&QG(u,i,Ht.TEXT),u},"makeLargeDelim"),h7=o(function(e,r,n){var i;r==="Size1-Regular"?i="delim-size1":i="delim-size4";var a=Be.makeSpan(["delimsizinginner",i],[Be.makeSpan([],[Be.makeSymbol(e,r,n)])]);return{type:"elem",elem:a}},"makeGlyphSpan"),f7=o(function(e,r,n){var i=Zl["Size4-Regular"][e.charCodeAt(0)]?Zl["Size4-Regular"][e.charCodeAt(0)][4]:Zl["Size1-Regular"][e.charCodeAt(0)][4],a=new Jl("inner",nxe(e,Math.round(1e3*r))),s=new ll([a],{width:ct(i),height:ct(r),style:"width:"+ct(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),l=Be.makeSvgSpan([],[s],n);return l.height=r,l.style.height=ct(r),l.style.width=ct(i),{type:"elem",elem:l}},"makeInner"),_7=.008,l4={type:"kern",size:-1*_7},Kxe=["|","\\lvert","\\rvert","\\vert"],Qxe=["\\|","\\lVert","\\rVert","\\Vert"],JG=o(function(e,r,n,i,a,s){var l,u,h,f,d="",p=0;l=h=f=e,u=null;var m="Size1-Regular";e==="\\uparrow"?h=f="\u23D0":e==="\\Uparrow"?h=f="\u2016":e==="\\downarrow"?l=h="\u23D0":e==="\\Downarrow"?l=h="\u2016":e==="\\updownarrow"?(l="\\uparrow",h="\u23D0",f="\\downarrow"):e==="\\Updownarrow"?(l="\\Uparrow",h="\u2016",f="\\Downarrow"):Vt.contains(Kxe,e)?(h="\u2223",d="vert",p=333):Vt.contains(Qxe,e)?(h="\u2225",d="doublevert",p=556):e==="["||e==="\\lbrack"?(l="\u23A1",h="\u23A2",f="\u23A3",m="Size4-Regular",d="lbrack",p=667):e==="]"||e==="\\rbrack"?(l="\u23A4",h="\u23A5",f="\u23A6",m="Size4-Regular",d="rbrack",p=667):e==="\\lfloor"||e==="\u230A"?(h=l="\u23A2",f="\u23A3",m="Size4-Regular",d="lfloor",p=667):e==="\\lceil"||e==="\u2308"?(l="\u23A1",h=f="\u23A2",m="Size4-Regular",d="lceil",p=667):e==="\\rfloor"||e==="\u230B"?(h=l="\u23A5",f="\u23A6",m="Size4-Regular",d="rfloor",p=667):e==="\\rceil"||e==="\u2309"?(l="\u23A4",h=f="\u23A5",m="Size4-Regular",d="rceil",p=667):e==="("||e==="\\lparen"?(l="\u239B",h="\u239C",f="\u239D",m="Size4-Regular",d="lparen",p=875):e===")"||e==="\\rparen"?(l="\u239E",h="\u239F",f="\u23A0",m="Size4-Regular",d="rparen",p=875):e==="\\{"||e==="\\lbrace"?(l="\u23A7",u="\u23A8",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(l="\u23AB",u="\u23AC",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(l="\u23A7",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(l="\u23AB",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(l="\u23A7",f="\u23AD",h="\u23AA",m="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(l="\u23AB",f="\u23A9",h="\u23AA",m="Size4-Regular");var g=ey(l,m,a),y=g.height+g.depth,v=ey(h,m,a),x=v.height+v.depth,b=ey(f,m,a),w=b.height+b.depth,S=0,T=1;if(u!==null){var E=ey(u,m,a);S=E.height+E.depth,T=2}var _=y+w+S,A=Math.max(0,Math.ceil((r-_)/(T*x))),L=_+A*T*x,M=i.fontMetrics().axisHeight;n&&(M*=i.sizeMultiplier);var N=L/2-M,k=[];if(d.length>0){var I=L-y-w,C=Math.round(L*1e3),O=ixe(d,Math.round(I*1e3)),D=new Jl(d,O),P=(p/1e3).toFixed(3)+"em",F=(C/1e3).toFixed(3)+"em",B=new ll([D],{width:P,height:F,viewBox:"0 0 "+p+" "+C}),$=Be.makeSvgSpan([],[B],i);$.height=C/1e3,$.style.width=P,$.style.height=F,k.push({type:"elem",elem:$})}else{if(k.push(h7(f,m,a)),k.push(l4),u===null){var z=L-y-w+2*_7;k.push(f7(h,z,i))}else{var Y=(L-y-w-S)/2+2*_7;k.push(f7(h,Y,i)),k.push(l4),k.push(h7(u,m,a)),k.push(l4),k.push(f7(h,Y,i))}k.push(l4),k.push(h7(l,m,a))}var Q=i.havingBaseStyle(Ht.TEXT),X=Be.makeVList({positionType:"bottom",positionData:N,children:k},Q);return z7(Be.makeSpan(["delimsizing","mult"],[X],Q),Ht.TEXT,i,s)},"makeStackedDelim"),d7=80,p7=.08,m7=o(function(e,r,n,i,a){var s=rxe(e,i,n),l=new Jl(e,s),u=new ll([l],{width:"400em",height:ct(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return Be.makeSvgSpan(["hide-tail"],[u],a)},"sqrtSvg"),Zxe=o(function(e,r){var n=r.havingBaseSizing(),i=n$("\\surd",e*n.sizeMultiplier,r$,n),a=n.sizeMultiplier,s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),l,u=0,h=0,f=0,d;return i.type==="small"?(f=1e3+1e3*s+d7,e<1?a=1:e<1.4&&(a=.7),u=(1+s+p7)/a,h=(1+s)/a,l=m7("sqrtMain",u,f,s,r),l.style.minWidth="0.853em",d=.833/a):i.type==="large"?(f=(1e3+d7)*ty[i.size],h=(ty[i.size]+s)/a,u=(ty[i.size]+s+p7)/a,l=m7("sqrtSize"+i.size,u,f,s,r),l.style.minWidth="1.02em",d=1/a):(u=e+s+p7,h=e+s,f=Math.floor(1e3*e+s)+d7,l=m7("sqrtTall",u,f,s,r),l.style.minWidth="0.742em",d=1.056),l.height=h,l.style.height=ct(u),{span:l,advanceWidth:d,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*a}},"makeSqrtImage"),e$=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],Jxe=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],t$=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],ty=[0,1.2,1.8,2.4,3],ebe=o(function(e,r,n,i,a){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),Vt.contains(e$,e)||Vt.contains(t$,e))return ZG(e,r,!1,n,i,a);if(Vt.contains(Jxe,e))return JG(e,ty[r],!1,n,i,a);throw new nt("Illegal delimiter: '"+e+"'")},"makeSizedDelim"),tbe=[{type:"small",style:Ht.SCRIPTSCRIPT},{type:"small",style:Ht.SCRIPT},{type:"small",style:Ht.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],rbe=[{type:"small",style:Ht.SCRIPTSCRIPT},{type:"small",style:Ht.SCRIPT},{type:"small",style:Ht.TEXT},{type:"stack"}],r$=[{type:"small",style:Ht.SCRIPTSCRIPT},{type:"small",style:Ht.SCRIPT},{type:"small",style:Ht.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],nbe=o(function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},"delimTypeToFont"),n$=o(function(e,r,n,i){for(var a=Math.min(2,3-i.style.size),s=a;sr)return n[s]}return n[n.length-1]},"traverseSequence"),i$=o(function(e,r,n,i,a,s){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var l;Vt.contains(t$,e)?l=tbe:Vt.contains(e$,e)?l=r$:l=rbe;var u=n$(e,r,l,i);return u.type==="small"?Xxe(e,u.style,n,i,a,s):u.type==="large"?ZG(e,u.size,n,i,a,s):JG(e,r,n,i,a,s)},"makeCustomSizedDelim"),ibe=o(function(e,r,n,i,a,s){var l=i.fontMetrics().axisHeight*i.sizeMultiplier,u=901,h=5/i.fontMetrics().ptPerEm,f=Math.max(r-l,n+l),d=Math.max(f/500*u,2*f-h);return i$(e,d,!0,i,a,s)},"makeLeftRightDelim"),au={sqrtImage:Zxe,sizedDelim:ebe,sizeToMaxHeight:ty,customSizedDelim:i$,leftRightDelim:ibe},cG={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},abe=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];o(E4,"checkDelimiter");vt({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:o((t,e)=>{var r=E4(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:cG[t.funcName].size,mclass:cG[t.funcName].mclass,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>t.delim==="."?Be.makeSpan([t.mclass]):au.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),"htmlBuilder"),mathmlBuilder:o(t=>{var e=[];t.delim!=="."&&e.push(_o(t.delim,t.mode));var r=new et.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=ct(au.sizeToMaxHeight[t.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r},"mathmlBuilder")});o(uG,"assertParsed");vt({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new nt("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:E4(e[0],t).text,color:r}},"handler")});vt({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=E4(e[0],t),n=t.parser;++n.leftrightDepth;var i=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var a=ir(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:i,left:r.text,right:a.delim,rightColor:a.color}},"handler"),htmlBuilder:o((t,e)=>{uG(t);for(var r=Ri(t.body,e,!0,["mopen","mclose"]),n=0,i=0,a=!1,s=0;s{uG(t);var r=gs(t.body,e);if(t.left!=="."){var n=new et.MathNode("mo",[_o(t.left,t.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(t.right!=="."){var i=new et.MathNode("mo",[_o(t.right,t.mode)]);i.setAttribute("fence","true"),t.rightColor&&i.setAttribute("mathcolor",t.rightColor),r.push(i)}return O7(r)},"mathmlBuilder")});vt({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=E4(e[0],t);if(!t.parser.leftrightDepth)throw new nt("\\middle without preceding \\left",r);return{type:"middle",mode:t.parser.mode,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>{var r;if(t.delim===".")r=sy(e,[]);else{r=au.sizedDelim(t.delim,1,e,t.mode,[]);var n={delim:t.delim,options:e};r.isMiddle=n}return r},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=t.delim==="\\vert"||t.delim==="|"?_o("|","text"):_o(t.delim,t.mode),n=new et.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n},"mathmlBuilder")});G7=o((t,e)=>{var r=Be.wrapFragment(Cr(t.body,e),e),n=t.label.slice(1),i=e.sizeMultiplier,a,s=0,l=Vt.isCharacterBox(t.body);if(n==="sout")a=Be.makeSpan(["stretchy","sout"]),a.height=e.fontMetrics().defaultRuleThickness/i,s=-.5*e.fontMetrics().xHeight;else if(n==="phase"){var u=Hn({number:.6,unit:"pt"},e),h=Hn({number:.35,unit:"ex"},e),f=e.havingBaseSizing();i=i/f.sizeMultiplier;var d=r.height+r.depth+u+h;r.style.paddingLeft=ct(d/2+u);var p=Math.floor(1e3*d*i),m=exe(p),g=new ll([new Jl("phase",m)],{width:"400em",height:ct(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});a=Be.makeSvgSpan(["hide-tail"],[g],e),a.style.height=ct(d),s=r.depth+u+h}else{/cancel/.test(n)?l||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var y=0,v=0,x=0;/box/.test(n)?(x=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),y=e.fontMetrics().fboxsep+(n==="colorbox"?0:x),v=y):n==="angl"?(x=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),y=4*x,v=Math.max(0,.25-r.depth)):(y=l?.2:0,v=y),a=ou.encloseSpan(r,n,y,v,e),/fbox|boxed|fcolorbox/.test(n)?(a.style.borderStyle="solid",a.style.borderWidth=ct(x)):n==="angl"&&x!==.049&&(a.style.borderTopWidth=ct(x),a.style.borderRightWidth=ct(x)),s=r.depth+v,t.backgroundColor&&(a.style.backgroundColor=t.backgroundColor,t.borderColor&&(a.style.borderColor=t.borderColor))}var b;if(t.backgroundColor)b=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:r,shift:0}]},e);else{var w=/cancel|phase/.test(n)?["svg-align"]:[];b=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:a,shift:s,wrapperClasses:w}]},e)}return/cancel/.test(n)&&(b.height=r.height,b.depth=r.depth),/cancel/.test(n)&&!l?Be.makeSpan(["mord","cancel-lap"],[b],e):Be.makeSpan(["mord"],[b],e)},"htmlBuilder$7"),$7=o((t,e)=>{var r=0,n=new et.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[fn(t.body,e)]);switch(t.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),t.label==="\\fcolorbox"){var i=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);n.setAttribute("style","border: "+i+"em solid "+String(t.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&n.setAttribute("mathbackground",t.backgroundColor),n},"mathmlBuilder$6");vt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=ir(e[0],"color-token").color,s=e[1];return{type:"enclose",mode:n.mode,label:i,backgroundColor:a,body:s}},htmlBuilder:G7,mathmlBuilder:$7});vt({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=ir(e[0],"color-token").color,s=ir(e[1],"color-token").color,l=e[2];return{type:"enclose",mode:n.mode,label:i,backgroundColor:s,borderColor:a,body:l}},htmlBuilder:G7,mathmlBuilder:$7});vt({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\fbox",body:e[0]}}});vt({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"enclose",mode:r.mode,label:n,body:i}},htmlBuilder:G7,mathmlBuilder:$7});vt({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\angl",body:e[0]}}});a$={};o(ec,"defineEnvironment");s$={};o(le,"defineMacro");o(hG,"getHLines");C4=o(t=>{var e=t.parser.settings;if(!e.displayMode)throw new nt("{"+t.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext");o(V7,"getAutoTag");o(mh,"parseArray");o(U7,"dCellStyle");tc=o(function(e,r){var n,i,a=e.body.length,s=e.hLinesBeforeRow,l=0,u=new Array(a),h=[],f=Math.max(r.fontMetrics().arrayRuleWidth,r.minRuleThickness),d=1/r.fontMetrics().ptPerEm,p=5*d;if(e.colSeparationType&&e.colSeparationType==="small"){var m=r.havingStyle(Ht.SCRIPT).sizeMultiplier;p=.2778*(m/r.sizeMultiplier)}var g=e.colSeparationType==="CD"?Hn({number:3,unit:"ex"},r):12*d,y=3*d,v=e.arraystretch*g,x=.7*v,b=.3*v,w=0;function S(ke){for(var Ie=0;Ie0&&(w+=.25),h.push({pos:w,isDashed:ke[Ie]})}for(o(S,"setHLinePos"),S(s[0]),n=0;n0&&(N+=b,_ke))for(n=0;n=l)){var J=void 0;(i>0||e.hskipBeforeAndAfter)&&(J=Vt.deflt(Y.pregap,p),J!==0&&(O=Be.makeSpan(["arraycolsep"],[]),O.style.width=ct(J),C.push(O)));var Z=[];for(n=0;n0){for(var se=Be.makeLineSpan("hline",r,f),ce=Be.makeLineSpan("hdashline",r,f),ue=[{type:"elem",elem:u,shift:0}];h.length>0;){var te=h.pop(),De=te.pos-k;te.isDashed?ue.push({type:"elem",elem:ce,shift:De}):ue.push({type:"elem",elem:se,shift:De})}u=Be.makeVList({positionType:"individualShift",children:ue},r)}if(P.length===0)return Be.makeSpan(["mord"],[u],r);var oe=Be.makeVList({positionType:"individualShift",children:P},r);return oe=Be.makeSpan(["tag"],[oe],r),Be.makeFragment([u,oe])},"htmlBuilder"),sbe={c:"center ",l:"left ",r:"right "},rc=o(function(e,r){for(var n=[],i=new et.MathNode("mtd",[],["mtr-glue"]),a=new et.MathNode("mtd",[],["mml-eqn-num"]),s=0;s0){var g=e.cols,y="",v=!1,x=0,b=g.length;g[0].type==="separator"&&(p+="top ",x=1),g[g.length-1].type==="separator"&&(p+="bottom ",b-=1);for(var w=x;w0?"left ":"",p+=A[A.length-1].length>0?"right ":"";for(var L=1;L-1?"alignat":"align",a=e.envName==="split",s=mh(e.parser,{cols:n,addJot:!0,autoTag:a?void 0:V7(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:e.parser.settings.leqno},"display"),l,u=0,h={type:"ordgroup",mode:e.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var f="",d=0;d0&&m&&(v=1),n[g]={type:"align",align:y,pregap:v,postgap:0}}return s.colSeparationType=m?"align":"alignat",s},"alignedHandler");ec({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var r=T4(e[0]),n=r?[e[0]]:ir(e[0],"ordgroup").body,i=n.map(function(s){var l=B7(s),u=l.text;if("lcr".indexOf(u)!==-1)return{type:"align",align:u};if(u==="|")return{type:"separator",separator:"|"};if(u===":")return{type:"separator",separator:":"};throw new nt("Unknown column alignment: "+u,s)}),a={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return mh(t.parser,a,U7(t.envName))},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(t.envName.charAt(t.envName.length-1)==="*"){var i=t.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,"lcr".indexOf(r)===-1)throw new nt("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),n.cols=[{type:"align",align:r}]}}var a=mh(t.parser,n,U7(t.envName)),s=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(s).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[a],left:e[0],right:e[1],rightColor:void 0}:a},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},r=mh(t.parser,e,"script");return r.colSeparationType="small",r},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var r=T4(e[0]),n=r?[e[0]]:ir(e[0],"ordgroup").body,i=n.map(function(s){var l=B7(s),u=l.text;if("lc".indexOf(u)!==-1)return{type:"align",align:u};throw new nt("Unknown column alignment: "+u,s)});if(i.length>1)throw new nt("{subarray} can contain only one column");var a={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=mh(t.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new nt("{subarray} can contain only one column");return a},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=mh(t.parser,e,U7(t.envName));return{type:"leftright",mode:t.mode,body:[r],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:o$,htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){Vt.contains(["gather","gather*"],t.envName)&&C4(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:V7(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return mh(t.parser,e,"display")},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:o$,htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){C4(t);var e={autoTag:V7(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return mh(t.parser,e,"display")},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["CD"],props:{numArgs:0},handler(t){return C4(t),Wxe(t.parser)},htmlBuilder:tc,mathmlBuilder:rc});le("\\nonumber","\\gdef\\@eqnsw{0}");le("\\notag","\\nonumber");vt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new nt(t.funcName+" valid only within array environment")}});fG=a$;vt({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];if(i.type!=="ordgroup")throw new nt("Invalid environment name",i);for(var a="",s=0;s{var r=t.font,n=e.withFont(r);return Cr(t.body,n)},"htmlBuilder$5"),c$=o((t,e)=>{var r=t.font,n=e.withFont(r);return fn(t.body,n)},"mathmlBuilder$4"),dG={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};vt({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=y4(e[0]),a=n;return a in dG&&(a=dG[a]),{type:"font",mode:r.mode,font:a.slice(1),body:i}},"handler"),htmlBuilder:l$,mathmlBuilder:c$});vt({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r}=t,n=e[0],i=Vt.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:k4(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:i}},"handler")});vt({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n,breakOnTokenText:i}=t,{mode:a}=r,s=r.parseExpression(!0,i),l="math"+n.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:r.mode,body:s}}},"handler"),htmlBuilder:l$,mathmlBuilder:c$});u$=o((t,e)=>{var r=e;return t==="display"?r=r.id>=Ht.SCRIPT.id?r.text():Ht.DISPLAY:t==="text"&&r.size===Ht.DISPLAY.size?r=Ht.TEXT:t==="script"?r=Ht.SCRIPT:t==="scriptscript"&&(r=Ht.SCRIPTSCRIPT),r},"adjustStyle"),H7=o((t,e)=>{var r=u$(t.size,e.style),n=r.fracNum(),i=r.fracDen(),a;a=e.havingStyle(n);var s=Cr(t.numer,a,e);if(t.continued){var l=8.5/e.fontMetrics().ptPerEm,u=3.5/e.fontMetrics().ptPerEm;s.height=s.height0?g=3*p:g=7*p,y=e.fontMetrics().denom1):(d>0?(m=e.fontMetrics().num2,g=p):(m=e.fontMetrics().num3,g=3*p),y=e.fontMetrics().denom2);var v;if(f){var b=e.fontMetrics().axisHeight;m-s.depth-(b+.5*d){var r=new et.MathNode("mfrac",[fn(t.numer,e),fn(t.denom,e)]);if(!t.hasBarLine)r.setAttribute("linethickness","0px");else if(t.barSize){var n=Hn(t.barSize,e);r.setAttribute("linethickness",ct(n))}var i=u$(t.size,e.style);if(i.size!==e.style.size){r=new et.MathNode("mstyle",[r]);var a=i.size===Ht.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",a),r.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var s=[];if(t.leftDelim!=null){var l=new et.MathNode("mo",[new et.TextNode(t.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}if(s.push(r),t.rightDelim!=null){var u=new et.MathNode("mo",[new et.TextNode(t.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),s.push(u)}return O7(s)}return r},"mathmlBuilder$3");vt({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1],s,l=null,u=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,l="(",u=")";break;case"\\\\bracefrac":s=!1,l="\\{",u="\\}";break;case"\\\\brackfrac":s=!1,l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:i,denom:a,hasBarLine:s,leftDelim:l,rightDelim:u,size:h,barSize:null}},"handler"),htmlBuilder:H7,mathmlBuilder:Y7});vt({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")});vt({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:r,token:n}=t,i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:i,token:n}}});pG=["display","text","script","scriptscript"],mG=o(function(e){var r=null;return e.length>0&&(r=e,r=r==="."?null:r),r},"delimFromValue");vt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:r}=t,n=e[4],i=e[5],a=y4(e[0]),s=a.type==="atom"&&a.family==="open"?mG(a.text):null,l=y4(e[1]),u=l.type==="atom"&&l.family==="close"?mG(l.text):null,h=ir(e[2],"size"),f,d=null;h.isBlank?f=!0:(d=h.value,f=d.number>0);var p="auto",m=e[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=ir(m.body[0],"textord");p=pG[Number(g.text)]}}else m=ir(m,"textord"),p=pG[Number(m.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:f,barSize:d,leftDelim:s,rightDelim:u,size:p}},htmlBuilder:H7,mathmlBuilder:Y7});vt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:r,funcName:n,token:i}=t;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:ir(e[0],"size").value,token:i}}});vt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=z2e(ir(e[1],"infix").size),s=e[2],l=a.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:s,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},"handler"),htmlBuilder:H7,mathmlBuilder:Y7});h$=o((t,e)=>{var r=e.style,n,i;t.type==="supsub"?(n=t.sup?Cr(t.sup,e.havingStyle(r.sup()),e):Cr(t.sub,e.havingStyle(r.sub()),e),i=ir(t.base,"horizBrace")):i=ir(t,"horizBrace");var a=Cr(i.base,e.havingBaseStyle(Ht.DISPLAY)),s=ou.svgSpan(i,e),l;if(i.isOver?(l=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),l.children[0].children[0].children[1].classes.push("svg-align")):(l=Be.makeVList({positionType:"bottom",positionData:a.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),l.children[0].children[0].children[0].classes.push("svg-align")),n){var u=Be.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e);i.isOver?l=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:.2},{type:"elem",elem:n}]},e):l=Be.makeVList({positionType:"bottom",positionData:u.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:u}]},e)}return Be.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e)},"htmlBuilder$3"),obe=o((t,e)=>{var r=ou.mathMLnode(t.label);return new et.MathNode(t.isOver?"mover":"munder",[fn(t.base,e),r])},"mathmlBuilder$2");vt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:e[0]}},htmlBuilder:h$,mathmlBuilder:obe});vt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[1],i=ir(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:r.mode,href:i,body:ui(n)}:r.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:o((t,e)=>{var r=Ri(t.body,e,!1);return Be.makeAnchor(t.href,[],r,e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=ph(t.body,e);return r instanceof ps||(r=new ps("mrow",[r])),r.setAttribute("href",t.href),r},"mathmlBuilder")});vt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=ir(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var i=[],a=0;a{var{parser:r,funcName:n,token:i}=t,a=ir(e[0],"raw").string,s=e[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,u={};switch(n){case"\\htmlClass":u.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":u.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":u.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var h=a.split(","),f=0;f{var r=Ri(t.body,e,!1),n=["enclosing"];t.attributes.class&&n.push(...t.attributes.class.trim().split(/\s+/));var i=Be.makeSpan(n,r,e);for(var a in t.attributes)a!=="class"&&t.attributes.hasOwnProperty(a)&&i.setAttribute(a,t.attributes[a]);return i},"htmlBuilder"),mathmlBuilder:o((t,e)=>ph(t.body,e),"mathmlBuilder")});vt({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"htmlmathml",mode:r.mode,html:ui(e[0]),mathml:ui(e[1])}},"handler"),htmlBuilder:o((t,e)=>{var r=Ri(t.html,e,!1);return Be.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>ph(t.mathml,e),"mathmlBuilder")});g7=o(function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!r)throw new nt("Invalid size: '"+e+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!DG(n))throw new nt("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n},"sizeData");vt({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:o((t,e,r)=>{var{parser:n}=t,i={number:0,unit:"em"},a={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(r[0])for(var u=ir(r[0],"raw").string,h=u.split(","),f=0;f{var r=Hn(t.height,e),n=0;t.totalheight.number>0&&(n=Hn(t.totalheight,e)-r);var i=0;t.width.number>0&&(i=Hn(t.width,e));var a={height:ct(r+n)};i>0&&(a.width=ct(i)),n>0&&(a.verticalAlign=ct(-n));var s=new T7(t.src,t.alt,a);return s.height=r,s.depth=n,s},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new et.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var n=Hn(t.height,e),i=0;if(t.totalheight.number>0&&(i=Hn(t.totalheight,e)-n,r.setAttribute("valign",ct(-i))),r.setAttribute("height",ct(n+i)),t.width.number>0){var a=Hn(t.width,e);r.setAttribute("width",ct(a))}return r.setAttribute("src",t.src),r},"mathmlBuilder")});vt({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=ir(e[0],"size");if(r.settings.strict){var a=n[1]==="m",s=i.value.unit==="mu";a?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+i.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(t,e){return Be.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var r=Hn(t.dimension,e);return new et.SpaceNode(r)}});vt({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:i}},"handler"),htmlBuilder:o((t,e)=>{var r;t.alignment==="clap"?(r=Be.makeSpan([],[Cr(t.body,e)]),r=Be.makeSpan(["inner"],[r],e)):r=Be.makeSpan(["inner"],[Cr(t.body,e)]);var n=Be.makeSpan(["fix"],[]),i=Be.makeSpan([t.alignment],[r,n],e),a=Be.makeSpan(["strut"]);return a.style.height=ct(i.height+i.depth),i.depth&&(a.style.verticalAlign=ct(-i.depth)),i.children.unshift(a),i=Be.makeSpan(["thinbox"],[i],e),Be.makeSpan(["mord","vbox"],[i],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new et.MathNode("mpadded",[fn(t.body,e)]);if(t.alignment!=="rlap"){var n=t.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r},"mathmlBuilder")});vt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:r,parser:n}=t,i=n.mode;n.switchMode("math");var a=r==="\\("?"\\)":"$",s=n.parseExpression(!1,a);return n.expect(a),n.switchMode(i),{type:"styling",mode:n.mode,style:"text",body:s}}});vt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new nt("Mismatched "+t.funcName)}});gG=o((t,e)=>{switch(e.style.size){case Ht.DISPLAY.size:return t.display;case Ht.TEXT.size:return t.text;case Ht.SCRIPT.size:return t.script;case Ht.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}},"chooseMathStyle");vt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"mathchoice",mode:r.mode,display:ui(e[0]),text:ui(e[1]),script:ui(e[2]),scriptscript:ui(e[3])}},"handler"),htmlBuilder:o((t,e)=>{var r=gG(t,e),n=Ri(r,e,!1);return Be.makeFragment(n)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=gG(t,e);return ph(r,e)},"mathmlBuilder")});f$=o((t,e,r,n,i,a,s)=>{t=Be.makeSpan([],[t]);var l=r&&Vt.isCharacterBox(r),u,h;if(e){var f=Cr(e,n.havingStyle(i.sup()),n);h={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-f.depth)}}if(r){var d=Cr(r,n.havingStyle(i.sub()),n);u={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-d.height)}}var p;if(h&&u){var m=n.fontMetrics().bigOpSpacing5+u.elem.height+u.elem.depth+u.kern+t.depth+s;p=Be.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:ct(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:ct(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(u){var g=t.height-s;p=Be.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:ct(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t}]},n)}else if(h){var y=t.depth+s;p=Be.makeVList({positionType:"bottom",positionData:y,children:[{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:ct(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return t;var v=[p];if(u&&a!==0&&!l){var x=Be.makeSpan(["mspace"],[],n);x.style.marginRight=ct(a),v.unshift(x)}return Be.makeSpan(["mop","op-limits"],v,n)},"assembleSupSub"),d$=["\\smallint"],xp=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=ir(t.base,"op"),i=!0):a=ir(t,"op");var s=e.style,l=!1;s.size===Ht.DISPLAY.size&&a.symbol&&!Vt.contains(d$,a.name)&&(l=!0);var u;if(a.symbol){var h=l?"Size2-Regular":"Size1-Regular",f="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(f=a.name.slice(1),a.name=f==="oiint"?"\\iint":"\\iiint"),u=Be.makeSymbol(a.name,h,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),f.length>0){var d=u.italic,p=Be.staticSvg(f+"Size"+(l?"2":"1"),e);u=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},e),a.name="\\"+f,u.classes.unshift("mop"),u.italic=d}}else if(a.body){var m=Ri(a.body,e,!0);m.length===1&&m[0]instanceof ms?(u=m[0],u.classes[0]="mop"):u=Be.makeSpan(["mop"],m,e)}else{for(var g=[],y=1;y{var r;if(t.symbol)r=new ps("mo",[_o(t.name,t.mode)]),Vt.contains(d$,t.name)&&r.setAttribute("largeop","false");else if(t.body)r=new ps("mo",gs(t.body,e));else{r=new ps("mi",[new qf(t.name.slice(1))]);var n=new ps("mo",[_o("\u2061","text")]);t.parentIsSupSub?r=new ps("mrow",[r,n]):r=$G([r,n])}return r},"mathmlBuilder$1"),lbe={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};vt({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=n;return i.length===1&&(i=lbe[i]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},"handler"),htmlBuilder:xp,mathmlBuilder:oy});vt({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:ui(n)}},"handler"),htmlBuilder:xp,mathmlBuilder:oy});cbe={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};vt({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:xp,mathmlBuilder:oy});vt({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:xp,mathmlBuilder:oy});vt({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t,n=r;return n.length===1&&(n=cbe[n]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:xp,mathmlBuilder:oy});p$=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=ir(t.base,"operatorname"),i=!0):a=ir(t,"operatorname");var s;if(a.body.length>0){for(var l=a.body.map(d=>{var p=d.text;return typeof p=="string"?{type:"textord",mode:d.mode,text:p}:d}),u=Ri(l,e.withFont("mathrm"),!0),h=0;h{for(var r=gs(t.body,e.withFont("mathrm")),n=!0,i=0;if.toText()).join("");r=[new et.TextNode(l)]}var u=new et.MathNode("mi",r);u.setAttribute("mathvariant","normal");var h=new et.MathNode("mo",[_o("\u2061","text")]);return t.parentIsSupSub?new et.MathNode("mrow",[u,h]):et.newDocumentFragment([u,h])},"mathmlBuilder");vt({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"operatorname",mode:r.mode,body:ui(i),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:p$,mathmlBuilder:ube});le("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Kf({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?Be.makeFragment(Ri(t.body,e,!1)):Be.makeSpan(["mord"],Ri(t.body,e,!0),e)},mathmlBuilder(t,e){return ph(t.body,e,!0)}});vt({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:r}=t,n=e[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(t,e){var r=Cr(t.body,e.havingCrampedStyle()),n=Be.makeLineSpan("overline-line",e),i=e.fontMetrics().defaultRuleThickness,a=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n},{type:"kern",size:i}]},e);return Be.makeSpan(["mord","overline"],[a],e)},mathmlBuilder(t,e){var r=new et.MathNode("mo",[new et.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new et.MathNode("mover",[fn(t.body,e),r]);return n.setAttribute("accent","true"),n}});vt({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"phantom",mode:r.mode,body:ui(n)}},"handler"),htmlBuilder:o((t,e)=>{var r=Ri(t.body,e.withPhantom(),!1);return Be.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=gs(t.body,e);return new et.MathNode("mphantom",r)},"mathmlBuilder")});vt({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"hphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=Be.makeSpan([],[Cr(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=gs(ui(t.body),e),n=new et.MathNode("mphantom",r),i=new et.MathNode("mpadded",[n]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i},"mathmlBuilder")});vt({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"vphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=Be.makeSpan(["inner"],[Cr(t.body,e.withPhantom())]),n=Be.makeSpan(["fix"],[]);return Be.makeSpan(["mord","rlap"],[r,n],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=gs(ui(t.body),e),n=new et.MathNode("mphantom",r),i=new et.MathNode("mpadded",[n]);return i.setAttribute("width","0px"),i},"mathmlBuilder")});vt({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t,n=ir(e[0],"size").value,i=e[1];return{type:"raisebox",mode:r.mode,dy:n,body:i}},htmlBuilder(t,e){var r=Cr(t.body,e),n=Hn(t.dy,e);return Be.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){var r=new et.MathNode("mpadded",[fn(t.body,e)]),n=t.dy.number+t.dy.unit;return r.setAttribute("voffset",n),r}});vt({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});vt({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(t,e,r){var{parser:n}=t,i=r[0],a=ir(e[0],"size"),s=ir(e[1],"size");return{type:"rule",mode:n.mode,shift:i&&ir(i,"size").value,width:a.value,height:s.value}},htmlBuilder(t,e){var r=Be.makeSpan(["mord","rule"],[],e),n=Hn(t.width,e),i=Hn(t.height,e),a=t.shift?Hn(t.shift,e):0;return r.style.borderRightWidth=ct(n),r.style.borderTopWidth=ct(i),r.style.bottom=ct(a),r.width=n,r.height=i+a,r.depth=-a,r.maxFontSize=i*1.125*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=Hn(t.width,e),n=Hn(t.height,e),i=t.shift?Hn(t.shift,e):0,a=e.color&&e.getColor()||"black",s=new et.MathNode("mspace");s.setAttribute("mathbackground",a),s.setAttribute("width",ct(r)),s.setAttribute("height",ct(n));var l=new et.MathNode("mpadded",[s]);return i>=0?l.setAttribute("height",ct(i)):(l.setAttribute("height",ct(i)),l.setAttribute("depth",ct(-i))),l.setAttribute("voffset",ct(i)),l}});o(m$,"sizingGroup");yG=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],hbe=o((t,e)=>{var r=e.havingSize(t.size);return m$(t.body,r,e)},"htmlBuilder");vt({type:"sizing",names:yG,props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!1,r);return{type:"sizing",mode:i.mode,size:yG.indexOf(n)+1,body:a}},"handler"),htmlBuilder:hbe,mathmlBuilder:o((t,e)=>{var r=e.havingSize(t.size),n=gs(t.body,r),i=new et.MathNode("mstyle",n);return i.setAttribute("mathsize",ct(r.sizeMultiplier)),i},"mathmlBuilder")});vt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:o((t,e,r)=>{var{parser:n}=t,i=!1,a=!1,s=r[0]&&ir(r[0],"ordgroup");if(s)for(var l="",u=0;u{var r=Be.makeSpan([],[Cr(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new et.MathNode("mpadded",[fn(t.body,e)]);return t.smashHeight&&r.setAttribute("height","0px"),t.smashDepth&&r.setAttribute("depth","0px"),r},"mathmlBuilder")});vt({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n}=t,i=r[0],a=e[0];return{type:"sqrt",mode:n.mode,body:a,index:i}},htmlBuilder(t,e){var r=Cr(t.body,e.havingCrampedStyle());r.height===0&&(r.height=e.fontMetrics().xHeight),r=Be.wrapFragment(r,e);var n=e.fontMetrics(),i=n.defaultRuleThickness,a=i;e.style.idr.height+r.depth+s&&(s=(s+d-r.height-r.depth)/2);var p=u.height-r.height-s-h;r.style.paddingLeft=ct(f);var m=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:u},{type:"kern",size:h}]},e);if(t.index){var g=e.havingStyle(Ht.SCRIPTSCRIPT),y=Cr(t.index,g,e),v=.6*(m.height-m.depth),x=Be.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:y}]},e),b=Be.makeSpan(["root"],[x]);return Be.makeSpan(["mord","sqrt"],[b,m],e)}else return Be.makeSpan(["mord","sqrt"],[m],e)},mathmlBuilder(t,e){var{body:r,index:n}=t;return n?new et.MathNode("mroot",[fn(r,e),fn(n,e)]):new et.MathNode("msqrt",[fn(r,e)])}});vG={display:Ht.DISPLAY,text:Ht.TEXT,script:Ht.SCRIPT,scriptscript:Ht.SCRIPTSCRIPT};vt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!0,r),s=n.slice(1,n.length-5);return{type:"styling",mode:i.mode,style:s,body:a}},htmlBuilder(t,e){var r=vG[t.style],n=e.havingStyle(r).withFont("");return m$(t.body,n,e)},mathmlBuilder(t,e){var r=vG[t.style],n=e.havingStyle(r),i=gs(t.body,n),a=new et.MathNode("mstyle",i),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=s[t.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});fbe=o(function(e,r){var n=e.base;if(n)if(n.type==="op"){var i=n.limits&&(r.style.size===Ht.DISPLAY.size||n.alwaysHandleSupSub);return i?xp:null}else if(n.type==="operatorname"){var a=n.alwaysHandleSupSub&&(r.style.size===Ht.DISPLAY.size||n.limits);return a?p$:null}else{if(n.type==="accent")return Vt.isCharacterBox(n.base)?F7:null;if(n.type==="horizBrace"){var s=!e.sub;return s===n.isOver?h$:null}else return null}else return null},"htmlBuilderDelegate");Kf({type:"supsub",htmlBuilder(t,e){var r=fbe(t,e);if(r)return r(t,e);var{base:n,sup:i,sub:a}=t,s=Cr(n,e),l,u,h=e.fontMetrics(),f=0,d=0,p=n&&Vt.isCharacterBox(n);if(i){var m=e.havingStyle(e.style.sup());l=Cr(i,m,e),p||(f=s.height-m.fontMetrics().supDrop*m.sizeMultiplier/e.sizeMultiplier)}if(a){var g=e.havingStyle(e.style.sub());u=Cr(a,g,e),p||(d=s.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}var y;e.style===Ht.DISPLAY?y=h.sup1:e.style.cramped?y=h.sup3:y=h.sup2;var v=e.sizeMultiplier,x=ct(.5/h.ptPerEm/v),b=null;if(u){var w=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(s instanceof ms||w)&&(b=ct(-s.italic))}var S;if(l&&u){f=Math.max(f,y,l.depth+.25*h.xHeight),d=Math.max(d,h.sub2);var T=h.defaultRuleThickness,E=4*T;if(f-l.depth-(u.height-d)0&&(f+=_,d-=_)}var A=[{type:"elem",elem:u,shift:d,marginRight:x,marginLeft:b},{type:"elem",elem:l,shift:-f,marginRight:x}];S=Be.makeVList({positionType:"individualShift",children:A},e)}else if(u){d=Math.max(d,h.sub1,u.height-.8*h.xHeight);var L=[{type:"elem",elem:u,marginLeft:b,marginRight:x}];S=Be.makeVList({positionType:"shift",positionData:d,children:L},e)}else if(l)f=Math.max(f,y,l.depth+.25*h.xHeight),S=Be.makeVList({positionType:"shift",positionData:-f,children:[{type:"elem",elem:l,marginRight:x}]},e);else throw new Error("supsub must have either sup or sub.");var M=E7(s,"right")||"mord";return Be.makeSpan([M],[s,Be.makeSpan(["msupsub"],[S])],e)},mathmlBuilder(t,e){var r=!1,n,i;t.base&&t.base.type==="horizBrace"&&(i=!!t.sup,i===t.base.isOver&&(r=!0,n=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var a=[fn(t.base,e)];t.sub&&a.push(fn(t.sub,e)),t.sup&&a.push(fn(t.sup,e));var s;if(r)s=n?"mover":"munder";else if(t.sub)if(t.sup){var h=t.base;h&&h.type==="op"&&h.limits&&e.style===Ht.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===Ht.DISPLAY||h.limits)?s="munderover":s="msubsup"}else{var u=t.base;u&&u.type==="op"&&u.limits&&(e.style===Ht.DISPLAY||u.alwaysHandleSupSub)||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(u.limits||e.style===Ht.DISPLAY)?s="munder":s="msub"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===Ht.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===Ht.DISPLAY)?s="mover":s="msup"}return new et.MathNode(s,a)}});Kf({type:"atom",htmlBuilder(t,e){return Be.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var r=new et.MathNode("mo",[_o(t.text,t.mode)]);if(t.family==="bin"){var n=P7(t,e);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else t.family==="punct"?r.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&r.setAttribute("stretchy","false");return r}});g$={mi:"italic",mn:"normal",mtext:"normal"};Kf({type:"mathord",htmlBuilder(t,e){return Be.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var r=new et.MathNode("mi",[_o(t.text,t.mode,e)]),n=P7(t,e)||"italic";return n!==g$[r.type]&&r.setAttribute("mathvariant",n),r}});Kf({type:"textord",htmlBuilder(t,e){return Be.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var r=_o(t.text,t.mode,e),n=P7(t,e)||"normal",i;return t.mode==="text"?i=new et.MathNode("mtext",[r]):/[0-9]/.test(t.text)?i=new et.MathNode("mn",[r]):t.text==="\\prime"?i=new et.MathNode("mo",[r]):i=new et.MathNode("mi",[r]),n!==g$[i.type]&&i.setAttribute("mathvariant",n),i}});y7={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},v7={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Kf({type:"spacing",htmlBuilder(t,e){if(v7.hasOwnProperty(t.text)){var r=v7[t.text].className||"";if(t.mode==="text"){var n=Be.makeOrd(t,e,"textord");return n.classes.push(r),n}else return Be.makeSpan(["mspace",r],[Be.mathsym(t.text,t.mode,e)],e)}else{if(y7.hasOwnProperty(t.text))return Be.makeSpan(["mspace",y7[t.text]],[],e);throw new nt('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var r;if(v7.hasOwnProperty(t.text))r=new et.MathNode("mtext",[new et.TextNode("\xA0")]);else{if(y7.hasOwnProperty(t.text))return new et.MathNode("mspace");throw new nt('Unknown type of space "'+t.text+'"')}return r}});xG=o(()=>{var t=new et.MathNode("mtd",[]);return t.setAttribute("width","50%"),t},"pad");Kf({type:"tag",mathmlBuilder(t,e){var r=new et.MathNode("mtable",[new et.MathNode("mtr",[xG(),new et.MathNode("mtd",[ph(t.body,e)]),xG(),new et.MathNode("mtd",[ph(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});bG={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},wG={"\\textbf":"textbf","\\textmd":"textmd"},dbe={"\\textit":"textit","\\textup":"textup"},TG=o((t,e)=>{var r=t.font;if(r){if(bG[r])return e.withTextFontFamily(bG[r]);if(wG[r])return e.withTextFontWeight(wG[r]);if(r==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(dbe[r])},"optionsWithFont");vt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"text",mode:r.mode,body:ui(i),font:n}},htmlBuilder(t,e){var r=TG(t,e),n=Ri(t.body,r,!0);return Be.makeSpan(["mord","text"],n,r)},mathmlBuilder(t,e){var r=TG(t,e);return ph(t.body,r)}});vt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"underline",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Cr(t.body,e),n=Be.makeLineSpan("underline-line",e),i=e.fontMetrics().defaultRuleThickness,a=Be.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r}]},e);return Be.makeSpan(["mord","underline"],[a],e)},mathmlBuilder(t,e){var r=new et.MathNode("mo",[new et.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new et.MathNode("munder",[fn(t.body,e),r]);return n.setAttribute("accentunder","true"),n}});vt({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"vcenter",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Cr(t.body,e),n=e.fontMetrics().axisHeight,i=.5*(r.height-n-(r.depth+n));return Be.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return new et.MathNode("mpadded",[fn(t.body,e)],["vcenter"])}});vt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new nt("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=kG(t),n=[],i=e.havingStyle(e.style.text()),a=0;at.body.replace(/ /g,t.star?"\u2423":"\xA0"),"makeVerb"),fh=zG,y$=`[ \r + ]`,pbe="\\\\[a-zA-Z@]+",mbe="\\\\[^\uD800-\uDFFF]",gbe="("+pbe+")"+y$+"*",ybe=`\\\\( +|[ \r ]+ +?)[ \r ]*`,L7="[\u0300-\u036F]",vbe=new RegExp(L7+"+$"),xbe="("+y$+"+)|"+(ybe+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(L7+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(L7+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+gbe)+("|"+mbe+")"),v4=class{static{o(this,"Lexer")}constructor(e,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=r,this.tokenRegex=new RegExp(xbe,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,r){this.catcodes[e]=r}lex(){var e=this.input,r=this.tokenRegex.lastIndex;if(r===e.length)return new Ao("EOF",new Xs(this,r,r));var n=this.tokenRegex.exec(e);if(n===null||n.index!==r)throw new nt("Unexpected character: '"+e[r]+"'",new Ao(e[r],new Xs(this,r,r+1)));var i=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[i]===14){var a=e.indexOf(` +`,this.tokenRegex.lastIndex);return a===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=a+1,this.lex()}return new Ao(i,new Xs(this,r,this.tokenRegex.lastIndex))}},D7=class{static{o(this,"Namespace")}constructor(e,r){e===void 0&&(e={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new nt("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var r in e)e.hasOwnProperty(r)&&(e[r]==null?delete this.current[r]:this.current[r]=e[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,r,n){if(n===void 0&&(n=!1),n){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][e]=r)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}r==null?delete this.current[e]:this.current[e]=r}},bbe=s$;le("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});le("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});le("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});le("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});le("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return e[0].length===1&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});le("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");le("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});EG={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};le("\\char",function(t){var e=t.popToken(),r,n="";if(e.text==="'")r=8,e=t.popToken();else if(e.text==='"')r=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")n=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new nt("\\char` missing argument");n=e.text.charCodeAt(0)}else r=10;if(r){if(n=EG[e.text],n==null||n>=r)throw new nt("Invalid base-"+r+" digit "+e.text);for(var i;(i=EG[t.future().text])!=null&&i{var n=t.consumeArg().tokens;if(n.length!==1)throw new nt("\\newcommand's first argument must be a macro name");var i=n[0].text,a=t.isDefined(i);if(a&&!e)throw new nt("\\newcommand{"+i+"} attempting to redefine "+(i+"; use \\renewcommand"));if(!a&&!r)throw new nt("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");var s=0;if(n=t.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var l="",u=t.expandNextToken();u.text!=="]"&&u.text!=="EOF";)l+=u.text,u=t.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new nt("Invalid number of arguments: "+l);s=parseInt(l),n=t.consumeArg().tokens}return t.macros.set(i,{tokens:n,numArgs:s}),""},"newcommand");le("\\newcommand",t=>W7(t,!1,!0));le("\\renewcommand",t=>W7(t,!0,!1));le("\\providecommand",t=>W7(t,!0,!0));le("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(r=>r.text).join("")),""});le("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(r=>r.text).join("")),""});le("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),fh[r],wn.math[r],wn.text[r]),""});le("\\bgroup","{");le("\\egroup","}");le("~","\\nobreakspace");le("\\lq","`");le("\\rq","'");le("\\aa","\\r a");le("\\AA","\\r A");le("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");le("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");le("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");le("\u212C","\\mathscr{B}");le("\u2130","\\mathscr{E}");le("\u2131","\\mathscr{F}");le("\u210B","\\mathscr{H}");le("\u2110","\\mathscr{I}");le("\u2112","\\mathscr{L}");le("\u2133","\\mathscr{M}");le("\u211B","\\mathscr{R}");le("\u212D","\\mathfrak{C}");le("\u210C","\\mathfrak{H}");le("\u2128","\\mathfrak{Z}");le("\\Bbbk","\\Bbb{k}");le("\xB7","\\cdotp");le("\\llap","\\mathllap{\\textrm{#1}}");le("\\rlap","\\mathrlap{\\textrm{#1}}");le("\\clap","\\mathclap{\\textrm{#1}}");le("\\mathstrut","\\vphantom{(}");le("\\underbar","\\underline{\\text{#1}}");le("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');le("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");le("\\ne","\\neq");le("\u2260","\\neq");le("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");le("\u2209","\\notin");le("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");le("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");le("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");le("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");le("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");le("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");le("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");le("\u27C2","\\perp");le("\u203C","\\mathclose{!\\mkern-0.8mu!}");le("\u220C","\\notni");le("\u231C","\\ulcorner");le("\u231D","\\urcorner");le("\u231E","\\llcorner");le("\u231F","\\lrcorner");le("\xA9","\\copyright");le("\xAE","\\textregistered");le("\uFE0F","\\textregistered");le("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');le("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');le("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');le("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');le("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}");le("\u22EE","\\vdots");le("\\varGamma","\\mathit{\\Gamma}");le("\\varDelta","\\mathit{\\Delta}");le("\\varTheta","\\mathit{\\Theta}");le("\\varLambda","\\mathit{\\Lambda}");le("\\varXi","\\mathit{\\Xi}");le("\\varPi","\\mathit{\\Pi}");le("\\varSigma","\\mathit{\\Sigma}");le("\\varUpsilon","\\mathit{\\Upsilon}");le("\\varPhi","\\mathit{\\Phi}");le("\\varPsi","\\mathit{\\Psi}");le("\\varOmega","\\mathit{\\Omega}");le("\\substack","\\begin{subarray}{c}#1\\end{subarray}");le("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");le("\\boxed","\\fbox{$\\displaystyle{#1}$}");le("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");le("\\implies","\\DOTSB\\;\\Longrightarrow\\;");le("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");CG={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};le("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in CG?e=CG[r]:(r.slice(0,4)==="\\not"||r in wn.math&&Vt.contains(["bin","rel"],wn.math[r].group))&&(e="\\dotsb"),e});q7={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};le("\\dotso",function(t){var e=t.future().text;return e in q7?"\\ldots\\,":"\\ldots"});le("\\dotsc",function(t){var e=t.future().text;return e in q7&&e!==","?"\\ldots\\,":"\\ldots"});le("\\cdots",function(t){var e=t.future().text;return e in q7?"\\@cdots\\,":"\\@cdots"});le("\\dotsb","\\cdots");le("\\dotsm","\\cdots");le("\\dotsi","\\!\\cdots");le("\\dotsx","\\ldots\\,");le("\\DOTSI","\\relax");le("\\DOTSB","\\relax");le("\\DOTSX","\\relax");le("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");le("\\,","\\tmspace+{3mu}{.1667em}");le("\\thinspace","\\,");le("\\>","\\mskip{4mu}");le("\\:","\\tmspace+{4mu}{.2222em}");le("\\medspace","\\:");le("\\;","\\tmspace+{5mu}{.2777em}");le("\\thickspace","\\;");le("\\!","\\tmspace-{3mu}{.1667em}");le("\\negthinspace","\\!");le("\\negmedspace","\\tmspace-{4mu}{.2222em}");le("\\negthickspace","\\tmspace-{5mu}{.277em}");le("\\enspace","\\kern.5em ");le("\\enskip","\\hskip.5em\\relax");le("\\quad","\\hskip1em\\relax");le("\\qquad","\\hskip2em\\relax");le("\\tag","\\@ifstar\\tag@literal\\tag@paren");le("\\tag@paren","\\tag@literal{({#1})}");le("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new nt("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});le("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");le("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");le("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");le("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");le("\\newline","\\\\\\relax");le("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");v$=ct(Zl["Main-Regular"][84][1]-.7*Zl["Main-Regular"][65][1]);le("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+v$+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");le("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+v$+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");le("\\hspace","\\@ifstar\\@hspacer\\@hspace");le("\\@hspace","\\hskip #1\\relax");le("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");le("\\ordinarycolon",":");le("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");le("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');le("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');le("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');le("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');le("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');le("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');le("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');le("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');le("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');le("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');le("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');le("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');le("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');le("\u2237","\\dblcolon");le("\u2239","\\eqcolon");le("\u2254","\\coloneqq");le("\u2255","\\eqqcolon");le("\u2A74","\\Coloneqq");le("\\ratio","\\vcentcolon");le("\\coloncolon","\\dblcolon");le("\\colonequals","\\coloneqq");le("\\coloncolonequals","\\Coloneqq");le("\\equalscolon","\\eqqcolon");le("\\equalscoloncolon","\\Eqqcolon");le("\\colonminus","\\coloneq");le("\\coloncolonminus","\\Coloneq");le("\\minuscolon","\\eqcolon");le("\\minuscoloncolon","\\Eqcolon");le("\\coloncolonapprox","\\Colonapprox");le("\\coloncolonsim","\\Colonsim");le("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");le("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");le("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");le("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");le("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");le("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");le("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");le("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");le("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");le("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");le("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");le("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");le("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");le("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");le("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");le("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");le("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");le("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");le("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");le("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");le("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");le("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");le("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");le("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");le("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");le("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");le("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");le("\\imath","\\html@mathml{\\@imath}{\u0131}");le("\\jmath","\\html@mathml{\\@jmath}{\u0237}");le("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");le("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");le("\u27E6","\\llbracket");le("\u27E7","\\rrbracket");le("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");le("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");le("\u2983","\\lBrace");le("\u2984","\\rBrace");le("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");le("\u29B5","\\minuso");le("\\darr","\\downarrow");le("\\dArr","\\Downarrow");le("\\Darr","\\Downarrow");le("\\lang","\\langle");le("\\rang","\\rangle");le("\\uarr","\\uparrow");le("\\uArr","\\Uparrow");le("\\Uarr","\\Uparrow");le("\\N","\\mathbb{N}");le("\\R","\\mathbb{R}");le("\\Z","\\mathbb{Z}");le("\\alef","\\aleph");le("\\alefsym","\\aleph");le("\\Alpha","\\mathrm{A}");le("\\Beta","\\mathrm{B}");le("\\bull","\\bullet");le("\\Chi","\\mathrm{X}");le("\\clubs","\\clubsuit");le("\\cnums","\\mathbb{C}");le("\\Complex","\\mathbb{C}");le("\\Dagger","\\ddagger");le("\\diamonds","\\diamondsuit");le("\\empty","\\emptyset");le("\\Epsilon","\\mathrm{E}");le("\\Eta","\\mathrm{H}");le("\\exist","\\exists");le("\\harr","\\leftrightarrow");le("\\hArr","\\Leftrightarrow");le("\\Harr","\\Leftrightarrow");le("\\hearts","\\heartsuit");le("\\image","\\Im");le("\\infin","\\infty");le("\\Iota","\\mathrm{I}");le("\\isin","\\in");le("\\Kappa","\\mathrm{K}");le("\\larr","\\leftarrow");le("\\lArr","\\Leftarrow");le("\\Larr","\\Leftarrow");le("\\lrarr","\\leftrightarrow");le("\\lrArr","\\Leftrightarrow");le("\\Lrarr","\\Leftrightarrow");le("\\Mu","\\mathrm{M}");le("\\natnums","\\mathbb{N}");le("\\Nu","\\mathrm{N}");le("\\Omicron","\\mathrm{O}");le("\\plusmn","\\pm");le("\\rarr","\\rightarrow");le("\\rArr","\\Rightarrow");le("\\Rarr","\\Rightarrow");le("\\real","\\Re");le("\\reals","\\mathbb{R}");le("\\Reals","\\mathbb{R}");le("\\Rho","\\mathrm{P}");le("\\sdot","\\cdot");le("\\sect","\\S");le("\\spades","\\spadesuit");le("\\sub","\\subset");le("\\sube","\\subseteq");le("\\supe","\\supseteq");le("\\Tau","\\mathrm{T}");le("\\thetasym","\\vartheta");le("\\weierp","\\wp");le("\\Zeta","\\mathrm{Z}");le("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");le("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");le("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");le("\\bra","\\mathinner{\\langle{#1}|}");le("\\ket","\\mathinner{|{#1}\\rangle}");le("\\braket","\\mathinner{\\langle{#1}\\rangle}");le("\\Bra","\\left\\langle#1\\right|");le("\\Ket","\\left|#1\\right\\rangle");x$=o(t=>e=>{var r=e.consumeArg().tokens,n=e.consumeArg().tokens,i=e.consumeArg().tokens,a=e.consumeArg().tokens,s=e.macros.get("|"),l=e.macros.get("\\|");e.macros.beginGroup();var u=o(d=>p=>{t&&(p.macros.set("|",s),i.length&&p.macros.set("\\|",l));var m=d;if(!d&&i.length){var g=p.future();g.text==="|"&&(p.popToken(),m=!0)}return{tokens:m?i:n,numArgs:0}},"midMacro");e.macros.set("|",u(!1)),i.length&&e.macros.set("\\|",u(!0));var h=e.consumeArg().tokens,f=e.expandTokens([...a,...h,...r]);return e.macros.endGroup(),{tokens:f.reverse(),numArgs:0}},"braketHelper");le("\\bra@ket",x$(!1));le("\\bra@set",x$(!0));le("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");le("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");le("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");le("\\angln","{\\angl n}");le("\\blue","\\textcolor{##6495ed}{#1}");le("\\orange","\\textcolor{##ffa500}{#1}");le("\\pink","\\textcolor{##ff00af}{#1}");le("\\red","\\textcolor{##df0030}{#1}");le("\\green","\\textcolor{##28ae7b}{#1}");le("\\gray","\\textcolor{gray}{#1}");le("\\purple","\\textcolor{##9d38bd}{#1}");le("\\blueA","\\textcolor{##ccfaff}{#1}");le("\\blueB","\\textcolor{##80f6ff}{#1}");le("\\blueC","\\textcolor{##63d9ea}{#1}");le("\\blueD","\\textcolor{##11accd}{#1}");le("\\blueE","\\textcolor{##0c7f99}{#1}");le("\\tealA","\\textcolor{##94fff5}{#1}");le("\\tealB","\\textcolor{##26edd5}{#1}");le("\\tealC","\\textcolor{##01d1c1}{#1}");le("\\tealD","\\textcolor{##01a995}{#1}");le("\\tealE","\\textcolor{##208170}{#1}");le("\\greenA","\\textcolor{##b6ffb0}{#1}");le("\\greenB","\\textcolor{##8af281}{#1}");le("\\greenC","\\textcolor{##74cf70}{#1}");le("\\greenD","\\textcolor{##1fab54}{#1}");le("\\greenE","\\textcolor{##0d923f}{#1}");le("\\goldA","\\textcolor{##ffd0a9}{#1}");le("\\goldB","\\textcolor{##ffbb71}{#1}");le("\\goldC","\\textcolor{##ff9c39}{#1}");le("\\goldD","\\textcolor{##e07d10}{#1}");le("\\goldE","\\textcolor{##a75a05}{#1}");le("\\redA","\\textcolor{##fca9a9}{#1}");le("\\redB","\\textcolor{##ff8482}{#1}");le("\\redC","\\textcolor{##f9685d}{#1}");le("\\redD","\\textcolor{##e84d39}{#1}");le("\\redE","\\textcolor{##bc2612}{#1}");le("\\maroonA","\\textcolor{##ffbde0}{#1}");le("\\maroonB","\\textcolor{##ff92c6}{#1}");le("\\maroonC","\\textcolor{##ed5fa6}{#1}");le("\\maroonD","\\textcolor{##ca337c}{#1}");le("\\maroonE","\\textcolor{##9e034e}{#1}");le("\\purpleA","\\textcolor{##ddd7ff}{#1}");le("\\purpleB","\\textcolor{##c6b9fc}{#1}");le("\\purpleC","\\textcolor{##aa87ff}{#1}");le("\\purpleD","\\textcolor{##7854ab}{#1}");le("\\purpleE","\\textcolor{##543b78}{#1}");le("\\mintA","\\textcolor{##f5f9e8}{#1}");le("\\mintB","\\textcolor{##edf2df}{#1}");le("\\mintC","\\textcolor{##e0e5cc}{#1}");le("\\grayA","\\textcolor{##f6f7f7}{#1}");le("\\grayB","\\textcolor{##f0f1f2}{#1}");le("\\grayC","\\textcolor{##e3e5e6}{#1}");le("\\grayD","\\textcolor{##d6d8da}{#1}");le("\\grayE","\\textcolor{##babec2}{#1}");le("\\grayF","\\textcolor{##888d93}{#1}");le("\\grayG","\\textcolor{##626569}{#1}");le("\\grayH","\\textcolor{##3b3e40}{#1}");le("\\grayI","\\textcolor{##21242c}{#1}");le("\\kaBlue","\\textcolor{##314453}{#1}");le("\\kaGreen","\\textcolor{##71B307}{#1}");b$={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},R7=class{static{o(this,"MacroExpander")}constructor(e,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(e),this.macros=new D7(bbe,r.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new v4(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var r,n,i;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:i,end:n}=this.consumeArg(["]"])}else({tokens:i,start:r,end:n}=this.consumeArg());return this.pushToken(new Ao("EOF",n.loc)),this.pushTokens(i),r.range(n,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var r=[],n=e&&e.length>0;n||this.consumeSpaces();var i=this.future(),a,s=0,l=0;do{if(a=this.popToken(),r.push(a),a.text==="{")++s;else if(a.text==="}"){if(--s,s===-1)throw new nt("Extra }",a)}else if(a.text==="EOF")throw new nt("Unexpected end of input in a macro argument, expected '"+(e&&n?e[l]:"}")+"'",a);if(e&&n)if((s===0||s===1&&e[l]==="{")&&a.text===e[l]){if(++l,l===e.length){r.splice(-l,l);break}}else l=0}while(s!==0||n);return i.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:i,end:a}}consumeArgs(e,r){if(r){if(r.length!==e+1)throw new nt("The length of delimiters doesn't match the number of args!");for(var n=r[0],i=0;ithis.settings.maxExpand)throw new nt("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var r=this.popToken(),n=r.text,i=r.noexpand?null:this._getExpansion(n);if(i==null||e&&i.unexpandable){if(e&&i==null&&n[0]==="\\"&&!this.isDefined(n))throw new nt("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var a=i.tokens,s=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new nt("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new nt("Not a valid argument number",u)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Ao(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var s=i.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new v4(i,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var f={tokens:u,numArgs:a};return f}return i}isDefined(e){return this.macros.has(e)||fh.hasOwnProperty(e)||wn.math.hasOwnProperty(e)||wn.text.hasOwnProperty(e)||b$.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:fh.hasOwnProperty(e)&&!fh[e].primitive}},SG=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,c4=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),x7={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},AG={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},x4=class t{static{o(this,"Parser")}constructor(e,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new R7(e,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(e,r){if(r===void 0&&(r=!0),this.fetch().text!==e)throw new nt("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var r=this.nextToken;this.consume(),this.gullet.pushToken(new Ao("}")),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(e,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(t.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||e&&fh[i.text]&&fh[i.text].infix)break;var a=this.parseAtom(r);if(a){if(a.type==="internal")continue}else break;n.push(a)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(e){for(var r=-1,n,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',e);var l=wn[this.mode][r].group,u=Xs.range(e),h;if(hxe.hasOwnProperty(l)){var f=l;h={type:"atom",mode:this.mode,family:f,loc:u,text:r}}else h={type:l,mode:this.mode,loc:u,text:r};s=h}else if(r.charCodeAt(0)>=128)this.settings.strict&&(LG(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),e)),s={type:"textord",mode:"text",loc:Xs.range(e),text:r};else return null;if(this.consume(),a)for(var d=0;d{e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),bp.default.addHook("afterSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}var bp,Qf,Cbe,Sbe,A$,C$,qr,_be,Lbe,Dbe,Rbe,_$,Nbe,yr,Mbe,Ibe,gh,K7,Obe,Pbe,S$,Q7,Ni,Zf,yh,We,rr=R(()=>{"use strict";bp=Xi(o7(),1),Qf=//gi,Cbe=o(t=>t?_$(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),Sbe=(()=>{let t=!1;return()=>{t||(Abe(),t=!0)}})();o(Abe,"setupDompurifyHooks");A$=o(t=>(Sbe(),bp.default.sanitize(t)),"removeScript"),C$=o((t,e)=>{if(e.flowchart?.htmlLabels!==!1){let r=e.securityLevel;r==="antiscript"||r==="strict"?t=A$(t):r!=="loose"&&(t=_$(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=Rbe(t))}return t},"sanitizeMore"),qr=o((t,e)=>t&&(e.dompurifyConfig?t=bp.default.sanitize(C$(t,e),e.dompurifyConfig).toString():t=bp.default.sanitize(C$(t,e),{FORBID_TAGS:["style"]}).toString(),t),"sanitizeText"),_be=o((t,e)=>typeof t=="string"?qr(t,e):t.flat().map(r=>qr(r,e)),"sanitizeTextOrArray"),Lbe=o(t=>Qf.test(t),"hasBreaks"),Dbe=o(t=>t.split(Qf),"splitBreaks"),Rbe=o(t=>t.replace(/#br#/g,"
"),"placeholderToBreak"),_$=o(t=>t.replace(Qf,"#br#"),"breakToPlaceholder"),Nbe=o(t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},"getUrl"),yr=o(t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),Mbe=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},"getMax"),Ibe=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},"getMin"),gh=o(function(t){let e=t.split(/(,)/),r=[];for(let n=0;n0&&n+1Math.max(0,t.split(e).length-1),"countOccurrence"),Obe=o((t,e)=>{let r=K7(t,"~"),n=K7(e,"~");return r===1&&n===1},"shouldCombineSets"),Pbe=o(t=>{let e=K7(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let n=[...t],i=n.indexOf("~"),a=n.lastIndexOf("~");for(;i!==-1&&a!==-1&&i!==a;)n[i]="<",n[a]=">",i=n.indexOf("~"),a=n.lastIndexOf("~");return r&&n.unshift("~"),n.join("")},"processSet"),S$=o(()=>window.MathMLElement!==void 0,"isMathMLSupported"),Q7=/\$\$(.*)\$\$/g,Ni=o(t=>(t.match(Q7)?.length??0)>0,"hasKatex"),Zf=o(async(t,e)=>{t=await yh(t,e);let r=document.createElement("div");r.innerHTML=t,r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let i={width:r.clientWidth,height:r.clientHeight};return r.remove(),i},"calculateMathMLDimensions"),yh=o(async(t,e)=>{if(!Ni(t))return t;if(!(S$()||e.legacyMathML||e.forceLegacyMathML))return t.replace(Q7,"MathML is unsupported in this environment.");let{default:r}=await Promise.resolve().then(()=>(E$(),k$)),n=e.forceLegacyMathML||!S$()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(Qf).map(i=>Ni(i)?`
${i}
`:`
${i}
`).join("").replace(Q7,(i,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(//g,""))},"renderKatex"),We={getRows:Cbe,sanitizeText:qr,sanitizeTextOrArray:_be,hasBreaks:Lbe,splitBreaks:Dbe,lineBreakRegex:Qf,removeScript:A$,getUrl:Nbe,evaluate:yr,getMax:Mbe,getMin:Ibe}});var Bbe,Fbe,Sr,Lo,Yn=R(()=>{"use strict";ut();Bbe=o(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),Fbe=o(function(t,e,r){let n=new Map;return r?(n.set("width","100%"),n.set("style",`max-width: ${e}px;`)):(n.set("height",t),n.set("width",e)),n},"calculateSvgSizeAttrs"),Sr=o(function(t,e,r,n){let i=Fbe(e,r,n);Bbe(t,i)},"configureSvgSize"),Lo=o(function(t,e,r,n){let i=e.node().getBBox(),a=i.width,s=i.height;V.info(`SVG bounds: ${a}x${s}`,i);let l=0,u=0;V.info(`Graph bounds: ${l}x${u}`,t),l=a+r*2,u=s+r*2,V.info(`Calculated bounds: ${l}x${u}`),Sr(e,u,l,n);let h=`${i.x-r} ${i.y-r} ${i.width+2*r} ${i.height+2*r}`;e.attr("viewBox",h)},"setupGraphViewbox")});var S4,zbe,L$,D$,Z7=R(()=>{"use strict";ut();S4={},zbe=o((t,e,r)=>{let n="";return t in S4&&S4[t]?n=S4[t](r):V.warn(`No theme found for ${t}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${n} + + ${e} +`},"getStyles"),L$=o((t,e)=>{e!==void 0&&(S4[t]=e)},"addStylesForDiagram"),D$=zbe});var ly={};hr(ly,{clear:()=>vr,getAccDescription:()=>Lr,getAccTitle:()=>Ar,getDiagramTitle:()=>Xr,setAccDescription:()=>_r,setAccTitle:()=>kr,setDiagramTitle:()=>nn});var J7,eS,tS,rS,vr,kr,Ar,_r,Lr,nn,Xr,bi=R(()=>{"use strict";rr();qs();J7="",eS="",tS="",rS=o(t=>qr(t,Or()),"sanitizeText"),vr=o(()=>{J7="",tS="",eS=""},"clear"),kr=o(t=>{J7=rS(t).replace(/^\s+/g,"")},"setAccTitle"),Ar=o(()=>J7,"getAccTitle"),_r=o(t=>{tS=rS(t).replace(/\n\s+/g,` +`)},"setAccDescription"),Lr=o(()=>tS,"getAccDescription"),nn=o(t=>{eS=rS(t)},"setDiagramTitle"),Xr=o(()=>eS,"getDiagramTitle")});var R$,Gbe,de,iS,_4,$be,aS,Vbe,A4,Jf,cy,nS,_t=R(()=>{"use strict";Hf();ut();qs();rr();Yn();Z7();bi();R$=V,Gbe=$1,de=Or,iS=Zb,_4=uh,$be=o(t=>qr(t,de()),"sanitizeText"),aS=Lo,Vbe=o(()=>ly,"getCommonDb"),A4={},Jf=o((t,e,r)=>{A4[t]&&R$.warn(`Diagram with id ${t} already registered. Overwriting.`),A4[t]=e,r&&$C(t,r),L$(t,e.styles),e.injectUtils?.(R$,Gbe,de,$be,aS,Vbe(),()=>{})},"registerDiagram"),cy=o(t=>{if(t in A4)return A4[t];throw new nS(t)},"getDiagram"),nS=class extends Error{static{o(this,"DiagramNotFoundError")}constructor(e){super(`Diagram ${e} not found.`)}}});var ul,vh,ja,cl,nc,uy,sS,oS,L4,D4,N$,Ube,Hbe,Ybe,Wbe,qbe,Xbe,jbe,Kbe,Qbe,Zbe,Jbe,e4e,t4e,r4e,n4e,i4e,a4e,M$,s4e,o4e,I$,l4e,c4e,u4e,h4e,xh,f4e,d4e,p4e,m4e,g4e,hy,lS=R(()=>{"use strict";_t();rr();bi();ul=[],vh=[""],ja="global",cl="",nc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],uy=[],sS="",oS=!1,L4=4,D4=2,Ube=o(function(){return N$},"getC4Type"),Hbe=o(function(t){N$=qr(t,de())},"setC4Type"),Ybe=o(function(t,e,r,n,i,a,s,l,u){if(t==null||e===void 0||e===null||r===void 0||r===null||n===void 0||n===null)return;let h={},f=uy.find(d=>d.from===e&&d.to===r);if(f?h=f:uy.push(h),h.type=t,h.from=e,h.to=r,h.label={text:n},i==null)h.techn={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.techn={text:i};if(a==null)h.descr={text:""};else if(typeof a=="object"){let[d,p]=Object.entries(a)[0];h[d]={text:p}}else h.descr={text:a};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]=p}else h.tags=l;if(typeof u=="object"){let[d,p]=Object.entries(u)[0];h[d]=p}else h.link=u;h.wrap=xh()},"addRel"),Wbe=o(function(t,e,r,n,i,a,s){if(e===null||r===null)return;let l={},u=ul.find(h=>h.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,ul.push(l)),r==null?l.label={text:""}:l.label={text:r},n==null)l.descr={text:""};else if(typeof n=="object"){let[h,f]=Object.entries(n)[0];l[h]={text:f}}else l.descr={text:n};if(typeof i=="object"){let[h,f]=Object.entries(i)[0];l[h]=f}else l.sprite=i;if(typeof a=="object"){let[h,f]=Object.entries(a)[0];l[h]=f}else l.tags=a;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];l[h]=f}else l.link=s;l.typeC4Shape={text:t},l.parentBoundary=ja,l.wrap=xh()},"addPersonOrSystem"),qbe=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ul.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ul.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=xh(),u.typeC4Shape={text:t},u.parentBoundary=ja},"addContainer"),Xbe=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ul.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ul.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=xh(),u.typeC4Shape={text:t},u.parentBoundary=ja},"addComponent"),jbe=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=nc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,nc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"system"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=ja,a.wrap=xh(),cl=ja,ja=t,vh.push(cl)},"addPersonOrSystemBoundary"),Kbe=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=nc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,nc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"container"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=ja,a.wrap=xh(),cl=ja,ja=t,vh.push(cl)},"addContainerBoundary"),Qbe=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=nc.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,nc.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.type={text:"node"};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.type={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.nodeType=t,u.parentBoundary=ja,u.wrap=xh(),cl=ja,ja=e,vh.push(cl)},"addDeploymentNode"),Zbe=o(function(){ja=cl,vh.pop(),cl=vh.pop(),vh.push(cl)},"popBoundaryParseStack"),Jbe=o(function(t,e,r,n,i,a,s,l,u,h,f){let d=ul.find(p=>p.alias===e);if(!(d===void 0&&(d=nc.find(p=>p.alias===e),d===void 0))){if(r!=null)if(typeof r=="object"){let[p,m]=Object.entries(r)[0];d[p]=m}else d.bgColor=r;if(n!=null)if(typeof n=="object"){let[p,m]=Object.entries(n)[0];d[p]=m}else d.fontColor=n;if(i!=null)if(typeof i=="object"){let[p,m]=Object.entries(i)[0];d[p]=m}else d.borderColor=i;if(a!=null)if(typeof a=="object"){let[p,m]=Object.entries(a)[0];d[p]=m}else d.shadowing=a;if(s!=null)if(typeof s=="object"){let[p,m]=Object.entries(s)[0];d[p]=m}else d.shape=s;if(l!=null)if(typeof l=="object"){let[p,m]=Object.entries(l)[0];d[p]=m}else d.sprite=l;if(u!=null)if(typeof u=="object"){let[p,m]=Object.entries(u)[0];d[p]=m}else d.techn=u;if(h!=null)if(typeof h=="object"){let[p,m]=Object.entries(h)[0];d[p]=m}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,m]=Object.entries(f)[0];d[p]=m}else d.legendSprite=f}},"updateElStyle"),e4e=o(function(t,e,r,n,i,a,s){let l=uy.find(u=>u.from===e&&u.to===r);if(l!==void 0){if(n!=null)if(typeof n=="object"){let[u,h]=Object.entries(n)[0];l[u]=h}else l.textColor=n;if(i!=null)if(typeof i=="object"){let[u,h]=Object.entries(i)[0];l[u]=h}else l.lineColor=i;if(a!=null)if(typeof a=="object"){let[u,h]=Object.entries(a)[0];l[u]=parseInt(h)}else l.offsetX=parseInt(a);if(s!=null)if(typeof s=="object"){let[u,h]=Object.entries(s)[0];l[u]=parseInt(h)}else l.offsetY=parseInt(s)}},"updateRelStyle"),t4e=o(function(t,e,r){let n=L4,i=D4;if(typeof e=="object"){let a=Object.values(e)[0];n=parseInt(a)}else n=parseInt(e);if(typeof r=="object"){let a=Object.values(r)[0];i=parseInt(a)}else i=parseInt(r);n>=1&&(L4=n),i>=1&&(D4=i)},"updateLayoutConfig"),r4e=o(function(){return L4},"getC4ShapeInRow"),n4e=o(function(){return D4},"getC4BoundaryInRow"),i4e=o(function(){return ja},"getCurrentBoundaryParse"),a4e=o(function(){return cl},"getParentBoundaryParse"),M$=o(function(t){return t==null?ul:ul.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),s4e=o(function(t){return ul.find(e=>e.alias===t)},"getC4Shape"),o4e=o(function(t){return Object.keys(M$(t))},"getC4ShapeKeys"),I$=o(function(t){return t==null?nc:nc.filter(e=>e.parentBoundary===t)},"getBoundaries"),l4e=I$,c4e=o(function(){return uy},"getRels"),u4e=o(function(){return sS},"getTitle"),h4e=o(function(t){oS=t},"setWrap"),xh=o(function(){return oS},"autoWrap"),f4e=o(function(){ul=[],nc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],cl="",ja="global",vh=[""],uy=[],vh=[""],sS="",oS=!1,L4=4,D4=2},"clear"),d4e={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},p4e={FILLED:0,OPEN:1},m4e={LEFTOF:0,RIGHTOF:1,OVER:2},g4e=o(function(t){sS=qr(t,de())},"setTitle"),hy={addPersonOrSystem:Wbe,addPersonOrSystemBoundary:jbe,addContainer:qbe,addContainerBoundary:Kbe,addComponent:Xbe,addDeploymentNode:Qbe,popBoundaryParseStack:Zbe,addRel:Ybe,updateElStyle:Jbe,updateRelStyle:e4e,updateLayoutConfig:t4e,autoWrap:xh,setWrap:h4e,getC4ShapeArray:M$,getC4Shape:s4e,getC4ShapeKeys:o4e,getBoundaries:I$,getBoundarys:l4e,getCurrentBoundaryParse:i4e,getParentBoundaryParse:a4e,getRels:c4e,getTitle:u4e,getC4Type:Ube,getC4ShapeInRow:r4e,getC4BoundaryInRow:n4e,setAccTitle:kr,getAccTitle:Ar,getAccDescription:Lr,setAccDescription:_r,getConfig:o(()=>de().c4,"getConfig"),clear:f4e,LINETYPE:d4e,ARROWTYPE:p4e,PLACEMENT:m4e,setTitle:g4e,setC4Type:Hbe}});function ed(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}var cS=R(()=>{"use strict";o(ed,"ascending")});function uS(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}var O$=R(()=>{"use strict";o(uS,"descending")});function td(t){let e,r,n;t.length!==2?(e=ed,r=o((l,u)=>ed(t(l),u),"compare2"),n=o((l,u)=>t(l)-u,"delta")):(e=t===ed||t===uS?t:y4e,r=t,n=t);function i(l,u,h=0,f=l.length){if(h>>1;r(l[d],u)<0?h=d+1:f=d}while(h>>1;r(l[d],u)<=0?h=d+1:f=d}while(hh&&n(l[d-1],u)>-n(l[d],u)?d-1:d}return o(s,"center"),{left:i,center:s,right:a}}function y4e(){return 0}var hS=R(()=>{"use strict";cS();O$();o(td,"bisector");o(y4e,"zero")});function fS(t){return t===null?NaN:+t}var P$=R(()=>{"use strict";o(fS,"number")});var B$,F$,v4e,x4e,dS,z$=R(()=>{"use strict";cS();hS();P$();B$=td(ed),F$=B$.right,v4e=B$.left,x4e=td(fS).center,dS=F$});function G$({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function b4e({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function w4e({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function T4e(t){return t!==null&&typeof t=="object"?t.valueOf():t}var wp,$$=R(()=>{"use strict";wp=class extends Map{static{o(this,"InternMap")}constructor(e,r=T4e){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[n,i]of e)this.set(n,i)}get(e){return super.get(G$(this,e))}has(e){return super.has(G$(this,e))}set(e,r){return super.set(b4e(this,e),r)}delete(e){return super.delete(w4e(this,e))}};o(G$,"intern_get");o(b4e,"intern_set");o(w4e,"intern_delete");o(T4e,"keyof")});function R4(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=a>=k4e?10:a>=E4e?5:a>=C4e?2:1,l,u,h;return i<0?(h=Math.pow(10,-i)/s,l=Math.round(t*h),u=Math.round(e*h),l/he&&--u,h=-h):(h=Math.pow(10,i)*s,l=Math.round(t/h),u=Math.round(e/h),l*he&&--u),u0))return[];if(t===e)return[t];let n=e=i))return[];let l=a-i+1,u=new Array(l);if(n)if(s<0)for(let h=0;h{"use strict";k4e=Math.sqrt(50),E4e=Math.sqrt(10),C4e=Math.sqrt(2);o(R4,"tickSpec");o(N4,"ticks");o(fy,"tickIncrement");o(Tp,"tickStep")});function M4(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var U$=R(()=>{"use strict";o(M4,"max")});function I4(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var H$=R(()=>{"use strict";o(I4,"min")});function O4(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,a=new Array(i);++n{"use strict";o(O4,"range")});var bh=R(()=>{"use strict";z$();hS();U$();H$();Y$();V$();$$()});function pS(t){return t}var W$=R(()=>{"use strict";o(pS,"default")});function S4e(t){return"translate("+t+",0)"}function A4e(t){return"translate(0,"+t+")"}function _4e(t){return e=>+t(e)}function L4e(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function D4e(){return!this.__axis}function X$(t,e){var r=[],n=null,i=null,a=6,s=6,l=3,u=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=t===B4||t===P4?-1:1,f=t===P4||t===mS?"x":"y",d=t===B4||t===gS?S4e:A4e;function p(m){var g=n??(e.ticks?e.ticks.apply(e,r):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,r):pS),v=Math.max(a,0)+l,x=e.range(),b=+x[0]+u,w=+x[x.length-1]+u,S=(e.bandwidth?L4e:_4e)(e.copy(),u),T=m.selection?m.selection():m,E=T.selectAll(".domain").data([null]),_=T.selectAll(".tick").data(g,e).order(),A=_.exit(),L=_.enter().append("g").attr("class","tick"),M=_.select("line"),N=_.select("text");E=E.merge(E.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),_=_.merge(L),M=M.merge(L.append("line").attr("stroke","currentColor").attr(f+"2",h*a)),N=N.merge(L.append("text").attr("fill","currentColor").attr(f,h*v).attr("dy",t===B4?"0em":t===gS?"0.71em":"0.32em")),m!==T&&(E=E.transition(m),_=_.transition(m),M=M.transition(m),N=N.transition(m),A=A.transition(m).attr("opacity",q$).attr("transform",function(k){return isFinite(k=S(k))?d(k+u):this.getAttribute("transform")}),L.attr("opacity",q$).attr("transform",function(k){var I=this.parentNode.__axis;return d((I&&isFinite(I=I(k))?I:S(k))+u)})),A.remove(),E.attr("d",t===P4||t===mS?s?"M"+h*s+","+b+"H"+u+"V"+w+"H"+h*s:"M"+u+","+b+"V"+w:s?"M"+b+","+h*s+"V"+u+"H"+w+"V"+h*s:"M"+b+","+u+"H"+w),_.attr("opacity",1).attr("transform",function(k){return d(S(k)+u)}),M.attr(f+"2",h*a),N.attr(f,h*v).text(y),T.filter(D4e).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===mS?"start":t===P4?"end":"middle"),T.each(function(){this.__axis=S})}return o(p,"axis"),p.scale=function(m){return arguments.length?(e=m,p):e},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(m){return arguments.length?(r=m==null?[]:Array.from(m),p):r.slice()},p.tickValues=function(m){return arguments.length?(n=m==null?null:Array.from(m),p):n&&n.slice()},p.tickFormat=function(m){return arguments.length?(i=m,p):i},p.tickSize=function(m){return arguments.length?(a=s=+m,p):a},p.tickSizeInner=function(m){return arguments.length?(a=+m,p):a},p.tickSizeOuter=function(m){return arguments.length?(s=+m,p):s},p.tickPadding=function(m){return arguments.length?(l=+m,p):l},p.offset=function(m){return arguments.length?(u=+m,p):u},p}function yS(t){return X$(B4,t)}function vS(t){return X$(gS,t)}var B4,mS,gS,P4,q$,j$=R(()=>{"use strict";W$();B4=1,mS=2,gS=3,P4=4,q$=1e-6;o(S4e,"translateX");o(A4e,"translateY");o(_4e,"number");o(L4e,"center");o(D4e,"entering");o(X$,"axis");o(yS,"axisTop");o(vS,"axisBottom")});var K$=R(()=>{"use strict";j$()});function Z$(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}function M4e(t,e){for(var r=0,n=t.length,i;r{"use strict";R4e={value:o(()=>{},"value")};o(Z$,"dispatch");o(F4,"Dispatch");o(N4e,"parseTypenames");F4.prototype=Z$.prototype={constructor:F4,on:o(function(t,e){var r=this._,n=N4e(t+"",r),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var r=new Array(i),n=0,i,a;n{"use strict";J$()});var z4,wS,TS=R(()=>{"use strict";z4="http://www.w3.org/1999/xhtml",wS={svg:"http://www.w3.org/2000/svg",xhtml:z4,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function ic(t){var e=t+="",r=e.indexOf(":");return r>=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),wS.hasOwnProperty(e)?{space:wS[e],local:t}:t}var G4=R(()=>{"use strict";TS();o(ic,"default")});function I4e(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===z4&&e.documentElement.namespaceURI===z4?e.createElement(t):e.createElementNS(r,t)}}function O4e(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function dy(t){var e=ic(t);return(e.local?O4e:I4e)(e)}var kS=R(()=>{"use strict";G4();TS();o(I4e,"creatorInherit");o(O4e,"creatorFixed");o(dy,"default")});function P4e(){}function wh(t){return t==null?P4e:function(){return this.querySelector(t)}}var $4=R(()=>{"use strict";o(P4e,"none");o(wh,"default")});function ES(t){typeof t!="function"&&(t=wh(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";hl();$4();o(ES,"default")});function CS(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}var tV=R(()=>{"use strict";o(CS,"array")});function B4e(){return[]}function kp(t){return t==null?B4e:function(){return this.querySelectorAll(t)}}var SS=R(()=>{"use strict";o(B4e,"empty");o(kp,"default")});function F4e(t){return function(){return CS(t.apply(this,arguments))}}function AS(t){typeof t=="function"?t=F4e(t):t=kp(t);for(var e=this._groups,r=e.length,n=[],i=[],a=0;a{"use strict";hl();tV();SS();o(F4e,"arrayAll");o(AS,"default")});function Ep(t){return function(){return this.matches(t)}}function V4(t){return function(e){return e.matches(t)}}var py=R(()=>{"use strict";o(Ep,"default");o(V4,"childMatcher")});function G4e(t){return function(){return z4e.call(this.children,t)}}function $4e(){return this.firstElementChild}function _S(t){return this.select(t==null?$4e:G4e(typeof t=="function"?t:V4(t)))}var z4e,nV=R(()=>{"use strict";py();z4e=Array.prototype.find;o(G4e,"childFind");o($4e,"childFirst");o(_S,"default")});function U4e(){return Array.from(this.children)}function H4e(t){return function(){return V4e.call(this.children,t)}}function LS(t){return this.selectAll(t==null?U4e:H4e(typeof t=="function"?t:V4(t)))}var V4e,iV=R(()=>{"use strict";py();V4e=Array.prototype.filter;o(U4e,"children");o(H4e,"childrenFilter");o(LS,"default")});function DS(t){typeof t!="function"&&(t=Ep(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";hl();py();o(DS,"default")});function my(t){return new Array(t.length)}var RS=R(()=>{"use strict";o(my,"default")});function NS(){return new Zn(this._enter||this._groups.map(my),this._parents)}function gy(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}var MS=R(()=>{"use strict";RS();hl();o(NS,"default");o(gy,"EnterNode");gy.prototype={constructor:gy,appendChild:o(function(t){return this._parent.insertBefore(t,this._next)},"appendChild"),insertBefore:o(function(t,e){return this._parent.insertBefore(t,e)},"insertBefore"),querySelector:o(function(t){return this._parent.querySelector(t)},"querySelector"),querySelectorAll:o(function(t){return this._parent.querySelectorAll(t)},"querySelectorAll")}});function IS(t){return function(){return t}}var sV=R(()=>{"use strict";o(IS,"default")});function Y4e(t,e,r,n,i,a){for(var s=0,l,u=e.length,h=a.length;s=w&&(w=b+1);!(T=v[w])&&++w{"use strict";hl();MS();sV();o(Y4e,"bindIndex");o(W4e,"bindKey");o(q4e,"datum");o(OS,"default");o(X4e,"arraylike")});function PS(){return new Zn(this._exit||this._groups.map(my),this._parents)}var lV=R(()=>{"use strict";RS();hl();o(PS,"default")});function BS(t,e,r){var n=this.enter(),i=this,a=this.exit();return typeof t=="function"?(n=t(n),n&&(n=n.selection())):n=n.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),r==null?a.remove():r(a),n&&i?n.merge(i).order():i}var cV=R(()=>{"use strict";o(BS,"default")});function FS(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,a=n.length,s=Math.min(i,a),l=new Array(i),u=0;u{"use strict";hl();o(FS,"default")});function zS(){for(var t=this._groups,e=-1,r=t.length;++e=0;)(s=n[i])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}var hV=R(()=>{"use strict";o(zS,"default")});function GS(t){t||(t=j4e);function e(d,p){return d&&p?t(d.__data__,p.__data__):!d-!p}o(e,"compareNode");for(var r=this._groups,n=r.length,i=new Array(n),a=0;ae?1:t>=e?0:NaN}var fV=R(()=>{"use strict";hl();o(GS,"default");o(j4e,"ascending")});function $S(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}var dV=R(()=>{"use strict";o($S,"default")});function VS(){return Array.from(this)}var pV=R(()=>{"use strict";o(VS,"default")});function US(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(US,"default")});function HS(){let t=0;for(let e of this)++t;return t}var gV=R(()=>{"use strict";o(HS,"default")});function YS(){return!this.node()}var yV=R(()=>{"use strict";o(YS,"default")});function WS(t){for(var e=this._groups,r=0,n=e.length;r{"use strict";o(WS,"default")});function K4e(t){return function(){this.removeAttribute(t)}}function Q4e(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Z4e(t,e){return function(){this.setAttribute(t,e)}}function J4e(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function e3e(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function t3e(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function qS(t,e){var r=ic(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((e==null?r.local?Q4e:K4e:typeof e=="function"?r.local?t3e:e3e:r.local?J4e:Z4e)(r,e))}var xV=R(()=>{"use strict";G4();o(K4e,"attrRemove");o(Q4e,"attrRemoveNS");o(Z4e,"attrConstant");o(J4e,"attrConstantNS");o(e3e,"attrFunction");o(t3e,"attrFunctionNS");o(qS,"default")});function yy(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}var XS=R(()=>{"use strict";o(yy,"default")});function r3e(t){return function(){this.style.removeProperty(t)}}function n3e(t,e,r){return function(){this.style.setProperty(t,e,r)}}function i3e(t,e,r){return function(){var n=e.apply(this,arguments);n==null?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function jS(t,e,r){return arguments.length>1?this.each((e==null?r3e:typeof e=="function"?i3e:n3e)(t,e,r??"")):Th(this.node(),t)}function Th(t,e){return t.style.getPropertyValue(e)||yy(t).getComputedStyle(t,null).getPropertyValue(e)}var KS=R(()=>{"use strict";XS();o(r3e,"styleRemove");o(n3e,"styleConstant");o(i3e,"styleFunction");o(jS,"default");o(Th,"styleValue")});function a3e(t){return function(){delete this[t]}}function s3e(t,e){return function(){this[t]=e}}function o3e(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function QS(t,e){return arguments.length>1?this.each((e==null?a3e:typeof e=="function"?o3e:s3e)(t,e)):this.node()[t]}var bV=R(()=>{"use strict";o(a3e,"propertyRemove");o(s3e,"propertyConstant");o(o3e,"propertyFunction");o(QS,"default")});function wV(t){return t.trim().split(/^|\s+/)}function ZS(t){return t.classList||new TV(t)}function TV(t){this._node=t,this._names=wV(t.getAttribute("class")||"")}function kV(t,e){for(var r=ZS(t),n=-1,i=e.length;++n{"use strict";o(wV,"classArray");o(ZS,"classList");o(TV,"ClassList");TV.prototype={add:o(function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:o(function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:o(function(t){return this._names.indexOf(t)>=0},"contains")};o(kV,"classedAdd");o(EV,"classedRemove");o(l3e,"classedTrue");o(c3e,"classedFalse");o(u3e,"classedFunction");o(JS,"default")});function h3e(){this.textContent=""}function f3e(t){return function(){this.textContent=t}}function d3e(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function eA(t){return arguments.length?this.each(t==null?h3e:(typeof t=="function"?d3e:f3e)(t)):this.node().textContent}var SV=R(()=>{"use strict";o(h3e,"textRemove");o(f3e,"textConstant");o(d3e,"textFunction");o(eA,"default")});function p3e(){this.innerHTML=""}function m3e(t){return function(){this.innerHTML=t}}function g3e(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function tA(t){return arguments.length?this.each(t==null?p3e:(typeof t=="function"?g3e:m3e)(t)):this.node().innerHTML}var AV=R(()=>{"use strict";o(p3e,"htmlRemove");o(m3e,"htmlConstant");o(g3e,"htmlFunction");o(tA,"default")});function y3e(){this.nextSibling&&this.parentNode.appendChild(this)}function rA(){return this.each(y3e)}var _V=R(()=>{"use strict";o(y3e,"raise");o(rA,"default")});function v3e(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function nA(){return this.each(v3e)}var LV=R(()=>{"use strict";o(v3e,"lower");o(nA,"default")});function iA(t){var e=typeof t=="function"?t:dy(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}var DV=R(()=>{"use strict";kS();o(iA,"default")});function x3e(){return null}function aA(t,e){var r=typeof t=="function"?t:dy(t),n=e==null?x3e:typeof e=="function"?e:wh(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}var RV=R(()=>{"use strict";kS();$4();o(x3e,"constantNull");o(aA,"default")});function b3e(){var t=this.parentNode;t&&t.removeChild(this)}function sA(){return this.each(b3e)}var NV=R(()=>{"use strict";o(b3e,"remove");o(sA,"default")});function w3e(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function T3e(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function oA(t){return this.select(t?T3e:w3e)}var MV=R(()=>{"use strict";o(w3e,"selection_cloneShallow");o(T3e,"selection_cloneDeep");o(oA,"default")});function lA(t){return arguments.length?this.property("__data__",t):this.node().__data__}var IV=R(()=>{"use strict";o(lA,"default")});function k3e(t){return function(e){t.call(this,e,this.__data__)}}function E3e(t){return t.trim().split(/^|\s+/).map(function(e){var r="",n=e.indexOf(".");return n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function C3e(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,i=e.length,a;r{"use strict";o(k3e,"contextListener");o(E3e,"parseTypenames");o(C3e,"onRemove");o(S3e,"onAdd");o(cA,"default")});function PV(t,e,r){var n=yy(t),i=n.CustomEvent;typeof i=="function"?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function A3e(t,e){return function(){return PV(this,t,e)}}function _3e(t,e){return function(){return PV(this,t,e.apply(this,arguments))}}function uA(t,e){return this.each((typeof e=="function"?_3e:A3e)(t,e))}var BV=R(()=>{"use strict";XS();o(PV,"dispatchEvent");o(A3e,"dispatchConstant");o(_3e,"dispatchFunction");o(uA,"default")});function*hA(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(hA,"default")});function Zn(t,e){this._groups=t,this._parents=e}function zV(){return new Zn([[document.documentElement]],fA)}function L3e(){return this}var fA,cu,hl=R(()=>{"use strict";eV();rV();nV();iV();aV();oV();MS();lV();cV();uV();hV();fV();dV();pV();mV();gV();yV();vV();xV();KS();bV();CV();SV();AV();_V();LV();DV();RV();NV();MV();IV();OV();BV();FV();fA=[null];o(Zn,"Selection");o(zV,"selection");o(L3e,"selection_selection");Zn.prototype=zV.prototype={constructor:Zn,select:ES,selectAll:AS,selectChild:_S,selectChildren:LS,filter:DS,data:OS,enter:NS,exit:PS,join:BS,merge:FS,selection:L3e,order:zS,sort:GS,call:$S,nodes:VS,node:US,size:HS,empty:YS,each:WS,attr:qS,style:jS,property:QS,classed:JS,text:eA,html:tA,raise:rA,lower:nA,append:iA,insert:aA,remove:sA,clone:oA,datum:lA,on:cA,dispatch:uA,[Symbol.iterator]:hA};cu=zV});function $e(t){return typeof t=="string"?new Zn([[document.querySelector(t)]],[document.documentElement]):new Zn([[t]],fA)}var GV=R(()=>{"use strict";hl();o($e,"default")});var fl=R(()=>{"use strict";py();G4();GV();hl();$4();SS();KS()});var $V=R(()=>{"use strict"});function kh(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function Cp(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}var dA=R(()=>{"use strict";o(kh,"default");o(Cp,"extend")});function Eh(){}function UV(){return this.rgb().formatHex()}function B3e(){return this.rgb().formatHex8()}function F3e(){return KV(this).formatHsl()}function HV(){return this.rgb().formatRgb()}function pl(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=D3e.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?YV(e):r===3?new la(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?U4(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?U4(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=R3e.exec(t))?new la(e[1],e[2],e[3],1):(e=N3e.exec(t))?new la(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=M3e.exec(t))?U4(e[1],e[2],e[3],e[4]):(e=I3e.exec(t))?U4(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=O3e.exec(t))?XV(e[1],e[2]/100,e[3]/100,1):(e=P3e.exec(t))?XV(e[1],e[2]/100,e[3]/100,e[4]):VV.hasOwnProperty(t)?YV(VV[t]):t==="transparent"?new la(NaN,NaN,NaN,0):null}function YV(t){return new la(t>>16&255,t>>8&255,t&255,1)}function U4(t,e,r,n){return n<=0&&(t=e=r=NaN),new la(t,e,r,n)}function mA(t){return t instanceof Eh||(t=pl(t)),t?(t=t.rgb(),new la(t.r,t.g,t.b,t.opacity)):new la}function Ap(t,e,r,n){return arguments.length===1?mA(t):new la(t,e,r,n??1)}function la(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function WV(){return`#${rd(this.r)}${rd(this.g)}${rd(this.b)}`}function z3e(){return`#${rd(this.r)}${rd(this.g)}${rd(this.b)}${rd((isNaN(this.opacity)?1:this.opacity)*255)}`}function qV(){let t=W4(this.opacity);return`${t===1?"rgb(":"rgba("}${nd(this.r)}, ${nd(this.g)}, ${nd(this.b)}${t===1?")":`, ${t})`}`}function W4(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function nd(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function rd(t){return t=nd(t),(t<16?"0":"")+t.toString(16)}function XV(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new dl(t,e,r,n)}function KV(t){if(t instanceof dl)return new dl(t.h,t.s,t.l,t.opacity);if(t instanceof Eh||(t=pl(t)),!t)return new dl;if(t instanceof dl)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),s=NaN,l=a-i,u=(a+i)/2;return l?(e===a?s=(r-n)/l+(r0&&u<1?0:s,new dl(s,l,u,t.opacity)}function QV(t,e,r,n){return arguments.length===1?KV(t):new dl(t,e,r,n??1)}function dl(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function jV(t){return t=(t||0)%360,t<0?t+360:t}function H4(t){return Math.max(0,Math.min(1,t||0))}function pA(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}var vy,Y4,Sp,xy,ac,D3e,R3e,N3e,M3e,I3e,O3e,P3e,VV,gA=R(()=>{"use strict";dA();o(Eh,"Color");vy=.7,Y4=1/vy,Sp="\\s*([+-]?\\d+)\\s*",xy="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ac="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",D3e=/^#([0-9a-f]{3,8})$/,R3e=new RegExp(`^rgb\\(${Sp},${Sp},${Sp}\\)$`),N3e=new RegExp(`^rgb\\(${ac},${ac},${ac}\\)$`),M3e=new RegExp(`^rgba\\(${Sp},${Sp},${Sp},${xy}\\)$`),I3e=new RegExp(`^rgba\\(${ac},${ac},${ac},${xy}\\)$`),O3e=new RegExp(`^hsl\\(${xy},${ac},${ac}\\)$`),P3e=new RegExp(`^hsla\\(${xy},${ac},${ac},${xy}\\)$`),VV={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};kh(Eh,pl,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:UV,formatHex:UV,formatHex8:B3e,formatHsl:F3e,formatRgb:HV,toString:HV});o(UV,"color_formatHex");o(B3e,"color_formatHex8");o(F3e,"color_formatHsl");o(HV,"color_formatRgb");o(pl,"color");o(YV,"rgbn");o(U4,"rgba");o(mA,"rgbConvert");o(Ap,"rgb");o(la,"Rgb");kh(la,Ap,Cp(Eh,{brighter(t){return t=t==null?Y4:Math.pow(Y4,t),new la(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?vy:Math.pow(vy,t),new la(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new la(nd(this.r),nd(this.g),nd(this.b),W4(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:WV,formatHex:WV,formatHex8:z3e,formatRgb:qV,toString:qV}));o(WV,"rgb_formatHex");o(z3e,"rgb_formatHex8");o(qV,"rgb_formatRgb");o(W4,"clampa");o(nd,"clampi");o(rd,"hex");o(XV,"hsla");o(KV,"hslConvert");o(QV,"hsl");o(dl,"Hsl");kh(dl,QV,Cp(Eh,{brighter(t){return t=t==null?Y4:Math.pow(Y4,t),new dl(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?vy:Math.pow(vy,t),new dl(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new la(pA(t>=240?t-240:t+120,i,n),pA(t,i,n),pA(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new dl(jV(this.h),H4(this.s),H4(this.l),W4(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=W4(this.opacity);return`${t===1?"hsl(":"hsla("}${jV(this.h)}, ${H4(this.s)*100}%, ${H4(this.l)*100}%${t===1?")":`, ${t})`}`}}));o(jV,"clamph");o(H4,"clampt");o(pA,"hsl2rgb")});var ZV,JV,eU=R(()=>{"use strict";ZV=Math.PI/180,JV=180/Math.PI});function sU(t){if(t instanceof sc)return new sc(t.l,t.a,t.b,t.opacity);if(t instanceof uu)return oU(t);t instanceof la||(t=mA(t));var e=bA(t.r),r=bA(t.g),n=bA(t.b),i=yA((.2225045*e+.7168786*r+.0606169*n)/rU),a,s;return e===r&&r===n?a=s=i:(a=yA((.4360747*e+.3850649*r+.1430804*n)/tU),s=yA((.0139322*e+.0971045*r+.7141733*n)/nU)),new sc(116*i-16,500*(a-i),200*(i-s),t.opacity)}function wA(t,e,r,n){return arguments.length===1?sU(t):new sc(t,e,r,n??1)}function sc(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function yA(t){return t>G3e?Math.pow(t,1/3):t/aU+iU}function vA(t){return t>_p?t*t*t:aU*(t-iU)}function xA(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function bA(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function $3e(t){if(t instanceof uu)return new uu(t.h,t.c,t.l,t.opacity);if(t instanceof sc||(t=sU(t)),t.a===0&&t.b===0)return new uu(NaN,0{"use strict";dA();gA();eU();q4=18,tU=.96422,rU=1,nU=.82521,iU=4/29,_p=6/29,aU=3*_p*_p,G3e=_p*_p*_p;o(sU,"labConvert");o(wA,"lab");o(sc,"Lab");kh(sc,wA,Cp(Eh,{brighter(t){return new sc(this.l+q4*(t??1),this.a,this.b,this.opacity)},darker(t){return new sc(this.l-q4*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=tU*vA(e),t=rU*vA(t),r=nU*vA(r),new la(xA(3.1338561*e-1.6168667*t-.4906146*r),xA(-.9787684*e+1.9161415*t+.033454*r),xA(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));o(yA,"xyz2lab");o(vA,"lab2xyz");o(xA,"lrgb2rgb");o(bA,"rgb2lrgb");o($3e,"hclConvert");o(by,"hcl");o(uu,"Hcl");o(oU,"hcl2lab");kh(uu,by,Cp(Eh,{brighter(t){return new uu(this.h,this.c,this.l+q4*(t??1),this.opacity)},darker(t){return new uu(this.h,this.c,this.l-q4*(t??1),this.opacity)},rgb(){return oU(this).rgb()}}))});var Lp=R(()=>{"use strict";gA();lU()});function TA(t,e,r,n,i){var a=t*t,s=a*t;return((1-3*t+3*a-s)*e+(4-6*a+3*s)*r+(1+3*t+3*a-3*s)*n+s*i)/6}function kA(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],s=n>0?t[n-1]:2*i-a,l=n{"use strict";o(TA,"basis");o(kA,"default")});function CA(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],a=t[n%e],s=t[(n+1)%e],l=t[(n+2)%e];return TA((r-n/e)*e,i,a,s,l)}}var cU=R(()=>{"use strict";EA();o(CA,"default")});var Dp,SA=R(()=>{"use strict";Dp=o(t=>()=>t,"default")});function uU(t,e){return function(r){return t+r*e}}function V3e(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function hU(t,e){var r=e-t;return r?uU(t,r>180||r<-180?r-360*Math.round(r/360):r):Dp(isNaN(t)?e:t)}function fU(t){return(t=+t)==1?hu:function(e,r){return r-e?V3e(e,r,t):Dp(isNaN(e)?r:e)}}function hu(t,e){var r=e-t;return r?uU(t,r):Dp(isNaN(t)?e:t)}var AA=R(()=>{"use strict";SA();o(uU,"linear");o(V3e,"exponential");o(hU,"hue");o(fU,"gamma");o(hu,"nogamma")});function dU(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),a=new Array(r),s,l;for(s=0;s{"use strict";Lp();EA();cU();AA();id=o(function t(e){var r=fU(e);function n(i,a){var s=r((i=Ap(i)).r,(a=Ap(a)).r),l=r(i.g,a.g),u=r(i.b,a.b),h=hu(i.opacity,a.opacity);return function(f){return i.r=s(f),i.g=l(f),i.b=u(f),i.opacity=h(f),i+""}}return o(n,"rgb"),n.gamma=t,n},"rgbGamma")(1);o(dU,"rgbSpline");U3e=dU(kA),H3e=dU(CA)});function LA(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(a){for(i=0;i{"use strict";o(LA,"default");o(pU,"isNumberArray")});function gU(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),a=new Array(r),s;for(s=0;s{"use strict";X4();o(gU,"genericArray")});function DA(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}var vU=R(()=>{"use strict";o(DA,"default")});function ji(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}var wy=R(()=>{"use strict";o(ji,"default")});function RA(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=Ch(t[i],e[i]):n[i]=e[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var xU=R(()=>{"use strict";X4();o(RA,"default")});function Y3e(t){return function(){return t}}function W3e(t){return function(e){return t(e)+""}}function Rp(t,e){var r=MA.lastIndex=NA.lastIndex=0,n,i,a,s=-1,l=[],u=[];for(t=t+"",e=e+"";(n=MA.exec(t))&&(i=NA.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),l[s]?l[s]+=a:l[++s]=a),(n=n[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,u.push({i:s,x:ji(n,i)})),r=NA.lastIndex;return r{"use strict";wy();MA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,NA=new RegExp(MA.source,"g");o(Y3e,"zero");o(W3e,"one");o(Rp,"default")});function Ch(t,e){var r=typeof e,n;return e==null||r==="boolean"?Dp(e):(r==="number"?ji:r==="string"?(n=pl(e))?(e=n,id):Rp:e instanceof pl?id:e instanceof Date?DA:pU(e)?LA:Array.isArray(e)?gU:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?RA:ji)(t,e)}var X4=R(()=>{"use strict";Lp();_A();yU();vU();wy();xU();IA();SA();mU();o(Ch,"default")});function j4(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var bU=R(()=>{"use strict";o(j4,"default")});function Q4(t,e,r,n,i,a){var s,l,u;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(u=t*r+e*n)&&(r-=t*u,n-=e*u),(l=Math.sqrt(r*r+n*n))&&(r/=l,n/=l,u/=l),t*n{"use strict";wU=180/Math.PI,K4={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};o(Q4,"default")});function kU(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?K4:Q4(e.a,e.b,e.c,e.d,e.e,e.f)}function EU(t){return t==null?K4:(Z4||(Z4=document.createElementNS("http://www.w3.org/2000/svg","g")),Z4.setAttribute("transform",t),(t=Z4.transform.baseVal.consolidate())?(t=t.matrix,Q4(t.a,t.b,t.c,t.d,t.e,t.f)):K4)}var Z4,CU=R(()=>{"use strict";TU();o(kU,"parseCss");o(EU,"parseSvg")});function SU(t,e,r,n){function i(h){return h.length?h.pop()+" ":""}o(i,"pop");function a(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push("translate(",null,e,null,r);g.push({i:y-4,x:ji(h,d)},{i:y-2,x:ji(f,p)})}else(d||p)&&m.push("translate("+d+e+p+r)}o(a,"translate");function s(h,f,d,p){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),p.push({i:d.push(i(d)+"rotate(",null,n)-2,x:ji(h,f)})):f&&d.push(i(d)+"rotate("+f+n)}o(s,"rotate");function l(h,f,d,p){h!==f?p.push({i:d.push(i(d)+"skewX(",null,n)-2,x:ji(h,f)}):f&&d.push(i(d)+"skewX("+f+n)}o(l,"skewX");function u(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push(i(m)+"scale(",null,",",null,")");g.push({i:y-4,x:ji(h,d)},{i:y-2,x:ji(f,p)})}else(d!==1||p!==1)&&m.push(i(m)+"scale("+d+","+p+")")}return o(u,"scale"),function(h,f){var d=[],p=[];return h=t(h),f=t(f),a(h.translateX,h.translateY,f.translateX,f.translateY,d,p),s(h.rotate,f.rotate,d,p),l(h.skewX,f.skewX,d,p),u(h.scaleX,h.scaleY,f.scaleX,f.scaleY,d,p),h=f=null,function(m){for(var g=-1,y=p.length,v;++g{"use strict";wy();CU();o(SU,"interpolateTransform");OA=SU(kU,"px, ","px)","deg)"),PA=SU(EU,", ",")",")")});function _U(t){return function(e,r){var n=t((e=by(e)).h,(r=by(r)).h),i=hu(e.c,r.c),a=hu(e.l,r.l),s=hu(e.opacity,r.opacity);return function(l){return e.h=n(l),e.c=i(l),e.l=a(l),e.opacity=s(l),e+""}}}var BA,q3e,LU=R(()=>{"use strict";Lp();AA();o(_U,"hcl");BA=_U(hU),q3e=_U(hu)});var Np=R(()=>{"use strict";X4();wy();bU();IA();AU();_A();LU()});function Ay(){return ad||(NU(X3e),ad=Cy.now()+t3)}function X3e(){ad=0}function Sy(){this._call=this._time=this._next=null}function r3(t,e,r){var n=new Sy;return n.restart(t,e,r),n}function MU(){Ay(),++Mp;for(var t=J4,e;t;)(e=ad-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Mp}function DU(){ad=(e3=Cy.now())+t3,Mp=ky=0;try{MU()}finally{Mp=0,K3e(),ad=0}}function j3e(){var t=Cy.now(),e=t-e3;e>RU&&(t3-=e,e3=t)}function K3e(){for(var t,e=J4,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:J4=r);Ey=t,FA(n)}function FA(t){if(!Mp){ky&&(ky=clearTimeout(ky));var e=t-ad;e>24?(t<1/0&&(ky=setTimeout(DU,t-Cy.now()-t3)),Ty&&(Ty=clearInterval(Ty))):(Ty||(e3=Cy.now(),Ty=setInterval(j3e,RU)),Mp=1,NU(DU))}}var Mp,ky,Ty,RU,J4,Ey,e3,ad,t3,Cy,NU,zA=R(()=>{"use strict";Mp=0,ky=0,Ty=0,RU=1e3,e3=0,ad=0,t3=0,Cy=typeof performance=="object"&&performance.now?performance:Date,NU=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};o(Ay,"now");o(X3e,"clearNow");o(Sy,"Timer");Sy.prototype=r3.prototype={constructor:Sy,restart:o(function(t,e,r){if(typeof t!="function")throw new TypeError("callback is not a function");r=(r==null?Ay():+r)+(e==null?0:+e),!this._next&&Ey!==this&&(Ey?Ey._next=this:J4=this,Ey=this),this._call=t,this._time=r,FA()},"restart"),stop:o(function(){this._call&&(this._call=null,this._time=1/0,FA())},"stop")};o(r3,"timer");o(MU,"timerFlush");o(DU,"wake");o(j3e,"poke");o(K3e,"nap");o(FA,"sleep")});function _y(t,e,r){var n=new Sy;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var IU=R(()=>{"use strict";zA();o(_y,"default")});var n3=R(()=>{"use strict";zA();IU()});function fu(t,e,r,n,i,a){var s=t.__transition;if(!s)t.__transition={};else if(r in s)return;J3e(t,r,{name:e,index:n,group:i,on:Q3e,tween:Z3e,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:BU})}function Dy(t,e){var r=Mi(t,e);if(r.state>BU)throw new Error("too late; already scheduled");return r}function ca(t,e){var r=Mi(t,e);if(r.state>i3)throw new Error("too late; already running");return r}function Mi(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function J3e(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=r3(a,0,r.time);function a(h){r.state=OU,r.timer.restart(s,r.delay,r.time),r.delay<=h&&s(h-r.delay)}o(a,"schedule");function s(h){var f,d,p,m;if(r.state!==OU)return u();for(f in n)if(m=n[f],m.name===r.name){if(m.state===i3)return _y(s);m.state===PU?(m.state=Ly,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete n[f]):+f{"use strict";bS();n3();Q3e=xS("start","end","cancel","interrupt"),Z3e=[],BU=0,OU=1,a3=2,i3=3,PU=4,s3=5,Ly=6;o(fu,"default");o(Dy,"init");o(ca,"set");o(Mi,"get");o(J3e,"create")});function Ry(t,e){var r=t.__transition,n,i,a=!0,s;if(r){e=e==null?null:e+"";for(s in r){if((n=r[s]).name!==e){a=!1;continue}i=n.state>a3&&n.state{"use strict";ys();o(Ry,"default")});function GA(t){return this.each(function(){Ry(this,t)})}var zU=R(()=>{"use strict";FU();o(GA,"default")});function e5e(t,e){var r,n;return function(){var i=ca(this,t),a=i.tween;if(a!==r){n=r=a;for(var s=0,l=n.length;s{"use strict";ys();o(e5e,"tweenRemove");o(t5e,"tweenFunction");o($A,"default");o(Ip,"tweenValue")});function My(t,e){var r;return(typeof e=="number"?ji:e instanceof pl?id:(r=pl(e))?(e=r,id):Rp)(t,e)}var VA=R(()=>{"use strict";Lp();Np();o(My,"default")});function r5e(t){return function(){this.removeAttribute(t)}}function n5e(t){return function(){this.removeAttributeNS(t.space,t.local)}}function i5e(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttribute(t);return s===i?null:s===n?a:a=e(n=s,r)}}function a5e(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===n?a:a=e(n=s,r)}}function s5e(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttribute(t):(s=this.getAttribute(t),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function o5e(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function UA(t,e){var r=ic(t),n=r==="transform"?PA:My;return this.attrTween(t,typeof e=="function"?(r.local?o5e:s5e)(r,n,Ip(this,"attr."+t,e)):e==null?(r.local?n5e:r5e)(r):(r.local?a5e:i5e)(r,n,e))}var GU=R(()=>{"use strict";Np();fl();Ny();VA();o(r5e,"attrRemove");o(n5e,"attrRemoveNS");o(i5e,"attrConstant");o(a5e,"attrConstantNS");o(s5e,"attrFunction");o(o5e,"attrFunctionNS");o(UA,"default")});function l5e(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function c5e(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function u5e(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&c5e(t,a)),r}return o(i,"tween"),i._value=e,i}function h5e(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&l5e(t,a)),r}return o(i,"tween"),i._value=e,i}function HA(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;var n=ic(t);return this.tween(r,(n.local?u5e:h5e)(n,e))}var $U=R(()=>{"use strict";fl();o(l5e,"attrInterpolate");o(c5e,"attrInterpolateNS");o(u5e,"attrTweenNS");o(h5e,"attrTween");o(HA,"default")});function f5e(t,e){return function(){Dy(this,t).delay=+e.apply(this,arguments)}}function d5e(t,e){return e=+e,function(){Dy(this,t).delay=e}}function YA(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?f5e:d5e)(e,t)):Mi(this.node(),e).delay}var VU=R(()=>{"use strict";ys();o(f5e,"delayFunction");o(d5e,"delayConstant");o(YA,"default")});function p5e(t,e){return function(){ca(this,t).duration=+e.apply(this,arguments)}}function m5e(t,e){return e=+e,function(){ca(this,t).duration=e}}function WA(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?p5e:m5e)(e,t)):Mi(this.node(),e).duration}var UU=R(()=>{"use strict";ys();o(p5e,"durationFunction");o(m5e,"durationConstant");o(WA,"default")});function g5e(t,e){if(typeof e!="function")throw new Error;return function(){ca(this,t).ease=e}}function qA(t){var e=this._id;return arguments.length?this.each(g5e(e,t)):Mi(this.node(),e).ease}var HU=R(()=>{"use strict";ys();o(g5e,"easeConstant");o(qA,"default")});function y5e(t,e){return function(){var r=e.apply(this,arguments);if(typeof r!="function")throw new Error;ca(this,t).ease=r}}function XA(t){if(typeof t!="function")throw new Error;return this.each(y5e(this._id,t))}var YU=R(()=>{"use strict";ys();o(y5e,"easeVarying");o(XA,"default")});function jA(t){typeof t!="function"&&(t=Ep(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";fl();sd();o(jA,"default")});function KA(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,a=Math.min(n,i),s=new Array(n),l=0;l{"use strict";sd();o(KA,"default")});function v5e(t){return(t+"").trim().split(/^|\s+/).every(function(e){var r=e.indexOf(".");return r>=0&&(e=e.slice(0,r)),!e||e==="start"})}function x5e(t,e,r){var n,i,a=v5e(e)?Dy:ca;return function(){var s=a(this,t),l=s.on;l!==n&&(i=(n=l).copy()).on(e,r),s.on=i}}function QA(t,e){var r=this._id;return arguments.length<2?Mi(this.node(),r).on.on(t):this.each(x5e(r,t,e))}var XU=R(()=>{"use strict";ys();o(v5e,"start");o(x5e,"onFunction");o(QA,"default")});function b5e(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function ZA(){return this.on("end.remove",b5e(this._id))}var jU=R(()=>{"use strict";o(b5e,"removeFunction");o(ZA,"default")});function JA(t){var e=this._name,r=this._id;typeof t!="function"&&(t=wh(t));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s{"use strict";fl();sd();ys();o(JA,"default")});function e8(t){var e=this._name,r=this._id;typeof t!="function"&&(t=kp(t));for(var n=this._groups,i=n.length,a=[],s=[],l=0;l{"use strict";fl();sd();ys();o(e8,"default")});function t8(){return new w5e(this._groups,this._parents)}var w5e,ZU=R(()=>{"use strict";fl();w5e=cu.prototype.constructor;o(t8,"default")});function T5e(t,e){var r,n,i;return function(){var a=Th(this,t),s=(this.style.removeProperty(t),Th(this,t));return a===s?null:a===r&&s===n?i:i=e(r=a,n=s)}}function JU(t){return function(){this.style.removeProperty(t)}}function k5e(t,e,r){var n,i=r+"",a;return function(){var s=Th(this,t);return s===i?null:s===n?a:a=e(n=s,r)}}function E5e(t,e,r){var n,i,a;return function(){var s=Th(this,t),l=r(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(t),Th(this,t))),s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l))}}function C5e(t,e){var r,n,i,a="style."+e,s="end."+a,l;return function(){var u=ca(this,t),h=u.on,f=u.value[a]==null?l||(l=JU(e)):void 0;(h!==r||i!==f)&&(n=(r=h).copy()).on(s,i=f),u.on=n}}function r8(t,e,r){var n=(t+="")=="transform"?OA:My;return e==null?this.styleTween(t,T5e(t,n)).on("end.style."+t,JU(t)):typeof e=="function"?this.styleTween(t,E5e(t,n,Ip(this,"style."+t,e))).each(C5e(this._id,t)):this.styleTween(t,k5e(t,n,e),r).on("end.style."+t,null)}var eH=R(()=>{"use strict";Np();fl();ys();Ny();VA();o(T5e,"styleNull");o(JU,"styleRemove");o(k5e,"styleConstant");o(E5e,"styleFunction");o(C5e,"styleMaybeRemove");o(r8,"default")});function S5e(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function A5e(t,e,r){var n,i;function a(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&S5e(t,s,r)),n}return o(a,"tween"),a._value=e,a}function n8(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,A5e(t,e,r??""))}var tH=R(()=>{"use strict";o(S5e,"styleInterpolate");o(A5e,"styleTween");o(n8,"default")});function _5e(t){return function(){this.textContent=t}}function L5e(t){return function(){var e=t(this);this.textContent=e??""}}function i8(t){return this.tween("text",typeof t=="function"?L5e(Ip(this,"text",t)):_5e(t==null?"":t+""))}var rH=R(()=>{"use strict";Ny();o(_5e,"textConstant");o(L5e,"textFunction");o(i8,"default")});function D5e(t){return function(e){this.textContent=t.call(this,e)}}function R5e(t){var e,r;function n(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&D5e(i)),e}return o(n,"tween"),n._value=t,n}function a8(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,R5e(t))}var nH=R(()=>{"use strict";o(D5e,"textInterpolate");o(R5e,"textTween");o(a8,"default")});function s8(){for(var t=this._name,e=this._id,r=o3(),n=this._groups,i=n.length,a=0;a{"use strict";sd();ys();o(s8,"default")});function o8(){var t,e,r=this,n=r._id,i=r.size();return new Promise(function(a,s){var l={value:s},u={value:o(function(){--i===0&&a()},"value")};r.each(function(){var h=ca(this,n),f=h.on;f!==t&&(e=(t=f).copy(),e._.cancel.push(l),e._.interrupt.push(l),e._.end.push(u)),h.on=e}),i===0&&a()})}var aH=R(()=>{"use strict";ys();o(o8,"default")});function Ka(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function sH(t){return cu().transition(t)}function o3(){return++N5e}var N5e,du,sd=R(()=>{"use strict";fl();GU();$U();VU();UU();HU();YU();WU();qU();XU();jU();KU();QU();ZU();eH();tH();rH();nH();iH();Ny();aH();N5e=0;o(Ka,"Transition");o(sH,"transition");o(o3,"newId");du=cu.prototype;Ka.prototype=sH.prototype={constructor:Ka,select:JA,selectAll:e8,selectChild:du.selectChild,selectChildren:du.selectChildren,filter:jA,merge:KA,selection:t8,transition:s8,call:du.call,nodes:du.nodes,node:du.node,size:du.size,empty:du.empty,each:du.each,on:QA,attr:UA,attrTween:HA,style:r8,styleTween:n8,text:i8,textTween:a8,remove:ZA,tween:$A,delay:YA,duration:WA,ease:qA,easeVarying:XA,end:o8,[Symbol.iterator]:du[Symbol.iterator]}});function l3(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var oH=R(()=>{"use strict";o(l3,"cubicInOut")});var l8=R(()=>{"use strict";oH()});function I5e(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function c8(t){var e,r;t instanceof Ka?(e=t._id,t=t._name):(e=o3(),(r=M5e).time=Ay(),t=t==null?null:t+"");for(var n=this._groups,i=n.length,a=0;a{"use strict";sd();ys();l8();n3();M5e={time:null,delay:0,duration:250,ease:l3};o(I5e,"inherit");o(c8,"default")});var cH=R(()=>{"use strict";fl();zU();lH();cu.prototype.interrupt=GA;cu.prototype.transition=c8});var c3=R(()=>{"use strict";cH()});var uH=R(()=>{"use strict"});var hH=R(()=>{"use strict"});var fH=R(()=>{"use strict"});function dH(t){return[+t[0],+t[1]]}function O5e(t){return[dH(t[0]),dH(t[1])]}function u8(t){return{type:t}}var Kpt,Qpt,Zpt,Jpt,emt,tmt,pH=R(()=>{"use strict";c3();uH();hH();fH();({abs:Kpt,max:Qpt,min:Zpt}=Math);o(dH,"number1");o(O5e,"number2");Jpt={name:"x",handles:["w","e"].map(u8),input:o(function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},"input"),output:o(function(t){return t&&[t[0][0],t[1][0]]},"output")},emt={name:"y",handles:["n","s"].map(u8),input:o(function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},"input"),output:o(function(t){return t&&[t[0][1],t[1][1]]},"output")},tmt={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(u8),input:o(function(t){return t==null?null:O5e(t)},"input"),output:o(function(t){return t},"output")};o(u8,"type")});var mH=R(()=>{"use strict";pH()});function gH(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return gH;let r=10**e;return function(n){this._+=n[0];for(let i=1,a=n.length;i{"use strict";h8=Math.PI,f8=2*h8,od=1e-6,P5e=f8-od;o(gH,"append");o(B5e,"appendRound");ld=class{static{o(this,"Path")}constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?gH:B5e(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,a,s){this._append`C${+e},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(e,r,n,i,a){if(e=+e,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,l=this._y1,u=n-e,h=i-r,f=s-e,d=l-r,p=f*f+d*d;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(p>od)if(!(Math.abs(d*u-h*f)>od)||!a)this._append`L${this._x1=e},${this._y1=r}`;else{let m=n-s,g=i-l,y=u*u+h*h,v=m*m+g*g,x=Math.sqrt(y),b=Math.sqrt(p),w=a*Math.tan((h8-Math.acos((y+p-v)/(2*x*b)))/2),S=w/b,T=w/x;Math.abs(S-1)>od&&this._append`L${e+S*f},${r+S*d}`,this._append`A${a},${a},0,0,${+(d*m>f*g)},${this._x1=e+T*u},${this._y1=r+T*h}`}}arc(e,r,n,i,a,s){if(e=+e,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),u=n*Math.sin(i),h=e+l,f=r+u,d=1^s,p=s?i-a:a-i;this._x1===null?this._append`M${h},${f}`:(Math.abs(this._x1-h)>od||Math.abs(this._y1-f)>od)&&this._append`L${h},${f}`,n&&(p<0&&(p=p%f8+f8),p>P5e?this._append`A${n},${n},0,1,${d},${e-l},${r-u}A${n},${n},0,1,${d},${this._x1=h},${this._y1=f}`:p>od&&this._append`A${n},${n},0,${+(p>=h8)},${d},${this._x1=e+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};o(yH,"path");yH.prototype=ld.prototype});var d8=R(()=>{"use strict";vH()});var xH=R(()=>{"use strict"});var bH=R(()=>{"use strict"});var wH=R(()=>{"use strict"});var TH=R(()=>{"use strict"});var kH=R(()=>{"use strict"});var EH=R(()=>{"use strict"});var CH=R(()=>{"use strict"});function p8(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function cd(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}var Iy=R(()=>{"use strict";o(p8,"default");o(cd,"formatDecimalParts")});function ml(t){return t=cd(Math.abs(t)),t?t[1]:NaN}var Oy=R(()=>{"use strict";Iy();o(ml,"default")});function m8(t,e){return function(r,n){for(var i=r.length,a=[],s=0,l=t[0],u=0;i>0&&l>0&&(u+l+1>n&&(l=Math.max(1,n-u)),a.push(r.substring(i-=l,i+l)),!((u+=l+1)>n));)l=t[s=(s+1)%t.length];return a.reverse().join(e)}}var SH=R(()=>{"use strict";o(m8,"default")});function g8(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var AH=R(()=>{"use strict";o(g8,"default")});function Sh(t){if(!(e=F5e.exec(t)))throw new Error("invalid format: "+t);var e;return new u3({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function u3(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}var F5e,y8=R(()=>{"use strict";F5e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;o(Sh,"formatSpecifier");Sh.prototype=u3.prototype;o(u3,"FormatSpecifier");u3.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type}});function v8(t){e:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var _H=R(()=>{"use strict";o(v8,"default")});function b8(t,e){var r=cd(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(x8=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+cd(t,Math.max(0,e+a-1))[0]}var x8,w8=R(()=>{"use strict";Iy();o(b8,"default")});function h3(t,e){var r=cd(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}var LH=R(()=>{"use strict";Iy();o(h3,"default")});var T8,DH=R(()=>{"use strict";Iy();w8();LH();T8={"%":o((t,e)=>(t*100).toFixed(e),"%"),b:o(t=>Math.round(t).toString(2),"b"),c:o(t=>t+"","c"),d:p8,e:o((t,e)=>t.toExponential(e),"e"),f:o((t,e)=>t.toFixed(e),"f"),g:o((t,e)=>t.toPrecision(e),"g"),o:o(t=>Math.round(t).toString(8),"o"),p:o((t,e)=>h3(t*100,e),"p"),r:h3,s:b8,X:o(t=>Math.round(t).toString(16).toUpperCase(),"X"),x:o(t=>Math.round(t).toString(16),"x")}});function f3(t){return t}var RH=R(()=>{"use strict";o(f3,"default")});function k8(t){var e=t.grouping===void 0||t.thousands===void 0?f3:m8(NH.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?f3:g8(NH.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"\u2212":t.minus+"",u=t.nan===void 0?"NaN":t.nan+"";function h(d){d=Sh(d);var p=d.fill,m=d.align,g=d.sign,y=d.symbol,v=d.zero,x=d.width,b=d.comma,w=d.precision,S=d.trim,T=d.type;T==="n"?(b=!0,T="g"):T8[T]||(w===void 0&&(w=12),S=!0,T="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var E=y==="$"?r:y==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",_=y==="$"?n:/[%p]/.test(T)?s:"",A=T8[T],L=/[defgprs%]/.test(T);w=w===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function M(N){var k=E,I=_,C,O,D;if(T==="c")I=A(N)+I,N="";else{N=+N;var P=N<0||1/N<0;if(N=isNaN(N)?u:A(Math.abs(N),w),S&&(N=v8(N)),P&&+N==0&&g!=="+"&&(P=!1),k=(P?g==="("?g:l:g==="-"||g==="("?"":g)+k,I=(T==="s"?MH[8+x8/3]:"")+I+(P&&g==="("?")":""),L){for(C=-1,O=N.length;++CD||D>57){I=(D===46?i+N.slice(C+1):N.slice(C))+I,N=N.slice(0,C);break}}}b&&!v&&(N=e(N,1/0));var F=k.length+N.length+I.length,B=F>1)+k+N+I+B.slice(F);break;default:N=B+k+N+I;break}return a(N)}return o(M,"format"),M.toString=function(){return d+""},M}o(h,"newFormat");function f(d,p){var m=h((d=Sh(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(ml(p)/3)))*3,y=Math.pow(10,-g),v=MH[8+g/3];return function(x){return m(y*x)+v}}return o(f,"formatPrefix"),{format:h,formatPrefix:f}}var NH,MH,IH=R(()=>{"use strict";Oy();SH();AH();y8();_H();DH();w8();RH();NH=Array.prototype.map,MH=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];o(k8,"default")});function E8(t){return d3=k8(t),p3=d3.format,m3=d3.formatPrefix,d3}var d3,p3,m3,OH=R(()=>{"use strict";IH();E8({thousands:",",grouping:[3],currency:["$",""]});o(E8,"defaultLocale")});function g3(t){return Math.max(0,-ml(Math.abs(t)))}var PH=R(()=>{"use strict";Oy();o(g3,"default")});function y3(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ml(e)/3)))*3-ml(Math.abs(t)))}var BH=R(()=>{"use strict";Oy();o(y3,"default")});function v3(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ml(e)-ml(t))+1}var FH=R(()=>{"use strict";Oy();o(v3,"default")});var C8=R(()=>{"use strict";OH();y8();PH();BH();FH()});var zH=R(()=>{"use strict"});var GH=R(()=>{"use strict"});var $H=R(()=>{"use strict"});var VH=R(()=>{"use strict"});function Ah(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}var Py=R(()=>{"use strict";o(Ah,"initRange")});function pu(){var t=new wp,e=[],r=[],n=S8;function i(a){let s=t.get(a);if(s===void 0){if(n!==S8)return n;t.set(a,s=e.push(a)-1)}return r[s%r.length]}return o(i,"scale"),i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new wp;for(let s of a)t.has(s)||t.set(s,e.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return pu(e,r).unknown(n)},Ah.apply(i,arguments),i}var S8,A8=R(()=>{"use strict";bh();Py();S8=Symbol("implicit");o(pu,"ordinal")});function Op(){var t=pu().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,a,s,l=!1,u=0,h=0,f=.5;delete t.unknown;function d(){var p=e().length,m=i{"use strict";bh();Py();A8();o(Op,"band")});function _8(t){return function(){return t}}var HH=R(()=>{"use strict";o(_8,"constants")});function L8(t){return+t}var YH=R(()=>{"use strict";o(L8,"number")});function Pp(t){return t}function D8(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:_8(isNaN(e)?NaN:.5)}function z5e(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function G5e(t,e,r){var n=t[0],i=t[1],a=e[0],s=e[1];return i2?$5e:G5e,u=h=null,d}o(f,"rescale");function d(p){return p==null||isNaN(p=+p)?a:(u||(u=l(t.map(n),e,r)))(n(s(p)))}return o(d,"scale"),d.invert=function(p){return s(i((h||(h=l(e,t.map(n),ji)))(p)))},d.domain=function(p){return arguments.length?(t=Array.from(p,L8),f()):t.slice()},d.range=function(p){return arguments.length?(e=Array.from(p),f()):e.slice()},d.rangeRound=function(p){return e=Array.from(p),r=j4,f()},d.clamp=function(p){return arguments.length?(s=p?!0:Pp,f()):s!==Pp},d.interpolate=function(p){return arguments.length?(r=p,f()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,m){return n=p,i=m,f()}}function By(){return V5e()(Pp,Pp)}var WH,R8=R(()=>{"use strict";bh();Np();HH();YH();WH=[0,1];o(Pp,"identity");o(D8,"normalize");o(z5e,"clamper");o(G5e,"bimap");o($5e,"polymap");o(x3,"copy");o(V5e,"transformer");o(By,"continuous")});function N8(t,e,r,n){var i=Tp(t,e,r),a;switch(n=Sh(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=y3(i,s))&&(n.precision=a),m3(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=v3(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=g3(i))&&(n.precision=a-(n.type==="%")*2);break}}return p3(n)}var qH=R(()=>{"use strict";bh();C8();o(N8,"tickFormat")});function U5e(t){var e=t.domain;return t.ticks=function(r){var n=e();return N4(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return N8(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,a=n.length-1,s=n[i],l=n[a],u,h,f=10;for(l0;){if(h=fy(s,l,r),h===u)return n[i]=s,n[a]=l,e(n);if(h>0)s=Math.floor(s/h)*h,l=Math.ceil(l/h)*h;else if(h<0)s=Math.ceil(s*h)/h,l=Math.floor(l*h)/h;else break;u=h}return t},t}function gl(){var t=By();return t.copy=function(){return x3(t,gl())},Ah.apply(t,arguments),U5e(t)}var XH=R(()=>{"use strict";bh();R8();Py();qH();o(U5e,"linearish");o(gl,"linear")});function M8(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],a=t[n],s;return a{"use strict";o(M8,"nice")});function dn(t,e,r,n){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o(i,"interval"),i.floor=a=>(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{let s=i(a),l=i.ceil(a);return a-s(e(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,l)=>{let u=[];if(a=i.ceil(a),l=l==null?1:Math.floor(l),!(a0))return u;let h;do u.push(h=new Date(+a)),e(a,l),t(a);while(hdn(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;e(s,-1),!a(s););else for(;--l>=0;)for(;e(s,1),!a(s););}),r&&(i.count=(a,s)=>(I8.setTime(+a),O8.setTime(+s),t(I8),t(O8),Math.floor(r(I8,O8))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?s=>n(s)%a===0:s=>i.count(0,s)%a===0):i)),i}var I8,O8,mu=R(()=>{"use strict";I8=new Date,O8=new Date;o(dn,"timeInterval")});var oc,KH,P8=R(()=>{"use strict";mu();oc=dn(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);oc.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?dn(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):oc);KH=oc.range});var Ks,QH,B8=R(()=>{"use strict";mu();Ks=dn(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),QH=Ks.range});var gu,H5e,b3,Y5e,F8=R(()=>{"use strict";mu();gu=dn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),H5e=gu.range,b3=dn(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),Y5e=b3.range});var yu,W5e,w3,q5e,z8=R(()=>{"use strict";mu();yu=dn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),W5e=yu.range,w3=dn(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),q5e=w3.range});var Do,X5e,zy,j5e,T3,K5e,G8=R(()=>{"use strict";mu();Do=dn(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),X5e=Do.range,zy=dn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),j5e=zy.range,T3=dn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),K5e=T3.range});function fd(t){return dn(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}function dd(t){return dn(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var yl,_h,k3,E3,cc,C3,S3,JH,Q5e,Z5e,J5e,ewe,twe,rwe,pd,Bp,eY,tY,Lh,rY,nY,iY,nwe,iwe,awe,swe,owe,lwe,$8=R(()=>{"use strict";mu();o(fd,"timeWeekday");yl=fd(0),_h=fd(1),k3=fd(2),E3=fd(3),cc=fd(4),C3=fd(5),S3=fd(6),JH=yl.range,Q5e=_h.range,Z5e=k3.range,J5e=E3.range,ewe=cc.range,twe=C3.range,rwe=S3.range;o(dd,"utcWeekday");pd=dd(0),Bp=dd(1),eY=dd(2),tY=dd(3),Lh=dd(4),rY=dd(5),nY=dd(6),iY=pd.range,nwe=Bp.range,iwe=eY.range,awe=tY.range,swe=Lh.range,owe=rY.range,lwe=nY.range});var vu,cwe,A3,uwe,V8=R(()=>{"use strict";mu();vu=dn(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),cwe=vu.range,A3=dn(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),uwe=A3.range});var Qs,hwe,vl,fwe,U8=R(()=>{"use strict";mu();Qs=dn(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Qs.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:dn(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});hwe=Qs.range,vl=dn(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());vl.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:dn(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});fwe=vl.range});function sY(t,e,r,n,i,a){let s=[[Ks,1,1e3],[Ks,5,5*1e3],[Ks,15,15*1e3],[Ks,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[i,1,36e5],[i,3,3*36e5],[i,6,6*36e5],[i,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function l(h,f,d){let p=fv).right(s,p);if(m===s.length)return t.every(Tp(h/31536e6,f/31536e6,d));if(m===0)return oc.every(Math.max(Tp(h,f,d),1));let[g,y]=s[p/s[m-1][2]{"use strict";bh();P8();B8();F8();z8();G8();$8();V8();U8();o(sY,"ticker");[pwe,mwe]=sY(vl,A3,pd,T3,w3,b3),[H8,Y8]=sY(Qs,vu,yl,Do,yu,gu)});var _3=R(()=>{"use strict";P8();B8();F8();z8();G8();$8();V8();U8();oY()});function W8(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function q8(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Gy(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function X8(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,a=t.days,s=t.shortDays,l=t.months,u=t.shortMonths,h=$y(i),f=Vy(i),d=$y(a),p=Vy(a),m=$y(s),g=Vy(s),y=$y(l),v=Vy(l),x=$y(u),b=Vy(u),w={a:P,A:F,b:B,B:$,c:null,d:dY,e:dY,f:Fwe,g:Xwe,G:Kwe,H:Owe,I:Pwe,j:Bwe,L:vY,m:zwe,M:Gwe,p:z,q:Y,Q:gY,s:yY,S:$we,u:Vwe,U:Uwe,V:Hwe,w:Ywe,W:Wwe,x:null,X:null,y:qwe,Y:jwe,Z:Qwe,"%":mY},S={a:Q,A:X,b:ie,B:j,c:null,d:pY,e:pY,f:tTe,g:hTe,G:dTe,H:Zwe,I:Jwe,j:eTe,L:bY,m:rTe,M:nTe,p:J,q:Z,Q:gY,s:yY,S:iTe,u:aTe,U:sTe,V:oTe,w:lTe,W:cTe,x:null,X:null,y:uTe,Y:fTe,Z:pTe,"%":mY},T={a:M,A:N,b:k,B:I,c:C,d:hY,e:hY,f:Rwe,g:uY,G:cY,H:fY,I:fY,j:Awe,L:Dwe,m:Swe,M:_we,p:L,q:Cwe,Q:Mwe,s:Iwe,S:Lwe,u:bwe,U:wwe,V:Twe,w:xwe,W:kwe,x:O,X:D,y:uY,Y:cY,Z:Ewe,"%":Nwe};w.x=E(r,w),w.X=E(n,w),w.c=E(e,w),S.x=E(r,S),S.X=E(n,S),S.c=E(e,S);function E(H,q){return function(K){var se=[],ce=-1,ue=0,te=H.length,De,oe,ke;for(K instanceof Date||(K=new Date(+K));++ce53)return null;"w"in se||(se.w=1),"Z"in se?(ue=q8(Gy(se.y,0,1)),te=ue.getUTCDay(),ue=te>4||te===0?Bp.ceil(ue):Bp(ue),ue=zy.offset(ue,(se.V-1)*7),se.y=ue.getUTCFullYear(),se.m=ue.getUTCMonth(),se.d=ue.getUTCDate()+(se.w+6)%7):(ue=W8(Gy(se.y,0,1)),te=ue.getDay(),ue=te>4||te===0?_h.ceil(ue):_h(ue),ue=Do.offset(ue,(se.V-1)*7),se.y=ue.getFullYear(),se.m=ue.getMonth(),se.d=ue.getDate()+(se.w+6)%7)}else("W"in se||"U"in se)&&("w"in se||(se.w="u"in se?se.u%7:"W"in se?1:0),te="Z"in se?q8(Gy(se.y,0,1)).getUTCDay():W8(Gy(se.y,0,1)).getDay(),se.m=0,se.d="W"in se?(se.w+6)%7+se.W*7-(te+5)%7:se.w+se.U*7-(te+6)%7);return"Z"in se?(se.H+=se.Z/100|0,se.M+=se.Z%100,q8(se)):W8(se)}}o(_,"newParse");function A(H,q,K,se){for(var ce=0,ue=q.length,te=K.length,De,oe;ce=te)return-1;if(De=q.charCodeAt(ce++),De===37){if(De=q.charAt(ce++),oe=T[De in lY?q.charAt(ce++):De],!oe||(se=oe(H,K,se))<0)return-1}else if(De!=K.charCodeAt(se++))return-1}return se}o(A,"parseSpecifier");function L(H,q,K){var se=h.exec(q.slice(K));return se?(H.p=f.get(se[0].toLowerCase()),K+se[0].length):-1}o(L,"parsePeriod");function M(H,q,K){var se=m.exec(q.slice(K));return se?(H.w=g.get(se[0].toLowerCase()),K+se[0].length):-1}o(M,"parseShortWeekday");function N(H,q,K){var se=d.exec(q.slice(K));return se?(H.w=p.get(se[0].toLowerCase()),K+se[0].length):-1}o(N,"parseWeekday");function k(H,q,K){var se=x.exec(q.slice(K));return se?(H.m=b.get(se[0].toLowerCase()),K+se[0].length):-1}o(k,"parseShortMonth");function I(H,q,K){var se=y.exec(q.slice(K));return se?(H.m=v.get(se[0].toLowerCase()),K+se[0].length):-1}o(I,"parseMonth");function C(H,q,K){return A(H,e,q,K)}o(C,"parseLocaleDateTime");function O(H,q,K){return A(H,r,q,K)}o(O,"parseLocaleDate");function D(H,q,K){return A(H,n,q,K)}o(D,"parseLocaleTime");function P(H){return s[H.getDay()]}o(P,"formatShortWeekday");function F(H){return a[H.getDay()]}o(F,"formatWeekday");function B(H){return u[H.getMonth()]}o(B,"formatShortMonth");function $(H){return l[H.getMonth()]}o($,"formatMonth");function z(H){return i[+(H.getHours()>=12)]}o(z,"formatPeriod");function Y(H){return 1+~~(H.getMonth()/3)}o(Y,"formatQuarter");function Q(H){return s[H.getUTCDay()]}o(Q,"formatUTCShortWeekday");function X(H){return a[H.getUTCDay()]}o(X,"formatUTCWeekday");function ie(H){return u[H.getUTCMonth()]}o(ie,"formatUTCShortMonth");function j(H){return l[H.getUTCMonth()]}o(j,"formatUTCMonth");function J(H){return i[+(H.getUTCHours()>=12)]}o(J,"formatUTCPeriod");function Z(H){return 1+~~(H.getUTCMonth()/3)}return o(Z,"formatUTCQuarter"),{format:o(function(H){var q=E(H+="",w);return q.toString=function(){return H},q},"format"),parse:o(function(H){var q=_(H+="",!1);return q.toString=function(){return H},q},"parse"),utcFormat:o(function(H){var q=E(H+="",S);return q.toString=function(){return H},q},"utcFormat"),utcParse:o(function(H){var q=_(H+="",!0);return q.toString=function(){return H},q},"utcParse")}}function Pr(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a[e.toLowerCase(),r]))}function xwe(t,e,r){var n=Ki.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function bwe(t,e,r){var n=Ki.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function wwe(t,e,r){var n=Ki.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function Twe(t,e,r){var n=Ki.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function kwe(t,e,r){var n=Ki.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function cY(t,e,r){var n=Ki.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function uY(t,e,r){var n=Ki.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function Ewe(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function Cwe(t,e,r){var n=Ki.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function Swe(t,e,r){var n=Ki.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function hY(t,e,r){var n=Ki.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function Awe(t,e,r){var n=Ki.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function fY(t,e,r){var n=Ki.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function _we(t,e,r){var n=Ki.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function Lwe(t,e,r){var n=Ki.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function Dwe(t,e,r){var n=Ki.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function Rwe(t,e,r){var n=Ki.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function Nwe(t,e,r){var n=gwe.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function Mwe(t,e,r){var n=Ki.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function Iwe(t,e,r){var n=Ki.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function dY(t,e){return Pr(t.getDate(),e,2)}function Owe(t,e){return Pr(t.getHours(),e,2)}function Pwe(t,e){return Pr(t.getHours()%12||12,e,2)}function Bwe(t,e){return Pr(1+Do.count(Qs(t),t),e,3)}function vY(t,e){return Pr(t.getMilliseconds(),e,3)}function Fwe(t,e){return vY(t,e)+"000"}function zwe(t,e){return Pr(t.getMonth()+1,e,2)}function Gwe(t,e){return Pr(t.getMinutes(),e,2)}function $we(t,e){return Pr(t.getSeconds(),e,2)}function Vwe(t){var e=t.getDay();return e===0?7:e}function Uwe(t,e){return Pr(yl.count(Qs(t)-1,t),e,2)}function xY(t){var e=t.getDay();return e>=4||e===0?cc(t):cc.ceil(t)}function Hwe(t,e){return t=xY(t),Pr(cc.count(Qs(t),t)+(Qs(t).getDay()===4),e,2)}function Ywe(t){return t.getDay()}function Wwe(t,e){return Pr(_h.count(Qs(t)-1,t),e,2)}function qwe(t,e){return Pr(t.getFullYear()%100,e,2)}function Xwe(t,e){return t=xY(t),Pr(t.getFullYear()%100,e,2)}function jwe(t,e){return Pr(t.getFullYear()%1e4,e,4)}function Kwe(t,e){var r=t.getDay();return t=r>=4||r===0?cc(t):cc.ceil(t),Pr(t.getFullYear()%1e4,e,4)}function Qwe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Pr(e/60|0,"0",2)+Pr(e%60,"0",2)}function pY(t,e){return Pr(t.getUTCDate(),e,2)}function Zwe(t,e){return Pr(t.getUTCHours(),e,2)}function Jwe(t,e){return Pr(t.getUTCHours()%12||12,e,2)}function eTe(t,e){return Pr(1+zy.count(vl(t),t),e,3)}function bY(t,e){return Pr(t.getUTCMilliseconds(),e,3)}function tTe(t,e){return bY(t,e)+"000"}function rTe(t,e){return Pr(t.getUTCMonth()+1,e,2)}function nTe(t,e){return Pr(t.getUTCMinutes(),e,2)}function iTe(t,e){return Pr(t.getUTCSeconds(),e,2)}function aTe(t){var e=t.getUTCDay();return e===0?7:e}function sTe(t,e){return Pr(pd.count(vl(t)-1,t),e,2)}function wY(t){var e=t.getUTCDay();return e>=4||e===0?Lh(t):Lh.ceil(t)}function oTe(t,e){return t=wY(t),Pr(Lh.count(vl(t),t)+(vl(t).getUTCDay()===4),e,2)}function lTe(t){return t.getUTCDay()}function cTe(t,e){return Pr(Bp.count(vl(t)-1,t),e,2)}function uTe(t,e){return Pr(t.getUTCFullYear()%100,e,2)}function hTe(t,e){return t=wY(t),Pr(t.getUTCFullYear()%100,e,2)}function fTe(t,e){return Pr(t.getUTCFullYear()%1e4,e,4)}function dTe(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Lh(t):Lh.ceil(t),Pr(t.getUTCFullYear()%1e4,e,4)}function pTe(){return"+0000"}function mY(){return"%"}function gY(t){return+t}function yY(t){return Math.floor(+t/1e3)}var lY,Ki,gwe,ywe,TY=R(()=>{"use strict";_3();o(W8,"localDate");o(q8,"utcDate");o(Gy,"newDate");o(X8,"formatLocale");lY={"-":"",_:" ",0:"0"},Ki=/^\s*\d+/,gwe=/^%/,ywe=/[\\^$*+?|[\]().{}]/g;o(Pr,"pad");o(vwe,"requote");o($y,"formatRe");o(Vy,"formatLookup");o(xwe,"parseWeekdayNumberSunday");o(bwe,"parseWeekdayNumberMonday");o(wwe,"parseWeekNumberSunday");o(Twe,"parseWeekNumberISO");o(kwe,"parseWeekNumberMonday");o(cY,"parseFullYear");o(uY,"parseYear");o(Ewe,"parseZone");o(Cwe,"parseQuarter");o(Swe,"parseMonthNumber");o(hY,"parseDayOfMonth");o(Awe,"parseDayOfYear");o(fY,"parseHour24");o(_we,"parseMinutes");o(Lwe,"parseSeconds");o(Dwe,"parseMilliseconds");o(Rwe,"parseMicroseconds");o(Nwe,"parseLiteralPercent");o(Mwe,"parseUnixTimestamp");o(Iwe,"parseUnixTimestampSeconds");o(dY,"formatDayOfMonth");o(Owe,"formatHour24");o(Pwe,"formatHour12");o(Bwe,"formatDayOfYear");o(vY,"formatMilliseconds");o(Fwe,"formatMicroseconds");o(zwe,"formatMonthNumber");o(Gwe,"formatMinutes");o($we,"formatSeconds");o(Vwe,"formatWeekdayNumberMonday");o(Uwe,"formatWeekNumberSunday");o(xY,"dISO");o(Hwe,"formatWeekNumberISO");o(Ywe,"formatWeekdayNumberSunday");o(Wwe,"formatWeekNumberMonday");o(qwe,"formatYear");o(Xwe,"formatYearISO");o(jwe,"formatFullYear");o(Kwe,"formatFullYearISO");o(Qwe,"formatZone");o(pY,"formatUTCDayOfMonth");o(Zwe,"formatUTCHour24");o(Jwe,"formatUTCHour12");o(eTe,"formatUTCDayOfYear");o(bY,"formatUTCMilliseconds");o(tTe,"formatUTCMicroseconds");o(rTe,"formatUTCMonthNumber");o(nTe,"formatUTCMinutes");o(iTe,"formatUTCSeconds");o(aTe,"formatUTCWeekdayNumberMonday");o(sTe,"formatUTCWeekNumberSunday");o(wY,"UTCdISO");o(oTe,"formatUTCWeekNumberISO");o(lTe,"formatUTCWeekdayNumberSunday");o(cTe,"formatUTCWeekNumberMonday");o(uTe,"formatUTCYear");o(hTe,"formatUTCYearISO");o(fTe,"formatUTCFullYear");o(dTe,"formatUTCFullYearISO");o(pTe,"formatUTCZone");o(mY,"formatLiteralPercent");o(gY,"formatUnixTimestamp");o(yY,"formatUnixTimestampSeconds")});function j8(t){return Fp=X8(t),md=Fp.format,kY=Fp.parse,EY=Fp.utcFormat,CY=Fp.utcParse,Fp}var Fp,md,kY,EY,CY,SY=R(()=>{"use strict";TY();j8({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});o(j8,"defaultLocale")});var K8=R(()=>{"use strict";SY()});function mTe(t){return new Date(t)}function gTe(t){return t instanceof Date?+t:+new Date(+t)}function AY(t,e,r,n,i,a,s,l,u,h){var f=By(),d=f.invert,p=f.domain,m=h(".%L"),g=h(":%S"),y=h("%I:%M"),v=h("%I %p"),x=h("%a %d"),b=h("%b %d"),w=h("%B"),S=h("%Y");function T(E){return(u(E){"use strict";_3();K8();R8();Py();jH();o(mTe,"date");o(gTe,"number");o(AY,"calendar");o(L3,"time")});var LY=R(()=>{"use strict";UH();XH();A8();_Y()});function Q8(t){for(var e=t.length/6|0,r=new Array(e),n=0;n{"use strict";o(Q8,"default")});var Z8,RY=R(()=>{"use strict";DY();Z8=Q8("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")});var NY=R(()=>{"use strict";RY()});function Nn(t){return o(function(){return t},"constant")}var D3=R(()=>{"use strict";o(Nn,"default")});function IY(t){return t>1?0:t<-1?zp:Math.acos(t)}function e_(t){return t>=1?Uy:t<=-1?-Uy:Math.asin(t)}var J8,ua,Dh,MY,R3,xl,gd,Qi,zp,Uy,Gp,N3=R(()=>{"use strict";J8=Math.abs,ua=Math.atan2,Dh=Math.cos,MY=Math.max,R3=Math.min,xl=Math.sin,gd=Math.sqrt,Qi=1e-12,zp=Math.PI,Uy=zp/2,Gp=2*zp;o(IY,"acos");o(e_,"asin")});function M3(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new ld(e)}var t_=R(()=>{"use strict";d8();o(M3,"withPath")});function yTe(t){return t.innerRadius}function vTe(t){return t.outerRadius}function xTe(t){return t.startAngle}function bTe(t){return t.endAngle}function wTe(t){return t&&t.padAngle}function TTe(t,e,r,n,i,a,s,l){var u=r-t,h=n-e,f=s-i,d=l-a,p=d*u-f*h;if(!(p*pC*C+O*O&&(A=M,L=N),{cx:A,cy:L,x01:-f,y01:-d,x11:A*(i/T-1),y11:L*(i/T-1)}}function bl(){var t=yTe,e=vTe,r=Nn(0),n=null,i=xTe,a=bTe,s=wTe,l=null,u=M3(h);function h(){var f,d,p=+t.apply(this,arguments),m=+e.apply(this,arguments),g=i.apply(this,arguments)-Uy,y=a.apply(this,arguments)-Uy,v=J8(y-g),x=y>g;if(l||(l=f=u()),mQi))l.moveTo(0,0);else if(v>Gp-Qi)l.moveTo(m*Dh(g),m*xl(g)),l.arc(0,0,m,g,y,!x),p>Qi&&(l.moveTo(p*Dh(y),p*xl(y)),l.arc(0,0,p,y,g,x));else{var b=g,w=y,S=g,T=y,E=v,_=v,A=s.apply(this,arguments)/2,L=A>Qi&&(n?+n.apply(this,arguments):gd(p*p+m*m)),M=R3(J8(m-p)/2,+r.apply(this,arguments)),N=M,k=M,I,C;if(L>Qi){var O=e_(L/p*xl(A)),D=e_(L/m*xl(A));(E-=O*2)>Qi?(O*=x?1:-1,S+=O,T-=O):(E=0,S=T=(g+y)/2),(_-=D*2)>Qi?(D*=x?1:-1,b+=D,w-=D):(_=0,b=w=(g+y)/2)}var P=m*Dh(b),F=m*xl(b),B=p*Dh(T),$=p*xl(T);if(M>Qi){var z=m*Dh(w),Y=m*xl(w),Q=p*Dh(S),X=p*xl(S),ie;if(vQi?k>Qi?(I=I3(Q,X,P,F,m,k,x),C=I3(z,Y,B,$,m,k,x),l.moveTo(I.cx+I.x01,I.cy+I.y01),kQi)||!(E>Qi)?l.lineTo(B,$):N>Qi?(I=I3(B,$,z,Y,p,-N,x),C=I3(P,F,Q,X,p,-N,x),l.lineTo(I.cx+I.x01,I.cy+I.y01),N{"use strict";D3();N3();t_();o(yTe,"arcInnerRadius");o(vTe,"arcOuterRadius");o(xTe,"arcStartAngle");o(bTe,"arcEndAngle");o(wTe,"arcPadAngle");o(TTe,"intersect");o(I3,"cornerTangents");o(bl,"default")});function Hy(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}var Dyt,r_=R(()=>{"use strict";Dyt=Array.prototype.slice;o(Hy,"default")});function PY(t){this._context=t}function xu(t){return new PY(t)}var n_=R(()=>{"use strict";o(PY,"Linear");PY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}},"point")};o(xu,"default")});function BY(t){return t[0]}function FY(t){return t[1]}var zY=R(()=>{"use strict";o(BY,"x");o(FY,"y")});function ha(t,e){var r=Nn(!0),n=null,i=xu,a=null,s=M3(l);t=typeof t=="function"?t:t===void 0?BY:Nn(t),e=typeof e=="function"?e:e===void 0?FY:Nn(e);function l(u){var h,f=(u=Hy(u)).length,d,p=!1,m;for(n==null&&(a=i(m=s())),h=0;h<=f;++h)!(h{"use strict";r_();D3();n_();t_();zY();o(ha,"default")});function i_(t,e){return et?1:e>=t?0:NaN}var $Y=R(()=>{"use strict";o(i_,"default")});function a_(t){return t}var VY=R(()=>{"use strict";o(a_,"default")});function O3(){var t=a_,e=i_,r=null,n=Nn(0),i=Nn(Gp),a=Nn(0);function s(l){var u,h=(l=Hy(l)).length,f,d,p=0,m=new Array(h),g=new Array(h),y=+n.apply(this,arguments),v=Math.min(Gp,Math.max(-Gp,i.apply(this,arguments)-y)),x,b=Math.min(Math.abs(v)/h,a.apply(this,arguments)),w=b*(v<0?-1:1),S;for(u=0;u0&&(p+=S);for(e!=null?m.sort(function(T,E){return e(g[T],g[E])}):r!=null&&m.sort(function(T,E){return r(l[T],l[E])}),u=0,d=p?(v-h*w)/p:0;u0?S*d:0)+w,g[f]={data:l[f],index:u,value:S,startAngle:y,endAngle:x,padAngle:b};return g}return o(s,"pie"),s.value=function(l){return arguments.length?(t=typeof l=="function"?l:Nn(+l),s):t},s.sortValues=function(l){return arguments.length?(e=l,r=null,s):e},s.sort=function(l){return arguments.length?(r=l,e=null,s):r},s.startAngle=function(l){return arguments.length?(n=typeof l=="function"?l:Nn(+l),s):n},s.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:Nn(+l),s):i},s.padAngle=function(l){return arguments.length?(a=typeof l=="function"?l:Nn(+l),s):a},s}var UY=R(()=>{"use strict";r_();D3();$Y();VY();N3();o(O3,"default")});function s_(t){return new P3(t,!0)}function o_(t){return new P3(t,!1)}var P3,HY=R(()=>{"use strict";P3=class{static{o(this,"Bump")}constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}};o(s_,"bumpX");o(o_,"bumpY")});function Zs(){}var Yy=R(()=>{"use strict";o(Zs,"default")});function $p(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function Wy(t){this._context=t}function vs(t){return new Wy(t)}var qy=R(()=>{"use strict";o($p,"point");o(Wy,"Basis");Wy.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 3:$p(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:$p(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(vs,"default")});function YY(t){this._context=t}function B3(t){return new YY(t)}var WY=R(()=>{"use strict";Yy();qy();o(YY,"BasisClosed");YY.prototype={areaStart:Zs,areaEnd:Zs,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:$p(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(B3,"default")});function qY(t){this._context=t}function F3(t){return new qY(t)}var XY=R(()=>{"use strict";qy();o(qY,"BasisOpen");qY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:$p(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(F3,"default")});function jY(t,e){this._basis=new Wy(t),this._beta=e}var l_,KY=R(()=>{"use strict";qy();o(jY,"Bundle");jY.prototype={lineStart:o(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n=t[0],i=e[0],a=t[r]-n,s=e[r]-i,l=-1,u;++l<=r;)u=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+u*a),this._beta*e[l]+(1-this._beta)*(i+u*s));this._x=this._y=null,this._basis.lineEnd()},"lineEnd"),point:o(function(t,e){this._x.push(+t),this._y.push(+e)},"point")};l_=o(function t(e){function r(n){return e===1?new Wy(n):new jY(n,e)}return o(r,"bundle"),r.beta=function(n){return t(+n)},r},"custom")(.85)});function Vp(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function z3(t,e){this._context=t,this._k=(1-e)/6}var c_,Xy=R(()=>{"use strict";o(Vp,"point");o(z3,"Cardinal");z3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Vp(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Vp(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};c_=o(function t(e){function r(n){return new z3(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function G3(t,e){this._context=t,this._k=(1-e)/6}var u_,h_=R(()=>{"use strict";Yy();Xy();o(G3,"CardinalClosed");G3.prototype={areaStart:Zs,areaEnd:Zs,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Vp(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};u_=o(function t(e){function r(n){return new G3(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function $3(t,e){this._context=t,this._k=(1-e)/6}var f_,d_=R(()=>{"use strict";Xy();o($3,"CardinalOpen");$3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Vp(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};f_=o(function t(e){function r(n){return new $3(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function jy(t,e,r){var n=t._x1,i=t._y1,a=t._x2,s=t._y2;if(t._l01_a>Qi){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,u=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/u,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/u}if(t._l23_a>Qi){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*h+t._x1*t._l23_2a-e*t._l12_2a)/f,s=(s*h+t._y1*t._l23_2a-r*t._l12_2a)/f}t._context.bezierCurveTo(n,i,a,s,t._x2,t._y2)}function QY(t,e){this._context=t,this._alpha=e}var p_,V3=R(()=>{"use strict";N3();Xy();o(jy,"point");o(QY,"CatmullRom");QY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:jy(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};p_=o(function t(e){function r(n){return e?new QY(n,e):new z3(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function ZY(t,e){this._context=t,this._alpha=e}var m_,JY=R(()=>{"use strict";h_();Yy();V3();o(ZY,"CatmullRomClosed");ZY.prototype={areaStart:Zs,areaEnd:Zs,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:jy(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};m_=o(function t(e){function r(n){return e?new ZY(n,e):new G3(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function eW(t,e){this._context=t,this._alpha=e}var g_,tW=R(()=>{"use strict";d_();V3();o(eW,"CatmullRomOpen");eW.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:jy(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};g_=o(function t(e){function r(n){return e?new eW(n,e):new $3(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function rW(t){this._context=t}function U3(t){return new rW(t)}var nW=R(()=>{"use strict";Yy();o(rW,"LinearClosed");rW.prototype={areaStart:Zs,areaEnd:Zs,lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){this._point&&this._context.closePath()},"lineEnd"),point:o(function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))},"point")};o(U3,"default")});function iW(t){return t<0?-1:1}function aW(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),s=(r-t._y1)/(i||n<0&&-0),l=(a*i+s*n)/(n+i);return(iW(a)+iW(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function sW(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function y_(t,e,r){var n=t._x0,i=t._y0,a=t._x1,s=t._y1,l=(a-n)/3;t._context.bezierCurveTo(n+l,i+l*e,a-l,s-l*r,a,s)}function H3(t){this._context=t}function oW(t){this._context=new lW(t)}function lW(t){this._context=t}function v_(t){return new H3(t)}function x_(t){return new oW(t)}var cW=R(()=>{"use strict";o(iW,"sign");o(aW,"slope3");o(sW,"slope2");o(y_,"point");o(H3,"MonotoneX");H3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:y_(this,this._t0,sW(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,y_(this,sW(this,r=aW(this,t,e)),r);break;default:y_(this,this._t0,r=aW(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}},"point")};o(oW,"MonotoneY");(oW.prototype=Object.create(H3.prototype)).point=function(t,e){H3.prototype.point.call(this,e,t)};o(lW,"ReflectContext");lW.prototype={moveTo:o(function(t,e){this._context.moveTo(e,t)},"moveTo"),closePath:o(function(){this._context.closePath()},"closePath"),lineTo:o(function(t,e){this._context.lineTo(e,t)},"lineTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)},"bezierCurveTo")};o(v_,"monotoneX");o(x_,"monotoneY")});function hW(t){this._context=t}function uW(t){var e,r=t.length-1,n,i=new Array(r),a=new Array(r),s=new Array(r);for(i[0]=0,a[0]=2,s[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(s[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e{"use strict";o(hW,"Natural");hW.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=uW(t),i=uW(e),a=0,s=1;s{"use strict";o(W3,"Step");W3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:o(function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e},"point")};o(q3,"default");o(b_,"stepBefore");o(w_,"stepAfter")});var pW=R(()=>{"use strict";OY();GY();UY();WY();XY();qy();HY();KY();h_();d_();Xy();JY();tW();V3();nW();n_();cW();fW();dW()});var mW=R(()=>{"use strict"});var gW=R(()=>{"use strict"});function Rh(t,e,r){this.k=t,this.x=e,this.y=r}function k_(t){for(;!t.__zoom;)if(!(t=t.parentNode))return T_;return t.__zoom}var T_,E_=R(()=>{"use strict";o(Rh,"Transform");Rh.prototype={constructor:Rh,scale:o(function(t){return t===1?this:new Rh(this.k*t,this.x,this.y)},"scale"),translate:o(function(t,e){return t===0&e===0?this:new Rh(this.k,this.x+this.k*t,this.y+this.k*e)},"translate"),apply:o(function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},"apply"),applyX:o(function(t){return t*this.k+this.x},"applyX"),applyY:o(function(t){return t*this.k+this.y},"applyY"),invert:o(function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},"invert"),invertX:o(function(t){return(t-this.x)/this.k},"invertX"),invertY:o(function(t){return(t-this.y)/this.k},"invertY"),rescaleX:o(function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},"rescaleX"),rescaleY:o(function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},"rescaleY"),toString:o(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")};T_=new Rh(1,0,0);k_.prototype=Rh.prototype;o(k_,"transform")});var yW=R(()=>{"use strict"});var vW=R(()=>{"use strict";c3();mW();gW();E_();yW()});var xW=R(()=>{"use strict";vW();E_()});var Zt=R(()=>{"use strict";bh();K$();mH();xH();Lp();bH();wH();bS();$V();TH();l8();kH();CH();C8();zH();GH();Np();d8();$H();EH();VH();LY();NY();fl();pW();_3();K8();n3();c3();xW()});var bW=gi(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.BLANK_URL=Zi.relativeFirstCharacters=Zi.whitespaceEscapeCharsRegex=Zi.urlSchemeRegex=Zi.ctrlCharactersRegex=Zi.htmlCtrlEntityRegex=Zi.htmlEntitiesRegex=Zi.invalidProtocolRegex=void 0;Zi.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;Zi.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;Zi.htmlCtrlEntityRegex=/&(newline|tab);/gi;Zi.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;Zi.urlSchemeRegex=/^.+(:|:)/gim;Zi.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;Zi.relativeFirstCharacters=[".","/"];Zi.BLANK_URL="about:blank"});var Up=gi(X3=>{"use strict";Object.defineProperty(X3,"__esModule",{value:!0});X3.sanitizeUrl=void 0;var Na=bW();function kTe(t){return Na.relativeFirstCharacters.indexOf(t[0])>-1}o(kTe,"isRelativeUrlWithoutProtocol");function ETe(t){var e=t.replace(Na.ctrlCharactersRegex,"");return e.replace(Na.htmlEntitiesRegex,function(r,n){return String.fromCharCode(n)})}o(ETe,"decodeHtmlCharacters");function CTe(t){return URL.canParse(t)}o(CTe,"isValidUrl");function wW(t){try{return decodeURIComponent(t)}catch{return t}}o(wW,"decodeURI");function STe(t){if(!t)return Na.BLANK_URL;var e,r=wW(t.trim());do r=ETe(r).replace(Na.htmlCtrlEntityRegex,"").replace(Na.ctrlCharactersRegex,"").replace(Na.whitespaceEscapeCharsRegex,"").trim(),r=wW(r),e=r.match(Na.ctrlCharactersRegex)||r.match(Na.htmlEntitiesRegex)||r.match(Na.htmlCtrlEntityRegex)||r.match(Na.whitespaceEscapeCharsRegex);while(e&&e.length>0);var n=r;if(!n)return Na.BLANK_URL;if(kTe(n))return n;var i=n.trimStart(),a=i.match(Na.urlSchemeRegex);if(!a)return n;var s=a[0].toLowerCase().trim();if(Na.invalidProtocolRegex.test(s))return Na.BLANK_URL;var l=i.replace(/\\/g,"/");if(s==="mailto:"||s.includes("://"))return l;if(s==="http:"||s==="https:"){if(!CTe(l))return Na.BLANK_URL;var u=new URL(l);return u.protocol=u.protocol.toLowerCase(),u.hostname=u.hostname.toLowerCase(),u.toString()}return l}o(STe,"sanitizeUrl");X3.sanitizeUrl=STe});var C_,yd,j3,TW,kW,EW,wl,Ky,Qy=R(()=>{"use strict";C_=Xi(Up(),1);rr();yd=o((t,e)=>{let r=t.append("rect");if(r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),e.name&&r.attr("name",e.name),e.rx&&r.attr("rx",e.rx),e.ry&&r.attr("ry",e.ry),e.attrs!==void 0)for(let n in e.attrs)r.attr(n,e.attrs[n]);return e.class&&r.attr("class",e.class),r},"drawRect"),j3=o((t,e)=>{let r={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};yd(t,r).lower()},"drawBackgroundRect"),TW=o((t,e)=>{let r=e.text.replace(Qf," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),kW=o((t,e,r,n)=>{let i=t.append("image");i.attr("x",e),i.attr("y",r);let a=(0,C_.sanitizeUrl)(n);i.attr("xlink:href",a)},"drawImage"),EW=o((t,e,r,n)=>{let i=t.append("use");i.attr("x",e),i.attr("y",r);let a=(0,C_.sanitizeUrl)(n);i.attr("xlink:href",`#${a}`)},"drawEmbeddedImage"),wl=o(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),Ky=o(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")});var CW,S_,SW,ATe,_Te,LTe,DTe,RTe,NTe,MTe,ITe,OTe,PTe,BTe,FTe,bu,Tl,AW=R(()=>{"use strict";rr();Qy();CW=Xi(Up(),1),S_=o(function(t,e){return yd(t,e)},"drawRect"),SW=o(function(t,e,r,n,i,a){let s=t.append("image");s.attr("width",e),s.attr("height",r),s.attr("x",n),s.attr("y",i);let l=a.startsWith("data:image/png;base64")?a:(0,CW.sanitizeUrl)(a);s.attr("xlink:href",l)},"drawImage"),ATe=o((t,e,r)=>{let n=t.append("g"),i=0;for(let a of e){let s=a.textColor?a.textColor:"#444444",l=a.lineColor?a.lineColor:"#444444",u=a.offsetX?parseInt(a.offsetX):0,h=a.offsetY?parseInt(a.offsetY):0,f="";if(i===0){let p=n.append("line");p.attr("x1",a.startPoint.x),p.attr("y1",a.startPoint.y),p.attr("x2",a.endPoint.x),p.attr("y2",a.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",l),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),i=-1}else{let p=n.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",l).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=r.messageFont();bu(r)(a.label.text,n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+h,a.label.width,a.label.height,{fill:s},d),a.techn&&a.techn.text!==""&&(d=r.messageFont(),bu(r)("["+a.techn.text+"]",n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+r.messageFontSize+5+h,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:s,"font-style":"italic"},d))}},"drawRels"),_Te=o(function(t,e,r){let n=t.append("g"),i=e.bgColor?e.bgColor:"none",a=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1});let u={x:e.x,y:e.y,fill:i,stroke:a,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l};S_(n,u);let h=r.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,bu(r)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},h),e.type&&e.type.text!==""&&(h=r.boundaryFont(),h.fontColor=s,bu(r)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},h)),e.descr&&e.descr.text!==""&&(h=r.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,bu(r)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},h))},"drawBoundary"),LTe=o(function(t,e,r){let n=e.bgColor?e.bgColor:r[e.typeC4Shape.text+"_bg_color"],i=e.borderColor?e.borderColor:r[e.typeC4Shape.text+"_border_color"],a=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let l=t.append("g");l.attr("class","person-man");let u=wl();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=e.x,u.y=e.y,u.fill=n,u.width=e.width,u.height=e.height,u.stroke=i,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},S_(l,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2));break}let h=FTe(r,e.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":SW(l,48,48,e.x+e.width/2-24,e.y+e.image.Y,s);break}let f=r[e.typeC4Shape.text+"Font"]();return f.fontWeight="bold",f.fontSize=f.fontSize+2,f.fontColor=a,bu(r)(e.label.text,l,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},f),f=r[e.typeC4Shape.text+"Font"](),f.fontColor=a,e.techn&&e.techn?.text!==""?bu(r)(e.techn.text,l,e.x,e.y+e.techn.Y,e.width,e.height,{fill:a,"font-style":"italic"},f):e.type&&e.type.text!==""&&bu(r)(e.type.text,l,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},f),e.descr&&e.descr.text!==""&&(f=r.personFont(),f.fontColor=a,bu(r)(e.descr.text,l,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},f)),e.height},"drawC4Shape"),DTe=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),RTe=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),NTe=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),MTe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),ITe=o(function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),OTe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),PTe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),BTe=o(function(t){let r=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);r.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),r.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),FTe=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),bu=function(){function t(i,a,s,l,u,h,f){let d=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("text-anchor","middle").text(i);n(d,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d){let{fontSize:p,fontFamily:m,fontWeight:g}=d,y=i.split(We.lineBreakRegex);for(let v=0;v{"use strict";zTe=typeof global=="object"&&global&&global.Object===Object&&global,Q3=zTe});var GTe,$Te,Jn,Ro=R(()=>{"use strict";A_();GTe=typeof self=="object"&&self&&self.Object===Object&&self,$Te=Q3||GTe||Function("return this")(),Jn=$Te});var VTe,Ji,vd=R(()=>{"use strict";Ro();VTe=Jn.Symbol,Ji=VTe});function YTe(t){var e=UTe.call(t,Zy),r=t[Zy];try{t[Zy]=void 0;var n=!0}catch{}var i=HTe.call(t);return n&&(e?t[Zy]=r:delete t[Zy]),i}var _W,UTe,HTe,Zy,LW,DW=R(()=>{"use strict";vd();_W=Object.prototype,UTe=_W.hasOwnProperty,HTe=_W.toString,Zy=Ji?Ji.toStringTag:void 0;o(YTe,"getRawTag");LW=YTe});function XTe(t){return qTe.call(t)}var WTe,qTe,RW,NW=R(()=>{"use strict";WTe=Object.prototype,qTe=WTe.toString;o(XTe,"objectToString");RW=XTe});function QTe(t){return t==null?t===void 0?KTe:jTe:MW&&MW in Object(t)?LW(t):RW(t)}var jTe,KTe,MW,fa,wu=R(()=>{"use strict";vd();DW();NW();jTe="[object Null]",KTe="[object Undefined]",MW=Ji?Ji.toStringTag:void 0;o(QTe,"baseGetTag");fa=QTe});function ZTe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var pn,Js=R(()=>{"use strict";o(ZTe,"isObject");pn=ZTe});function nke(t){if(!pn(t))return!1;var e=fa(t);return e==eke||e==tke||e==JTe||e==rke}var JTe,eke,tke,rke,wi,Jy=R(()=>{"use strict";wu();Js();JTe="[object AsyncFunction]",eke="[object Function]",tke="[object GeneratorFunction]",rke="[object Proxy]";o(nke,"isFunction");wi=nke});var ike,Z3,IW=R(()=>{"use strict";Ro();ike=Jn["__core-js_shared__"],Z3=ike});function ake(t){return!!OW&&OW in t}var OW,PW,BW=R(()=>{"use strict";IW();OW=function(){var t=/[^.]+$/.exec(Z3&&Z3.keys&&Z3.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();o(ake,"isMasked");PW=ake});function lke(t){if(t!=null){try{return oke.call(t)}catch{}try{return t+""}catch{}}return""}var ske,oke,Tu,__=R(()=>{"use strict";ske=Function.prototype,oke=ske.toString;o(lke,"toSource");Tu=lke});function gke(t){if(!pn(t)||PW(t))return!1;var e=wi(t)?mke:uke;return e.test(Tu(t))}var cke,uke,hke,fke,dke,pke,mke,FW,zW=R(()=>{"use strict";Jy();BW();Js();__();cke=/[\\^$.*+?()[\]{}|]/g,uke=/^\[object .+?Constructor\]$/,hke=Function.prototype,fke=Object.prototype,dke=hke.toString,pke=fke.hasOwnProperty,mke=RegExp("^"+dke.call(pke).replace(cke,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(gke,"baseIsNative");FW=gke});function yke(t,e){return t?.[e]}var GW,$W=R(()=>{"use strict";o(yke,"getValue");GW=yke});function vke(t,e){var r=GW(t,e);return FW(r)?r:void 0}var xs,Nh=R(()=>{"use strict";zW();$W();o(vke,"getNative");xs=vke});var xke,ku,ev=R(()=>{"use strict";Nh();xke=xs(Object,"create"),ku=xke});function bke(){this.__data__=ku?ku(null):{},this.size=0}var VW,UW=R(()=>{"use strict";ev();o(bke,"hashClear");VW=bke});function wke(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var HW,YW=R(()=>{"use strict";o(wke,"hashDelete");HW=wke});function Cke(t){var e=this.__data__;if(ku){var r=e[t];return r===Tke?void 0:r}return Eke.call(e,t)?e[t]:void 0}var Tke,kke,Eke,WW,qW=R(()=>{"use strict";ev();Tke="__lodash_hash_undefined__",kke=Object.prototype,Eke=kke.hasOwnProperty;o(Cke,"hashGet");WW=Cke});function _ke(t){var e=this.__data__;return ku?e[t]!==void 0:Ake.call(e,t)}var Ske,Ake,XW,jW=R(()=>{"use strict";ev();Ske=Object.prototype,Ake=Ske.hasOwnProperty;o(_ke,"hashHas");XW=_ke});function Dke(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=ku&&e===void 0?Lke:e,this}var Lke,KW,QW=R(()=>{"use strict";ev();Lke="__lodash_hash_undefined__";o(Dke,"hashSet");KW=Dke});function Hp(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";UW();YW();qW();jW();QW();o(Hp,"Hash");Hp.prototype.clear=VW;Hp.prototype.delete=HW;Hp.prototype.get=WW;Hp.prototype.has=XW;Hp.prototype.set=KW;L_=Hp});function Rke(){this.__data__=[],this.size=0}var JW,eq=R(()=>{"use strict";o(Rke,"listCacheClear");JW=Rke});function Nke(t,e){return t===e||t!==t&&e!==e}var No,xd=R(()=>{"use strict";o(Nke,"eq");No=Nke});function Mke(t,e){for(var r=t.length;r--;)if(No(t[r][0],e))return r;return-1}var Mh,tv=R(()=>{"use strict";xd();o(Mke,"assocIndexOf");Mh=Mke});function Pke(t){var e=this.__data__,r=Mh(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():Oke.call(e,r,1),--this.size,!0}var Ike,Oke,tq,rq=R(()=>{"use strict";tv();Ike=Array.prototype,Oke=Ike.splice;o(Pke,"listCacheDelete");tq=Pke});function Bke(t){var e=this.__data__,r=Mh(e,t);return r<0?void 0:e[r][1]}var nq,iq=R(()=>{"use strict";tv();o(Bke,"listCacheGet");nq=Bke});function Fke(t){return Mh(this.__data__,t)>-1}var aq,sq=R(()=>{"use strict";tv();o(Fke,"listCacheHas");aq=Fke});function zke(t,e){var r=this.__data__,n=Mh(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var oq,lq=R(()=>{"use strict";tv();o(zke,"listCacheSet");oq=zke});function Yp(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";eq();rq();iq();sq();lq();o(Yp,"ListCache");Yp.prototype.clear=JW;Yp.prototype.delete=tq;Yp.prototype.get=nq;Yp.prototype.has=aq;Yp.prototype.set=oq;Ih=Yp});var Gke,Oh,J3=R(()=>{"use strict";Nh();Ro();Gke=xs(Jn,"Map"),Oh=Gke});function $ke(){this.size=0,this.__data__={hash:new L_,map:new(Oh||Ih),string:new L_}}var cq,uq=R(()=>{"use strict";ZW();rv();J3();o($ke,"mapCacheClear");cq=$ke});function Vke(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var hq,fq=R(()=>{"use strict";o(Vke,"isKeyable");hq=Vke});function Uke(t,e){var r=t.__data__;return hq(e)?r[typeof e=="string"?"string":"hash"]:r.map}var Ph,nv=R(()=>{"use strict";fq();o(Uke,"getMapData");Ph=Uke});function Hke(t){var e=Ph(this,t).delete(t);return this.size-=e?1:0,e}var dq,pq=R(()=>{"use strict";nv();o(Hke,"mapCacheDelete");dq=Hke});function Yke(t){return Ph(this,t).get(t)}var mq,gq=R(()=>{"use strict";nv();o(Yke,"mapCacheGet");mq=Yke});function Wke(t){return Ph(this,t).has(t)}var yq,vq=R(()=>{"use strict";nv();o(Wke,"mapCacheHas");yq=Wke});function qke(t,e){var r=Ph(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}var xq,bq=R(()=>{"use strict";nv();o(qke,"mapCacheSet");xq=qke});function Wp(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";uq();pq();gq();vq();bq();o(Wp,"MapCache");Wp.prototype.clear=cq;Wp.prototype.delete=dq;Wp.prototype.get=mq;Wp.prototype.has=yq;Wp.prototype.set=xq;bd=Wp});function D_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(Xke);var r=o(function(){var n=arguments,i=e?e.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=t.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(D_.Cache||bd),r}var Xke,qp,R_=R(()=>{"use strict";e5();Xke="Expected a function";o(D_,"memoize");D_.Cache=bd;qp=D_});function jke(){this.__data__=new Ih,this.size=0}var wq,Tq=R(()=>{"use strict";rv();o(jke,"stackClear");wq=jke});function Kke(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var kq,Eq=R(()=>{"use strict";o(Kke,"stackDelete");kq=Kke});function Qke(t){return this.__data__.get(t)}var Cq,Sq=R(()=>{"use strict";o(Qke,"stackGet");Cq=Qke});function Zke(t){return this.__data__.has(t)}var Aq,_q=R(()=>{"use strict";o(Zke,"stackHas");Aq=Zke});function eEe(t,e){var r=this.__data__;if(r instanceof Ih){var n=r.__data__;if(!Oh||n.length{"use strict";rv();J3();e5();Jke=200;o(eEe,"stackSet");Lq=eEe});function Xp(t){var e=this.__data__=new Ih(t);this.size=e.size}var uc,iv=R(()=>{"use strict";rv();Tq();Eq();Sq();_q();Dq();o(Xp,"Stack");Xp.prototype.clear=wq;Xp.prototype.delete=kq;Xp.prototype.get=Cq;Xp.prototype.has=Aq;Xp.prototype.set=Lq;uc=Xp});var tEe,jp,N_=R(()=>{"use strict";Nh();tEe=function(){try{var t=xs(Object,"defineProperty");return t({},"",{}),t}catch{}}(),jp=tEe});function rEe(t,e,r){e=="__proto__"&&jp?jp(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var hc,Kp=R(()=>{"use strict";N_();o(rEe,"baseAssignValue");hc=rEe});function nEe(t,e,r){(r!==void 0&&!No(t[e],r)||r===void 0&&!(e in t))&&hc(t,e,r)}var av,M_=R(()=>{"use strict";Kp();xd();o(nEe,"assignMergeValue");av=nEe});function iEe(t){return function(e,r,n){for(var i=-1,a=Object(e),s=n(e),l=s.length;l--;){var u=s[t?l:++i];if(r(a[u],u,a)===!1)break}return e}}var Rq,Nq=R(()=>{"use strict";o(iEe,"createBaseFor");Rq=iEe});var aEe,Qp,t5=R(()=>{"use strict";Nq();aEe=Rq(),Qp=aEe});function oEe(t,e){if(e)return t.slice();var r=t.length,n=Oq?Oq(r):new t.constructor(r);return t.copy(n),n}var Pq,Mq,sEe,Iq,Oq,r5,I_=R(()=>{"use strict";Ro();Pq=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Mq=Pq&&typeof module=="object"&&module&&!module.nodeType&&module,sEe=Mq&&Mq.exports===Pq,Iq=sEe?Jn.Buffer:void 0,Oq=Iq?Iq.allocUnsafe:void 0;o(oEe,"cloneBuffer");r5=oEe});var lEe,Zp,O_=R(()=>{"use strict";Ro();lEe=Jn.Uint8Array,Zp=lEe});function cEe(t){var e=new t.constructor(t.byteLength);return new Zp(e).set(new Zp(t)),e}var Jp,n5=R(()=>{"use strict";O_();o(cEe,"cloneArrayBuffer");Jp=cEe});function uEe(t,e){var r=e?Jp(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var i5,P_=R(()=>{"use strict";n5();o(uEe,"cloneTypedArray");i5=uEe});function hEe(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r{"use strict";o(hEe,"copyArray");a5=hEe});var Bq,fEe,Fq,zq=R(()=>{"use strict";Js();Bq=Object.create,fEe=function(){function t(){}return o(t,"object"),function(e){if(!pn(e))return{};if(Bq)return Bq(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),Fq=fEe});function dEe(t,e){return function(r){return t(e(r))}}var s5,F_=R(()=>{"use strict";o(dEe,"overArg");s5=dEe});var pEe,em,o5=R(()=>{"use strict";F_();pEe=s5(Object.getPrototypeOf,Object),em=pEe});function gEe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||mEe;return t===r}var mEe,fc,tm=R(()=>{"use strict";mEe=Object.prototype;o(gEe,"isPrototype");fc=gEe});function yEe(t){return typeof t.constructor=="function"&&!fc(t)?Fq(em(t)):{}}var l5,z_=R(()=>{"use strict";zq();o5();tm();o(yEe,"initCloneObject");l5=yEe});function vEe(t){return t!=null&&typeof t=="object"}var Wn,Mo=R(()=>{"use strict";o(vEe,"isObjectLike");Wn=vEe});function bEe(t){return Wn(t)&&fa(t)==xEe}var xEe,G_,Gq=R(()=>{"use strict";wu();Mo();xEe="[object Arguments]";o(bEe,"baseIsArguments");G_=bEe});var $q,wEe,TEe,kEe,kl,rm=R(()=>{"use strict";Gq();Mo();$q=Object.prototype,wEe=$q.hasOwnProperty,TEe=$q.propertyIsEnumerable,kEe=G_(function(){return arguments}())?G_:function(t){return Wn(t)&&wEe.call(t,"callee")&&!TEe.call(t,"callee")},kl=kEe});var EEe,wt,Bn=R(()=>{"use strict";EEe=Array.isArray,wt=EEe});function SEe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=CEe}var CEe,nm,c5=R(()=>{"use strict";CEe=9007199254740991;o(SEe,"isLength");nm=SEe});function AEe(t){return t!=null&&nm(t.length)&&!wi(t)}var ei,Io=R(()=>{"use strict";Jy();c5();o(AEe,"isArrayLike");ei=AEe});function _Ee(t){return Wn(t)&&ei(t)}var wd,u5=R(()=>{"use strict";Io();Mo();o(_Ee,"isArrayLikeObject");wd=_Ee});function LEe(){return!1}var Vq,Uq=R(()=>{"use strict";o(LEe,"stubFalse");Vq=LEe});var Wq,Hq,DEe,Yq,REe,NEe,El,im=R(()=>{"use strict";Ro();Uq();Wq=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Hq=Wq&&typeof module=="object"&&module&&!module.nodeType&&module,DEe=Hq&&Hq.exports===Wq,Yq=DEe?Jn.Buffer:void 0,REe=Yq?Yq.isBuffer:void 0,NEe=REe||Vq,El=NEe});function FEe(t){if(!Wn(t)||fa(t)!=MEe)return!1;var e=em(t);if(e===null)return!0;var r=PEe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&qq.call(r)==BEe}var MEe,IEe,OEe,qq,PEe,BEe,Xq,jq=R(()=>{"use strict";wu();o5();Mo();MEe="[object Object]",IEe=Function.prototype,OEe=Object.prototype,qq=IEe.toString,PEe=OEe.hasOwnProperty,BEe=qq.call(Object);o(FEe,"isPlainObject");Xq=FEe});function c6e(t){return Wn(t)&&nm(t.length)&&!!Mn[fa(t)]}var zEe,GEe,$Ee,VEe,UEe,HEe,YEe,WEe,qEe,XEe,jEe,KEe,QEe,ZEe,JEe,e6e,t6e,r6e,n6e,i6e,a6e,s6e,o6e,l6e,Mn,Kq,Qq=R(()=>{"use strict";wu();c5();Mo();zEe="[object Arguments]",GEe="[object Array]",$Ee="[object Boolean]",VEe="[object Date]",UEe="[object Error]",HEe="[object Function]",YEe="[object Map]",WEe="[object Number]",qEe="[object Object]",XEe="[object RegExp]",jEe="[object Set]",KEe="[object String]",QEe="[object WeakMap]",ZEe="[object ArrayBuffer]",JEe="[object DataView]",e6e="[object Float32Array]",t6e="[object Float64Array]",r6e="[object Int8Array]",n6e="[object Int16Array]",i6e="[object Int32Array]",a6e="[object Uint8Array]",s6e="[object Uint8ClampedArray]",o6e="[object Uint16Array]",l6e="[object Uint32Array]",Mn={};Mn[e6e]=Mn[t6e]=Mn[r6e]=Mn[n6e]=Mn[i6e]=Mn[a6e]=Mn[s6e]=Mn[o6e]=Mn[l6e]=!0;Mn[zEe]=Mn[GEe]=Mn[ZEe]=Mn[$Ee]=Mn[JEe]=Mn[VEe]=Mn[UEe]=Mn[HEe]=Mn[YEe]=Mn[WEe]=Mn[qEe]=Mn[XEe]=Mn[jEe]=Mn[KEe]=Mn[QEe]=!1;o(c6e,"baseIsTypedArray");Kq=c6e});function u6e(t){return function(e){return t(e)}}var Oo,Td=R(()=>{"use strict";o(u6e,"baseUnary");Oo=u6e});var Zq,sv,h6e,$_,f6e,Po,ov=R(()=>{"use strict";A_();Zq=typeof exports=="object"&&exports&&!exports.nodeType&&exports,sv=Zq&&typeof module=="object"&&module&&!module.nodeType&&module,h6e=sv&&sv.exports===Zq,$_=h6e&&Q3.process,f6e=function(){try{var t=sv&&sv.require&&sv.require("util").types;return t||$_&&$_.binding&&$_.binding("util")}catch{}}(),Po=f6e});var Jq,d6e,Bh,lv=R(()=>{"use strict";Qq();Td();ov();Jq=Po&&Po.isTypedArray,d6e=Jq?Oo(Jq):Kq,Bh=d6e});function p6e(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var cv,V_=R(()=>{"use strict";o(p6e,"safeGet");cv=p6e});function y6e(t,e,r){var n=t[e];(!(g6e.call(t,e)&&No(n,r))||r===void 0&&!(e in t))&&hc(t,e,r)}var m6e,g6e,dc,am=R(()=>{"use strict";Kp();xd();m6e=Object.prototype,g6e=m6e.hasOwnProperty;o(y6e,"assignValue");dc=y6e});function v6e(t,e,r,n){var i=!r;r||(r={});for(var a=-1,s=e.length;++a{"use strict";am();Kp();o(v6e,"copyObject");Bo=v6e});function x6e(t,e){for(var r=-1,n=Array(t);++r{"use strict";o(x6e,"baseTimes");eX=x6e});function T6e(t,e){var r=typeof t;return e=e??b6e,!!e&&(r=="number"||r!="symbol"&&w6e.test(t))&&t>-1&&t%1==0&&t{"use strict";b6e=9007199254740991,w6e=/^(?:0|[1-9]\d*)$/;o(T6e,"isIndex");Fh=T6e});function C6e(t,e){var r=wt(t),n=!r&&kl(t),i=!r&&!n&&El(t),a=!r&&!n&&!i&&Bh(t),s=r||n||i||a,l=s?eX(t.length,String):[],u=l.length;for(var h in t)(e||E6e.call(t,h))&&!(s&&(h=="length"||i&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Fh(h,u)))&&l.push(h);return l}var k6e,E6e,h5,U_=R(()=>{"use strict";tX();rm();Bn();im();uv();lv();k6e=Object.prototype,E6e=k6e.hasOwnProperty;o(C6e,"arrayLikeKeys");h5=C6e});function S6e(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var rX,nX=R(()=>{"use strict";o(S6e,"nativeKeysIn");rX=S6e});function L6e(t){if(!pn(t))return rX(t);var e=fc(t),r=[];for(var n in t)n=="constructor"&&(e||!_6e.call(t,n))||r.push(n);return r}var A6e,_6e,iX,aX=R(()=>{"use strict";Js();tm();nX();A6e=Object.prototype,_6e=A6e.hasOwnProperty;o(L6e,"baseKeysIn");iX=L6e});function D6e(t){return ei(t)?h5(t,!0):iX(t)}var bs,zh=R(()=>{"use strict";U_();aX();Io();o(D6e,"keysIn");bs=D6e});function R6e(t){return Bo(t,bs(t))}var sX,oX=R(()=>{"use strict";kd();zh();o(R6e,"toPlainObject");sX=R6e});function N6e(t,e,r,n,i,a,s){var l=cv(t,r),u=cv(e,r),h=s.get(u);if(h){av(t,r,h);return}var f=a?a(l,u,r+"",t,e,s):void 0,d=f===void 0;if(d){var p=wt(u),m=!p&&El(u),g=!p&&!m&&Bh(u);f=u,p||m||g?wt(l)?f=l:wd(l)?f=a5(l):m?(d=!1,f=r5(u,!0)):g?(d=!1,f=i5(u,!0)):f=[]:Xq(u)||kl(u)?(f=l,kl(l)?f=sX(l):(!pn(l)||wi(l))&&(f=l5(u))):d=!1}d&&(s.set(u,f),i(f,u,n,a,s),s.delete(u)),av(t,r,f)}var lX,cX=R(()=>{"use strict";M_();I_();P_();B_();z_();rm();Bn();u5();im();Jy();Js();jq();lv();V_();oX();o(N6e,"baseMergeDeep");lX=N6e});function uX(t,e,r,n,i){t!==e&&Qp(e,function(a,s){if(i||(i=new uc),pn(a))lX(t,e,s,r,uX,n,i);else{var l=n?n(cv(t,s),a,s+"",t,e,i):void 0;l===void 0&&(l=a),av(t,s,l)}},bs)}var hX,fX=R(()=>{"use strict";iv();M_();t5();cX();Js();zh();V_();o(uX,"baseMerge");hX=uX});function M6e(t){return t}var ea,Eu=R(()=>{"use strict";o(M6e,"identity");ea=M6e});function I6e(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var dX,pX=R(()=>{"use strict";o(I6e,"apply");dX=I6e});function O6e(t,e,r){return e=mX(e===void 0?t.length-1:e,0),function(){for(var n=arguments,i=-1,a=mX(n.length-e,0),s=Array(a);++i{"use strict";pX();mX=Math.max;o(O6e,"overRest");f5=O6e});function P6e(t){return function(){return t}}var ws,Y_=R(()=>{"use strict";o(P6e,"constant");ws=P6e});var B6e,gX,yX=R(()=>{"use strict";Y_();N_();Eu();B6e=jp?function(t,e){return jp(t,"toString",{configurable:!0,enumerable:!1,value:ws(e),writable:!0})}:ea,gX=B6e});function $6e(t){var e=0,r=0;return function(){var n=G6e(),i=z6e-(n-r);if(r=n,i>0){if(++e>=F6e)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var F6e,z6e,G6e,vX,xX=R(()=>{"use strict";F6e=800,z6e=16,G6e=Date.now;o($6e,"shortOut");vX=$6e});var V6e,d5,W_=R(()=>{"use strict";yX();xX();V6e=vX(gX),d5=V6e});function U6e(t,e){return d5(f5(t,e,ea),t+"")}var pc,sm=R(()=>{"use strict";Eu();H_();W_();o(U6e,"baseRest");pc=U6e});function H6e(t,e,r){if(!pn(r))return!1;var n=typeof e;return(n=="number"?ei(r)&&Fh(e,r.length):n=="string"&&e in r)?No(r[e],t):!1}var eo,Ed=R(()=>{"use strict";xd();Io();uv();Js();o(H6e,"isIterateeCall");eo=H6e});function Y6e(t){return pc(function(e,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=t.length>3&&typeof a=="function"?(i--,a):void 0,s&&eo(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),e=Object(e);++n{"use strict";sm();Ed();o(Y6e,"createAssigner");p5=Y6e});var W6e,Gh,X_=R(()=>{"use strict";fX();q_();W6e=p5(function(t,e,r){hX(t,e,r)}),Gh=W6e});function om(t,e){if(!t)return e;let r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return q6e[r]??e}function Q6e(t,e){let r=t.trim();if(r)return e.securityLevel!=="loose"?(0,TX.sanitizeUrl)(r):r}function CX(t,e){return!t||!e?0:Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function J6e(t){let e,r=0;t.forEach(i=>{r+=CX(i,e),e=i});let n=r/2;return Q_(t,n)}function eCe(t){return t.length===1?t[0]:J6e(t)}function rCe(t,e,r){let n=structuredClone(r);V.info("our points",n),e!=="start_left"&&e!=="start_right"&&n.reverse();let i=25+t,a=Q_(n,i),s=10+t*.5,l=Math.atan2(n[0].y-a.y,n[0].x-a.x),u={x:0,y:0};return e==="start_left"?(u.x=Math.sin(l+Math.PI)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l+Math.PI)*s+(n[0].y+a.y)/2):e==="end_right"?(u.x=Math.sin(l-Math.PI)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l-Math.PI)*s+(n[0].y+a.y)/2-5):e==="end_left"?(u.x=Math.sin(l)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2-5):(u.x=Math.sin(l)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2),u}function lm(t){let e="",r="";for(let n of t)n!==void 0&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":e=e+n+";");return{style:e,labelStyle:r}}function nCe(t){let e="",r="0123456789abcdef",n=r.length;for(let i=0;i{"use strict";TX=Xi(Up(),1);Zt();rr();r7();ut();Hf();cp();R_();X_();Vb();K_="\u200B",q6e={curveBasis:vs,curveBasisClosed:B3,curveBasisOpen:F3,curveBumpX:s_,curveBumpY:o_,curveBundle:l_,curveCardinalClosed:u_,curveCardinalOpen:f_,curveCardinal:c_,curveCatmullRomClosed:m_,curveCatmullRomOpen:g_,curveCatmullRom:p_,curveLinear:xu,curveLinearClosed:U3,curveMonotoneX:v_,curveMonotoneY:x_,curveNatural:Y3,curveStep:q3,curveStepAfter:w_,curveStepBefore:b_},X6e=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,j6e=o(function(t,e){let r=kX(t,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(r)){let s=r.map(l=>l.args);fp(s),n=On(n,[...s])}else n=r.args;if(!n)return;let i=lp(t,e),a="config";return n[a]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),n[i]=n[a],delete n[a]),n},"detectInit"),kX=o(function(t,e=null){try{let r=new RegExp(`[%]{2}(?![{]${X6e.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),V.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let n,i=[];for(;(n=Vf.exec(t))!==null;)if(n.index===Vf.lastIndex&&Vf.lastIndex++,n&&!e||e&&n[1]?.match(e)||e&&n[2]?.match(e)){let a=n[1]?n[1]:n[2],s=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:a,args:s})}return i.length===0?{type:t,args:null}:i.length===1?i[0]:i}catch(r){return V.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),EX=o(function(t){return t.replace(Vf,"")},"removeDirectives"),K6e=o(function(t,e){for(let[r,n]of e.entries())if(n.match(t))return r;return-1},"isSubstringInArray");o(om,"interpolateToCurve");o(Q6e,"formatUrl");Z6e=o((t,...e)=>{let r=t.split("."),n=r.length-1,i=r[n],a=window;for(let s=0;s{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),Q_=o((t,e)=>{let r,n=e;for(let i of t){if(r){let a=CX(i,r);if(a=1)return{x:i.x,y:i.y};if(s>0&&s<1)return{x:bX((1-s)*r.x+s*i.x,5),y:bX((1-s)*r.y+s*i.y,5)}}}r=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),tCe=o((t,e,r)=>{V.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=Q_(e,25),a=t?10:5,s=Math.atan2(e[0].y-i.y,e[0].x-i.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(e[0].x+i.x)/2,l.y=-Math.cos(s)*a+(e[0].y+i.y)/2,l},"calcCardinalityPosition");o(rCe,"calcTerminalLabelPosition");o(lm,"getStylesFromArray");wX=0,Z_=o(()=>(wX++,"id-"+Math.random().toString(36).substr(2,12)+"-"+wX),"generateId");o(nCe,"makeRandomHex");J_=o(t=>nCe(t.length),"random"),iCe=o(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),aCe=o(function(t,e){let r=e.text.replace(We.lineBreakRegex," "),[,n]=mc(e.fontSize),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.style("font-family",e.fontFamily),i.style("font-size",n),i.style("font-weight",e.fontWeight),i.attr("fill",e.fill),e.class!==void 0&&i.attr("class",e.class);let a=i.append("tspan");return a.attr("x",e.x+e.textMargin*2),a.attr("fill",e.fill),a.text(r),i},"drawSimpleText"),e9=qp((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},r),We.lineBreakRegex.test(t)))return t;let n=t.split(" ").filter(Boolean),i=[],a="";return n.forEach((s,l)=>{let u=Cl(`${s} `,r),h=Cl(a,r);if(u>e){let{hyphenatedStrings:p,remainingWord:m}=sCe(s,e,"-",r);i.push(a,...p),a=m}else h+u>=e?(i.push(a),a=s):a=[a,s].filter(Boolean).join(" ");l+1===n.length&&i.push(a)}),i.filter(s=>s!=="").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),sCe=qp((t,e,r="-",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},n);let i=[...t],a=[],s="";return i.forEach((l,u)=>{let h=`${s}${l}`;if(Cl(h,n)>=e){let d=u+1,p=i.length===d,m=`${h}${r}`;a.push(p?h:m),s=""}else s=h}),{hyphenatedStrings:a,remainingWord:s}},(t,e,r="-",n)=>`${t}${e}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);o(g5,"calculateTextHeight");o(Cl,"calculateTextWidth");t9=qp((t,e)=>{let{fontSize:r=12,fontFamily:n="Arial",fontWeight:i=400}=e;if(!t)return{width:0,height:0};let[,a]=mc(r),s=["sans-serif",n],l=t.split(We.lineBreakRegex),u=[],h=$e("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let f=h.append("svg");for(let p of s){let m=0,g={width:0,height:0,lineHeight:0};for(let y of l){let v=iCe();v.text=y||K_;let x=aCe(f,v).style("font-size",a).style("font-weight",i).style("font-family",p),b=(x._groups||x)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");g.width=Math.round(Math.max(g.width,b.width)),m=Math.round(b.height),g.height+=m,g.lineHeight=Math.round(Math.max(g.lineHeight,m))}u.push(g)}f.remove();let d=isNaN(u[1].height)||isNaN(u[1].width)||isNaN(u[1].lineHeight)||u[0].height>u[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1;return u[d]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),j_=class{constructor(e=!1,r){this.count=0;this.count=r?r.length:0,this.next=e?()=>this.count++:()=>Date.now()}static{o(this,"InitIDGenerator")}},oCe=o(function(t){return m5=m5||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),m5.innerHTML=t,unescape(m5.textContent)},"entityDecode");o(r9,"isDetailedError");lCe=o((t,e,r,n)=>{if(!n)return;let i=t.node()?.getBBox();i&&t.append("text").text(n).attr("x",i.x+i.width/2).attr("y",-r).attr("class",e)},"insertTitle"),mc=o(t=>{if(typeof t=="number")return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");o(Ts,"cleanAndMerge");Lt={assignWithDepth:On,wrapLabel:e9,calculateTextHeight:g5,calculateTextWidth:Cl,calculateTextDimensions:t9,cleanAndMerge:Ts,detectInit:j6e,detectDirective:kX,isSubstringInArray:K6e,interpolateToCurve:om,calcLabelPosition:eCe,calcCardinalityPosition:tCe,calcTerminalLabelPosition:rCe,formatUrl:Q6e,getStylesFromArray:lm,generateId:Z_,random:J_,runFunc:Z6e,entityDecode:oCe,insertTitle:lCe,parseFontSize:mc,InitIDGenerator:j_},SX=o(function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/#\w+;/g,function(r){let n=r.substring(1,r.length-1);return/^\+?\d+$/.test(n)?"\uFB02\xB0\xB0"+n+"\xB6\xDF":"\uFB02\xB0"+n+"\xB6\xDF"}),e},"encodeEntities"),to=o(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),y5=o((t,e,{counter:r=0,prefix:n,suffix:i})=>`${n?`${n}_`:""}${t}_${e}_${r}${i?`_${i}`:""}`,"getEdgeId")});function Sl(t,e,r,n,i){if(!e[t].width)if(r)e[t].text=e9(e[t].text,i,n),e[t].textLines=e[t].text.split(We.lineBreakRegex).length,e[t].width=i,e[t].height=g5(e[t].text,n);else{let a=e[t].text.split(We.lineBreakRegex);e[t].textLines=a.length;let s=0;e[t].height=0,e[t].width=0;for(let l of a)e[t].width=Math.max(Cl(l,n),e[t].width),s=g5(l,n),e[t].height=e[t].height+s}}function RX(t,e,r,n,i){let a=new w5(i);a.data.widthLimit=r.data.widthLimit/Math.min(n9,n.length);for(let[s,l]of n.entries()){let u=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=u,u=l.image.Y+l.image.height);let h=l.wrap&&Nt.wrap,f=v5(Nt);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Sl("label",l,h,f,a.data.widthLimit),l.label.Y=u+8,u=l.label.Y+l.label.height,l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let g=v5(Nt);Sl("type",l,h,g,a.data.widthLimit),l.type.Y=u+5,u=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let g=v5(Nt);g.fontSize=g.fontSize-2,Sl("descr",l,h,g,a.data.widthLimit),l.descr.Y=u+20,u=l.descr.Y+l.descr.height}if(s==0||s%n9===0){let g=r.data.startx+Nt.diagramMarginX,y=r.data.stopy+Nt.diagramMarginY+u;a.setData(g,g,y,y)}else{let g=a.data.stopx!==a.data.startx?a.data.stopx+Nt.diagramMarginX:a.data.startx,y=a.data.starty;a.setData(g,g,y,y)}a.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),p=i.db.getC4ShapeKeys(l.alias);p.length>0&&DX(a,t,d,p),e=l.alias;let m=i.db.getBoundarys(e);m.length>0&&RX(t,e,a,m,i),l.alias!=="global"&&LX(t,l,a),r.data.stopy=Math.max(a.data.stopy+Nt.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(a.data.stopx+Nt.c4ShapeMargin,r.data.stopx),x5=Math.max(x5,r.data.stopx),b5=Math.max(b5,r.data.stopy)}}var x5,b5,_X,n9,Nt,w5,i9,hv,v5,cCe,LX,DX,ks,AX,uCe,hCe,fCe,a9,NX=R(()=>{"use strict";Zt();AW();ut();VC();rr();lS();_t();cp();xr();Yn();x5=0,b5=0,_X=4,n9=2;U1.yy=hy;Nt={},w5=class{static{o(this,"Bounds")}constructor(e){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,i9(e.db.getConfig())}setData(e,r,n,i){this.nextData.startx=this.data.startx=e,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(e,r,n,i){e[r]===void 0?e[r]=n:e[r]=i(n,e[r])}insert(e){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+e.margin:this.nextData.stopx+e.margin*2,n=r+e.width,i=this.nextData.starty+e.margin*2,a=i+e.height;(r>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>_X)&&(r=this.nextData.startx+e.margin+Nt.nextLinePaddingX,i=this.nextData.stopy+e.margin*2,this.nextData.stopx=n=r+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+e.height,this.nextData.cnt=1),e.x=r,e.y=i,this.updateVal(this.data,"startx",r,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",r,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(e){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},i9(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}},i9=o(function(t){On(Nt,t),t.fontFamily&&(Nt.personFontFamily=Nt.systemFontFamily=Nt.messageFontFamily=t.fontFamily),t.fontSize&&(Nt.personFontSize=Nt.systemFontSize=Nt.messageFontSize=t.fontSize),t.fontWeight&&(Nt.personFontWeight=Nt.systemFontWeight=Nt.messageFontWeight=t.fontWeight)},"setConf"),hv=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),v5=o(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),cCe=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");o(Sl,"calcC4ShapeTextWH");LX=o(function(t,e,r){e.x=r.data.startx,e.y=r.data.starty,e.width=r.data.stopx-r.data.startx,e.height=r.data.stopy-r.data.starty,e.label.y=Nt.c4ShapeMargin-35;let n=e.wrap&&Nt.wrap,i=v5(Nt);i.fontSize=i.fontSize+2,i.fontWeight="bold";let a=Cl(e.label.text,i);Sl("label",e,n,i,a),Tl.drawBoundary(t,e,Nt)},"drawBoundary"),DX=o(function(t,e,r,n){let i=0;for(let a of n){i=0;let s=r[a],l=hv(Nt,s.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,s.typeC4Shape.width=Cl("\xAB"+s.typeC4Shape.text+"\xBB",l),s.typeC4Shape.height=l.fontSize+2,s.typeC4Shape.Y=Nt.c4ShapePadding,i=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let u=s.wrap&&Nt.wrap,h=Nt.width-Nt.c4ShapePadding*2,f=hv(Nt,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Sl("label",s,u,f,h),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let m=hv(Nt,s.typeC4Shape.text);Sl("type",s,u,m,h),s.type.Y=i+5,i=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let m=hv(Nt,s.techn.text);Sl("techn",s,u,m,h),s.techn.Y=i+5,i=s.techn.Y+s.techn.height}let d=i,p=s.label.width;if(s.descr&&s.descr.text!==""){let m=hv(Nt,s.typeC4Shape.text);Sl("descr",s,u,m,h),s.descr.Y=i+20,i=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=i-s.descr.textLines*5}p=p+Nt.c4ShapePadding,s.width=Math.max(s.width||Nt.width,p,Nt.width),s.height=Math.max(s.height||Nt.height,d,Nt.height),s.margin=s.margin||Nt.c4ShapeMargin,t.insert(s),Tl.drawC4Shape(e,s,Nt)}t.bumpLastMargin(Nt.c4ShapeMargin)},"drawC4ShapeArray"),ks=class{static{o(this,"Point")}constructor(e,r){this.x=e,this.y=r}},AX=o(function(t,e){let r=t.x,n=t.y,i=e.x,a=e.y,s=r+t.width/2,l=n+t.height/2,u=Math.abs(r-i),h=Math.abs(n-a),f=h/u,d=t.height/t.width,p=null;return n==a&&ri?p=new ks(r,l):r==i&&na&&(p=new ks(s,n)),r>i&&n=f?p=new ks(r,l+f*t.width/2):p=new ks(s-u/h*t.height/2,n+t.height):r=f?p=new ks(r+t.width,l+f*t.width/2):p=new ks(s+u/h*t.height/2,n+t.height):ra?d>=f?p=new ks(r+t.width,l-f*t.width/2):p=new ks(s+t.height/2*u/h,n):r>i&&n>a&&(d>=f?p=new ks(r,l-t.width/2*f):p=new ks(s-t.height/2*u/h,n)),p},"getIntersectPoint"),uCe=o(function(t,e){let r={x:0,y:0};r.x=e.x+e.width/2,r.y=e.y+e.height/2;let n=AX(t,r);r.x=t.x+t.width/2,r.y=t.y+t.height/2;let i=AX(e,r);return{startPoint:n,endPoint:i}},"getIntersectPoints"),hCe=o(function(t,e,r,n){let i=0;for(let a of e){i=i+1;let s=a.wrap&&Nt.wrap,l=cCe(Nt);n.db.getC4Type()==="C4Dynamic"&&(a.label.text=i+": "+a.label.text);let h=Cl(a.label.text,l);Sl("label",a,s,l,h),a.techn&&a.techn.text!==""&&(h=Cl(a.techn.text,l),Sl("techn",a,s,l,h)),a.descr&&a.descr.text!==""&&(h=Cl(a.descr.text,l),Sl("descr",a,s,l,h));let f=r(a.from),d=r(a.to),p=uCe(f,d);a.startPoint=p.startPoint,a.endPoint=p.endPoint}Tl.drawRels(t,e,Nt)},"drawRels");o(RX,"drawInsideBoundary");fCe=o(function(t,e,r,n){Nt=de().c4;let i=de().securityLevel,a;i==="sandbox"&&(a=$e("#i"+e));let s=i==="sandbox"?$e(a.nodes()[0].contentDocument.body):$e("body"),l=n.db;n.db.setWrap(Nt.wrap),_X=l.getC4ShapeInRow(),n9=l.getC4BoundaryInRow(),V.debug(`C:${JSON.stringify(Nt,null,2)}`);let u=i==="sandbox"?s.select(`[id="${e}"]`):$e(`[id="${e}"]`);Tl.insertComputerIcon(u),Tl.insertDatabaseIcon(u),Tl.insertClockIcon(u);let h=new w5(n);h.setData(Nt.diagramMarginX,Nt.diagramMarginX,Nt.diagramMarginY,Nt.diagramMarginY),h.data.widthLimit=screen.availWidth,x5=Nt.diagramMarginX,b5=Nt.diagramMarginY;let f=n.db.getTitle(),d=n.db.getBoundarys("");RX(u,"",h,d,n),Tl.insertArrowHead(u),Tl.insertArrowEnd(u),Tl.insertArrowCrossHead(u),Tl.insertArrowFilledHead(u),hCe(u,n.db.getRels(),n.db.getC4Shape,n),h.data.stopx=x5,h.data.stopy=b5;let p=h.data,g=p.stopy-p.starty+2*Nt.diagramMarginY,v=p.stopx-p.startx+2*Nt.diagramMarginX;f&&u.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*Nt.diagramMarginX).attr("y",p.starty+Nt.diagramMarginY),Sr(u,g,v,Nt.useMaxWidth);let x=f?60:0;u.attr("viewBox",p.startx-Nt.diagramMarginX+" -"+(Nt.diagramMarginY+x)+" "+v+" "+(g+x)),V.debug("models:",p)},"draw"),a9={drawPersonOrSystemArray:DX,drawBoundary:LX,setConf:i9,draw:fCe}});var dCe,MX,IX=R(()=>{"use strict";dCe=o(t=>`.person { + stroke: ${t.personBorder}; + fill: ${t.personBkg}; + } +`,"getStyles"),MX=dCe});var OX={};hr(OX,{diagram:()=>pCe});var pCe,PX=R(()=>{"use strict";VC();lS();NX();IX();pCe={parser:rz,db:hy,renderer:a9,styles:MX,init:o(({c4:t,wrap:e})=>{a9.setConf(t),hy.setWrap(e)},"init")}});function o9(t){let e=[];for(let r of t){let n=dv.get(r);n?.styles&&(e=[...e,...n.styles??[]].map(i=>i.trim())),n?.textStyles&&(e=[...e,...n.textStyles??[]].map(i=>i.trim()))}return e}var vCe,zX,cm,$h,Es,dv,Cu,l9,c9,T5,s9,Fo,k5,E5,C5,S5,xCe,bCe,wCe,TCe,kCe,ECe,CCe,u9,SCe,ACe,_Ce,GX,LCe,DCe,h9,$X,VX,RCe,UX,NCe,MCe,ICe,OCe,PCe,fv,HX,YX,BCe,FCe,WX,zCe,GCe,$Ce,VCe,UCe,qX,XX,HCe,YCe,WCe,qCe,XCe,jCe,A5,f9=R(()=>{"use strict";Zt();xr();_t();rr();ut();bi();vCe="flowchart-",zX=0,cm=de(),$h=new Map,Es=[],dv=new Map,Cu=[],l9=new Map,c9=new Map,T5=0,s9=!0,E5=[],C5=o(t=>We.sanitizeText(t,cm),"sanitizeText"),S5=o(function(t){for(let e of $h.values())if(e.id===t)return e.domId;return t},"lookUpDomId"),xCe=o(function(t,e,r,n,i,a,s={}){if(!t||t.trim().length===0)return;let l,u=$h.get(t);u===void 0&&(u={id:t,labelType:"text",domId:vCe+t+"-"+zX,styles:[],classes:[]},$h.set(t,u)),zX++,e!==void 0?(cm=de(),l=C5(e.text.trim()),u.labelType=e.type,l.startsWith('"')&&l.endsWith('"')&&(l=l.substring(1,l.length-1)),u.text=l):u.text===void 0&&(u.text=t),r!==void 0&&(u.type=r),n?.forEach(function(h){u.styles.push(h)}),i?.forEach(function(h){u.classes.push(h)}),a!==void 0&&(u.dir=a),u.props===void 0?u.props=s:s!==void 0&&Object.assign(u.props,s)},"addVertex"),bCe=o(function(t,e,r){let a={start:t,end:e,type:void 0,text:"",labelType:"text"};V.info("abc78 Got edge...",a);let s=r.text;if(s!==void 0&&(a.text=C5(s.text.trim()),a.text.startsWith('"')&&a.text.endsWith('"')&&(a.text=a.text.substring(1,a.text.length-1)),a.labelType=s.type),r!==void 0&&(a.type=r.type,a.stroke=r.stroke,a.length=r.length>10?10:r.length),Es.length<(cm.maxEdges??500))V.info("Pushing edge..."),Es.push(a);else throw new Error(`Edge limit exceeded. ${Es.length} edges found, but the limit is ${cm.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},"addSingleLink"),wCe=o(function(t,e,r){V.info("addLink",t,e,r);for(let n of t)for(let i of e)bCe(n,i,r)},"addLink"),TCe=o(function(t,e){t.forEach(function(r){r==="default"?Es.defaultInterpolate=e:Es[r].interpolate=e})},"updateLinkInterpolate"),kCe=o(function(t,e){t.forEach(function(r){if(typeof r=="number"&&r>=Es.length)throw new Error(`The index ${r} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${Es.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);r==="default"?Es.defaultStyle=e:(Es[r].style=e,(Es[r]?.style?.length??0)>0&&!Es[r]?.style?.some(n=>n?.startsWith("fill"))&&Es[r]?.style?.push("fill:none"))})},"updateLink"),ECe=o(function(t,e){t.split(",").forEach(function(r){let n=dv.get(r);n===void 0&&(n={id:r,styles:[],textStyles:[]},dv.set(r,n)),e?.forEach(function(i){if(/color/.exec(i)){let a=i.replace("fill","bgFill");n.textStyles.push(a)}n.styles.push(i)})})},"addClass"),CCe=o(function(t){Fo=t,/.*/.exec(Fo)&&(Fo="LR"),/.*v/.exec(Fo)&&(Fo="TB"),Fo==="TD"&&(Fo="TB")},"setDirection"),u9=o(function(t,e){for(let r of t.split(",")){let n=$h.get(r);n&&n.classes.push(e);let i=l9.get(r);i&&i.classes.push(e)}},"setClass"),SCe=o(function(t,e){if(e!==void 0){e=C5(e);for(let r of t.split(","))c9.set(k5==="gen-1"?S5(r):r,e)}},"setTooltip"),ACe=o(function(t,e,r){let n=S5(t);if(de().securityLevel!=="loose"||e===void 0)return;let i=[];if(typeof r=="string"){i=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s")),i.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),$e(this).classed("hover",!1)})},"setupToolTips");E5.push(UX);NCe=o(function(t="gen-1"){$h=new Map,dv=new Map,Es=[],E5=[UX],Cu=[],l9=new Map,T5=0,c9=new Map,s9=!0,k5=t,cm=de(),vr()},"clear"),MCe=o(t=>{k5=t||"gen-2"},"setGen"),ICe=o(function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},"defaultStyle"),OCe=o(function(t,e,r){let n=t.text.trim(),i=r.text;t===r&&/\s/.exec(r.text)&&(n=void 0);function a(h){let f={boolean:{},number:{},string:{}},d=[],p;return{nodeList:h.filter(function(g){let y=typeof g;return g.stmt&&g.stmt==="dir"?(p=g.value,!1):g.trim()===""?!1:y in f?f[y].hasOwnProperty(g)?!1:f[y][g]=!0:d.includes(g)?!1:d.push(g)}),dir:p}}o(a,"uniq");let{nodeList:s,dir:l}=a(e.flat());if(k5==="gen-1")for(let h=0;h2e3)return{result:!1,count:0};if(HX[fv]=e,Cu[e].id===t)return{result:!0,count:0};let n=0,i=1;for(;n=0){let s=YX(t,a);if(s.result)return{result:!0,count:i+s.count};i=i+s.count}n=n+1}return{result:!1,count:i}},"indexNodes2"),BCe=o(function(t){return HX[t]},"getDepthFirstPos"),FCe=o(function(){fv=-1,Cu.length>0&&YX("none",Cu.length-1)},"indexNodes"),WX=o(function(){return Cu},"getSubGraphs"),zCe=o(()=>s9?(s9=!1,!0):!1,"firstGraph"),GCe=o(t=>{let e=t.trim(),r="arrow_open";switch(e[0]){case"<":r="arrow_point",e=e.slice(1);break;case"x":r="arrow_cross",e=e.slice(1);break;case"o":r="arrow_circle",e=e.slice(1);break}let n="normal";return e.includes("=")&&(n="thick"),e.includes(".")&&(n="dotted"),{type:r,stroke:n}},"destructStartLink"),$Ce=o((t,e)=>{let r=e.length,n=0;for(let i=0;i{let e=t.trim(),r=e.slice(0,-1),n="arrow_open";switch(e.slice(-1)){case"x":n="arrow_cross",e.startsWith("x")&&(n="double_"+n,r=r.slice(1));break;case">":n="arrow_point",e.startsWith("<")&&(n="double_"+n,r=r.slice(1));break;case"o":n="arrow_circle",e.startsWith("o")&&(n="double_"+n,r=r.slice(1));break}let i="normal",a=r.length-1;r.startsWith("=")&&(i="thick"),r.startsWith("~")&&(i="invisible");let s=$Ce(".",r);return s&&(i="dotted",a=s),{type:n,stroke:i,length:a}},"destructEndLink"),UCe=o((t,e)=>{let r=VCe(t),n;if(e){if(n=GCe(e),n.stroke!==r.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=r.type;else{if(n.type!==r.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=r.length,n}return r},"destructLink"),qX=o((t,e)=>{for(let r of t)if(r.nodes.includes(e))return!0;return!1},"exists"),XX=o((t,e)=>{let r=[];return t.nodes.forEach((n,i)=>{qX(e,n)||r.push(t.nodes[i])}),{nodes:r}},"makeUniq"),HCe={firstGraph:zCe},YCe=o(t=>t.type==="square"?"squareRect":t.type==="round"?"roundedRect":t.type??"squareRect","getTypeFromVertex"),WCe=o((t,e)=>t.find(r=>r.id===e),"findNode"),qCe=o(t=>{let e="none",r="arrow_point";switch(t){case"arrow_point":case"arrow_circle":case"arrow_cross":r=t;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":e=t.replace("double_",""),r=e;break}return{arrowTypeStart:e,arrowTypeEnd:r}},"destructEdgeType"),XCe=o((t,e,r,n,i,a)=>{let s=r.get(t.id),l=n.get(t.id)??!1,u=WCe(e,t.id);u?(u.cssStyles=t.styles,u.cssCompiledStyles=o9(t.classes),u.cssClasses=t.classes.join(" ")):e.push({id:t.id,label:t.text,labelStyle:"",parentId:s,padding:i.flowchart?.padding||8,cssStyles:t.styles,cssCompiledStyles:o9(["default","node",...t.classes]),cssClasses:"default "+t.classes.join(" "),shape:YCe(t),dir:t.dir,domId:t.domId,isGroup:l,look:a,link:t.link,linkTarget:t.linkTarget,tooltip:GX(t.id)})},"addNodeFromVertex");o(o9,"getCompiledStyles");jCe=o(()=>{let t=de(),e=[],r=[],n=WX(),i=new Map,a=new Map;for(let u=n.length-1;u>=0;u--){let h=n[u];h.nodes.length>0&&a.set(h.id,!0);for(let f of h.nodes)i.set(f,h.id)}for(let u=n.length-1;u>=0;u--){let h=n[u];e.push({id:h.id,label:h.title,labelStyle:"",parentId:i.get(h.id),padding:8,cssCompiledStyles:o9(h.classes),cssClasses:h.classes.join(" "),shape:"rect",dir:h.dir,isGroup:!0,look:t.look})}$X().forEach(u=>{XCe(u,e,i,a,t,t.look||"classic")});let l=VX();return l.forEach((u,h)=>{let{arrowTypeStart:f,arrowTypeEnd:d}=qCe(u.type),p=[...l.defaultStyle??[]];u.style&&p.push(...u.style);let m={id:y5(u.start,u.end,{counter:h,prefix:"L"}),start:u.start,end:u.end,type:u.type??"normal",label:u.text,labelpos:"c",thickness:u.stroke,minlen:u.length,classes:u?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:u?.stroke==="invisible"?"none":f,arrowTypeEnd:u?.stroke==="invisible"?"none":d,arrowheadStyle:"fill: #333",labelStyle:p,style:p,pattern:u.stroke,look:t.look};r.push(m)}),{nodes:e,edges:r,other:{},config:t}},"getData"),A5={defaultConfig:o(()=>_4.flowchart,"defaultConfig"),setAccTitle:kr,getAccTitle:Ar,getAccDescription:Lr,getData:jCe,setAccDescription:_r,addVertex:xCe,lookUpDomId:S5,addLink:wCe,updateLinkInterpolate:TCe,updateLink:kCe,addClass:ECe,setDirection:CCe,setClass:u9,setTooltip:SCe,getTooltip:GX,setClickEvent:LCe,setLink:_Ce,bindFunctions:DCe,getDirection:h9,getVertices:$X,getEdges:VX,getClasses:RCe,clear:NCe,setGen:MCe,defaultStyle:ICe,addSubGraph:OCe,getDepthFirstPos:BCe,indexNodes:FCe,getSubGraphs:WX,destructLink:UCe,lex:HCe,exists:qX,makeUniq:XX,setDiagramTitle:nn,getDiagramTitle:Xr}});var KCe,jX,KX=R(()=>{"use strict";KCe=o(t=>{let e=new Set;for(let r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r);break}return e},"expandAndDeduplicateDirections"),jX=o((t,e,r)=>{let n=KCe(t),i=2,a=e.height+2*r.padding,s=a/i,l=e.width+2*s+r.padding,u=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:s,y:0},{x:l/2,y:2*u},{x:l-s,y:0},{x:l,y:0},{x:l,y:-a/3},{x:l+2*u,y:-a/2},{x:l,y:-2*a/3},{x:l,y:-a},{x:l-s,y:-a},{x:l/2,y:-a-2*u},{x:s,y:-a},{x:0,y:-a},{x:0,y:-2*a/3},{x:-2*u,y:-a/2},{x:0,y:-a/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:s,y:-a},{x:l-s,y:-a},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:l,y:-a+s},{x:0,y:-a}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-s},{x:0,y:-a+s},{x:l,y:-a}]:n.has("right")&&n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-s},{x:0,y:-a}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-a}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-s},{x:l,y:-a}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-a}]:n.has("right")?[{x:s,y:-u},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a+u}]:n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")?[{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints")});function m9(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function rj(t){Sd=t}function ro(t,e){if(e){if(nj.test(t))return t.replace(QCe,QX)}else if(ij.test(t))return t.replace(ZCe,QX);return t}function t7e(t){return t.replace(e7e,(e,r)=>(r=r.toLowerCase(),r==="colon"?":":r.charAt(0)==="#"?r.charAt(1)==="x"?String.fromCharCode(parseInt(r.substring(2),16)):String.fromCharCode(+r.substring(1)):""))}function ln(t,e){let r=typeof t=="string"?t:t.source;e=e||"";let n={replace:o((i,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(r7e,"$1"),r=r.replace(i,s),n},"replace"),getRegex:o(()=>new RegExp(r,e),"getRegex")};return n}function ZX(t){try{t=encodeURI(t).replace(/%25/g,"%")}catch{return null}return t}function JX(t,e){let r=t.replace(/\|/g,(a,s,l)=>{let u=!1,h=s;for(;--h>=0&&l[h]==="\\";)u=!u;return u?"|":" |"}),n=r.split(/ \|/),i=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length{let a=i.match(/^\s+/);if(a===null)return i;let[s]=a;return s.length>=n.length?i.slice(n.length):i}).join(` +`)}function jr(t,e){return Cd.parse(t,e)}var Sd,nj,QCe,ij,ZCe,JCe,QX,e7e,r7e,gv,hm,a7e,s7e,o7e,vv,l7e,aj,sj,g9,c7e,y9,u7e,h7e,D5,v9,f7e,oj,d7e,x9,tj,p7e,m7e,lj,g7e,cj,y7e,xv,v7e,x7e,b7e,w7e,T7e,k7e,E7e,C7e,S7e,L5,A7e,uj,hj,_7e,b9,L7e,d9,D7e,_5,mv,Su,fm,yv,Au,um,p9,Cd,mkt,gkt,ykt,vkt,xkt,bkt,wkt,fj=R(()=>{"use strict";o(m9,"_getDefaults");Sd=m9();o(rj,"changeDefaults");nj=/[&<>"']/,QCe=new RegExp(nj.source,"g"),ij=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,ZCe=new RegExp(ij.source,"g"),JCe={"&":"&","<":"<",">":">",'"':""","'":"'"},QX=o(t=>JCe[t],"getEscapeReplacement");o(ro,"escape$1");e7e=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;o(t7e,"unescape");r7e=/(^|[^\[])\^/g;o(ln,"edit");o(ZX,"cleanUrl");gv={exec:o(()=>null,"exec")};o(JX,"splitCells");o(pv,"rtrim");o(n7e,"findClosingBracket");o(ej,"outputLink");o(i7e,"indentCodeCompensation");hm=class{static{o(this,"_Tokenizer")}options;rules;lexer;constructor(e){this.options=e||Sd}space(e){let r=this.rules.block.newline.exec(e);if(r&&r[0].length>0)return{type:"space",raw:r[0]}}code(e){let r=this.rules.block.code.exec(e);if(r){let n=r[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:r[0],codeBlockStyle:"indented",text:this.options.pedantic?n:pv(n,` +`)}}}fences(e){let r=this.rules.block.fences.exec(e);if(r){let n=r[0],i=i7e(n,r[3]||"");return{type:"code",raw:n,lang:r[2]?r[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):r[2],text:i}}}heading(e){let r=this.rules.block.heading.exec(e);if(r){let n=r[2].trim();if(/#$/.test(n)){let i=pv(n,"#");(this.options.pedantic||!i||/ $/.test(i))&&(n=i.trim())}return{type:"heading",raw:r[0],depth:r[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let r=this.rules.block.hr.exec(e);if(r)return{type:"hr",raw:pv(r[0],` +`)}}blockquote(e){let r=this.rules.block.blockquote.exec(e);if(r){let n=pv(r[0],` +`).split(` +`),i="",a="",s=[];for(;n.length>0;){let l=!1,u=[],h;for(h=0;h/.test(n[h]))u.push(n[h]),l=!0;else if(!l)u.push(n[h]);else break;n=n.slice(h);let f=u.join(` +`),d=f.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` + $1`).replace(/^ {0,3}>[ \t]?/gm,"");i=i?`${i} +${f}`:f,a=a?`${a} +${d}`:d;let p=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(d,s,!0),this.lexer.state.top=p,n.length===0)break;let m=s[s.length-1];if(m?.type==="code")break;if(m?.type==="blockquote"){let g=m,y=g.raw+` +`+n.join(` +`),v=this.blockquote(y);s[s.length-1]=v,i=i.substring(0,i.length-g.raw.length)+v.raw,a=a.substring(0,a.length-g.text.length)+v.text;break}else if(m?.type==="list"){let g=m,y=g.raw+` +`+n.join(` +`),v=this.list(y);s[s.length-1]=v,i=i.substring(0,i.length-m.raw.length)+v.raw,a=a.substring(0,a.length-g.raw.length)+v.raw,n=y.substring(s[s.length-1].raw.length).split(` +`);continue}}return{type:"blockquote",raw:i,tokens:s,text:a}}}list(e){let r=this.rules.block.list.exec(e);if(r){let n=r[1].trim(),i=n.length>1,a={type:"list",raw:"",ordered:i,start:i?+n.slice(0,-1):"",loose:!1,items:[]};n=i?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=i?n:"[*+-]");let s=new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),l=!1;for(;e;){let u=!1,h="",f="";if(!(r=s.exec(e))||this.rules.block.hr.test(e))break;h=r[0],e=e.substring(h.length);let d=r[2].split(` +`,1)[0].replace(/^\t+/,x=>" ".repeat(3*x.length)),p=e.split(` +`,1)[0],m=!d.trim(),g=0;if(this.options.pedantic?(g=2,f=d.trimStart()):m?g=r[1].length+1:(g=r[2].search(/[^ ]/),g=g>4?1:g,f=d.slice(g),g+=r[1].length),m&&/^ *$/.test(p)&&(h+=p+` +`,e=e.substring(p.length+1),u=!0),!u){let x=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),b=new RegExp(`^ {0,${Math.min(3,g-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),w=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:\`\`\`|~~~)`),S=new RegExp(`^ {0,${Math.min(3,g-1)}}#`);for(;e;){let T=e.split(` +`,1)[0];if(p=T,this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),w.test(p)||S.test(p)||x.test(p)||b.test(e))break;if(p.search(/[^ ]/)>=g||!p.trim())f+=` +`+p.slice(g);else{if(m||d.search(/[^ ]/)>=4||w.test(d)||S.test(d)||b.test(d))break;f+=` +`+p}!m&&!p.trim()&&(m=!0),h+=T+` +`,e=e.substring(T.length+1),d=p.slice(g)}}a.loose||(l?a.loose=!0:/\n *\n *$/.test(h)&&(l=!0));let y=null,v;this.options.gfm&&(y=/^\[[ xX]\] /.exec(f),y&&(v=y[0]!=="[ ] ",f=f.replace(/^\[[ xX]\] +/,""))),a.items.push({type:"list_item",raw:h,task:!!y,checked:v,loose:!1,text:f,tokens:[]}),a.raw+=h}a.items[a.items.length-1].raw=a.items[a.items.length-1].raw.trimEnd(),a.items[a.items.length-1].text=a.items[a.items.length-1].text.trimEnd(),a.raw=a.raw.trimEnd();for(let u=0;ud.type==="space"),f=h.length>0&&h.some(d=>/\n.*\n/.test(d.raw));a.loose=f}if(a.loose)for(let u=0;u$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=r[3]?r[3].substring(1,r[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):r[3];return{type:"def",tag:n,raw:r[0],href:i,title:a}}}table(e){let r=this.rules.block.table.exec(e);if(!r||!/[:|]/.test(r[2]))return;let n=JX(r[1]),i=r[2].replace(/^\||\| *$/g,"").split("|"),a=r[3]&&r[3].trim()?r[3].replace(/\n[ \t]*$/,"").split(` +`):[],s={type:"table",raw:r[0],header:[],align:[],rows:[]};if(n.length===i.length){for(let l of i)/^ *-+: *$/.test(l)?s.align.push("right"):/^ *:-+: *$/.test(l)?s.align.push("center"):/^ *:-+ *$/.test(l)?s.align.push("left"):s.align.push(null);for(let l=0;l({text:u,tokens:this.lexer.inline(u),header:!1,align:s.align[h]})));return s}}lheading(e){let r=this.rules.block.lheading.exec(e);if(r)return{type:"heading",raw:r[0],depth:r[2].charAt(0)==="="?1:2,text:r[1],tokens:this.lexer.inline(r[1])}}paragraph(e){let r=this.rules.block.paragraph.exec(e);if(r){let n=r[1].charAt(r[1].length-1)===` +`?r[1].slice(0,-1):r[1];return{type:"paragraph",raw:r[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let r=this.rules.block.text.exec(e);if(r)return{type:"text",raw:r[0],text:r[0],tokens:this.lexer.inline(r[0])}}escape(e){let r=this.rules.inline.escape.exec(e);if(r)return{type:"escape",raw:r[0],text:ro(r[1])}}tag(e){let r=this.rules.inline.tag.exec(e);if(r)return!this.lexer.state.inLink&&/^/i.test(r[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:r[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:r[0]}}link(e){let r=this.rules.inline.link.exec(e);if(r){let n=r[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;let s=pv(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=n7e(r[2],"()");if(s>-1){let u=(r[0].indexOf("!")===0?5:4)+r[1].length+s;r[2]=r[2].substring(0,s),r[0]=r[0].substring(0,u).trim(),r[3]=""}}let i=r[2],a="";if(this.options.pedantic){let s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);s&&(i=s[1],a=s[3])}else a=r[3]?r[3].slice(1,-1):"";return i=i.trim(),/^$/.test(n)?i=i.slice(1):i=i.slice(1,-1)),ej(r,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:a&&a.replace(this.rules.inline.anyPunctuation,"$1")},r[0],this.lexer)}}reflink(e,r){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let i=(n[2]||n[1]).replace(/\s+/g," "),a=r[i.toLowerCase()];if(!a){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return ej(n,a,n[0],this.lexer)}}emStrong(e,r,n=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!i||i[3]&&n.match(/[\p{L}\p{N}]/u))return;if(!(i[1]||i[2]||"")||!n||this.rules.inline.punctuation.exec(n)){let s=[...i[0]].length-1,l,u,h=s,f=0,d=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,r=r.slice(-1*e.length+s);(i=d.exec(r))!=null;){if(l=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!l)continue;if(u=[...l].length,i[3]||i[4]){h+=u;continue}else if((i[5]||i[6])&&s%3&&!((s+u)%3)){f+=u;continue}if(h-=u,h>0)continue;u=Math.min(u,u+h+f);let p=[...i[0]][0].length,m=e.slice(0,s+i.index+p+u);if(Math.min(s,u)%2){let y=m.slice(1,-1);return{type:"em",raw:m,text:y,tokens:this.lexer.inlineTokens(y)}}let g=m.slice(2,-2);return{type:"strong",raw:m,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(e){let r=this.rules.inline.code.exec(e);if(r){let n=r[2].replace(/\n/g," "),i=/[^ ]/.test(n),a=/^ /.test(n)&&/ $/.test(n);return i&&a&&(n=n.substring(1,n.length-1)),n=ro(n,!0),{type:"codespan",raw:r[0],text:n}}}br(e){let r=this.rules.inline.br.exec(e);if(r)return{type:"br",raw:r[0]}}del(e){let r=this.rules.inline.del.exec(e);if(r)return{type:"del",raw:r[0],text:r[2],tokens:this.lexer.inlineTokens(r[2])}}autolink(e){let r=this.rules.inline.autolink.exec(e);if(r){let n,i;return r[2]==="@"?(n=ro(r[1]),i="mailto:"+n):(n=ro(r[1]),i=n),{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let r;if(r=this.rules.inline.url.exec(e)){let n,i;if(r[2]==="@")n=ro(r[0]),i="mailto:"+n;else{let a;do a=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])?.[0]??"";while(a!==r[0]);n=ro(r[0]),r[1]==="www."?i="http://"+r[0]:i=r[0]}return{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let r=this.rules.inline.text.exec(e);if(r){let n;return this.lexer.state.inRawBlock?n=r[0]:n=ro(r[0]),{type:"text",raw:r[0],text:n}}}},a7e=/^(?: *(?:\n|$))+/,s7e=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,o7e=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,vv=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,l7e=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,aj=/(?:[*+-]|\d{1,9}[.)])/,sj=ln(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,aj).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),g9=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,c7e=/^[^\n]+/,y9=/(?!\s*\])(?:\\.|[^\[\]\\])+/,u7e=ln(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",y9).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),h7e=ln(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,aj).getRegex(),D5="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",v9=/|$))/,f7e=ln("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",v9).replace("tag",D5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),oj=ln(g9).replace("hr",vv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",D5).getRegex(),d7e=ln(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",oj).getRegex(),x9={blockquote:d7e,code:s7e,def:u7e,fences:o7e,heading:l7e,hr:vv,html:f7e,lheading:sj,list:h7e,newline:a7e,paragraph:oj,table:gv,text:c7e},tj=ln("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",vv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",D5).getRegex(),p7e={...x9,table:tj,paragraph:ln(g9).replace("hr",vv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",tj).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",D5).getRegex()},m7e={...x9,html:ln(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",v9).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:gv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ln(g9).replace("hr",vv).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",sj).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},lj=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,g7e=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,cj=/^( {2,}|\\)\n(?!\s*$)/,y7e=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,b7e=ln(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,xv).getRegex(),w7e=ln("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,xv).getRegex(),T7e=ln("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,xv).getRegex(),k7e=ln(/\\([punct])/,"gu").replace(/punct/g,xv).getRegex(),E7e=ln(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),C7e=ln(v9).replace("(?:-->|$)","-->").getRegex(),S7e=ln("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",C7e).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),L5=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,A7e=ln(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",L5).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),uj=ln(/^!?\[(label)\]\[(ref)\]/).replace("label",L5).replace("ref",y9).getRegex(),hj=ln(/^!?\[(ref)\](?:\[\])?/).replace("ref",y9).getRegex(),_7e=ln("reflink|nolink(?!\\()","g").replace("reflink",uj).replace("nolink",hj).getRegex(),b9={_backpedal:gv,anyPunctuation:k7e,autolink:E7e,blockSkip:x7e,br:cj,code:g7e,del:gv,emStrongLDelim:b7e,emStrongRDelimAst:w7e,emStrongRDelimUnd:T7e,escape:lj,link:A7e,nolink:hj,punctuation:v7e,reflink:uj,reflinkSearch:_7e,tag:S7e,text:y7e,url:gv},L7e={...b9,link:ln(/^!?\[(label)\]\((.*?)\)/).replace("label",L5).getRegex(),reflink:ln(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",L5).getRegex()},d9={...b9,escape:ln(lj).replace("])","~|])").getRegex(),url:ln(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\u+" ".repeat(h.length));let i,a,s;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(i=l.call({lexer:this},e,r))?(e=e.substring(i.raw.length),r.push(i),!0):!1))){if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length),i.raw.length===1&&r.length>0?r[r.length-1].raw+=` +`:r.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length),a=r[r.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length),a=r[r.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` +`+i.raw,a.text+=` +`+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=a.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(s=e,this.options.extensions&&this.options.extensions.startBlock){let l=1/0,u=e.slice(1),h;this.options.extensions.startBlock.forEach(f=>{h=f.call({lexer:this},u),typeof h=="number"&&h>=0&&(l=Math.min(l,h))}),l<1/0&&l>=0&&(s=e.substring(0,l+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){a=r[r.length-1],n&&a?.type==="paragraph"?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i),n=s.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length),a=r[r.length-1],a&&a.type==="text"?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i);continue}if(e){let l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){let n,i,a,s=e,l,u,h;if(this.tokens.links){let f=Object.keys(this.tokens.links);if(f.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)f.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,l.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(u||(h=""),u=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(f=>(n=f.call({lexer:this},e,r))?(e=e.substring(n.raw.length),r.push(n),!0):!1))){if(n=this.tokenizer.escape(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.tag(e)){e=e.substring(n.raw.length),i=r[r.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(n=this.tokenizer.link(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(n.raw.length),i=r[r.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(n=this.tokenizer.emStrong(e,s,h)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.codespan(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.br(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.del(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.autolink(e)){e=e.substring(n.raw.length),r.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(e))){e=e.substring(n.raw.length),r.push(n);continue}if(a=e,this.options.extensions&&this.options.extensions.startInline){let f=1/0,d=e.slice(1),p;this.options.extensions.startInline.forEach(m=>{p=m.call({lexer:this},d),typeof p=="number"&&p>=0&&(f=Math.min(f,p))}),f<1/0&&f>=0&&(a=e.substring(0,f+1))}if(n=this.tokenizer.inlineText(a)){e=e.substring(n.raw.length),n.raw.slice(-1)!=="_"&&(h=n.raw.slice(-1)),u=!0,i=r[r.length-1],i&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(e){let f="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return r}},fm=class{static{o(this,"_Renderer")}options;parser;constructor(e){this.options=e||Sd}space(e){return""}code({text:e,lang:r,escaped:n}){let i=(r||"").match(/^\S*/)?.[0],a=e.replace(/\n$/,"")+` +`;return i?'
'+(n?a:ro(a,!0))+`
+`:"
"+(n?a:ro(a,!0))+`
+`}blockquote({tokens:e}){return`
+${this.parser.parse(e)}
+`}html({text:e}){return e}heading({tokens:e,depth:r}){return`${this.parser.parseInline(e)} +`}hr(e){return`
+`}list(e){let r=e.ordered,n=e.start,i="";for(let l=0;l +`+i+" +`}listitem(e){let r="";if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens.length>0&&e.tokens[0].type==="paragraph"?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=n+" "+e.tokens[0].tokens[0].text)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" "}):r+=n+" "}return r+=this.parser.parse(e.tokens,!!e.loose),`
  • ${r}
  • +`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    +`}table(e){let r="",n="";for(let a=0;a${i}`),` + +`+r+` +`+i+`
    +`}tablerow({text:e}){return` +${e} +`}tablecell(e){let r=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+r+` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${e}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:r,tokens:n}){let i=this.parser.parseInline(n),a=ZX(e);if(a===null)return i;e=a;let s='
    ",s}image({href:e,title:r,text:n}){let i=ZX(e);if(i===null)return n;e=i;let a=`${n}{let l=a[s].flat(1/0);n=n.concat(this.walkTokens(l,r))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,r)))}}return n}use(...e){let r=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let s=r.renderers[a.name];s?r.renderers[a.name]=function(...l){let u=a.renderer.apply(this,l);return u===!1&&(u=s.apply(this,l)),u}:r.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=r[a.level];s?s.unshift(a.tokenizer):r[a.level]=[a.tokenizer],a.start&&(a.level==="block"?r.startBlock?r.startBlock.push(a.start):r.startBlock=[a.start]:a.level==="inline"&&(r.startInline?r.startInline.push(a.start):r.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(r.childTokens[a.name]=a.childTokens)}),i.extensions=r),n.renderer){let a=this.defaults.renderer||new fm(this.defaults);for(let s in n.renderer){if(!(s in a))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let l=s,u=n.renderer[l];n.useNewRenderer||(u=this.#t(u,l,a));let h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d||""}}i.renderer=a}if(n.tokenizer){let a=this.defaults.tokenizer||new hm(this.defaults);for(let s in n.tokenizer){if(!(s in a))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let l=s,u=n.tokenizer[l],h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.tokenizer=a}if(n.hooks){let a=this.defaults.hooks||new um;for(let s in n.hooks){if(!(s in a))throw new Error(`hook '${s}' does not exist`);if(s==="options")continue;let l=s,u=n.hooks[l],h=a[l];um.passThroughHooks.has(s)?a[l]=f=>{if(this.defaults.async)return Promise.resolve(u.call(a,f)).then(p=>h.call(a,p));let d=u.call(a,f);return h.call(a,d)}:a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.hooks=a}if(n.walkTokens){let a=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(l){let u=[];return u.push(s.call(this,l)),a&&(u=u.concat(a.call(this,l))),u}}this.defaults={...this.defaults,...i}}),this}#t(e,r,n){switch(r){case"heading":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,n.parser.parseInline(i.tokens),i.depth,t7e(n.parser.parseInline(i.tokens,n.parser.textRenderer)))};case"code":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text,i.lang,!!i.escaped)};case"table":return function(i){if(!i.type||i.type!==r)return e.apply(this,arguments);let a="",s="";for(let u=0;u0&&f.tokens[0].type==="paragraph"?(f.tokens[0].text=g+" "+f.tokens[0].text,f.tokens[0].tokens&&f.tokens[0].tokens.length>0&&f.tokens[0].tokens[0].type==="text"&&(f.tokens[0].tokens[0].text=g+" "+f.tokens[0].tokens[0].text)):f.tokens.unshift({type:"text",text:g+" "}):m+=g+" "}m+=this.parser.parse(f.tokens,l),u+=this.listitem({type:"list_item",raw:m,text:m,task:p,checked:!!d,loose:l,tokens:f.tokens})}return e.call(this,u,a,s)};case"html":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text,i.block)};case"paragraph":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"escape":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text)};case"link":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.href,i.title,this.parser.parseInline(i.tokens))};case"image":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.href,i.title,i.text)};case"strong":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"em":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"codespan":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text)};case"del":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"text":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text)}}return e}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,r){return Su.lex(e,r??this.defaults)}parser(e,r){return Au.parse(e,r??this.defaults)}#e(e,r){return(n,i)=>{let a={...i},s={...this.defaults,...a};this.defaults.async===!0&&a.async===!1&&(s.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),s.async=!0);let l=this.#r(!!s.silent,!!s.async);if(typeof n>"u"||n===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(s.hooks&&(s.hooks.options=s),s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(n):n).then(u=>e(u,s)).then(u=>s.hooks?s.hooks.processAllTokens(u):u).then(u=>s.walkTokens?Promise.all(this.walkTokens(u,s.walkTokens)).then(()=>u):u).then(u=>r(u,s)).then(u=>s.hooks?s.hooks.postprocess(u):u).catch(l);try{s.hooks&&(n=s.hooks.preprocess(n));let u=e(n,s);s.hooks&&(u=s.hooks.processAllTokens(u)),s.walkTokens&&this.walkTokens(u,s.walkTokens);let h=r(u,s);return s.hooks&&(h=s.hooks.postprocess(h)),h}catch(u){return l(u)}}}#r(e,r){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let i="

    An error occurred:

    "+ro(n.message+"",!0)+"
    ";return r?Promise.resolve(i):i}if(r)return Promise.reject(n);throw n}}},Cd=new p9;o(jr,"marked");jr.options=jr.setOptions=function(t){return Cd.setOptions(t),jr.defaults=Cd.defaults,rj(jr.defaults),jr};jr.getDefaults=m9;jr.defaults=Sd;jr.use=function(...t){return Cd.use(...t),jr.defaults=Cd.defaults,rj(jr.defaults),jr};jr.walkTokens=function(t,e){return Cd.walkTokens(t,e)};jr.parseInline=Cd.parseInline;jr.Parser=Au;jr.parser=Au.parse;jr.Renderer=fm;jr.TextRenderer=yv;jr.Lexer=Su;jr.lexer=Su.lex;jr.Tokenizer=hm;jr.Hooks=um;jr.parse=jr;mkt=jr.options,gkt=jr.setOptions,ykt=jr.use,vkt=jr.walkTokens,xkt=jr.parseInline,bkt=Au.parse,wkt=Su.lex});function R7e(t,{markdownAutoWrap:e}){let n=t.replace(//g,` +`).replace(/\n{2,}/g,` +`),i=Gb(n);return e===!1?i.replace(/ /g," "):i}function dj(t,e={}){let r=R7e(t,e),n=jr.lexer(r),i=[[]],a=0;function s(l,u="normal"){l.type==="text"?l.text.split(` +`).forEach((f,d)=>{d!==0&&(a++,i.push([])),f.split(" ").forEach(p=>{p&&i[a].push({content:p,type:u})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(h=>{s(h,l.type)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}return o(s,"processNode"),n.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(u=>{s(u)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}),i}function pj(t,{markdownAutoWrap:e}={}){let r=jr.lexer(t);function n(i){return i.type==="text"?e===!1?i.text.replace(/\n */g,"
    ").replace(/ /g," "):i.text.replace(/\n */g,"
    "):i.type==="strong"?`${i.tokens?.map(n).join("")}`:i.type==="em"?`${i.tokens?.map(n).join("")}`:i.type==="paragraph"?`

    ${i.tokens?.map(n).join("")}

    `:i.type==="space"?"":i.type==="html"?`${i.text}`:`Unsupported markdown: ${i.type}`}return o(n,"output"),r.map(n).join("")}var mj=R(()=>{"use strict";fj();zC();o(R7e,"preprocessMarkdown");o(dj,"markdownToLines");o(pj,"markdownToHTML")});function N7e(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(e=>e.segment):[...t]}function M7e(t,e){let r=N7e(e.content);return gj(t,[],r,e.type)}function gj(t,e,r,n){if(r.length===0)return[{content:e.join(""),type:n},{content:"",type:n}];let[i,...a]=r,s=[...e,i];return t([{content:s.join(""),type:n}])?gj(t,s,a,n):(e.length===0&&i&&(e.push(i),r.shift()),[{content:e.join(""),type:n},{content:r.join(""),type:n}])}function yj(t,e){if(t.some(({content:r})=>r.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return w9(t,e)}function w9(t,e,r=[],n=[]){if(t.length===0)return n.length>0&&r.push(n),r.length>0?r:[];let i="";t[0].content===" "&&(i=" ",t.shift());let a=t.shift()??{content:" ",type:"normal"},s=[...n];if(i!==""&&s.push({content:i,type:"normal"}),s.push(a),e(s))return w9(t,e,r,s);if(n.length>0)r.push(n),t.unshift(a);else if(a.content){let[l,u]=M7e(e,a);r.push([l]),u.content&&t.unshift(u)}return w9(t,e,r)}var vj=R(()=>{"use strict";o(N7e,"splitTextToChars");o(M7e,"splitWordToFitWidth");o(gj,"splitWordToFitWidthRecursion");o(yj,"splitLineToFitWidth");o(w9,"splitLineToFitWidthRecursion")});function xj(t,e){e&&t.attr("style",e)}async function I7e(t,e,r,n,i=!1){let a=t.append("foreignObject"),s=a.append("xhtml:div"),l=e.label;e.label&&Ni(e.label)&&(l=await yh(e.label.replace(We.lineBreakRegex,` +`),de()));let u=e.isNode?"nodeLabel":"edgeLabel",h=s.append("span");h.html(l),xj(h,e.labelStyle),h.attr("class",`${u} ${n}`),xj(s,e.labelStyle),s.style("display","table-cell"),s.style("white-space","nowrap"),s.style("line-height","1.5"),s.style("max-width",r+"px"),s.style("text-align","center"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&s.attr("class","labelBkg");let f=s.node().getBoundingClientRect();return f.width===r&&(s.style("display","table"),s.style("white-space","break-spaces"),s.style("width",r+"px"),f=s.node().getBoundingClientRect()),a.node()}function T9(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}function O7e(t,e,r){let n=t.append("text"),i=T9(n,1,e);k9(i,r);let a=i.node().getComputedTextLength();return n.remove(),a}function bj(t,e,r){let n=t.append("text"),i=T9(n,1,e);k9(i,[{content:r,type:"normal"}]);let a=i.node()?.getBoundingClientRect();return a&&n.remove(),a}function P7e(t,e,r,n=!1){let a=e.append("g"),s=a.insert("rect").attr("class","background").attr("style","stroke: none"),l=a.append("text").attr("y","-10.1"),u=0;for(let h of r){let f=o(p=>O7e(a,1.1,p)<=t,"checkWidth"),d=f(h)?[h]:yj(h,f);for(let p of d){let m=T9(l,u,1.1);k9(m,p),u++}}if(n){let h=l.node().getBBox(),f=2;return s.attr("x",-f).attr("y",-f).attr("width",h.width+2*f).attr("height",h.height+2*f),a.node()}else return l.node()}function k9(t,e){t.text(""),e.forEach((r,n)=>{let i=t.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");n===0?i.text(r.content):i.text(" "+r.content)})}function E9(t){return t.replace(/fa[bklrs]?:fa-[\w-]+/g,e=>``)}var ta,Al=R(()=>{"use strict";_t();rr();Zt();ut();mj();xr();vj();o(xj,"applyStyle");o(I7e,"addHtmlSpan");o(T9,"createTspan");o(O7e,"computeWidthOfText");o(bj,"computeDimensionOfText");o(P7e,"createFormattedText");o(k9,"updateTextContentAndStyles");o(E9,"replaceIconSubstring");ta=o(async(t,e="",{style:r="",isTitle:n=!1,classes:i="",useHtmlLabels:a=!0,isNode:s=!0,width:l=200,addSvgBackground:u=!1}={},h)=>{if(V.info("XYZ createText",e,r,n,i,a,s,"addSvgBackground: ",u),a){let f=pj(e,h),d=E9(to(f)),p=e.replace(/\\\\/g,"\\"),m={isNode:s,label:Ni(e)?p:d,labelStyle:r.replace("fill:","color:")};return await I7e(t,m,l,i,u)}else{let f=e.replace(//g,"
    "),d=dj(f.replace("
    ","
    "),h),p=P7e(l,t,d,e?u:!1);if(s){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");$e(p).attr("style",m)}else{let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");$e(p).select("rect").attr("style",m.replace(/background:/g,"fill:"));let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");$e(p).select("text").attr("style",g)}return p}},"createText")});function wj(t,e){e&&t.attr("style",e)}function B7e(t){let e=$e(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label,i=t.isNode?"nodeLabel":"edgeLabel",a=r.append("span");return a.html(n),wj(a,t.labelStyle),a.attr("class",i),wj(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var F7e,ra,bv=R(()=>{"use strict";Zt();ut();_t();rr();xr();Al();o(wj,"applyStyle");o(B7e,"addHtmlLabel");F7e=o((t,e,r,n)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),yr(de().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),V.debug("vertexText"+i);let a={isNode:n,label:E9(to(i)),labelStyle:e.replace("fill:","color:")};return B7e(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),ra=F7e});function z7e(t,e){return t.intersect(e)}var Tj,kj=R(()=>{"use strict";o(z7e,"intersectNode");Tj=z7e});function G7e(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(G7e,"intersectEllipse");R5=G7e});function $7e(t,e,r){return R5(t,e,e,r)}var Ej,Cj=R(()=>{"use strict";C9();o($7e,"intersectCircle");Ej=$7e});function V7e(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&Sj(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&Sj(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function Sj(t,e){return t*e>0}var Aj,_j=R(()=>{"use strict";o(V7e,"intersectLine");o(Sj,"sameSign");Aj=V7e});function U7e(t,e,r){var n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(g){s=Math.min(s,g.x),l=Math.min(l,g.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var u=n-t.width/2-s,h=i-t.height/2-l,f=0;f1&&a.sort(function(g,y){var v=g.x-r.x,x=g.y-r.y,b=Math.sqrt(v*v+x*x),w=y.x-r.x,S=y.y-r.y,T=Math.sqrt(w*w+S*S);return b{"use strict";_j();Lj=U7e;o(U7e,"intersectPolygon")});var H7e,Ad,S9=R(()=>{"use strict";H7e=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Ad=H7e});var Tn,A9=R(()=>{"use strict";kj();Cj();C9();Dj();S9();Tn={node:Tj,circle:Ej,ellipse:R5,polygon:Lj,rect:Ad}});function _l(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var Ti,kn,N5=R(()=>{"use strict";bv();Al();_t();Zt();rr();xr();Ti=o(async(t,e,r,n)=>{let i=de(),a,s=e.useHtmlLabels||yr(i.flowchart.htmlLabels);r?a=r:a="node default";let l=t.insert("g").attr("class",a).attr("id",e.domId||e.id),u=l.insert("g").attr("class","label").attr("style",e.labelStyle),h;e.labelText===void 0?h="":h=typeof e.labelText=="string"?e.labelText:e.labelText[0];let f=u.node(),d;e.labelType==="markdown"?d=ta(u,qr(to(h),i),{useHtmlLabels:s,width:e.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):d=f.appendChild(ra(qr(to(h),i),e.labelStyle,!1,n));let p=d.getBBox(),m=e.padding/2;if(yr(i.flowchart.htmlLabels)){let g=d.children[0],y=$e(d),v=g.getElementsByTagName("img");if(v){let x=h.replace(/]*>/g,"").trim()==="";await Promise.all([...v].map(b=>new Promise(w=>{function S(){if(b.style.display="flex",b.style.flexDirection="column",x){let T=i.fontSize?i.fontSize:window.getComputedStyle(document.body).fontSize,_=parseInt(T,10)*5+"px";b.style.minWidth=_,b.style.maxWidth=_}else b.style.width="100%";w(b)}o(S,"setupImage"),setTimeout(()=>{b.complete&&S()}),b.addEventListener("error",S),b.addEventListener("load",S)})))}p=g.getBoundingClientRect(),y.attr("width",p.width),y.attr("height",p.height)}return s?u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"):u.attr("transform","translate(0, "+-p.height/2+")"),e.centerLabel&&u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:l,bbox:p,halfPadding:m,label:u}},"labelHelper"),kn=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");o(_l,"insertPolygonShape")});var Y7e,Rj,Nj=R(()=>{"use strict";N5();ut();_t();A9();Y7e=o(async(t,e)=>{e.useHtmlLabels||de().flowchart.htmlLabels||(e.centerLabel=!0);let{shapeSvg:n,bbox:i,halfPadding:a}=await Ti(t,e,"node "+e.classes,!0);V.info("Classes = ",e.classes);let s=n.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),kn(e,s),e.intersect=function(l){return Tn.rect(e,l)},n},"note"),Rj=Y7e});function _9(t,e,r,n){let i=[],a=o(l=>{i.push(l,0)},"addBorder"),s=o(l=>{i.push(0,l)},"skipBorder");e.includes("t")?(V.debug("add top border"),a(r)):s(r),e.includes("r")?(V.debug("add right border"),a(n)):s(n),e.includes("b")?(V.debug("add bottom border"),a(r)):s(r),e.includes("l")?(V.debug("add left border"),a(n)):s(n),t.attr("stroke-dasharray",i.join(" "))}var Mj,no,Ij,W7e,q7e,X7e,j7e,K7e,Q7e,Z7e,J7e,eSe,tSe,rSe,nSe,iSe,aSe,sSe,oSe,lSe,cSe,uSe,Oj,hSe,fSe,Pj,dm,pm,Bj,Fj,wv,M5=R(()=>{"use strict";Zt();_t();rr();ut();KX();bv();A9();Nj();N5();Mj=o(t=>t?" "+t:"","formatClass"),no=o((t,e)=>`${e||"node default"}${Mj(t.classes)} ${Mj(t.class)}`,"getClassesFromNode"),Ij=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=i+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];V.info("Question main (Circle)");let u=_l(r,s,s,l);return u.attr("style",e.style),kn(e,u),e.intersect=function(h){return V.warn("Intersect called"),Tn.polygon(e,l,h)},r},"question"),W7e=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",i.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(s){return Tn.circle(e,14,s)},r},"choice"),q7e=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=4,a=n.height+e.padding,s=a/i,l=n.width+2*s+e.padding,u=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],h=_l(r,l,a,u);return h.attr("style",e.style),kn(e,h),e.intersect=function(f){return Tn.polygon(e,u,f)},r},"hexagon"),X7e=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,void 0,!0),i=2,a=n.height+2*e.padding,s=a/i,l=n.width+2*s+e.padding,u=jX(e.directions,n,e),h=_l(r,l,a,u);return h.attr("style",e.style),kn(e,h),e.intersect=function(f){return Tn.polygon(e,u,f)},r},"block_arrow"),j7e=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return _l(r,i,a,s).attr("style",e.style),e.width=i+a,e.height=a,e.intersect=function(u){return Tn.polygon(e,s,u)},r},"rect_left_inv_arrow"),K7e=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],l=_l(r,i,a,s);return l.attr("style",e.style),kn(e,l),e.intersect=function(u){return Tn.polygon(e,s,u)},r},"lean_right"),Q7e=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],l=_l(r,i,a,s);return l.attr("style",e.style),kn(e,l),e.intersect=function(u){return Tn.polygon(e,s,u)},r},"lean_left"),Z7e=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],l=_l(r,i,a,s);return l.attr("style",e.style),kn(e,l),e.intersect=function(u){return Tn.polygon(e,s,u)},r},"trapezoid"),J7e=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=_l(r,i,a,s);return l.attr("style",e.style),kn(e,l),e.intersect=function(u){return Tn.polygon(e,s,u)},r},"inv_trapezoid"),eSe=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],l=_l(r,i,a,s);return l.attr("style",e.style),kn(e,l),e.intersect=function(u){return Tn.polygon(e,s,u)},r},"rect_right_inv_arrow"),tSe=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=n.width+e.padding,a=i/2,s=a/(2.5+i/50),l=n.height+s+e.padding,u="M 0,"+s+" a "+a+","+s+" 0,0,0 "+i+" 0 a "+a+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+i+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d",u).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return kn(e,h),e.intersect=function(f){let d=Tn.rect(e,f),p=d.x-e.x;if(a!=0&&(Math.abs(p)e.height/2-s)){let m=s*s*(1-p*p/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,f.y-e.y>0&&(m=-m),d.y+=m}return d},r},"cylinder"),rSe=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Ti(t,e,"node "+e.classes+" "+e.class,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(_9(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{V.warn(`Unknown node property ${d}`)})}return kn(e,a),e.intersect=function(f){return Tn.rect(e,f)},r},"rect"),nSe=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Ti(t,e,"node "+e.classes,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(_9(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{V.warn(`Unknown node property ${d}`)})}return kn(e,a),e.intersect=function(f){return Tn.rect(e,f)},r},"composite"),iSe=o(async(t,e)=>{let{shapeSvg:r}=await Ti(t,e,"label",!0);V.trace("Classes = ",e.class);let n=r.insert("rect",":first-child"),i=0,a=0;if(n.attr("width",i).attr("height",a),r.attr("class","label edgeLabel"),e.props){let s=new Set(Object.keys(e.props));e.props.borders&&(_9(n,e.props.borders,i,a),s.delete("borders")),s.forEach(l=>{V.warn(`Unknown node property ${l}`)})}return kn(e,n),e.intersect=function(s){return Tn.rect(e,s)},r},"labelRect");o(_9,"applyNodePropertyBorders");aSe=o((t,e)=>{let r;e.classes?r="node "+e.classes:r="node default";let n=t.insert("g").attr("class",r).attr("id",e.domId||e.id),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),l=e.labelText.flat?e.labelText.flat():e.labelText,u="";typeof l=="object"?u=l[0]:u=l,V.info("Label text abc79",u,l,typeof l=="object");let h=s.node().appendChild(ra(u,e.labelStyle,!0,!0)),f={width:0,height:0};if(yr(de().flowchart.htmlLabels)){let y=h.children[0],v=$e(h);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}V.info("Text 2",l);let d=l.slice(1,l.length),p=h.getBBox(),m=s.node().appendChild(ra(d.join?d.join("
    "):d,e.labelStyle,!0,!0));if(yr(de().flowchart.htmlLabels)){let y=m.children[0],v=$e(m);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}let g=e.padding/2;return $e(m).attr("transform","translate( "+(f.width>p.width?0:(p.width-f.width)/2)+", "+(p.height+g+5)+")"),$e(h).attr("transform","translate( "+(f.width{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=n.height+e.padding,a=n.width+i/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return kn(e,s),e.intersect=function(l){return Tn.rect(e,l)},r},"stadium"),oSe=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Ti(t,e,no(e,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),V.info("Circle main"),kn(e,a),e.intersect=function(s){return V.info("Circle intersect",e,n.width/2+i,s),Tn.circle(e,n.width/2+i,s)},r},"circle"),lSe=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Ti(t,e,no(e,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),u=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+a).attr("width",n.width+e.padding+a*2).attr("height",n.height+e.padding+a*2),u.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),V.info("DoubleCircle main"),kn(e,l),e.intersect=function(h){return V.info("DoubleCircle intersect",e,n.width/2+i+a,h),Tn.circle(e,n.width/2+i+a,h)},r},"doublecircle"),cSe=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Ti(t,e,no(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=_l(r,i,a,s);return l.attr("style",e.style),kn(e,l),e.intersect=function(u){return Tn.polygon(e,s,u)},r},"subroutine"),uSe=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),kn(e,n),e.intersect=function(i){return Tn.circle(e,7,i)},r},"start"),Oj=o((t,e,r)=>{let n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,a=10;r==="LR"&&(i=10,a=70);let s=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return kn(e,s),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(l){return Tn.rect(e,l)},n},"forkJoin"),hSe=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),kn(e,i),e.intersect=function(a){return Tn.circle(e,7,a)},r},"end"),fSe=o((t,e)=>{let r=e.padding/2,n=4,i=8,a;e.classes?a="node "+e.classes:a="node default";let s=t.insert("g").attr("class",a).attr("id",e.domId||e.id),l=s.insert("rect",":first-child"),u=s.insert("line"),h=s.insert("line"),f=0,d=n,p=s.insert("g").attr("class","label"),m=0,g=e.classData.annotations?.[0],y=e.classData.annotations[0]?"\xAB"+e.classData.annotations[0]+"\xBB":"",v=p.node().appendChild(ra(y,e.labelStyle,!0,!0)),x=v.getBBox();if(yr(de().flowchart.htmlLabels)){let A=v.children[0],L=$e(v);x=A.getBoundingClientRect(),L.attr("width",x.width),L.attr("height",x.height)}e.classData.annotations[0]&&(d+=x.height+n,f+=x.width);let b=e.classData.label;e.classData.type!==void 0&&e.classData.type!==""&&(de().flowchart.htmlLabels?b+="<"+e.classData.type+">":b+="<"+e.classData.type+">");let w=p.node().appendChild(ra(b,e.labelStyle,!0,!0));$e(w).attr("class","classTitle");let S=w.getBBox();if(yr(de().flowchart.htmlLabels)){let A=w.children[0],L=$e(w);S=A.getBoundingClientRect(),L.attr("width",S.width),L.attr("height",S.height)}d+=S.height+n,S.width>f&&(f=S.width);let T=[];e.classData.members.forEach(A=>{let L=A.getDisplayDetails(),M=L.displayText;de().flowchart.htmlLabels&&(M=M.replace(//g,">"));let N=p.node().appendChild(ra(M,L.cssStyle?L.cssStyle:e.labelStyle,!0,!0)),k=N.getBBox();if(yr(de().flowchart.htmlLabels)){let I=N.children[0],C=$e(N);k=I.getBoundingClientRect(),C.attr("width",k.width),C.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,T.push(N)}),d+=i;let E=[];if(e.classData.methods.forEach(A=>{let L=A.getDisplayDetails(),M=L.displayText;de().flowchart.htmlLabels&&(M=M.replace(//g,">"));let N=p.node().appendChild(ra(M,L.cssStyle?L.cssStyle:e.labelStyle,!0,!0)),k=N.getBBox();if(yr(de().flowchart.htmlLabels)){let I=N.children[0],C=$e(N);k=I.getBoundingClientRect(),C.attr("width",k.width),C.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,E.push(N)}),d+=i,g){let A=(f-x.width)/2;$e(v).attr("transform","translate( "+(-1*f/2+A)+", "+-1*d/2+")"),m=x.height+n}let _=(f-S.width)/2;return $e(w).attr("transform","translate( "+(-1*f/2+_)+", "+(-1*d/2+m)+")"),m+=S.height+n,u.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,T.forEach(A=>{$e(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m+i/2)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),m+=i,h.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,E.forEach(A=>{$e(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),l.attr("style",e.style).attr("class","outer title-state").attr("x",-f/2-r).attr("y",-(d/2)-r).attr("width",f+e.padding).attr("height",d+e.padding),kn(e,l),e.intersect=function(A){return Tn.rect(e,A)},s},"class_box"),Pj={rhombus:Ij,composite:nSe,question:Ij,rect:rSe,labelRect:iSe,rectWithTitle:aSe,choice:W7e,circle:oSe,doublecircle:lSe,stadium:sSe,hexagon:q7e,block_arrow:X7e,rect_left_inv_arrow:j7e,lean_right:K7e,lean_left:Q7e,trapezoid:Z7e,inv_trapezoid:J7e,rect_right_inv_arrow:eSe,cylinder:tSe,start:uSe,end:hSe,note:Rj,subroutine:cSe,fork:Oj,join:Oj,class_box:fSe},dm={},pm=o(async(t,e,r)=>{let n,i;if(e.link){let a;de().securityLevel==="sandbox"?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),i=await Pj[e.shape](n,e,r)}else i=await Pj[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),dm[e.id]=n,e.haveCallback&&dm[e.id].attr("class",dm[e.id].attr("class")+" clickable"),n},"insertNode"),Bj=o((t,e)=>{dm[e.id]=t},"setNodeElem"),Fj=o(()=>{dm={}},"clear"),wv=o(t=>{let e=dm[t.id];V.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});var I5,L9=R(()=>{"use strict";Zt();M5();I5=o((t,e)=>{let r;return e==="sandbox"&&(r=$e("#i"+t)),(e==="sandbox"?$e(r.nodes()[0].contentDocument.body):$e("body")).select(`[id="${t}"]`)},"getDiagramElement")});var io,_d=R(()=>{"use strict";io=o(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0,n=e+r;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:n}},"getSubGraphTitleMargins")});function D9(t,e,r){if(t&&t.length){let[n,i]=e,a=Math.PI/180*r,s=Math.cos(a),l=Math.sin(a);for(let u of t){let[h,f]=u;u[0]=(h-n)*s-(f-i)*l+n,u[1]=(h-n)*l+(f-i)*s+i}}}function dSe(t,e){return t[0]===e[0]&&t[1]===e[1]}function pSe(t,e,r,n=1){let i=r,a=Math.max(e,.1),s=t[0]&&t[0][0]&&typeof t[0][0]=="number"?[t]:t,l=[0,0];if(i)for(let h of s)D9(h,l,i);let u=function(h,f,d){let p=[];for(let b of h){let w=[...b];dSe(w[0],w[w.length-1])||w.push([w[0][0],w[0][1]]),w.length>2&&p.push(w)}let m=[];f=Math.max(f,.1);let g=[];for(let b of p)for(let w=0;wb.yminw.ymin?1:b.xw.x?1:b.ymax===w.ymax?0:(b.ymax-w.ymax)/Math.abs(b.ymax-w.ymax)),!g.length)return m;let y=[],v=g[0].ymin,x=0;for(;y.length||g.length;){if(g.length){let b=-1;for(let w=0;wv);w++)b=w;g.splice(0,b+1).forEach(w=>{y.push({s:v,edge:w})})}if(y=y.filter(b=>!(b.edge.ymax<=v)),y.sort((b,w)=>b.edge.x===w.edge.x?0:(b.edge.x-w.edge.x)/Math.abs(b.edge.x-w.edge.x)),(d!==1||x%f==0)&&y.length>1)for(let b=0;b=y.length)break;let S=y[b].edge,T=y[w].edge;m.push([[Math.round(S.x),v],[Math.round(T.x),v]])}v+=d,y.forEach(b=>{b.edge.x=b.edge.x+d*b.edge.islope}),x++}return m}(s,a,n);if(i){for(let h of s)D9(h,l,-i);(function(h,f,d){let p=[];h.forEach(m=>p.push(...m)),D9(p,f,d)})(u,l,-i)}return u}function Cv(t,e){var r;let n=e.hachureAngle+90,i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1));let a=1;return e.roughness>=1&&(((r=e.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(a=i),pSe(t,i,n,a||1)}function U5(t){let e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}function N9(t,e){return t.type===e}function W9(t){let e=[],r=function(s){let l=new Array;for(;s!=="";)if(s.match(/^([ \t\r\n,]+)/))s=s.substr(RegExp.$1.length);else if(s.match(/^([aAcChHlLmMqQsStTvVzZ])/))l[l.length]={type:mSe,text:RegExp.$1},s=s.substr(RegExp.$1.length);else{if(!s.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];l[l.length]={type:R9,text:`${parseFloat(RegExp.$1)}`},s=s.substr(RegExp.$1.length)}return l[l.length]={type:zj,text:""},l}(t),n="BOD",i=0,a=r[i];for(;!N9(a,zj);){let s=0,l=[];if(n==="BOD"){if(a.text!=="M"&&a.text!=="m")return W9("M0,0"+t);i++,s=O5[a.text],n=a.text}else N9(a,R9)?s=O5[n]:(i++,s=O5[a.text],n=a.text);if(!(i+sf%2?h+r:h+e);a.push({key:"C",data:u}),e=u[4],r=u[5];break}case"Q":a.push({key:"Q",data:[...l]}),e=l[2],r=l[3];break;case"q":{let u=l.map((h,f)=>f%2?h+r:h+e);a.push({key:"Q",data:u}),e=u[2],r=u[3];break}case"A":a.push({key:"A",data:[...l]}),e=l[5],r=l[6];break;case"a":e+=l[5],r+=l[6],a.push({key:"A",data:[l[0],l[1],l[2],l[3],l[4],e,r]});break;case"H":a.push({key:"H",data:[...l]}),e=l[0];break;case"h":e+=l[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...l]}),r=l[0];break;case"v":r+=l[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...l]}),e=l[2],r=l[3];break;case"s":{let u=l.map((h,f)=>f%2?h+r:h+e);a.push({key:"S",data:u}),e=u[2],r=u[3];break}case"T":a.push({key:"T",data:[...l]}),e=l[0],r=l[1];break;case"t":e+=l[0],r+=l[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=n,r=i}return a}function Xj(t){let e=[],r="",n=0,i=0,a=0,s=0,l=0,u=0;for(let{key:h,data:f}of t){switch(h){case"M":e.push({key:"M",data:[...f]}),[n,i]=f,[a,s]=f;break;case"C":e.push({key:"C",data:[...f]}),n=f[4],i=f[5],l=f[2],u=f[3];break;case"L":e.push({key:"L",data:[...f]}),[n,i]=f;break;case"H":n=f[0],e.push({key:"L",data:[n,i]});break;case"V":i=f[0],e.push({key:"L",data:[n,i]});break;case"S":{let d=0,p=0;r==="C"||r==="S"?(d=n+(n-l),p=i+(i-u)):(d=n,p=i),e.push({key:"C",data:[d,p,...f]}),l=f[0],u=f[1],n=f[2],i=f[3];break}case"T":{let[d,p]=f,m=0,g=0;r==="Q"||r==="T"?(m=n+(n-l),g=i+(i-u)):(m=n,g=i);let y=n+2*(m-n)/3,v=i+2*(g-i)/3,x=d+2*(m-d)/3,b=p+2*(g-p)/3;e.push({key:"C",data:[y,v,x,b,d,p]}),l=m,u=g,n=d,i=p;break}case"Q":{let[d,p,m,g]=f,y=n+2*(d-n)/3,v=i+2*(p-i)/3,x=m+2*(d-m)/3,b=g+2*(p-g)/3;e.push({key:"C",data:[y,v,x,b,m,g]}),l=d,u=p,n=m,i=g;break}case"A":{let d=Math.abs(f[0]),p=Math.abs(f[1]),m=f[2],g=f[3],y=f[4],v=f[5],x=f[6];d===0||p===0?(e.push({key:"C",data:[n,i,v,x,v,x]}),n=v,i=x):(n!==v||i!==x)&&(jj(n,i,v,x,d,p,m,g,y).forEach(function(b){e.push({key:"C",data:b})}),n=v,i=x);break}case"Z":e.push({key:"Z",data:[]}),n=a,i=s}r=h}return e}function Tv(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function jj(t,e,r,n,i,a,s,l,u,h){let f=(d=s,Math.PI*d/180);var d;let p=[],m=0,g=0,y=0,v=0;if(h)[m,g,y,v]=h;else{[t,e]=Tv(t,e,-f),[r,n]=Tv(r,n,-f);let I=(t-r)/2,C=(e-n)/2,O=I*I/(i*i)+C*C/(a*a);O>1&&(O=Math.sqrt(O),i*=O,a*=O);let D=i*i,P=a*a,F=D*P-D*C*C-P*I*I,B=D*C*C+P*I*I,$=(l===u?-1:1)*Math.sqrt(Math.abs(F/B));y=$*i*C/a+(t+r)/2,v=$*-a*I/i+(e+n)/2,m=Math.asin(parseFloat(((e-v)/a).toFixed(9))),g=Math.asin(parseFloat(((n-v)/a).toFixed(9))),tg&&(m-=2*Math.PI),!u&&g>m&&(g-=2*Math.PI)}let x=g-m;if(Math.abs(x)>120*Math.PI/180){let I=g,C=r,O=n;g=u&&g>m?m+120*Math.PI/180*1:m+120*Math.PI/180*-1,p=jj(r=y+i*Math.cos(g),n=v+a*Math.sin(g),C,O,i,a,s,0,u,[g,I,y,v])}x=g-m;let b=Math.cos(m),w=Math.sin(m),S=Math.cos(g),T=Math.sin(g),E=Math.tan(x/4),_=4/3*i*E,A=4/3*a*E,L=[t,e],M=[t+_*w,e-A*b],N=[r+_*T,n-A*S],k=[r,n];if(M[0]=2*L[0]-M[0],M[1]=2*L[1]-M[1],h)return[M,N,k].concat(p);{p=[M,N,k].concat(p);let I=[];for(let C=0;C2){let i=[];for(let a=0;a2*Math.PI&&(m=0,g=2*Math.PI);let y=2*Math.PI/u.curveStepCount,v=Math.min(y/2,(g-m)/2),x=Yj(v,h,f,d,p,m,g,1,u);if(!u.disableMultiStroke){let b=Yj(v,h,f,d,p,m,g,1.5,u);x.push(...b)}return s&&(l?x.push(...Vh(h,f,h+d*Math.cos(m),f+p*Math.sin(m),u),...Vh(h,f,h+d*Math.cos(g),f+p*Math.sin(g),u)):x.push({op:"lineTo",data:[h,f]},{op:"lineTo",data:[h+d*Math.cos(m),f+p*Math.sin(m)]})),{type:"path",ops:x}}function Vj(t,e){let r=Xj(qj(W9(t))),n=[],i=[0,0],a=[0,0];for(let{key:s,data:l}of r)switch(s){case"M":a=[l[0],l[1]],i=[l[0],l[1]];break;case"L":n.push(...Vh(a[0],a[1],l[0],l[1],e)),a=[l[0],l[1]];break;case"C":{let[u,h,f,d,p,m]=l;n.push(...vSe(u,h,f,d,p,m,a,e)),a=[p,m];break}case"Z":n.push(...Vh(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]]}return{type:"path",ops:n}}function M9(t,e){let r=[];for(let n of t)if(n.length){let i=e.maxRandomnessOffset||0,a=n.length;if(a>2){r.push({op:"move",data:[n[0][0]+Yt(i,e),n[0][1]+Yt(i,e)]});for(let s=1;s500?.4:-.0016668*u+1.233334;let f=i.maxRandomnessOffset||0;f*f*100>l&&(f=u/10);let d=f/2,p=.2+.2*Zj(i),m=i.bowing*i.maxRandomnessOffset*(n-e)/200,g=i.bowing*i.maxRandomnessOffset*(t-r)/200;m=Yt(m,i,h),g=Yt(g,i,h);let y=[],v=o(()=>Yt(d,i,h),"M"),x=o(()=>Yt(f,i,h),"k"),b=i.preserveVertices;return a&&(s?y.push({op:"move",data:[t+(b?0:v()),e+(b?0:v())]}):y.push({op:"move",data:[t+(b?0:Yt(f,i,h)),e+(b?0:Yt(f,i,h))]})),s?y.push({op:"bcurveTo",data:[m+t+(r-t)*p+v(),g+e+(n-e)*p+v(),m+t+2*(r-t)*p+v(),g+e+2*(n-e)*p+v(),r+(b?0:v()),n+(b?0:v())]}):y.push({op:"bcurveTo",data:[m+t+(r-t)*p+x(),g+e+(n-e)*p+x(),m+t+2*(r-t)*p+x(),g+e+2*(n-e)*p+x(),r+(b?0:x()),n+(b?0:x())]}),y}function P5(t,e,r){if(!t.length)return[];let n=[];n.push([t[0][0]+Yt(e,r),t[0][1]+Yt(e,r)]),n.push([t[0][0]+Yt(e,r),t[0][1]+Yt(e,r)]);for(let i=1;i3){let a=[],s=1-r.curveTightness;i.push({op:"move",data:[t[1][0],t[1][1]]});for(let l=1;l+21&&i.push(l)):i.push(l),i.push(t[e+3])}else{let u=t[e+0],h=t[e+1],f=t[e+2],d=t[e+3],p=Ld(u,h,.5),m=Ld(h,f,.5),g=Ld(f,d,.5),y=Ld(p,m,.5),v=Ld(m,g,.5),x=Ld(y,v,.5);U9([u,p,y,x],0,r,i),U9([x,v,g,d],0,r,i)}var a,s;return i}function bSe(t,e){return V5(t,0,t.length,e)}function V5(t,e,r,n,i){let a=i||[],s=t[e],l=t[r-1],u=0,h=1;for(let f=e+1;fu&&(u=d,h=f)}return Math.sqrt(u)>n?(V5(t,e,h+1,n,a),V5(t,h,r,n,a)):(a.length||a.push(s),a.push(l)),a}function I9(t,e=.15,r){let n=[],i=(t.length-1)/3;for(let a=0;a0?V5(n,0,n.length,r):n}var Ev,O9,P9,B9,F9,z9,Cs,G9,mSe,R9,zj,O5,gSe,ao,gm,H9,B5,Y9,Jt,ti=R(()=>{"use strict";o(D9,"t");o(dSe,"e");o(pSe,"s");o(Cv,"n");Ev=class{static{o(this,"o")}constructor(e){this.helper=e}fillPolygons(e,r){return this._fillPolygons(e,r)}_fillPolygons(e,r){let n=Cv(e,r);return{type:"fillSketch",ops:this.renderLines(n,r)}}renderLines(e,r){let n=[];for(let i of e)n.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],r));return n}};o(U5,"a");O9=class extends Ev{static{o(this,"h")}fillPolygons(e,r){let n=r.hachureGap;n<0&&(n=4*r.strokeWidth),n=Math.max(n,.1);let i=Cv(e,Object.assign({},r,{hachureGap:n})),a=Math.PI/180*r.hachureAngle,s=[],l=.5*n*Math.cos(a),u=.5*n*Math.sin(a);for(let[h,f]of i)U5([h,f])&&s.push([[h[0]-l,h[1]+u],[...f]],[[h[0]+l,h[1]-u],[...f]]);return{type:"fillSketch",ops:this.renderLines(s,r)}}},P9=class extends Ev{static{o(this,"r")}fillPolygons(e,r){let n=this._fillPolygons(e,r),i=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),a=this._fillPolygons(e,i);return n.ops=n.ops.concat(a.ops),n}},B9=class{static{o(this,"i")}constructor(e){this.helper=e}fillPolygons(e,r){let n=Cv(e,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(n,r)}dotsOnLines(e,r){let n=[],i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);let a=r.fillWeight;a<0&&(a=r.strokeWidth/2);let s=i/4;for(let l of e){let u=U5(l),h=u/i,f=Math.ceil(h)-1,d=u-f*i,p=(l[0][0]+l[1][0])/2-i/4,m=Math.min(l[0][1],l[1][1]);for(let g=0;g{let l=U5(s),u=Math.floor(l/(n+i)),h=(l+i-u*(n+i))/2,f=s[0],d=s[1];f[0]>d[0]&&(f=s[1],d=s[0]);let p=Math.atan((d[1]-f[1])/(d[0]-f[0]));for(let m=0;m{let s=U5(a),l=Math.round(s/(2*r)),u=a[0],h=a[1];u[0]>h[0]&&(u=a[1],h=a[0]);let f=Math.atan((h[1]-u[1])/(h[0]-u[0]));for(let d=0;d2*Math.PI&&(_=0,A=2*Math.PI);let L=(A-_)/b.curveStepCount,M=[];for(let N=_;N<=A;N+=L)M.push([w+T*Math.cos(N),S+E*Math.sin(N)]);return M.push([w+T*Math.cos(A),S+E*Math.sin(A)]),M.push([w,S]),mm([M],b)}(e,r,n,i,a,s,h));return h.stroke!==ao&&f.push(d),this._d("arc",f,h)}curve(e,r){let n=this._o(r),i=[],a=Gj(e,n);if(n.fill&&n.fill!==ao)if(n.fillStyle==="solid"){let s=Gj(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{let s=[],l=e;if(l.length){let u=typeof l[0][0]=="number"?[l]:l;for(let h of u)h.length<3?s.push(...h):h.length===3?s.push(...I9(Wj([h[0],h[0],h[1],h[2]]),10,(1+n.roughness)/2)):s.push(...I9(Wj(h),10,(1+n.roughness)/2))}s.length&&i.push(mm([s],n))}return n.stroke!==ao&&i.push(a),this._d("curve",i,n)}polygon(e,r){let n=this._o(r),i=[],a=F5(e,!0,n);return n.fill&&(n.fillStyle==="solid"?i.push(M9([e],n)):i.push(mm([e],n))),n.stroke!==ao&&i.push(a),this._d("polygon",i,n)}path(e,r){let n=this._o(r),i=[];if(!e)return this._d("path",i,n);e=(e||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let a=n.fill&&n.fill!=="transparent"&&n.fill!==ao,s=n.stroke!==ao,l=!!(n.simplification&&n.simplification<1),u=function(f,d,p){let m=Xj(qj(W9(f))),g=[],y=[],v=[0,0],x=[],b=o(()=>{x.length>=4&&y.push(...I9(x,d)),x=[]},"i"),w=o(()=>{b(),y.length&&(g.push(y),y=[])},"c");for(let{key:T,data:E}of m)switch(T){case"M":w(),v=[E[0],E[1]],y.push(v);break;case"L":b(),y.push([E[0],E[1]]);break;case"C":if(!x.length){let _=y.length?y[y.length-1]:v;x.push([_[0],_[1]])}x.push([E[0],E[1]]),x.push([E[2],E[3]]),x.push([E[4],E[5]]);break;case"Z":b(),y.push([v[0],v[1]])}if(w(),!p)return g;let S=[];for(let T of g){let E=bSe(T,p);E.length&&S.push(E)}return S}(e,1,l?4-4*(n.simplification||1):(1+n.roughness)/2),h=Vj(e,n);if(a)if(n.fillStyle==="solid")if(u.length===1){let f=Vj(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(f.ops)})}else i.push(M9(u,n));else i.push(mm(u,n));return s&&(l?u.forEach(f=>{i.push(F5(f,!1,n))}):i.push(h)),this._d("path",i,n)}opsToPath(e,r){let n="";for(let i of e.ops){let a=typeof r=="number"&&r>=0?i.data.map(s=>+s.toFixed(r)):i.data;switch(i.op){case"move":n+=`M${a[0]} ${a[1]} `;break;case"bcurveTo":n+=`C${a[0]} ${a[1]}, ${a[2]} ${a[3]}, ${a[4]} ${a[5]} `;break;case"lineTo":n+=`L${a[0]} ${a[1]} `}}return n.trim()}toPaths(e){let r=e.sets||[],n=e.options||this.defaultOptions,i=[];for(let a of r){let s=null;switch(a.type){case"path":s={d:this.opsToPath(a),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:ao};break;case"fillPath":s={d:this.opsToPath(a),stroke:ao,strokeWidth:0,fill:n.fill||ao};break;case"fillSketch":s=this.fillSketch(a,n)}s&&i.push(s)}return i}fillSketch(e,r){let n=r.fillWeight;return n<0&&(n=r.strokeWidth/2),{d:this.opsToPath(e),stroke:r.fill||ao,strokeWidth:n,fill:ao}}_mergedShape(e){return e.filter((r,n)=>n===0||r.op!=="move")}},H9=class{static{o(this,"st")}constructor(e,r){this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new gm(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.ctx,a=e.options.fixedDecimalPlaceDigits;for(let s of r)switch(s.type){case"path":i.save(),i.strokeStyle=n.stroke==="none"?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,s,a),i.restore();break;case"fillPath":{i.save(),i.fillStyle=n.fill||"";let l=e.shape==="curve"||e.shape==="polygon"||e.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,s,a,l),i.restore();break}case"fillSketch":this.fillSketch(i,s,n)}}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2),e.save(),n.fillLineDash&&e.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(e.lineDashOffset=n.fillLineDashOffset),e.strokeStyle=n.fill||"",e.lineWidth=i,this._drawToContext(e,r,n.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,r,n,i="nonzero"){e.beginPath();for(let a of r.ops){let s=typeof n=="number"&&n>=0?a.data.map(l=>+l.toFixed(n)):a.data;switch(a.op){case"move":e.moveTo(s[0],s[1]);break;case"bcurveTo":e.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":e.lineTo(s[0],s[1])}}r.type==="fillPath"?e.fill(i):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s),s}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s),s}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s),s}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a),a}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n),n}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n),n}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h),h}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n),n}path(e,r){let n=this.gen.path(e,r);return this.draw(n),n}},B5="http://www.w3.org/2000/svg",Y9=class{static{o(this,"ot")}constructor(e,r){this.svg=e,this.gen=new gm(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(B5,"g"),s=e.options.fixedDecimalPlaceDigits;for(let l of r){let u=null;switch(l.type){case"path":u=i.createElementNS(B5,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke",n.stroke),u.setAttribute("stroke-width",n.strokeWidth+""),u.setAttribute("fill","none"),n.strokeLineDash&&u.setAttribute("stroke-dasharray",n.strokeLineDash.join(" ").trim()),n.strokeLineDashOffset&&u.setAttribute("stroke-dashoffset",`${n.strokeLineDashOffset}`);break;case"fillPath":u=i.createElementNS(B5,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke","none"),u.setAttribute("stroke-width","0"),u.setAttribute("fill",n.fill||""),e.shape!=="curve"&&e.shape!=="polygon"||u.setAttribute("fill-rule","evenodd");break;case"fillSketch":u=this.fillSketch(i,l,n)}u&&a.appendChild(u)}return a}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2);let a=e.createElementNS(B5,"path");return a.setAttribute("d",this.opsToPath(r,n.fixedDecimalPlaceDigits)),a.setAttribute("stroke",n.fill||""),a.setAttribute("stroke-width",i+""),a.setAttribute("fill","none"),n.fillLineDash&&a.setAttribute("stroke-dasharray",n.fillLineDash.join(" ").trim()),n.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${n.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,r){return this.gen.opsToPath(e,r)}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s)}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s)}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s)}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a)}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n)}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n)}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h)}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n)}path(e,r){let n=this.gen.path(e,r);return this.draw(n)}},Jt={canvas:o((t,e)=>new H9(t,e),"canvas"),svg:o((t,e)=>new Y9(t,e),"svg"),generator:o(t=>new gm(t),"generator"),newSeed:o(()=>gm.newSeed(),"newSeed")}});var wSe,Dd,q9=R(()=>{"use strict";wSe=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Dd=wSe});function TSe(t,e){e&&t.attr("style",e)}async function kSe(t){let e=$e(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label;t.label&&Ni(t.label)&&(n=await yh(t.label.replace(We.lineBreakRegex,` +`),de()));let i=t.isNode?"nodeLabel":"edgeLabel";return r.html('"+n+""),TSe(r,t.labelStyle),r.style("display","inline-block"),r.style("padding-right","1px"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var ESe,gc,H5=R(()=>{"use strict";Zt();ut();_t();rr();xr();o(TSe,"applyStyle");o(kSe,"addHtmlLabel");ESe=o(async(t,e,r,n)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),yr(de().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),V.info("vertexText"+i);let a={isNode:n,label:to(i).replace(/fa[blrs]?:fa-[\w-]+/g,l=>``),labelStyle:e&&e.replace("fill:","color:")};return await kSe(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),gc=ESe});var _u,Sv=R(()=>{"use strict";_u=o((t,e,r,n,i)=>["M",t+i,e,"H",t+r-i,"A",i,i,0,0,1,t+r,e+i,"V",e+n-i,"A",i,i,0,0,1,t+r-i,e+n,"H",t+i,"A",i,i,0,0,1,t,e+n-i,"V",e+i,"A",i,i,0,0,1,t+i,e,"Z"].join(" "),"createRoundedRectPathD")});var Lu,Jj,CSe,Br,Fr,ki=R(()=>{"use strict";_t();Lu=o(t=>{let{handDrawnSeed:e}=de();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),Jj=o(t=>{let e=CSe([...t.cssCompiledStyles||[],...t.cssStyles||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),CSe=o(t=>{let e=new Map;return t.forEach(r=>{let[n,i]=r.split(":");e.set(n.trim(),i?.trim())}),e},"styles2Map"),Br=o(t=>{let{stylesArray:e}=Jj(t),r=[],n=[],i=[],a=[];return e.forEach(s=>{let l=s[0];l==="color"||l==="font-size"||l==="font-family"||l==="font-weight"||l==="font-style"||l==="text-decoration"||l==="text-align"||l==="text-transform"||l==="line-height"||l==="letter-spacing"||l==="word-spacing"||l==="text-shadow"||l==="text-overflow"||l==="white-space"||l==="word-wrap"||l==="word-break"||l==="overflow-wrap"||l==="hyphens"?r.push(s.join(":")+" !important"):(n.push(s.join(":")+" !important"),l.includes("stroke")&&i.push(s.join(":")+" !important"),l==="fill"&&a.push(s.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:a}},"styles2String"),Fr=o((t,e)=>{let{themeVariables:r,handDrawnSeed:n}=de(),{nodeBorder:i,mainBkg:a}=r,{stylesMap:s}=Jj(t);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,stroke:s.get("stroke")||i,seed:n,strokeWidth:1.3},e)},"userNodeOverrides")});var eK,SSe,ASe,_Se,LSe,DSe,tK,Y5,rK,X9=R(()=>{"use strict";_t();rr();ut();_d();Zt();ti();Al();q9();H5();Sv();ki();eK=o(async(t,e)=>{V.info("Creating subgraph rect for ",e.id,e);let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=Br(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=yr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await ta(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0}),y=g.getBBox();if(yr(r.flowchart.htmlLabels)){let _=g.children[0],A=$e(g);y=_.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,w=e.y-x/2;V.trace("Data ",e,JSON.stringify(e));let S;if(e.look==="handDrawn"){let _=Jt.svg(d),A=Fr(e,{roughness:.7,fill:a,stroke:s,fillWeight:3,seed:i}),L=_.path(_u(b,w,v,x,0),A);S=d.insert(()=>(V.debug("Rough node insert CXC",L),L),":first-child"),S.select("path:nth-child(2)").attr("style",h.join(";")),S.select("path").attr("style",f.join(";").replace("fill","stroke"))}else S=d.insert("rect",":first-child"),S.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",w).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:T}=io(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+T})`),l){let _=m.select("span");_&&_.attr("style",l)}let E=S.node().getBBox();return e.offsetX=0,e.width=E.width,e.height=E.height,e.offsetY=y.height-e.padding/2,e.intersect=function(_){return Dd(e,_)},{cluster:d,labelBBox:y}},"rect"),SSe=o((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),i=0*e.padding,a=i/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.intersect=function(l){return Dd(e,l)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),ASe=o(async(t,e)=>{let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{altBackground:a,compositeBackground:s,compositeTitleBackground:l,nodeBorder:u}=n,h=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),f=h.insert("g",":first-child"),d=h.insert("g").attr("class","cluster-label"),p=h.append("rect"),m=d.node().appendChild(await gc(e.label,e.labelStyle,void 0,!0)),g=m.getBBox();if(yr(r.flowchart.htmlLabels)){let L=m.children[0],M=$e(m);g=L.getBoundingClientRect(),M.attr("width",g.width),M.attr("height",g.height)}let y=0*e.padding,v=y/2,x=(e.width<=g.width+e.padding?g.width+e.padding:e.width)+y;e.width<=g.width+e.padding?e.diff=(x-e.width)/2-e.padding:e.diff=-e.padding;let b=e.height+y,w=e.height+y-g.height-6,S=e.x-x/2,T=e.y-b/2;e.width=x;let E=e.y-e.height/2-v+g.height+2,_;if(e.look==="handDrawn"){let L=e.cssClasses.includes("statediagram-cluster-alt"),M=Jt.svg(h),N=e.rx||e.ry?M.path(_u(S,T,x,b,10),{roughness:.7,fill:l,fillStyle:"solid",stroke:u,seed:i}):M.rectangle(S,T,x,b,{seed:i});_=h.insert(()=>N,":first-child");let k=M.rectangle(S,E,x,w,{fill:L?a:s,fillStyle:L?"hachure":"solid",stroke:u,seed:i});_=h.insert(()=>N,":first-child"),p=h.insert(()=>k)}else _=f.insert("rect",":first-child"),_.attr("class","outer").attr("x",S).attr("y",T).attr("width",x).attr("height",b).attr("data-look",e.look),p.attr("class","inner").attr("x",S).attr("y",E).attr("width",x).attr("height",w);d.attr("transform",`translate(${e.x-g.width/2}, ${T+1-(yr(r.flowchart.htmlLabels)?0:3)})`);let A=_.node().getBBox();return e.height=A.height,e.offsetX=0,e.offsetY=g.height-e.padding/2,e.labelBBox=g,e.intersect=function(L){return Dd(e,L)},{cluster:h,labelBBox:g}},"roundedWithTitle"),_Se=o((t,e)=>{let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{nodeBorder:a}=n,s=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),l=s.insert("g",":first-child"),u=0*e.padding,h=e.width+u;e.diff=-e.padding;let f=e.height+u,d=e.x-h/2,p=e.y-f/2;e.width=h;let m;if(e.look==="handDrawn"){let v=Jt.svg(s).rectangle(d,p,h,f,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:i});m=s.insert(()=>v,":first-child")}else m=l.insert("rect",":first-child"),m.attr("class","divider").attr("x",d).attr("y",p).attr("width",h).attr("height",f).attr("data-look",e.look);let g=m.node().getBBox();return e.height=g.height,e.offsetX=0,e.offsetY=0,e.intersect=function(y){return Dd(e,y)},{cluster:s,labelBBox:{}}},"divider"),LSe=eK,DSe={rect:eK,squareRect:LSe,roundedWithTitle:ASe,noteGroup:SSe,divider:_Se},tK=new Map,Y5=o(async(t,e)=>{let r=e.shape||"rect",n=await DSe[r](t,e);return tK.set(e.id,n),n},"insertCluster"),rK=o(()=>{tK=new Map},"clear")});function W5(t,e){if(t===void 0||e===void 0)return{angle:0,deltaX:0,deltaY:0};t=q5(t),e=q5(e);let[r,n]=[t.x,t.y],[i,a]=[e.x,e.y],s=i-r,l=a-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var Uh,q5,X5,j9=R(()=>{"use strict";Uh={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};o(W5,"calculateDeltaAndAngle");q5=o(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),X5=o(t=>({x:o(function(e,r,n){let i=0;if(r===0&&Object.hasOwn(Uh,t.arrowTypeStart)){let{angle:a,deltaX:s}=W5(n[0],n[1]);i=Uh[t.arrowTypeStart]*Math.cos(a)*(s>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(Uh,t.arrowTypeEnd)){let{angle:a,deltaX:s}=W5(n[n.length-1],n[n.length-2]);i=Uh[t.arrowTypeEnd]*Math.cos(a)*(s>=0?1:-1)}return q5(e).x+i},"x"),y:o(function(e,r,n){let i=0;if(r===0&&Object.hasOwn(Uh,t.arrowTypeStart)){let{angle:a,deltaY:s}=W5(n[0],n[1]);i=Uh[t.arrowTypeStart]*Math.abs(Math.sin(a))*(s>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(Uh,t.arrowTypeEnd)){let{angle:a,deltaY:s}=W5(n[n.length-1],n[n.length-2]);i=Uh[t.arrowTypeEnd]*Math.abs(Math.sin(a))*(s>=0?1:-1)}return q5(e).y+i},"y")}),"getLineFunctionsWithOffset")});var iK,RSe,nK,aK=R(()=>{"use strict";ut();iK=o((t,e,r,n,i)=>{e.arrowTypeStart&&nK(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&nK(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),RSe={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},nK=o((t,e,r,n,i,a)=>{let s=RSe[r];if(!s){V.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function j5(t,e){de().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}function ISe(t){let e=[],r=[];for(let n=1;n5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===s.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-s.y)>5)&&(e.push(a),r.push(n))}return{cornerPoints:e,cornerPointPositions:r}}var K5,da,lK,Av,Q5,Z5,NSe,MSe,sK,oK,OSe,J5,K9=R(()=>{"use strict";_t();rr();ut();Al();xr();j9();_d();Zt();ti();H5();aK();K5=new Map,da=new Map,lK=o(()=>{K5.clear(),da.clear()},"clear"),Av=o(t=>t?t.reduce((r,n)=>r+";"+n,""):"","getLabelStyles"),Q5=o(async(t,e)=>{let r=yr(de().flowchart.htmlLabels),n=await ta(t,e.label,{style:Av(e.labelStyle),useHtmlLabels:r,addSvgBackground:!0,isNode:!1});V.info("abc82",e,e.labelType);let i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label");a.node().appendChild(n);let s=n.getBBox();if(r){let u=n.children[0],h=$e(n);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}a.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),K5.set(e.id,i),e.width=s.width,e.height=s.height;let l;if(e.startLabelLeft){let u=await gc(e.startLabelLeft,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),da.get(e.id)||da.set(e.id,{}),da.get(e.id).startLeft=h,j5(l,e.startLabelLeft)}if(e.startLabelRight){let u=await gc(e.startLabelRight,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=h.node().appendChild(u),f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),da.get(e.id)||da.set(e.id,{}),da.get(e.id).startRight=h,j5(l,e.startLabelRight)}if(e.endLabelLeft){let u=await gc(e.endLabelLeft,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),da.get(e.id)||da.set(e.id,{}),da.get(e.id).endLeft=h,j5(l,e.endLabelLeft)}if(e.endLabelRight){let u=await gc(e.endLabelRight,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),da.get(e.id)||da.set(e.id,{}),da.get(e.id).endRight=h,j5(l,e.endLabelRight)}return n},"insertEdgeLabel");o(j5,"setTerminalWidth");Z5=o((t,e)=>{V.debug("Moving label abc88 ",t.id,t.label,K5.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=de(),{subGraphTitleTotalMargin:i}=io(n);if(t.label){let a=K5.get(t.id),s=t.x,l=t.y;if(r){let u=Lt.calcLabelPosition(r);V.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=da.get(t.id).startLeft,s=t.x,l=t.y;if(r){let u=Lt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=da.get(t.id).startRight,s=t.x,l=t.y;if(r){let u=Lt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=da.get(t.id).endLeft,s=t.x,l=t.y;if(r){let u=Lt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=da.get(t.id).endRight,s=t.x,l=t.y;if(r){let u=Lt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),NSe=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),MSe=o((t,e,r)=>{V.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{V.warn("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(V.info("abc88 checking point",a,e),!NSe(e,a)&&!i){let s=MSe(e,n,a);V.debug("abc88 inside",a,n,s),V.debug("abc88 intersection",s,e);let l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)?V.warn("abc88 no intersect",s,r):r.push(s),i=!0}else V.warn("abc88 outside",a,n),n=a,i||r.push(a)}),V.debug("returning points",r),r},"cutPathAtIntersect");o(ISe,"extractCornerPoints");oK=o(function(t,e,r){let n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),s=r/a;return{x:e.x-s*n,y:e.y-s*i}},"findAdjacentPoint"),OSe=o(function(t){let{cornerPointPositions:e}=ISe(t),r=[];for(let n=0;n10&&Math.abs(a.y-i.y)>=10){V.debug("Corner point fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));let m=5;s.x===l.x?p={x:h<0?l.x-m+d:l.x+m-d,y:f<0?l.y-d:l.y+d}:p={x:h<0?l.x-d:l.x+d,y:f<0?l.y-m+d:l.y+m-d}}else V.debug("Corner point skipping fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));r.push(p,u)}else r.push(t[n]);return r},"fixCorners"),J5=o(function(t,e,r,n,i,a,s){let{handDrawnSeed:l}=de(),u=e.points,h=!1,f=i;var d=a;d.intersect&&f.intersect&&(u=u.slice(1,e.points.length-1),u.unshift(f.intersect(u[0])),V.debug("Last point APA12",e.start,"-->",e.end,u[u.length-1],d,d.intersect(u[u.length-1])),u.push(d.intersect(u[u.length-1]))),e.toCluster&&(V.info("to cluster abc88",r.get(e.toCluster)),u=sK(e.points,r.get(e.toCluster).node),h=!0),e.fromCluster&&(V.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(u,null,2)),u=sK(u.reverse(),r.get(e.fromCluster).node).reverse(),h=!0);let p=u.filter(A=>!Number.isNaN(A.y));p=OSe(p);let m=p[p.length-1];if(p.length>1){m=p[p.length-1];let A=p[p.length-2],L=(m.x-A.x)/2,M=(m.y-A.y)/2,N={x:A.x+L,y:A.y+M};p.splice(-1,0,N)}let g=vs;e.curve&&(g=e.curve);let{x:y,y:v}=X5(e),x=ha().x(y).y(v).curve(g),b;switch(e.thickness){case"normal":b="edge-thickness-normal";break;case"thick":b="edge-thickness-thick";break;case"invisible":b="edge-thickness-invisible";break;default:b="edge-thickness-normal"}switch(e.pattern){case"solid":b+=" edge-pattern-solid";break;case"dotted":b+=" edge-pattern-dotted";break;case"dashed":b+=" edge-pattern-dashed";break;default:b+=" edge-pattern-solid"}let w,S=x(p),T=Array.isArray(e.style)?e.style:[e.style];if(e.look==="handDrawn"){let A=Jt.svg(t);Object.assign([],p);let L=A.path(S,{roughness:.3,seed:l});b+=" transition",w=$e(L).select("path").attr("id",e.id).attr("class"," "+b+(e.classes?" "+e.classes:"")).attr("style",T?T.reduce((N,k)=>N+";"+k,""):"");let M=w.attr("d");w.attr("d",M),t.node().appendChild(w.node())}else w=t.append("path").attr("d",S).attr("id",e.id).attr("class"," "+b+(e.classes?" "+e.classes:"")).attr("style",T?T.reduce((A,L)=>A+";"+L,""):"");let E="";(de().flowchart.arrowMarkerAbsolute||de().state.arrowMarkerAbsolute)&&(E=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,E=E.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),V.info("arrowTypeStart",e.arrowTypeStart),V.info("arrowTypeEnd",e.arrowTypeEnd),iK(w,e,E,s,n);let _={};return h&&(_.updatedPath=u),_.originalPath=e.points,_},"insertEdge")});var PSe,BSe,FSe,zSe,GSe,$Se,VSe,USe,HSe,YSe,WSe,ew,Q9=R(()=>{"use strict";ut();PSe=o((t,e,r,n)=>{e.forEach(i=>{WSe[i](t,r,n)})},"insertMarkers"),BSe=o((t,e,r)=>{V.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),FSe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),zSe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),GSe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),$Se=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),VSe=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),USe=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),HSe=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),YSe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),WSe={extension:BSe,composition:FSe,aggregation:zSe,dependency:GSe,lollipop:$Se,point:VSe,circle:USe,cross:HSe,barb:YSe},ew=PSe});var zr,ar,En,ri=R(()=>{"use strict";Al();_t();Zt();rr();xr();zr=o(async(t,e,r)=>{let n,i=e.useHtmlLabels||yr(de().flowchart.htmlLabels);r?n=r:n="node default";let a=t.insert("g").attr("class",n).attr("id",e.domId||e.id),s=a.insert("g").attr("class","label").attr("style",e.labelStyle),l;e.label===void 0?l="":l=typeof e.label=="string"?e.label:e.label[0];let u;u=await ta(s,qr(to(l),de()),{useHtmlLabels:i,width:e.width||de().flowchart.wrappingWidth,cssClasses:"markdown-node-label",style:e.labelStyle});let h=u.getBBox(),f=e.padding/2;if(yr(de().flowchart.htmlLabels)){let d=u.children[0],p=$e(u),m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=de().fontSize?de().fontSize:window.getComputedStyle(document.body).fontSize,S=parseInt(b,10)*5+"px";y.style.minWidth=S,y.style.maxWidth=S}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}return i?s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"):s.attr("transform","translate(0, "+-h.height/2+")"),e.centerLabel&&s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:h,halfPadding:f,label:s}},"labelHelper"),ar=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds"),En=o((t,e)=>(t.look==="handDrawn"?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses")});function qSe(t,e){return t.intersect(e)}var cK,uK=R(()=>{"use strict";o(qSe,"intersectNode");cK=qSe});function XSe(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(XSe,"intersectEllipse");tw=XSe});function jSe(t,e,r){return tw(t,e,e,r)}var hK,fK=R(()=>{"use strict";Z9();o(jSe,"intersectCircle");hK=jSe});function KSe(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&dK(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&dK(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function dK(t,e){return t*e>0}var pK,mK=R(()=>{"use strict";o(KSe,"intersectLine");o(dK,"sameSign");pK=KSe});function QSe(t,e,r){let n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(f){s=Math.min(s,f.x),l=Math.min(l,f.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));let u=n-t.width/2-s,h=i-t.height/2-l;for(let f=0;f1&&a.sort(function(f,d){let p=f.x-r.x,m=f.y-r.y,g=Math.sqrt(p*p+m*m),y=d.x-r.x,v=d.y-r.y,x=Math.sqrt(y*y+v*v);return g{"use strict";mK();o(QSe,"intersectPolygon");gK=QSe});var sr,hi=R(()=>{"use strict";uK();fK();Z9();yK();q9();sr={node:cK,circle:hK,ellipse:tw,polygon:gK,rect:Dd}});var Rd,_v=R(()=>{"use strict";ri();hi();Sv();ki();ti();Rd=o(async(t,e,r)=>{let{labelStyles:n,nodeStyles:i}=Br(e);e.labelStyle=n;let{shapeSvg:a,bbox:s}=await zr(t,e,En(e)),l=Math.max(s.width+r.labelPaddingX*2,e?.width||0),u=Math.max(s.height+r.labelPaddingY*2,e?.height||0),h=-l/2,f=-u/2,d,{rx:p,ry:m}=e,{cssStyles:g}=e;if(r?.rx&&r.ry&&(p=r.rx,m=r.ry),e.look==="handDrawn"){let y=Jt.svg(a),v=Fr(e,{}),x=p||m?y.path(_u(h,f,l,u,p||0),v):y.rectangle(h,f,l,u,v);d=a.insert(()=>x,":first-child"),d.attr("class","basic label-container").attr("style",g)}else d=a.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",i).attr("rx",p).attr("data-id","abc").attr("data-et","node").attr("ry",m).attr("x",h).attr("y",f).attr("width",l).attr("height",u);return ar(e,d),e.intersect=function(y){return sr.rect(e,y)},a},"drawRect")});var vK,xK=R(()=>{"use strict";_v();vK=o(async(t,e)=>Rd(t,e,{rx:5,ry:5,classes:"flowchart-node"}),"state")});var bK,wK=R(()=>{"use strict";_v();bK=o(async(t,e)=>{let r={rx:5,ry:5,classes:"",labelPaddingX:(e?.padding||0)*1,labelPaddingY:(e?.padding||0)*1};return Rd(t,e,r)},"roundedRect")});var TK,kK=R(()=>{"use strict";_v();TK=o(async(t,e)=>{let r={rx:0,ry:0,classes:"",labelPaddingX:(e?.padding||0)*2,labelPaddingY:(e?.padding||0)*1};return Rd(t,e,r)},"squareRect")});var EK,CK=R(()=>{"use strict";ri();hi();ti();ki();_t();EK=o((t,e)=>{let{themeVariables:r}=de(),{lineColor:n}=r,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a;if(e.look==="handDrawn"){let l=Jt.svg(i).circle(0,0,14,Lu(n));a=i.insert(()=>l)}else a=i.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),ar(e,a),e.intersect=function(s){return sr.circle(e,7,s)},i},"stateStart")});var SK,AK=R(()=>{"use strict";ri();hi();ti();ki();_t();SK=o((t,e)=>{let{themeVariables:r}=de(),{lineColor:n}=r,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a,s;if(e.look==="handDrawn"){let l=Jt.svg(i),u=l.circle(0,0,14,{...Lu(n),roughness:.5}),h=l.circle(0,0,5,{...Lu(n),fillStyle:"solid"});a=i.insert(()=>u),s=i.insert(()=>h)}else s=i.insert("circle",":first-child"),a=i.insert("circle",":first-child"),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),s.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10);return ar(e,a),e.intersect=function(l){return sr.circle(e,7,l)},i},"stateEnd")});var J9,_K=R(()=>{"use strict";ri();hi();ti();ki();_t();J9=o((t,e,r)=>{let{themeVariables:n}=de(),{lineColor:i}=n,a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),s=70,l=10;r==="LR"&&(s=10,l=70);let u=-1*s/2,h=-1*l/2,f;if(e.look==="handDrawn"){let y=Jt.svg(a).rectangle(u,h,s,l,Lu(i));f=a.insert(()=>y)}else f=a.append("rect").attr("x",u).attr("y",h).attr("width",s).attr("height",l).attr("class","fork-join");ar(e,f);let d=0,p=0,m=10;return e.height&&(d=e.height),e.width&&(p=e.width),e.padding&&(m=e.padding),e.height=d+m/2,e.width=p+m/2,e.intersect=function(g){return sr.rect(e,g)},a},"forkJoin")});var LK,DK=R(()=>{"use strict";hi();ti();ki();_t();LK=o((t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{themeVariables:i}=de(),{lineColor:a}=i,s=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),l=28,u=[{x:0,y:l/2},{x:l/2,y:0},{x:0,y:-l/2},{x:-l/2,y:0}],h;if(e.look==="handDrawn"){let f=Jt.svg(s),d=u.map(function(m){return[m.x,m.y]}),p=f.polygon(d,Lu(a));h=s.insert(()=>p)}else h=s.insert("polygon",":first-child").attr("points",u.map(function(f){return f.x+","+f.y}).join(" "));return h.attr("class","state-start").attr("r",7).attr("width",28).attr("height",28).attr("style",n),e.width=28,e.height=28,e.intersect=function(f){return sr.circle(e,14,f)},s},"choice")});var RK,NK=R(()=>{"use strict";ut();ri();hi();_t();ti();RK=o(async(t,e)=>{let{themeVariables:r,handDrawnSeed:n}=de(),{noteBorderColor:i,noteBkgColor:a}=r;e.useHtmlLabels||(e.centerLabel=!0);let{shapeSvg:l,bbox:u}=await zr(t,e,"node "+e.cssClasses);V.info("Classes = ",e.cssClasses);let{cssStyles:h}=e,f,d=u.width+e.padding,p=u.height+e.padding,m=-d/2,g=-p/2;if(e.look==="handDrawn"){let v=Jt.svg(l).rectangle(m,g,d,p,{roughness:.7,fill:a,fillWeight:3,seed:n,stroke:i});f=l.insert(()=>v,":first-child"),f.attr("class","basic label-container").attr("style",h)}else f=l.insert("rect",":first-child"),f.attr("rx",e.rx).attr("ry",e.ry).attr("x",m).attr("y",g).attr("width",d).attr("height",p);return ar(e,f),e.intersect=function(y){return sr.rect(e,y)},l},"note")});var MK,IK=R(()=>{"use strict";ri();hi();ki();ti();Sv();MK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=a.height+e.padding,l=a.width+s/4+e.padding,u,{cssStyles:h}=e;if(e.look==="handDrawn"){let f=Jt.svg(i),d=Fr(e,{}),p=_u(-l/2,-s/2,l,s,s/2),m=f.path(p,d);u=i.insert(()=>m,":first-child"),u.attr("class","basic label-container").attr("style",h)}else u=i.insert("rect",":first-child"),u.attr("class","basic label-container").attr("style",n).attr("rx",s/2).attr("ry",s/2).attr("x",-l/2).attr("y",-s/2).attr("width",l).attr("height",s);return ar(e,u),e.intersect=function(f){return sr.rect(e,f)},i},"stadium")});var OK,PK=R(()=>{"use strict";Zt();rr();ri();H5();hi();ki();ti();_t();Sv();ut();OK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let i;e.cssClasses?i="node "+e.cssClasses:i="node default";let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=a.insert("g"),l=a.insert("g").attr("class","label").attr("style",n),u=e.description,h=e.label,f=l.node().appendChild(await gc(h,e.labelStyle,!0,!0)),d={width:0,height:0};if(yr(de()?.flowchart?.htmlLabels)){let A=f.children[0],L=$e(f);d=A.getBoundingClientRect(),L.attr("width",d.width),L.attr("height",d.height)}V.info("Text 2",u);let p=u||[],m=f.getBBox(),g=l.node().appendChild(await gc(p.join?p.join("
    "):p,e.labelStyle,!0,!0)),y=g.children[0],v=$e(g);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height);let x=(e.padding||0)/2;$e(g).attr("transform","translate( "+(d.width>m.width?0:(m.width-d.width)/2)+", "+(m.height+x+5)+")"),$e(f).attr("transform","translate( "+(d.width(V.debug("Rough node insert CXC",M),N),":first-child"),E=a.insert(()=>(V.debug("Rough node insert CXC",M),M),":first-child")}else E=s.insert("rect",":first-child"),_=s.insert("line"),E.attr("class","outer title-state").attr("style",n).attr("x",-d.width/2-x).attr("y",-d.height/2-x).attr("width",d.width+(e.padding||0)).attr("height",d.height+(e.padding||0)),_.attr("class","divider").attr("x1",-d.width/2-x).attr("x2",d.width/2+x).attr("y1",-d.height/2-x+m.height+x).attr("y2",-d.height/2-x+m.height+x);return ar(e,E),e.intersect=function(A){return sr.rect(e,A)},a},"rectWithTitle")});function Ma(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var Du=R(()=>{"use strict";o(Ma,"insertPolygonShape")});var BK,FK=R(()=>{"use strict";ri();hi();ki();ti();Du();BK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=(e?.padding||0)/2,l=a.width+e.padding,u=a.height+e.padding,h=-a.width/2-s,f=-a.height/2-s,d=[{x:0,y:0},{x:l,y:0},{x:l,y:-u},{x:0,y:-u},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-u},{x:-8,y:-u},{x:-8,y:0}];if(e.look==="handDrawn"){let p=Jt.svg(i),m=Fr(e,{}),g=p.rectangle(h-8,f,l+16,u,m),y=p.line(h,f,h,f+u,m),v=p.line(h+l,f,h+l,f+u,m);i.insert(()=>y,":first-child"),i.insert(()=>v,":first-child");let x=i.insert(()=>g,":first-child"),{cssStyles:b}=e;x.attr("class","basic label-container").attr("style",b),ar(e,x)}else{let p=Ma(i,l,u,d);n&&p.attr("style",n),ar(e,p)}return e.intersect=function(p){return sr.polygon(e,d,p)},i},"subroutine")});var ZSe,JSe,eAe,zK,GK=R(()=>{"use strict";ri();hi();ki();ti();ZSe=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createCylinderPathD"),JSe=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createOuterCylinderPathD"),eAe=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),zK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=a.width+e.padding,l=s/2,u=l/(2.5+s/50),h=a.height+u+e.padding,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Jt.svg(i),m=JSe(0,0,s,h,l,u),g=eAe(0,u,s,h,l,u),y=p.path(m,Fr(e,{})),v=p.path(g,Fr(e,{fill:"none"}));f=i.insert(()=>v,":first-child"),f=i.insert(()=>y,":first-child"),f.attr("class","basic label-container"),d&&f.attr("style",d)}else{let p=ZSe(0,0,s,h,l,u);f=i.insert("path",":first-child").attr("d",p).attr("class","basic label-container").attr("style",d).attr("style",n)}return f.attr("label-offset-y",u),f.attr("transform",`translate(${-s/2}, ${-(h/2+u)})`),ar(e,f),e.intersect=function(p){let m=sr.rect(e,p),g=m.x-(e.x??0);if(l!=0&&(Math.abs(g)<(e.width??0)/2||Math.abs(g)==(e.width??0)/2&&Math.abs(m.y-(e.y??0))>(e.height??0)/2-u)){let y=u*u*(1-g*g/(l*l));y>0&&(y=Math.sqrt(y)),y=u-y,p.y-(e.y??0)>0&&(y=-y),m.y+=y}return m},i},"cylinder")});var $K,VK=R(()=>{"use strict";ut();ri();hi();ki();ti();$K=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await zr(t,e,En(e)),l=a.width/2+s,u,{cssStyles:h}=e;if(e.look==="handDrawn"){let f=Jt.svg(i),d=Fr(e,{}),p=f.circle(0,0,l*2,d);u=i.insert(()=>p,":first-child"),u.attr("class","basic label-container").attr("style",h)}else u=i.insert("circle",":first-child").attr("class","basic label-container").attr("style",n).attr("r",l).attr("cx",0).attr("cy",0);return ar(e,u),e.intersect=function(f){return V.info("Circle intersect",e,l,f),sr.circle(e,l,f)},i},"circle")});var UK,HK=R(()=>{"use strict";ut();ri();hi();ki();ti();UK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await zr(t,e,En(e)),u=a.width/2+s+5,h=a.width/2+s,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Jt.svg(i),m=Fr(e,{roughness:.2,strokeWidth:2.5}),g=Fr(e,{roughness:.2,strokeWidth:1.5}),y=p.circle(0,0,u*2,m),v=p.circle(0,0,h*2,g);f=i.insert("g",":first-child"),f.attr("class",e.cssClasses).attr("style",d),f.node()?.appendChild(y),f.node()?.appendChild(v)}else{f=i.insert("g",":first-child");let p=f.insert("circle",":first-child"),m=f.insert("circle");f.attr("class","basic label-container").attr("style",n),p.attr("class","outer-circle").attr("style",n).attr("r",u).attr("cx",0).attr("cy",0),m.attr("class","inner-circle").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0)}return ar(e,f),e.intersect=function(p){return V.info("DoubleCircle intersect",e,u,p),sr.circle(e,u,p)},i},"doublecircle")});var tAe,YK,WK=R(()=>{"use strict";ri();hi();ki();ti();Du();tAe=o((t,e,r,n)=>[`M${t-n/2},${e}`,`L${t+r},${e}`,`L${t+r},${e-n}`,`L${t-n/2},${e-n}`,`L${t},${e-n/2}`,"Z"].join(" "),"createPolygonPathD"),YK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:-l/2,y:0},{x:s,y:0},{x:s,y:-l},{x:-l/2,y:-l},{x:0,y:-l/2}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Jt.svg(i),p=Fr(e,{}),m=tAe(0,0,s,l),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Ma(i,s,l,u);return n&&h.attr("style",n),e.width=s+l,e.height=l,ar(e,h),e.intersect=function(d){return sr.polygon(e,u,d)},i},"rect_left_inv_arrow")});var rAe,qK,XK=R(()=>{"use strict";ut();ri();hi();ki();ti();Du();rAe=o((t,e,r)=>[`M${t+r/2},${e}`,`L${t+r},${e-r/2}`,`L${t+r/2},${e-r}`,`L${t},${e-r/2}`,"Z"].join(" "),"createDecisionBoxPathD"),qK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=a.width+e.padding,l=a.height+e.padding,u=s+l,h=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Jt.svg(i),m=Fr(e,{}),g=rAe(0,0,u),y=p.path(g,m);f=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`),d&&f.attr("style",d)}else f=Ma(i,u,u,h);return n&&f.attr("style",n),ar(e,f),e.intersect=function(p){return V.debug(`APA12 Intersect called SPLIT +point:`,p,` +node: +`,e,` +res:`,sr.polygon(e,h,p)),sr.polygon(e,h,p)},i},"question")});var nAe,jK,KK=R(()=>{"use strict";ri();hi();ki();ti();Du();nAe=o((t,e,r,n,i)=>[`M${t+i},${e}`,`L${t+r-i},${e}`,`L${t+r},${e-n/2}`,`L${t+r-i},${e-n}`,`L${t+i},${e-n}`,`L${t},${e-n/2}`,"Z"].join(" "),"createHexagonPathD"),jK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=4,l=a.height+e.padding,u=l/s,h=a.width+2*u+e.padding,f=[{x:u,y:0},{x:h-u,y:0},{x:h,y:-l/2},{x:h-u,y:-l},{x:u,y:-l},{x:0,y:-l/2}],d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Jt.svg(i),g=Fr(e,{}),y=nAe(0,0,h,l,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${l/2})`),p&&d.attr("style",p)}else d=Ma(i,h,l,f);return n&&d.attr("style",n),e.width=h,e.height=l,ar(e,d),e.intersect=function(m){return sr.polygon(e,f,m)},i},"hexagon")});var iAe,QK,ZK=R(()=>{"use strict";ri();hi();ki();ti();Du();iAe=o((t,e,r,n)=>[`M${t-2*n/6},${e}`,`L${t+r-n/6},${e}`,`L${t+r+2*n/6},${e-n}`,`L${t+n/6},${e-n}`,"Z"].join(" "),"createLeanRightPathD"),QK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:-2*l/6,y:0},{x:s-l/6,y:0},{x:s+2*l/6,y:-l},{x:l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Jt.svg(i),p=Fr(e,{}),m=iAe(0,0,s,l),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Ma(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,ar(e,h),e.intersect=function(d){return sr.polygon(e,u,d)},i},"lean_right")});var aAe,JK,eQ=R(()=>{"use strict";ri();hi();ki();ti();Du();aAe=o((t,e,r,n)=>[`M${t+2*n/6},${e}`,`L${t+r+n/6},${e}`,`L${t+r-2*n/6},${e-n}`,`L${t-n/6},${e-n}`,"Z"].join(" "),"createLeanLeftPathD"),JK=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:2*l/6,y:0},{x:s+l/6,y:0},{x:s-2*l/6,y:-l},{x:-l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Jt.svg(i),p=Fr(e,{}),m=aAe(0,0,s,l),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Ma(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,ar(e,h),e.intersect=function(d){return sr.polygon(e,u,d)},i},"lean_left")});var sAe,tQ,rQ=R(()=>{"use strict";ri();hi();ki();ti();Du();sAe=o((t,e,r,n)=>[`M${t-2*n/6},${e}`,`L${t+r+2*n/6},${e}`,`L${t+r-n/6},${e-n}`,`L${t+n/6},${e-n}`,"Z"].join(" "),"createTrapezoidPathD"),tQ=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:-2*l/6,y:0},{x:s+2*l/6,y:0},{x:s-l/6,y:-l},{x:l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Jt.svg(i),p=Fr(e,{}),m=sAe(0,0,s,l),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Ma(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,ar(e,h),e.intersect=function(d){return sr.polygon(e,u,d)},i},"trapezoid")});var oAe,nQ,iQ=R(()=>{"use strict";ri();hi();ki();ti();Du();oAe=o((t,e,r,n)=>[`M${t+n/6},${e}`,`L${t+r-n/6},${e}`,`L${t+r+2*n/6},${e-n}`,`L${t-2*n/6},${e-n}`,"Z"].join(" "),"createInvertedTrapezoidPathD"),nQ=o(async(t,e)=>{let{labelStyles:r,nodeStyles:n}=Br(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await zr(t,e,En(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:l/6,y:0},{x:s-l/6,y:0},{x:s+2*l/6,y:-l},{x:-2*l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Jt.svg(i),p=Fr(e,{}),m=oAe(0,0,s,l),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Ma(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,ar(e,h),e.intersect=function(d){return sr.polygon(e,u,d)},i},"inv_trapezoid")});var aQ,sQ=R(()=>{"use strict";_v();ri();hi();aQ=o(async(t,e)=>{let{shapeSvg:r}=await zr(t,e,"label"),n=r.insert("rect",":first-child");return n.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),ar(e,n),e.intersect=function(s){return sr.rect(e,s)},r},"labelRect")});var oQ,ym,rw,lQ,cQ,eL,tL=R(()=>{"use strict";ut();xK();wK();kK();CK();AK();_K();DK();NK();IK();PK();_t();FK();GK();VK();HK();WK();XK();KK();ZK();eQ();rQ();iQ();sQ();oQ={state:vK,stateStart:EK,stateEnd:SK,fork:J9,join:J9,choice:LK,note:RK,roundedRect:bK,rectWithTitle:OK,squareRect:TK,stadium:MK,subroutine:BK,cylinder:zK,circle:$K,doublecircle:UK,odd:YK,diamond:qK,hexagon:jK,lean_right:QK,lean_left:JK,trapezoid:tQ,inv_trapezoid:nQ,labelRect:aQ},ym=new Map,rw=o(async(t,e,r)=>{let n,i;if(e.shape==="rect"&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect"),e.link){let a;de().securityLevel==="sandbox"?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),i=await oQ[e.shape](n,e,r)}else i=await oQ[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),ym.set(e.id,n),e.haveCallback&&ym.get(e.id).attr("class",ym.get(e.id).attr("class")+" clickable"),n},"insertNode"),lQ=o((t,e)=>{ym.set(e.id,t)},"setNodeElem"),cQ=o(()=>{ym.clear()},"clear"),eL=o(t=>{let e=ym.get(t.id);V.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});var uQ,hQ=R(()=>{"use strict";qs();rr();ut();X9();K9();Q9();tL();ri();xr();uQ={common:We,getConfig:Or,insertCluster:Y5,insertEdge:J5,insertEdgeLabel:Q5,insertMarkers:ew,insertNode:rw,interpolateToCurve:om,labelHelper:zr,log:V,positionEdgeLabel:Z5}});function cAe(t){return typeof t=="symbol"||Wn(t)&&fa(t)==lAe}var lAe,so,Nd=R(()=>{"use strict";wu();Mo();lAe="[object Symbol]";o(cAe,"isSymbol");so=cAe});function uAe(t,e){for(var r=-1,n=t==null?0:t.length,i=Array(n);++r{"use strict";o(uAe,"arrayMap");Ss=uAe});function pQ(t){if(typeof t=="string")return t;if(wt(t))return Ss(t,pQ)+"";if(so(t))return dQ?dQ.call(t):"";var e=t+"";return e=="0"&&1/t==-hAe?"-0":e}var hAe,fQ,dQ,mQ,gQ=R(()=>{"use strict";vd();Md();Bn();Nd();hAe=1/0,fQ=Ji?Ji.prototype:void 0,dQ=fQ?fQ.toString:void 0;o(pQ,"baseToString");mQ=pQ});function dAe(t){for(var e=t.length;e--&&fAe.test(t.charAt(e)););return e}var fAe,yQ,vQ=R(()=>{"use strict";fAe=/\s/;o(dAe,"trimmedEndIndex");yQ=dAe});function mAe(t){return t&&t.slice(0,yQ(t)+1).replace(pAe,"")}var pAe,xQ,bQ=R(()=>{"use strict";vQ();pAe=/^\s+/;o(mAe,"baseTrim");xQ=mAe});function bAe(t){if(typeof t=="number")return t;if(so(t))return wQ;if(pn(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=pn(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=xQ(t);var r=yAe.test(t);return r||vAe.test(t)?xAe(t.slice(2),r?2:8):gAe.test(t)?wQ:+t}var wQ,gAe,yAe,vAe,xAe,TQ,kQ=R(()=>{"use strict";bQ();Js();Nd();wQ=NaN,gAe=/^[-+]0x[0-9a-f]+$/i,yAe=/^0b[01]+$/i,vAe=/^0o[0-7]+$/i,xAe=parseInt;o(bAe,"toNumber");TQ=bAe});function TAe(t){if(!t)return t===0?t:0;if(t=TQ(t),t===EQ||t===-EQ){var e=t<0?-1:1;return e*wAe}return t===t?t:0}var EQ,wAe,vm,rL=R(()=>{"use strict";kQ();EQ=1/0,wAe=17976931348623157e292;o(TAe,"toFinite");vm=TAe});function kAe(t){var e=vm(t),r=e%1;return e===e?r?e-r:e:0}var yc,xm=R(()=>{"use strict";rL();o(kAe,"toInteger");yc=kAe});var EAe,nw,CQ=R(()=>{"use strict";Nh();Ro();EAe=xs(Jn,"WeakMap"),nw=EAe});function CAe(){}var qn,nL=R(()=>{"use strict";o(CAe,"noop");qn=CAe});function SAe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(SAe,"arrayEach");iw=SAe});function AAe(t,e,r,n){for(var i=t.length,a=r+(n?1:-1);n?a--:++a{"use strict";o(AAe,"baseFindIndex");aw=AAe});function _Ae(t){return t!==t}var SQ,AQ=R(()=>{"use strict";o(_Ae,"baseIsNaN");SQ=_Ae});function LAe(t,e,r){for(var n=r-1,i=t.length;++n{"use strict";o(LAe,"strictIndexOf");_Q=LAe});function DAe(t,e,r){return e===e?_Q(t,e,r):aw(t,SQ,r)}var bm,sw=R(()=>{"use strict";aL();AQ();LQ();o(DAe,"baseIndexOf");bm=DAe});function RAe(t,e){var r=t==null?0:t.length;return!!r&&bm(t,e,0)>-1}var ow,sL=R(()=>{"use strict";sw();o(RAe,"arrayIncludes");ow=RAe});var NAe,DQ,RQ=R(()=>{"use strict";F_();NAe=s5(Object.keys,Object),DQ=NAe});function OAe(t){if(!fc(t))return DQ(t);var e=[];for(var r in Object(t))IAe.call(t,r)&&r!="constructor"&&e.push(r);return e}var MAe,IAe,wm,lw=R(()=>{"use strict";tm();RQ();MAe=Object.prototype,IAe=MAe.hasOwnProperty;o(OAe,"baseKeys");wm=OAe});function PAe(t){return ei(t)?h5(t):wm(t)}var Dr,vc=R(()=>{"use strict";U_();lw();Io();o(PAe,"keys");Dr=PAe});var BAe,FAe,zAe,pa,NQ=R(()=>{"use strict";am();kd();q_();Io();tm();vc();BAe=Object.prototype,FAe=BAe.hasOwnProperty,zAe=p5(function(t,e){if(fc(e)||ei(e)){Bo(e,Dr(e),t);return}for(var r in e)FAe.call(e,r)&&dc(t,r,e[r])}),pa=zAe});function VAe(t,e){if(wt(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||so(t)?!0:$Ae.test(t)||!GAe.test(t)||e!=null&&t in Object(e)}var GAe,$Ae,Tm,cw=R(()=>{"use strict";Bn();Nd();GAe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$Ae=/^\w*$/;o(VAe,"isKey");Tm=VAe});function HAe(t){var e=qp(t,function(n){return r.size===UAe&&r.clear(),n}),r=e.cache;return e}var UAe,MQ,IQ=R(()=>{"use strict";R_();UAe=500;o(HAe,"memoizeCapped");MQ=HAe});var YAe,WAe,qAe,OQ,PQ=R(()=>{"use strict";IQ();YAe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,WAe=/\\(\\)?/g,qAe=MQ(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(YAe,function(r,n,i,a){e.push(i?a.replace(WAe,"$1"):n||r)}),e}),OQ=qAe});function XAe(t){return t==null?"":mQ(t)}var uw,oL=R(()=>{"use strict";gQ();o(XAe,"toString");uw=XAe});function jAe(t,e){return wt(t)?t:Tm(t,e)?[t]:OQ(uw(t))}var Hh,Lv=R(()=>{"use strict";Bn();cw();PQ();oL();o(jAe,"castPath");Hh=jAe});function QAe(t){if(typeof t=="string"||so(t))return t;var e=t+"";return e=="0"&&1/t==-KAe?"-0":e}var KAe,xc,km=R(()=>{"use strict";Nd();KAe=1/0;o(QAe,"toKey");xc=QAe});function ZAe(t,e){e=Hh(e,t);for(var r=0,n=e.length;t!=null&&r{"use strict";Lv();km();o(ZAe,"baseGet");Yh=ZAe});function JAe(t,e,r){var n=t==null?void 0:Yh(t,e);return n===void 0?r:n}var BQ,FQ=R(()=>{"use strict";Dv();o(JAe,"get");BQ=JAe});function e8e(t,e){for(var r=-1,n=e.length,i=t.length;++r{"use strict";o(e8e,"arrayPush");Em=e8e});function t8e(t){return wt(t)||kl(t)||!!(zQ&&t&&t[zQ])}var zQ,GQ,$Q=R(()=>{"use strict";vd();rm();Bn();zQ=Ji?Ji.isConcatSpreadable:void 0;o(t8e,"isFlattenable");GQ=t8e});function VQ(t,e,r,n,i){var a=-1,s=t.length;for(r||(r=GQ),i||(i=[]);++a0&&r(l)?e>1?VQ(l,e-1,r,n,i):Em(i,l):n||(i[i.length]=l)}return i}var bc,Cm=R(()=>{"use strict";hw();$Q();o(VQ,"baseFlatten");bc=VQ});function r8e(t){var e=t==null?0:t.length;return e?bc(t,1):[]}var Gr,fw=R(()=>{"use strict";Cm();o(r8e,"flatten");Gr=r8e});function n8e(t){return d5(f5(t,void 0,Gr),t+"")}var UQ,HQ=R(()=>{"use strict";fw();H_();W_();o(n8e,"flatRest");UQ=n8e});function i8e(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),r=r>i?i:r,r<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(i);++n{"use strict";o(i8e,"baseSlice");dw=i8e});function d8e(t){return f8e.test(t)}var a8e,s8e,o8e,l8e,c8e,u8e,h8e,f8e,YQ,WQ=R(()=>{"use strict";a8e="\\ud800-\\udfff",s8e="\\u0300-\\u036f",o8e="\\ufe20-\\ufe2f",l8e="\\u20d0-\\u20ff",c8e=s8e+o8e+l8e,u8e="\\ufe0e\\ufe0f",h8e="\\u200d",f8e=RegExp("["+h8e+a8e+c8e+u8e+"]");o(d8e,"hasUnicode");YQ=d8e});function p8e(t,e,r,n){var i=-1,a=t==null?0:t.length;for(n&&a&&(r=t[++i]);++i{"use strict";o(p8e,"arrayReduce");qQ=p8e});function m8e(t,e){return t&&Bo(e,Dr(e),t)}var jQ,KQ=R(()=>{"use strict";kd();vc();o(m8e,"baseAssign");jQ=m8e});function g8e(t,e){return t&&Bo(e,bs(e),t)}var QQ,ZQ=R(()=>{"use strict";kd();zh();o(g8e,"baseAssignIn");QQ=g8e});function y8e(t,e){for(var r=-1,n=t==null?0:t.length,i=0,a=[];++r{"use strict";o(y8e,"arrayFilter");Sm=y8e});function v8e(){return[]}var mw,cL=R(()=>{"use strict";o(v8e,"stubArray");mw=v8e});var x8e,b8e,JQ,w8e,Am,gw=R(()=>{"use strict";pw();cL();x8e=Object.prototype,b8e=x8e.propertyIsEnumerable,JQ=Object.getOwnPropertySymbols,w8e=JQ?function(t){return t==null?[]:(t=Object(t),Sm(JQ(t),function(e){return b8e.call(t,e)}))}:mw,Am=w8e});function T8e(t,e){return Bo(t,Am(t),e)}var eZ,tZ=R(()=>{"use strict";kd();gw();o(T8e,"copySymbols");eZ=T8e});var k8e,E8e,yw,uL=R(()=>{"use strict";hw();o5();gw();cL();k8e=Object.getOwnPropertySymbols,E8e=k8e?function(t){for(var e=[];t;)Em(e,Am(t)),t=em(t);return e}:mw,yw=E8e});function C8e(t,e){return Bo(t,yw(t),e)}var rZ,nZ=R(()=>{"use strict";kd();uL();o(C8e,"copySymbolsIn");rZ=C8e});function S8e(t,e,r){var n=e(t);return wt(t)?n:Em(n,r(t))}var vw,hL=R(()=>{"use strict";hw();Bn();o(S8e,"baseGetAllKeys");vw=S8e});function A8e(t){return vw(t,Dr,Am)}var Rv,fL=R(()=>{"use strict";hL();gw();vc();o(A8e,"getAllKeys");Rv=A8e});function _8e(t){return vw(t,bs,yw)}var xw,dL=R(()=>{"use strict";hL();uL();zh();o(_8e,"getAllKeysIn");xw=_8e});var L8e,bw,iZ=R(()=>{"use strict";Nh();Ro();L8e=xs(Jn,"DataView"),bw=L8e});var D8e,ww,aZ=R(()=>{"use strict";Nh();Ro();D8e=xs(Jn,"Promise"),ww=D8e});var R8e,Wh,pL=R(()=>{"use strict";Nh();Ro();R8e=xs(Jn,"Set"),Wh=R8e});var sZ,N8e,oZ,lZ,cZ,uZ,M8e,I8e,O8e,P8e,B8e,Id,oo,Od=R(()=>{"use strict";iZ();J3();aZ();pL();CQ();wu();__();sZ="[object Map]",N8e="[object Object]",oZ="[object Promise]",lZ="[object Set]",cZ="[object WeakMap]",uZ="[object DataView]",M8e=Tu(bw),I8e=Tu(Oh),O8e=Tu(ww),P8e=Tu(Wh),B8e=Tu(nw),Id=fa;(bw&&Id(new bw(new ArrayBuffer(1)))!=uZ||Oh&&Id(new Oh)!=sZ||ww&&Id(ww.resolve())!=oZ||Wh&&Id(new Wh)!=lZ||nw&&Id(new nw)!=cZ)&&(Id=o(function(t){var e=fa(t),r=e==N8e?t.constructor:void 0,n=r?Tu(r):"";if(n)switch(n){case M8e:return uZ;case I8e:return sZ;case O8e:return oZ;case P8e:return lZ;case B8e:return cZ}return e},"getTag"));oo=Id});function G8e(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&z8e.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var F8e,z8e,hZ,fZ=R(()=>{"use strict";F8e=Object.prototype,z8e=F8e.hasOwnProperty;o(G8e,"initCloneArray");hZ=G8e});function $8e(t,e){var r=e?Jp(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var dZ,pZ=R(()=>{"use strict";n5();o($8e,"cloneDataView");dZ=$8e});function U8e(t){var e=new t.constructor(t.source,V8e.exec(t));return e.lastIndex=t.lastIndex,e}var V8e,mZ,gZ=R(()=>{"use strict";V8e=/\w*$/;o(U8e,"cloneRegExp");mZ=U8e});function H8e(t){return vZ?Object(vZ.call(t)):{}}var yZ,vZ,xZ,bZ=R(()=>{"use strict";vd();yZ=Ji?Ji.prototype:void 0,vZ=yZ?yZ.valueOf:void 0;o(H8e,"cloneSymbol");xZ=H8e});function u_e(t,e,r){var n=t.constructor;switch(e){case J8e:return Jp(t);case Y8e:case W8e:return new n(+t);case e_e:return dZ(t,r);case t_e:case r_e:case n_e:case i_e:case a_e:case s_e:case o_e:case l_e:case c_e:return i5(t,r);case q8e:return new n;case X8e:case Q8e:return new n(t);case j8e:return mZ(t);case K8e:return new n;case Z8e:return xZ(t)}}var Y8e,W8e,q8e,X8e,j8e,K8e,Q8e,Z8e,J8e,e_e,t_e,r_e,n_e,i_e,a_e,s_e,o_e,l_e,c_e,wZ,TZ=R(()=>{"use strict";n5();pZ();gZ();bZ();P_();Y8e="[object Boolean]",W8e="[object Date]",q8e="[object Map]",X8e="[object Number]",j8e="[object RegExp]",K8e="[object Set]",Q8e="[object String]",Z8e="[object Symbol]",J8e="[object ArrayBuffer]",e_e="[object DataView]",t_e="[object Float32Array]",r_e="[object Float64Array]",n_e="[object Int8Array]",i_e="[object Int16Array]",a_e="[object Int32Array]",s_e="[object Uint8Array]",o_e="[object Uint8ClampedArray]",l_e="[object Uint16Array]",c_e="[object Uint32Array]";o(u_e,"initCloneByTag");wZ=u_e});function f_e(t){return Wn(t)&&oo(t)==h_e}var h_e,kZ,EZ=R(()=>{"use strict";Od();Mo();h_e="[object Map]";o(f_e,"baseIsMap");kZ=f_e});var CZ,d_e,SZ,AZ=R(()=>{"use strict";EZ();Td();ov();CZ=Po&&Po.isMap,d_e=CZ?Oo(CZ):kZ,SZ=d_e});function m_e(t){return Wn(t)&&oo(t)==p_e}var p_e,_Z,LZ=R(()=>{"use strict";Od();Mo();p_e="[object Set]";o(m_e,"baseIsSet");_Z=m_e});var DZ,g_e,RZ,NZ=R(()=>{"use strict";LZ();Td();ov();DZ=Po&&Po.isSet,g_e=DZ?Oo(DZ):_Z,RZ=g_e});function Tw(t,e,r,n,i,a){var s,l=e&y_e,u=e&v_e,h=e&x_e;if(r&&(s=i?r(t,n,i,a):r(t)),s!==void 0)return s;if(!pn(t))return t;var f=wt(t);if(f){if(s=hZ(t),!l)return a5(t,s)}else{var d=oo(t),p=d==IZ||d==E_e;if(El(t))return r5(t,l);if(d==OZ||d==MZ||p&&!i){if(s=u||p?{}:l5(t),!l)return u?rZ(t,QQ(s,t)):eZ(t,jQ(s,t))}else{if(!Cn[d])return i?t:{};s=wZ(t,d,l)}}a||(a=new uc);var m=a.get(t);if(m)return m;a.set(t,s),RZ(t)?t.forEach(function(v){s.add(Tw(v,e,r,v,t,a))}):SZ(t)&&t.forEach(function(v,x){s.set(x,Tw(v,e,r,x,t,a))});var g=h?u?xw:Rv:u?bs:Dr,y=f?void 0:g(t);return iw(y||t,function(v,x){y&&(x=v,v=t[x]),dc(s,x,Tw(v,e,r,x,t,a))}),s}var y_e,v_e,x_e,MZ,b_e,w_e,T_e,k_e,IZ,E_e,C_e,S_e,OZ,A_e,__e,L_e,D_e,R_e,N_e,M_e,I_e,O_e,P_e,B_e,F_e,z_e,G_e,$_e,V_e,Cn,kw,mL=R(()=>{"use strict";iv();iL();am();KQ();ZQ();I_();B_();tZ();nZ();fL();dL();Od();fZ();TZ();z_();Bn();im();AZ();Js();NZ();vc();zh();y_e=1,v_e=2,x_e=4,MZ="[object Arguments]",b_e="[object Array]",w_e="[object Boolean]",T_e="[object Date]",k_e="[object Error]",IZ="[object Function]",E_e="[object GeneratorFunction]",C_e="[object Map]",S_e="[object Number]",OZ="[object Object]",A_e="[object RegExp]",__e="[object Set]",L_e="[object String]",D_e="[object Symbol]",R_e="[object WeakMap]",N_e="[object ArrayBuffer]",M_e="[object DataView]",I_e="[object Float32Array]",O_e="[object Float64Array]",P_e="[object Int8Array]",B_e="[object Int16Array]",F_e="[object Int32Array]",z_e="[object Uint8Array]",G_e="[object Uint8ClampedArray]",$_e="[object Uint16Array]",V_e="[object Uint32Array]",Cn={};Cn[MZ]=Cn[b_e]=Cn[N_e]=Cn[M_e]=Cn[w_e]=Cn[T_e]=Cn[I_e]=Cn[O_e]=Cn[P_e]=Cn[B_e]=Cn[F_e]=Cn[C_e]=Cn[S_e]=Cn[OZ]=Cn[A_e]=Cn[__e]=Cn[L_e]=Cn[D_e]=Cn[z_e]=Cn[G_e]=Cn[$_e]=Cn[V_e]=!0;Cn[k_e]=Cn[IZ]=Cn[R_e]=!1;o(Tw,"baseClone");kw=Tw});function H_e(t){return kw(t,U_e)}var U_e,Qr,gL=R(()=>{"use strict";mL();U_e=4;o(H_e,"clone");Qr=H_e});function q_e(t){return kw(t,Y_e|W_e)}var Y_e,W_e,yL,PZ=R(()=>{"use strict";mL();Y_e=1,W_e=4;o(q_e,"cloneDeep");yL=q_e});function X_e(t){for(var e=-1,r=t==null?0:t.length,n=0,i=[];++e{"use strict";o(X_e,"compact");wc=X_e});function K_e(t){return this.__data__.set(t,j_e),this}var j_e,FZ,zZ=R(()=>{"use strict";j_e="__lodash_hash_undefined__";o(K_e,"setCacheAdd");FZ=K_e});function Q_e(t){return this.__data__.has(t)}var GZ,$Z=R(()=>{"use strict";o(Q_e,"setCacheHas");GZ=Q_e});function Ew(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new bd;++e{"use strict";e5();zZ();$Z();o(Ew,"SetCache");Ew.prototype.add=Ew.prototype.push=FZ;Ew.prototype.has=GZ;_m=Ew});function Z_e(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(Z_e,"arraySome");Sw=Z_e});function J_e(t,e){return t.has(e)}var Lm,Aw=R(()=>{"use strict";o(J_e,"cacheHas");Lm=J_e});function r9e(t,e,r,n,i,a){var s=r&e9e,l=t.length,u=e.length;if(l!=u&&!(s&&u>l))return!1;var h=a.get(t),f=a.get(e);if(h&&f)return h==e&&f==t;var d=-1,p=!0,m=r&t9e?new _m:void 0;for(a.set(t,e),a.set(e,t);++d{"use strict";Cw();vL();Aw();e9e=1,t9e=2;o(r9e,"equalArrays");_w=r9e});function n9e(t){var e=-1,r=Array(t.size);return t.forEach(function(n,i){r[++e]=[i,n]}),r}var VZ,UZ=R(()=>{"use strict";o(n9e,"mapToArray");VZ=n9e});function i9e(t){var e=-1,r=Array(t.size);return t.forEach(function(n){r[++e]=n}),r}var Dm,Lw=R(()=>{"use strict";o(i9e,"setToArray");Dm=i9e});function v9e(t,e,r,n,i,a,s){switch(r){case y9e:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case g9e:return!(t.byteLength!=e.byteLength||!a(new Zp(t),new Zp(e)));case o9e:case l9e:case h9e:return No(+t,+e);case c9e:return t.name==e.name&&t.message==e.message;case f9e:case p9e:return t==e+"";case u9e:var l=VZ;case d9e:var u=n&a9e;if(l||(l=Dm),t.size!=e.size&&!u)return!1;var h=s.get(t);if(h)return h==e;n|=s9e,s.set(t,e);var f=_w(l(t),l(e),n,i,a,s);return s.delete(t),f;case m9e:if(bL)return bL.call(t)==bL.call(e)}return!1}var a9e,s9e,o9e,l9e,c9e,u9e,h9e,f9e,d9e,p9e,m9e,g9e,y9e,HZ,bL,YZ,WZ=R(()=>{"use strict";vd();O_();xd();xL();UZ();Lw();a9e=1,s9e=2,o9e="[object Boolean]",l9e="[object Date]",c9e="[object Error]",u9e="[object Map]",h9e="[object Number]",f9e="[object RegExp]",d9e="[object Set]",p9e="[object String]",m9e="[object Symbol]",g9e="[object ArrayBuffer]",y9e="[object DataView]",HZ=Ji?Ji.prototype:void 0,bL=HZ?HZ.valueOf:void 0;o(v9e,"equalByTag");YZ=v9e});function T9e(t,e,r,n,i,a){var s=r&x9e,l=Rv(t),u=l.length,h=Rv(e),f=h.length;if(u!=f&&!s)return!1;for(var d=u;d--;){var p=l[d];if(!(s?p in e:w9e.call(e,p)))return!1}var m=a.get(t),g=a.get(e);if(m&&g)return m==e&&g==t;var y=!0;a.set(t,e),a.set(e,t);for(var v=s;++d{"use strict";fL();x9e=1,b9e=Object.prototype,w9e=b9e.hasOwnProperty;o(T9e,"equalObjects");qZ=T9e});function C9e(t,e,r,n,i,a){var s=wt(t),l=wt(e),u=s?KZ:oo(t),h=l?KZ:oo(e);u=u==jZ?Dw:u,h=h==jZ?Dw:h;var f=u==Dw,d=h==Dw,p=u==h;if(p&&El(t)){if(!El(e))return!1;s=!0,f=!1}if(p&&!f)return a||(a=new uc),s||Bh(t)?_w(t,e,r,n,i,a):YZ(t,e,u,r,n,i,a);if(!(r&k9e)){var m=f&&QZ.call(t,"__wrapped__"),g=d&&QZ.call(e,"__wrapped__");if(m||g){var y=m?t.value():t,v=g?e.value():e;return a||(a=new uc),i(y,v,r,n,a)}}return p?(a||(a=new uc),qZ(t,e,r,n,i,a)):!1}var k9e,jZ,KZ,Dw,E9e,QZ,ZZ,JZ=R(()=>{"use strict";iv();xL();WZ();XZ();Od();Bn();im();lv();k9e=1,jZ="[object Arguments]",KZ="[object Array]",Dw="[object Object]",E9e=Object.prototype,QZ=E9e.hasOwnProperty;o(C9e,"baseIsEqualDeep");ZZ=C9e});function eJ(t,e,r,n,i){return t===e?!0:t==null||e==null||!Wn(t)&&!Wn(e)?t!==t&&e!==e:ZZ(t,e,r,n,eJ,i)}var Rw,wL=R(()=>{"use strict";JZ();Mo();o(eJ,"baseIsEqual");Rw=eJ});function _9e(t,e,r,n){var i=r.length,a=i,s=!n;if(t==null)return!a;for(t=Object(t);i--;){var l=r[i];if(s&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++i{"use strict";iv();wL();S9e=1,A9e=2;o(_9e,"baseIsMatch");tJ=_9e});function L9e(t){return t===t&&!pn(t)}var Nw,TL=R(()=>{"use strict";Js();o(L9e,"isStrictComparable");Nw=L9e});function D9e(t){for(var e=Dr(t),r=e.length;r--;){var n=e[r],i=t[n];e[r]=[n,i,Nw(i)]}return e}var nJ,iJ=R(()=>{"use strict";TL();vc();o(D9e,"getMatchData");nJ=D9e});function R9e(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}var Mw,kL=R(()=>{"use strict";o(R9e,"matchesStrictComparable");Mw=R9e});function N9e(t){var e=nJ(t);return e.length==1&&e[0][2]?Mw(e[0][0],e[0][1]):function(r){return r===t||tJ(r,t,e)}}var aJ,sJ=R(()=>{"use strict";rJ();iJ();kL();o(N9e,"baseMatches");aJ=N9e});function M9e(t,e){return t!=null&&e in Object(t)}var oJ,lJ=R(()=>{"use strict";o(M9e,"baseHasIn");oJ=M9e});function I9e(t,e,r){e=Hh(e,t);for(var n=-1,i=e.length,a=!1;++n{"use strict";Lv();rm();Bn();uv();c5();km();o(I9e,"hasPath");Iw=I9e});function O9e(t,e){return t!=null&&Iw(t,e,oJ)}var Ow,CL=R(()=>{"use strict";lJ();EL();o(O9e,"hasIn");Ow=O9e});function F9e(t,e){return Tm(t)&&Nw(e)?Mw(xc(t),e):function(r){var n=BQ(r,t);return n===void 0&&n===e?Ow(r,t):Rw(e,n,P9e|B9e)}}var P9e,B9e,cJ,uJ=R(()=>{"use strict";wL();FQ();CL();cw();TL();kL();km();P9e=1,B9e=2;o(F9e,"baseMatchesProperty");cJ=F9e});function z9e(t){return function(e){return e?.[t]}}var Pw,SL=R(()=>{"use strict";o(z9e,"baseProperty");Pw=z9e});function G9e(t){return function(e){return Yh(e,t)}}var hJ,fJ=R(()=>{"use strict";Dv();o(G9e,"basePropertyDeep");hJ=G9e});function $9e(t){return Tm(t)?Pw(xc(t)):hJ(t)}var dJ,pJ=R(()=>{"use strict";SL();fJ();cw();km();o($9e,"property");dJ=$9e});function V9e(t){return typeof t=="function"?t:t==null?ea:typeof t=="object"?wt(t)?cJ(t[0],t[1]):aJ(t):dJ(t)}var cn,Qa=R(()=>{"use strict";sJ();uJ();Eu();Bn();pJ();o(V9e,"baseIteratee");cn=V9e});function U9e(t,e,r,n){for(var i=-1,a=t==null?0:t.length;++i{"use strict";o(U9e,"arrayAggregator");mJ=U9e});function H9e(t,e){return t&&Qp(t,e,Dr)}var Rm,Bw=R(()=>{"use strict";t5();vc();o(H9e,"baseForOwn");Rm=H9e});function Y9e(t,e){return function(r,n){if(r==null)return r;if(!ei(r))return t(r,n);for(var i=r.length,a=e?i:-1,s=Object(r);(e?a--:++a{"use strict";Io();o(Y9e,"createBaseEach");yJ=Y9e});var W9e,As,qh=R(()=>{"use strict";Bw();vJ();W9e=yJ(Rm),As=W9e});function q9e(t,e,r,n){return As(t,function(i,a,s){e(n,i,r(i),s)}),n}var xJ,bJ=R(()=>{"use strict";qh();o(q9e,"baseAggregator");xJ=q9e});function X9e(t,e){return function(r,n){var i=wt(r)?mJ:xJ,a=e?e():{};return i(r,t,cn(n,2),a)}}var wJ,TJ=R(()=>{"use strict";gJ();bJ();Qa();Bn();o(X9e,"createAggregator");wJ=X9e});var j9e,Fw,kJ=R(()=>{"use strict";Ro();j9e=o(function(){return Jn.Date.now()},"now"),Fw=j9e});var EJ,K9e,Q9e,Xh,CJ=R(()=>{"use strict";sm();xd();Ed();zh();EJ=Object.prototype,K9e=EJ.hasOwnProperty,Q9e=pc(function(t,e){t=Object(t);var r=-1,n=e.length,i=n>2?e[2]:void 0;for(i&&eo(e[0],e[1],i)&&(n=1);++r{"use strict";o(Z9e,"arrayIncludesWith");zw=Z9e});function eLe(t,e,r,n){var i=-1,a=ow,s=!0,l=t.length,u=[],h=e.length;if(!l)return u;r&&(e=Ss(e,Oo(r))),n?(a=zw,s=!1):e.length>=J9e&&(a=Lm,s=!1,e=new _m(e));e:for(;++i{"use strict";Cw();sL();AL();Md();Td();Aw();J9e=200;o(eLe,"baseDifference");SJ=eLe});var tLe,jh,_J=R(()=>{"use strict";AJ();Cm();sm();u5();tLe=pc(function(t,e){return wd(t)?SJ(t,bc(e,1,wd,!0)):[]}),jh=tLe});function rLe(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ma,LJ=R(()=>{"use strict";o(rLe,"last");ma=rLe});function nLe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:yc(e),dw(t,e<0?0:e,n)):[]}var fi,DJ=R(()=>{"use strict";lL();xm();o(nLe,"drop");fi=nLe});function iLe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:yc(e),e=n-e,dw(t,0,e<0?0:e)):[]}var Ru,RJ=R(()=>{"use strict";lL();xm();o(iLe,"dropRight");Ru=iLe});function aLe(t){return typeof t=="function"?t:ea}var Nm,Gw=R(()=>{"use strict";Eu();o(aLe,"castFunction");Nm=aLe});function sLe(t,e){var r=wt(t)?iw:As;return r(t,Nm(e))}var Ee,$w=R(()=>{"use strict";iL();qh();Gw();Bn();o(sLe,"forEach");Ee=sLe});var NJ=R(()=>{"use strict";$w()});function oLe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(oLe,"arrayEvery");MJ=oLe});function lLe(t,e){var r=!0;return As(t,function(n,i,a){return r=!!e(n,i,a),r}),r}var OJ,PJ=R(()=>{"use strict";qh();o(lLe,"baseEvery");OJ=lLe});function cLe(t,e,r){var n=wt(t)?MJ:OJ;return r&&eo(t,e,r)&&(e=void 0),n(t,cn(e,3))}var Ia,BJ=R(()=>{"use strict";IJ();PJ();Qa();Bn();Ed();o(cLe,"every");Ia=cLe});function uLe(t,e){var r=[];return As(t,function(n,i,a){e(n,i,a)&&r.push(n)}),r}var Vw,_L=R(()=>{"use strict";qh();o(uLe,"baseFilter");Vw=uLe});function hLe(t,e){var r=wt(t)?Sm:Vw;return r(t,cn(e,3))}var $r,LL=R(()=>{"use strict";pw();_L();Qa();Bn();o(hLe,"filter");$r=hLe});function fLe(t){return function(e,r,n){var i=Object(e);if(!ei(e)){var a=cn(r,3);e=Dr(e),r=o(function(l){return a(i[l],l,i)},"predicate")}var s=t(e,r,n);return s>-1?i[a?e[s]:s]:void 0}}var FJ,zJ=R(()=>{"use strict";Qa();Io();vc();o(fLe,"createFind");FJ=fLe});function pLe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:yc(r);return i<0&&(i=dLe(n+i,0)),aw(t,cn(e,3),i)}var dLe,GJ,$J=R(()=>{"use strict";aL();Qa();xm();dLe=Math.max;o(pLe,"findIndex");GJ=pLe});var mLe,Za,VJ=R(()=>{"use strict";zJ();$J();mLe=FJ(GJ),Za=mLe});function gLe(t){return t&&t.length?t[0]:void 0}var na,UJ=R(()=>{"use strict";o(gLe,"head");na=gLe});var HJ=R(()=>{"use strict";UJ()});function yLe(t,e){var r=-1,n=ei(t)?Array(t.length):[];return As(t,function(i,a,s){n[++r]=e(i,a,s)}),n}var Uw,DL=R(()=>{"use strict";qh();Io();o(yLe,"baseMap");Uw=yLe});function vLe(t,e){var r=wt(t)?Ss:Uw;return r(t,cn(e,3))}var qe,Mm=R(()=>{"use strict";Md();Qa();DL();Bn();o(vLe,"map");qe=vLe});function xLe(t,e){return bc(qe(t,e),1)}var ga,RL=R(()=>{"use strict";Cm();Mm();o(xLe,"flatMap");ga=xLe});function bLe(t,e){return t==null?t:Qp(t,Nm(e),bs)}var NL,YJ=R(()=>{"use strict";t5();Gw();zh();o(bLe,"forIn");NL=bLe});function wLe(t,e){return t&&Rm(t,Nm(e))}var ML,WJ=R(()=>{"use strict";Bw();Gw();o(wLe,"forOwn");ML=wLe});var TLe,kLe,ELe,IL,qJ=R(()=>{"use strict";Kp();TJ();TLe=Object.prototype,kLe=TLe.hasOwnProperty,ELe=wJ(function(t,e,r){kLe.call(t,r)?t[r].push(e):hc(t,r,[e])}),IL=ELe});function CLe(t,e){return t>e}var XJ,jJ=R(()=>{"use strict";o(CLe,"baseGt");XJ=CLe});function _Le(t,e){return t!=null&&ALe.call(t,e)}var SLe,ALe,KJ,QJ=R(()=>{"use strict";SLe=Object.prototype,ALe=SLe.hasOwnProperty;o(_Le,"baseHas");KJ=_Le});function LLe(t,e){return t!=null&&Iw(t,e,KJ)}var Xe,ZJ=R(()=>{"use strict";QJ();EL();o(LLe,"has");Xe=LLe});function RLe(t){return typeof t=="string"||!wt(t)&&Wn(t)&&fa(t)==DLe}var DLe,di,Hw=R(()=>{"use strict";wu();Bn();Mo();DLe="[object String]";o(RLe,"isString");di=RLe});function NLe(t,e){return Ss(e,function(r){return t[r]})}var JJ,eee=R(()=>{"use strict";Md();o(NLe,"baseValues");JJ=NLe});function MLe(t){return t==null?[]:JJ(t,Dr(t))}var or,OL=R(()=>{"use strict";eee();vc();o(MLe,"values");or=MLe});function OLe(t,e,r,n){t=ei(t)?t:or(t),r=r&&!n?yc(r):0;var i=t.length;return r<0&&(r=ILe(i+r,0)),di(t)?r<=i&&t.indexOf(e,r)>-1:!!i&&bm(t,e,r)>-1}var ILe,Fn,tee=R(()=>{"use strict";sw();Io();Hw();xm();OL();ILe=Math.max;o(OLe,"includes");Fn=OLe});function BLe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:yc(r);return i<0&&(i=PLe(n+i,0)),bm(t,e,i)}var PLe,Yw,ree=R(()=>{"use strict";sw();xm();PLe=Math.max;o(BLe,"indexOf");Yw=BLe});function VLe(t){if(t==null)return!0;if(ei(t)&&(wt(t)||typeof t=="string"||typeof t.splice=="function"||El(t)||Bh(t)||kl(t)))return!t.length;var e=oo(t);if(e==FLe||e==zLe)return!t.size;if(fc(t))return!wm(t).length;for(var r in t)if($Le.call(t,r))return!1;return!0}var FLe,zLe,GLe,$Le,Qt,Ww=R(()=>{"use strict";lw();Od();rm();Bn();Io();im();tm();lv();FLe="[object Map]",zLe="[object Set]",GLe=Object.prototype,$Le=GLe.hasOwnProperty;o(VLe,"isEmpty");Qt=VLe});function HLe(t){return Wn(t)&&fa(t)==ULe}var ULe,nee,iee=R(()=>{"use strict";wu();Mo();ULe="[object RegExp]";o(HLe,"baseIsRegExp");nee=HLe});var aee,YLe,zo,see=R(()=>{"use strict";iee();Td();ov();aee=Po&&Po.isRegExp,YLe=aee?Oo(aee):nee,zo=YLe});function WLe(t){return t===void 0}var er,oee=R(()=>{"use strict";o(WLe,"isUndefined");er=WLe});function qLe(t,e){return t{"use strict";o(qLe,"baseLt");qw=qLe});function XLe(t,e){var r={};return e=cn(e,3),Rm(t,function(n,i,a){hc(r,i,e(n,i,a))}),r}var Pd,lee=R(()=>{"use strict";Kp();Bw();Qa();o(XLe,"mapValues");Pd=XLe});function jLe(t,e,r){for(var n=-1,i=t.length;++n{"use strict";Nd();o(jLe,"baseExtremum");Im=jLe});function KLe(t){return t&&t.length?Im(t,ea,XJ):void 0}var _s,cee=R(()=>{"use strict";Xw();jJ();Eu();o(KLe,"max");_s=KLe});function QLe(t){return t&&t.length?Im(t,ea,qw):void 0}var Ll,BL=R(()=>{"use strict";Xw();PL();Eu();o(QLe,"min");Ll=QLe});function ZLe(t,e){return t&&t.length?Im(t,cn(e,2),qw):void 0}var Bd,uee=R(()=>{"use strict";Xw();Qa();PL();o(ZLe,"minBy");Bd=ZLe});function eDe(t){if(typeof t!="function")throw new TypeError(JLe);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}var JLe,hee,fee=R(()=>{"use strict";JLe="Expected a function";o(eDe,"negate");hee=eDe});function tDe(t,e,r,n){if(!pn(t))return t;e=Hh(e,t);for(var i=-1,a=e.length,s=a-1,l=t;l!=null&&++i{"use strict";am();Lv();uv();Js();km();o(tDe,"baseSet");dee=tDe});function rDe(t,e,r){for(var n=-1,i=e.length,a={};++n{"use strict";Dv();pee();Lv();o(rDe,"basePickBy");jw=rDe});function nDe(t,e){if(t==null)return{};var r=Ss(xw(t),function(n){return[n]});return e=cn(e),jw(t,r,function(n,i){return e(n,i[0])})}var Ls,mee=R(()=>{"use strict";Md();Qa();FL();dL();o(nDe,"pickBy");Ls=nDe});function iDe(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var gee,yee=R(()=>{"use strict";o(iDe,"baseSortBy");gee=iDe});function aDe(t,e){if(t!==e){var r=t!==void 0,n=t===null,i=t===t,a=so(t),s=e!==void 0,l=e===null,u=e===e,h=so(e);if(!l&&!h&&!a&&t>e||a&&s&&u&&!l&&!h||n&&s&&u||!r&&u||!i)return 1;if(!n&&!a&&!h&&t{"use strict";Nd();o(aDe,"compareAscending");vee=aDe});function sDe(t,e,r){for(var n=-1,i=t.criteria,a=e.criteria,s=i.length,l=r.length;++n=l)return u;var h=r[n];return u*(h=="desc"?-1:1)}}return t.index-e.index}var bee,wee=R(()=>{"use strict";xee();o(sDe,"compareMultiple");bee=sDe});function oDe(t,e,r){e.length?e=Ss(e,function(a){return wt(a)?function(s){return Yh(s,a.length===1?a[0]:a)}:a}):e=[ea];var n=-1;e=Ss(e,Oo(cn));var i=Uw(t,function(a,s,l){var u=Ss(e,function(h){return h(a)});return{criteria:u,index:++n,value:a}});return gee(i,function(a,s){return bee(a,s,r)})}var Tee,kee=R(()=>{"use strict";Md();Dv();Qa();DL();yee();Td();wee();Eu();Bn();o(oDe,"baseOrderBy");Tee=oDe});var lDe,Eee,Cee=R(()=>{"use strict";SL();lDe=Pw("length"),Eee=lDe});function bDe(t){for(var e=See.lastIndex=0;See.test(t);)++e;return e}var Aee,cDe,uDe,hDe,fDe,dDe,pDe,zL,GL,mDe,_ee,Lee,Dee,gDe,Ree,Nee,yDe,vDe,xDe,See,Mee,Iee=R(()=>{"use strict";Aee="\\ud800-\\udfff",cDe="\\u0300-\\u036f",uDe="\\ufe20-\\ufe2f",hDe="\\u20d0-\\u20ff",fDe=cDe+uDe+hDe,dDe="\\ufe0e\\ufe0f",pDe="["+Aee+"]",zL="["+fDe+"]",GL="\\ud83c[\\udffb-\\udfff]",mDe="(?:"+zL+"|"+GL+")",_ee="[^"+Aee+"]",Lee="(?:\\ud83c[\\udde6-\\uddff]){2}",Dee="[\\ud800-\\udbff][\\udc00-\\udfff]",gDe="\\u200d",Ree=mDe+"?",Nee="["+dDe+"]?",yDe="(?:"+gDe+"(?:"+[_ee,Lee,Dee].join("|")+")"+Nee+Ree+")*",vDe=Nee+Ree+yDe,xDe="(?:"+[_ee+zL+"?",zL,Lee,Dee,pDe].join("|")+")",See=RegExp(GL+"(?="+GL+")|"+xDe+vDe,"g");o(bDe,"unicodeSize");Mee=bDe});function wDe(t){return YQ(t)?Mee(t):Eee(t)}var Oee,Pee=R(()=>{"use strict";Cee();WQ();Iee();o(wDe,"stringSize");Oee=wDe});function TDe(t,e){return jw(t,e,function(r,n){return Ow(t,n)})}var Bee,Fee=R(()=>{"use strict";FL();CL();o(TDe,"basePick");Bee=TDe});var kDe,Fd,zee=R(()=>{"use strict";Fee();HQ();kDe=UQ(function(t,e){return t==null?{}:Bee(t,e)}),Fd=kDe});function SDe(t,e,r,n){for(var i=-1,a=CDe(EDe((e-t)/(r||1)),0),s=Array(a);a--;)s[n?a:++i]=t,t+=r;return s}var EDe,CDe,Gee,$ee=R(()=>{"use strict";EDe=Math.ceil,CDe=Math.max;o(SDe,"baseRange");Gee=SDe});function ADe(t){return function(e,r,n){return n&&typeof n!="number"&&eo(e,r,n)&&(r=n=void 0),e=vm(e),r===void 0?(r=e,e=0):r=vm(r),n=n===void 0?e{"use strict";$ee();Ed();rL();o(ADe,"createRange");Vee=ADe});var _De,Go,Hee=R(()=>{"use strict";Uee();_De=Vee(),Go=_De});function LDe(t,e,r,n,i){return i(t,function(a,s,l){r=n?(n=!1,a):e(r,a,s,l)}),r}var Yee,Wee=R(()=>{"use strict";o(LDe,"baseReduce");Yee=LDe});function DDe(t,e,r){var n=wt(t)?qQ:Yee,i=arguments.length<3;return n(t,cn(e,4),r,i,As)}var Vr,$L=R(()=>{"use strict";XQ();qh();Qa();Wee();Bn();o(DDe,"reduce");Vr=DDe});function RDe(t,e){var r=wt(t)?Sm:Vw;return r(t,hee(cn(e,3)))}var Kh,qee=R(()=>{"use strict";pw();_L();Qa();Bn();fee();o(RDe,"reject");Kh=RDe});function IDe(t){if(t==null)return 0;if(ei(t))return di(t)?Oee(t):t.length;var e=oo(t);return e==NDe||e==MDe?t.size:wm(t).length}var NDe,MDe,VL,Xee=R(()=>{"use strict";lw();Od();Io();Hw();Pee();NDe="[object Map]",MDe="[object Set]";o(IDe,"size");VL=IDe});function ODe(t,e){var r;return As(t,function(n,i,a){return r=e(n,i,a),!r}),!!r}var jee,Kee=R(()=>{"use strict";qh();o(ODe,"baseSome");jee=ODe});function PDe(t,e,r){var n=wt(t)?Sw:jee;return r&&eo(t,e,r)&&(e=void 0),n(t,cn(e,3))}var Nv,Qee=R(()=>{"use strict";vL();Qa();Kee();Bn();Ed();o(PDe,"some");Nv=PDe});var BDe,Tc,Zee=R(()=>{"use strict";Cm();kee();sm();Ed();BDe=pc(function(t,e){if(t==null)return[];var r=e.length;return r>1&&eo(t,e[0],e[1])?e=[]:r>2&&eo(e[0],e[1],e[2])&&(e=[e[0]]),Tee(t,bc(e,1),[])}),Tc=BDe});var FDe,zDe,Jee,ete=R(()=>{"use strict";pL();nL();Lw();FDe=1/0,zDe=Wh&&1/Dm(new Wh([,-0]))[1]==FDe?function(t){return new Wh(t)}:qn,Jee=zDe});function $De(t,e,r){var n=-1,i=ow,a=t.length,s=!0,l=[],u=l;if(r)s=!1,i=zw;else if(a>=GDe){var h=e?null:Jee(t);if(h)return Dm(h);s=!1,i=Lm,u=new _m}else u=e?[]:l;e:for(;++n{"use strict";Cw();sL();AL();Aw();ete();Lw();GDe=200;o($De,"baseUniq");Om=$De});var VDe,UL,tte=R(()=>{"use strict";Cm();sm();Kw();u5();VDe=pc(function(t){return Om(bc(t,1,wd,!0))}),UL=VDe});function UDe(t){return t&&t.length?Om(t):[]}var Pm,rte=R(()=>{"use strict";Kw();o(UDe,"uniq");Pm=UDe});function HDe(t,e){return t&&t.length?Om(t,cn(e,2)):[]}var nte,ite=R(()=>{"use strict";Qa();Kw();o(HDe,"uniqBy");nte=HDe});function WDe(t){var e=++YDe;return uw(t)+e}var YDe,zd,ate=R(()=>{"use strict";oL();YDe=0;o(WDe,"uniqueId");zd=WDe});function qDe(t,e,r){for(var n=-1,i=t.length,a=e.length,s={};++n{"use strict";o(qDe,"baseZipObject");ste=qDe});function XDe(t,e){return ste(t||[],e||[],dc)}var Qw,lte=R(()=>{"use strict";am();ote();o(XDe,"zipObject");Qw=XDe});var Pt=R(()=>{"use strict";NQ();gL();PZ();BZ();Y_();CJ();_J();DJ();RJ();NJ();BJ();LL();VJ();HJ();RL();fw();$w();YJ();WJ();qJ();ZJ();Eu();tee();ree();Bn();Ww();Jy();Js();see();Hw();oee();vc();LJ();Mm();lee();cee();X_();BL();uee();nL();kJ();zee();mee();Hee();$L();qee();Xee();Qee();Zee();tte();rte();ate();OL();lte();});function ute(t,e){t[e]?t[e]++:t[e]=1}function hte(t,e){--t[e]||delete t[e]}function Mv(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}return i+cte+a+cte+(er(n)?jDe:n)}function KDe(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}var l={v:i,w:a};return n&&(l.name=n),l}function HL(t,e){return Mv(t,e.v,e.w,e.name)}var jDe,Gd,cte,lr,Zw=R(()=>{"use strict";Pt();jDe="\0",Gd="\0",cte="",lr=class{static{o(this,"Graph")}constructor(e={}){this._isDirected=Xe(e,"directed")?e.directed:!0,this._isMultigraph=Xe(e,"multigraph")?e.multigraph:!1,this._isCompound=Xe(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=ws(void 0),this._defaultEdgeLabelFn=ws(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[Gd]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return wi(e)||(e=ws(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return Dr(this._nodes)}sources(){var e=this;return $r(this.nodes(),function(r){return Qt(e._in[r])})}sinks(){var e=this;return $r(this.nodes(),function(r){return Qt(e._out[r])})}setNodes(e,r){var n=arguments,i=this;return Ee(e,function(a){n.length>1?i.setNode(a,r):i.setNode(a)}),this}setNode(e,r){return Xe(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=r),this):(this._nodes[e]=arguments.length>1?r:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=Gd,this._children[e]={},this._children[Gd][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Xe(this._nodes,e)}removeNode(e){var r=this;if(Xe(this._nodes,e)){var n=o(function(i){r.removeEdge(r._edgeObjs[i])},"removeEdge");delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],Ee(this.children(e),function(i){r.setParent(i)}),delete this._children[e]),Ee(Dr(this._in[e]),n),delete this._in[e],delete this._preds[e],Ee(Dr(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(er(r))r=Gd;else{r+="";for(var n=r;!er(n);n=this.parent(n))if(n===e)throw new Error("Setting "+r+" as parent of "+e+" would create a cycle");this.setNode(r)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=r,this._children[r][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var r=this._parent[e];if(r!==Gd)return r}}children(e){if(er(e)&&(e=Gd),this._isCompound){var r=this._children[e];if(r)return Dr(r)}else{if(e===Gd)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var r=this._preds[e];if(r)return Dr(r)}successors(e){var r=this._sucs[e];if(r)return Dr(r)}neighbors(e){var r=this.predecessors(e);if(r)return UL(r,this.successors(e))}isLeaf(e){var r;return this.isDirected()?r=this.successors(e):r=this.neighbors(e),r.length===0}filterNodes(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;Ee(this._nodes,function(s,l){e(l)&&r.setNode(l,s)}),Ee(this._edgeObjs,function(s){r.hasNode(s.v)&&r.hasNode(s.w)&&r.setEdge(s,n.edge(s))});var i={};function a(s){var l=n.parent(s);return l===void 0||r.hasNode(l)?(i[s]=l,l):l in i?i[l]:a(l)}return o(a,"findParent"),this._isCompound&&Ee(r.nodes(),function(s){r.setParent(s,a(s))}),r}setDefaultEdgeLabel(e){return wi(e)||(e=ws(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return or(this._edgeObjs)}setPath(e,r){var n=this,i=arguments;return Vr(e,function(a,s){return i.length>1?n.setEdge(a,s,r):n.setEdge(a,s),s}),this}setEdge(){var e,r,n,i,a=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,r=s.w,n=s.name,arguments.length===2&&(i=arguments[1],a=!0)):(e=s,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,r=""+r,er(n)||(n=""+n);var l=Mv(this._isDirected,e,r,n);if(Xe(this._edgeLabels,l))return a&&(this._edgeLabels[l]=i),this;if(!er(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[l]=a?i:this._defaultEdgeLabelFn(e,r,n);var u=KDe(this._isDirected,e,r,n);return e=u.v,r=u.w,Object.freeze(u),this._edgeObjs[l]=u,ute(this._preds[r],e),ute(this._sucs[e],r),this._in[r][l]=u,this._out[e][l]=u,this._edgeCount++,this}edge(e,r,n){var i=arguments.length===1?HL(this._isDirected,arguments[0]):Mv(this._isDirected,e,r,n);return this._edgeLabels[i]}hasEdge(e,r,n){var i=arguments.length===1?HL(this._isDirected,arguments[0]):Mv(this._isDirected,e,r,n);return Xe(this._edgeLabels,i)}removeEdge(e,r,n){var i=arguments.length===1?HL(this._isDirected,arguments[0]):Mv(this._isDirected,e,r,n),a=this._edgeObjs[i];return a&&(e=a.v,r=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],hte(this._preds[r],e),hte(this._sucs[e],r),delete this._in[r][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,r){var n=this._in[e];if(n){var i=or(n);return r?$r(i,function(a){return a.v===r}):i}}outEdges(e,r){var n=this._out[e];if(n){var i=or(n);return r?$r(i,function(a){return a.w===r}):i}}nodeEdges(e,r){var n=this.inEdges(e,r);if(n)return n.concat(this.outEdges(e,r))}};lr.prototype._nodeCount=0;lr.prototype._edgeCount=0;o(ute,"incrementOrInitEntry");o(hte,"decrementOrRemoveEntry");o(Mv,"edgeArgsToId");o(KDe,"edgeArgsToObj");o(HL,"edgeObjToId")});var ya=R(()=>{"use strict";Zw()});function fte(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function QDe(t,e){if(t!=="_next"&&t!=="_prev")return e}var Jw,dte=R(()=>{"use strict";Jw=class{static{o(this,"List")}constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,r=e._prev;if(r!==e)return fte(r),r}enqueue(e){var r=this._sentinel;e._prev&&e._next&&fte(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){for(var e=[],r=this._sentinel,n=r._prev;n!==r;)e.push(JSON.stringify(n,QDe)),n=n._prev;return"["+e.join(", ")+"]"}};o(fte,"unlink");o(QDe,"filterOutLinks")});function pte(t,e){if(t.nodeCount()<=1)return[];var r=eRe(t,e||ZDe),n=JDe(r.graph,r.buckets,r.zeroIdx);return Gr(qe(n,function(i){return t.outEdges(i.v,i.w)}))}function JDe(t,e,r){for(var n=[],i=e[e.length-1],a=e[0],s;t.nodeCount();){for(;s=a.dequeue();)YL(t,e,r,s);for(;s=i.dequeue();)YL(t,e,r,s);if(t.nodeCount()){for(var l=e.length-2;l>0;--l)if(s=e[l].dequeue(),s){n=n.concat(YL(t,e,r,s,!0));break}}}return n}function YL(t,e,r,n,i){var a=i?[]:void 0;return Ee(t.inEdges(n.v),function(s){var l=t.edge(s),u=t.node(s.v);i&&a.push({v:s.v,w:s.w}),u.out-=l,WL(e,r,u)}),Ee(t.outEdges(n.v),function(s){var l=t.edge(s),u=s.w,h=t.node(u);h.in-=l,WL(e,r,h)}),t.removeNode(n.v),a}function eRe(t,e){var r=new lr,n=0,i=0;Ee(t.nodes(),function(l){r.setNode(l,{v:l,in:0,out:0})}),Ee(t.edges(),function(l){var u=r.edge(l.v,l.w)||0,h=e(l),f=u+h;r.setEdge(l.v,l.w,f),i=Math.max(i,r.node(l.v).out+=h),n=Math.max(n,r.node(l.w).in+=h)});var a=Go(i+n+3).map(function(){return new Jw}),s=n+1;return Ee(r.nodes(),function(l){WL(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function WL(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}var ZDe,mte=R(()=>{"use strict";Pt();ya();dte();ZDe=ws(1);o(pte,"greedyFAS");o(JDe,"doGreedyFAS");o(YL,"removeNode");o(eRe,"buildState");o(WL,"assignBucket")});function gte(t){var e=t.graph().acyclicer==="greedy"?pte(t,r(t)):tRe(t);Ee(e,function(n){var i=t.edge(n);t.removeEdge(n),i.forwardName=n.name,i.reversed=!0,t.setEdge(n.w,n.v,i,zd("rev"))});function r(n){return function(i){return n.edge(i).weight}}o(r,"weightFn")}function tRe(t){var e=[],r={},n={};function i(a){Xe(n,a)||(n[a]=!0,r[a]=!0,Ee(t.outEdges(a),function(s){Xe(r,s.w)?e.push(s):i(s.w)}),delete r[a])}return o(i,"dfs"),Ee(t.nodes(),i),e}function yte(t){Ee(t.edges(),function(e){var r=t.edge(e);if(r.reversed){t.removeEdge(e);var n=r.forwardName;delete r.reversed,delete r.forwardName,t.setEdge(e.w,e.v,r,n)}})}var qL=R(()=>{"use strict";Pt();mte();o(gte,"run");o(tRe,"dfsFAS");o(yte,"undo")});function kc(t,e,r,n){var i;do i=zd(n);while(t.hasNode(i));return r.dummy=e,t.setNode(i,r),i}function xte(t){var e=new lr().setGraph(t.graph());return Ee(t.nodes(),function(r){e.setNode(r,t.node(r))}),Ee(t.edges(),function(r){var n=e.edge(r.v,r.w)||{weight:0,minlen:1},i=t.edge(r);e.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})}),e}function eT(t){var e=new lr({multigraph:t.isMultigraph()}).setGraph(t.graph());return Ee(t.nodes(),function(r){t.children(r).length||e.setNode(r,t.node(r))}),Ee(t.edges(),function(r){e.setEdge(r,t.edge(r))}),e}function XL(t,e){var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=l*i/a,h=l):(i<0&&(s=-s),u=s,h=s*a/i),{x:r+u,y:n+h}}function Qh(t){var e=qe(Go(KL(t)+1),function(){return[]});return Ee(t.nodes(),function(r){var n=t.node(r),i=n.rank;er(i)||(e[i][n.order]=r)}),e}function bte(t){var e=Ll(qe(t.nodes(),function(r){return t.node(r).rank}));Ee(t.nodes(),function(r){var n=t.node(r);Xe(n,"rank")&&(n.rank-=e)})}function wte(t){var e=Ll(qe(t.nodes(),function(a){return t.node(a).rank})),r=[];Ee(t.nodes(),function(a){var s=t.node(a).rank-e;r[s]||(r[s]=[]),r[s].push(a)});var n=0,i=t.graph().nodeRankFactor;Ee(r,function(a,s){er(a)&&s%i!==0?--n:n&&Ee(a,function(l){t.node(l).rank+=n})})}function jL(t,e,r,n){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=n),kc(t,"border",i,e)}function KL(t){return _s(qe(t.nodes(),function(e){var r=t.node(e).rank;if(!er(r))return r}))}function Tte(t,e){var r={lhs:[],rhs:[]};return Ee(t,function(n){e(n)?r.lhs.push(n):r.rhs.push(n)}),r}function kte(t,e){var r=Fw();try{return e()}finally{console.log(t+" time: "+(Fw()-r)+"ms")}}function Ete(t,e){return e()}var Ec=R(()=>{"use strict";Pt();ya();o(kc,"addDummyNode");o(xte,"simplify");o(eT,"asNonCompoundGraph");o(XL,"intersectRect");o(Qh,"buildLayerMatrix");o(bte,"normalizeRanks");o(wte,"removeEmptyRanks");o(jL,"addBorderNode");o(KL,"maxRank");o(Tte,"partition");o(kte,"time");o(Ete,"notime")});function Ste(t){function e(r){var n=t.children(r),i=t.node(r);if(n.length&&Ee(n,e),Xe(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,s=i.maxRank+1;a{"use strict";Pt();Ec();o(Ste,"addBorderSegments");o(Cte,"addBorderNode")});function Lte(t){var e=t.graph().rankdir.toLowerCase();(e==="lr"||e==="rl")&&Rte(t)}function Dte(t){var e=t.graph().rankdir.toLowerCase();(e==="bt"||e==="rl")&&rRe(t),(e==="lr"||e==="rl")&&(nRe(t),Rte(t))}function Rte(t){Ee(t.nodes(),function(e){_te(t.node(e))}),Ee(t.edges(),function(e){_te(t.edge(e))})}function _te(t){var e=t.width;t.width=t.height,t.height=e}function rRe(t){Ee(t.nodes(),function(e){QL(t.node(e))}),Ee(t.edges(),function(e){var r=t.edge(e);Ee(r.points,QL),Xe(r,"y")&&QL(r)})}function QL(t){t.y=-t.y}function nRe(t){Ee(t.nodes(),function(e){ZL(t.node(e))}),Ee(t.edges(),function(e){var r=t.edge(e);Ee(r.points,ZL),Xe(r,"x")&&ZL(r)})}function ZL(t){var e=t.x;t.x=t.y,t.y=e}var Nte=R(()=>{"use strict";Pt();o(Lte,"adjust");o(Dte,"undo");o(Rte,"swapWidthHeight");o(_te,"swapWidthHeightOne");o(rRe,"reverseY");o(QL,"reverseYOne");o(nRe,"swapXY");o(ZL,"swapXYOne")});function Mte(t){t.graph().dummyChains=[],Ee(t.edges(),function(e){aRe(t,e)})}function aRe(t,e){var r=e.v,n=t.node(r).rank,i=e.w,a=t.node(i).rank,s=e.name,l=t.edge(e),u=l.labelRank;if(a!==n+1){t.removeEdge(e);var h,f,d;for(d=0,++n;n{"use strict";Pt();Ec();o(Mte,"run");o(aRe,"normalizeEdge");o(Ite,"undo")});function Iv(t){var e={};function r(n){var i=t.node(n);if(Xe(e,n))return i.rank;e[n]=!0;var a=Ll(qe(t.outEdges(n),function(s){return r(s.w)-t.edge(s).minlen}));return(a===Number.POSITIVE_INFINITY||a===void 0||a===null)&&(a=0),i.rank=a}o(r,"dfs"),Ee(t.sources(),r)}function $d(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}var tT=R(()=>{"use strict";Pt();o(Iv,"longestPath");o($d,"slack")});function rT(t){var e=new lr({directed:!1}),r=t.nodes()[0],n=t.nodeCount();e.setNode(r,{});for(var i,a;sRe(e,t){"use strict";Pt();ya();tT();o(rT,"feasibleTree");o(sRe,"tightTree");o(oRe,"findMinSlackEdge");o(lRe,"shiftRanks")});var Pte=R(()=>{"use strict"});var tD=R(()=>{"use strict"});var tGt,rD=R(()=>{"use strict";Pt();tD();tGt=ws(1)});var Bte=R(()=>{"use strict";rD()});var nD=R(()=>{"use strict"});var Fte=R(()=>{"use strict";nD()});var fGt,zte=R(()=>{"use strict";Pt();fGt=ws(1)});function iD(t){var e={},r={},n=[];function i(a){if(Xe(r,a))throw new Ov;Xe(e,a)||(r[a]=!0,e[a]=!0,Ee(t.predecessors(a),i),delete r[a],n.push(a))}if(o(i,"visit"),Ee(t.sinks(),i),VL(e)!==t.nodeCount())throw new Ov;return n}function Ov(){}var aD=R(()=>{"use strict";Pt();iD.CycleException=Ov;o(iD,"topsort");o(Ov,"CycleException");Ov.prototype=new Error});var Gte=R(()=>{"use strict";aD()});function nT(t,e,r){wt(e)||(e=[e]);var n=(t.isDirected()?t.successors:t.neighbors).bind(t),i=[],a={};return Ee(e,function(s){if(!t.hasNode(s))throw new Error("Graph does not have node: "+s);$te(t,s,r==="post",a,n,i)}),i}function $te(t,e,r,n,i,a){Xe(n,e)||(n[e]=!0,r||a.push(e),Ee(i(e),function(s){$te(t,s,r,n,i,a)}),r&&a.push(e))}var sD=R(()=>{"use strict";Pt();o(nT,"dfs");o($te,"doDfs")});function oD(t,e){return nT(t,e,"post")}var Vte=R(()=>{"use strict";sD();o(oD,"postorder")});function lD(t,e){return nT(t,e,"pre")}var Ute=R(()=>{"use strict";sD();o(lD,"preorder")});var Hte=R(()=>{"use strict";tD();Zw()});var Yte=R(()=>{"use strict";Pte();rD();Bte();Fte();zte();Gte();Vte();Ute();Hte();nD();aD()});function Jh(t){t=xte(t),Iv(t);var e=rT(t);uD(e),cD(e,t);for(var r,n;r=jte(e);)n=Kte(e,t,r),Qte(e,t,r,n)}function cD(t,e){var r=oD(t,t.nodes());r=r.slice(0,r.length-1),Ee(r,function(n){dRe(t,e,n)})}function dRe(t,e,r){var n=t.node(r),i=n.parent;t.edge(r,i).cutvalue=qte(t,e,r)}function qte(t,e,r){var n=t.node(r),i=n.parent,a=!0,s=e.edge(r,i),l=0;return s||(a=!1,s=e.edge(i,r)),l=s.weight,Ee(e.nodeEdges(r),function(u){var h=u.v===r,f=h?u.w:u.v;if(f!==i){var d=h===a,p=e.edge(u).weight;if(l+=d?p:-p,mRe(t,r,f)){var m=t.edge(r,f).cutvalue;l+=d?-m:m}}}),l}function uD(t,e){arguments.length<2&&(e=t.nodes()[0]),Xte(t,{},1,e)}function Xte(t,e,r,n,i){var a=r,s=t.node(n);return e[n]=!0,Ee(t.neighbors(n),function(l){Xe(e,l)||(r=Xte(t,e,r,l,n))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}function jte(t){return Za(t.edges(),function(e){return t.edge(e).cutvalue<0})}function Kte(t,e,r){var n=r.v,i=r.w;e.hasEdge(n,i)||(n=r.w,i=r.v);var a=t.node(n),s=t.node(i),l=a,u=!1;a.lim>s.lim&&(l=s,u=!0);var h=$r(e.edges(),function(f){return u===Wte(t,t.node(f.v),l)&&u!==Wte(t,t.node(f.w),l)});return Bd(h,function(f){return $d(e,f)})}function Qte(t,e,r,n){var i=r.v,a=r.w;t.removeEdge(i,a),t.setEdge(n.v,n.w,{}),uD(t),cD(t,e),pRe(t,e)}function pRe(t,e){var r=Za(t.nodes(),function(i){return!e.node(i).parent}),n=lD(t,r);n=n.slice(1),Ee(n,function(i){var a=t.node(i).parent,s=e.edge(i,a),l=!1;s||(s=e.edge(a,i),l=!0),e.node(i).rank=e.node(a).rank+(l?s.minlen:-s.minlen)})}function mRe(t,e,r){return t.hasEdge(e,r)}function Wte(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}var Zte=R(()=>{"use strict";Pt();Yte();Ec();eD();tT();Jh.initLowLimValues=uD;Jh.initCutValues=cD;Jh.calcCutValue=qte;Jh.leaveEdge=jte;Jh.enterEdge=Kte;Jh.exchangeEdges=Qte;o(Jh,"networkSimplex");o(cD,"initCutValues");o(dRe,"assignCutValue");o(qte,"calcCutValue");o(uD,"initLowLimValues");o(Xte,"dfsAssignLowLim");o(jte,"leaveEdge");o(Kte,"enterEdge");o(Qte,"exchangeEdges");o(pRe,"updateRanks");o(mRe,"isTreeEdge");o(Wte,"isDescendant")});function hD(t){switch(t.graph().ranker){case"network-simplex":Jte(t);break;case"tight-tree":yRe(t);break;case"longest-path":gRe(t);break;default:Jte(t)}}function yRe(t){Iv(t),rT(t)}function Jte(t){Jh(t)}var gRe,fD=R(()=>{"use strict";eD();Zte();tT();o(hD,"rank");gRe=Iv;o(yRe,"tightTreeRanker");o(Jte,"networkSimplexRanker")});function ere(t){var e=kc(t,"root",{},"_root"),r=vRe(t),n=_s(or(r))-1,i=2*n+1;t.graph().nestingRoot=e,Ee(t.edges(),function(s){t.edge(s).minlen*=i});var a=xRe(t)+1;Ee(t.children(),function(s){tre(t,e,i,a,n,r,s)}),t.graph().nodeRankFactor=i}function tre(t,e,r,n,i,a,s){var l=t.children(s);if(!l.length){s!==e&&t.setEdge(e,s,{weight:0,minlen:r});return}var u=jL(t,"_bt"),h=jL(t,"_bb"),f=t.node(s);t.setParent(u,s),f.borderTop=u,t.setParent(h,s),f.borderBottom=h,Ee(l,function(d){tre(t,e,r,n,i,a,d);var p=t.node(d),m=p.borderTop?p.borderTop:d,g=p.borderBottom?p.borderBottom:d,y=p.borderTop?n:2*n,v=m!==g?1:i-a[s]+1;t.setEdge(u,m,{weight:y,minlen:v,nestingEdge:!0}),t.setEdge(g,h,{weight:y,minlen:v,nestingEdge:!0})}),t.parent(s)||t.setEdge(e,u,{weight:0,minlen:i+a[s]})}function vRe(t){var e={};function r(n,i){var a=t.children(n);a&&a.length&&Ee(a,function(s){r(s,i+1)}),e[n]=i}return o(r,"dfs"),Ee(t.children(),function(n){r(n,1)}),e}function xRe(t){return Vr(t.edges(),function(e,r){return e+t.edge(r).weight},0)}function rre(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,Ee(t.edges(),function(r){var n=t.edge(r);n.nestingEdge&&t.removeEdge(r)})}var nre=R(()=>{"use strict";Pt();Ec();o(ere,"run");o(tre,"dfs");o(vRe,"treeDepths");o(xRe,"sumWeights");o(rre,"cleanup")});function ire(t,e,r){var n={},i;Ee(r,function(a){for(var s=t.parent(a),l,u;s;){if(l=t.parent(s),l?(u=n[l],n[l]=s):(u=i,i=s),u&&u!==s){e.setEdge(u,s);return}s=l}})}var are=R(()=>{"use strict";Pt();o(ire,"addSubgraphConstraints")});function sre(t,e,r){var n=wRe(t),i=new lr({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(function(a){return t.node(a)});return Ee(t.nodes(),function(a){var s=t.node(a),l=t.parent(a);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(i.setNode(a),i.setParent(a,l||n),Ee(t[r](a),function(u){var h=u.v===a?u.w:u.v,f=i.edge(h,a),d=er(f)?0:f.weight;i.setEdge(h,a,{weight:t.edge(u).weight+d})}),Xe(s,"minRank")&&i.setNode(a,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))}),i}function wRe(t){for(var e;t.hasNode(e=zd("_root")););return e}var ore=R(()=>{"use strict";Pt();ya();o(sre,"buildLayerGraph");o(wRe,"createRootNode")});function lre(t,e){for(var r=0,n=1;n0;)f%2&&(d+=l[f+1]),f=f-1>>1,l[f]+=h.weight;u+=h.weight*d})),u}var cre=R(()=>{"use strict";Pt();o(lre,"crossCount");o(TRe,"twoLayerCrossCount")});function ure(t){var e={},r=$r(t.nodes(),function(l){return!t.children(l).length}),n=_s(qe(r,function(l){return t.node(l).rank})),i=qe(Go(n+1),function(){return[]});function a(l){if(!Xe(e,l)){e[l]=!0;var u=t.node(l);i[u.rank].push(l),Ee(t.successors(l),a)}}o(a,"dfs");var s=Tc(r,function(l){return t.node(l).rank});return Ee(s,a),i}var hre=R(()=>{"use strict";Pt();o(ure,"initOrder")});function fre(t,e){return qe(e,function(r){var n=t.inEdges(r);if(n.length){var i=Vr(n,function(a,s){var l=t.edge(s),u=t.node(s.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}var dre=R(()=>{"use strict";Pt();o(fre,"barycenter")});function pre(t,e){var r={};Ee(t,function(i,a){var s=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};er(i.barycenter)||(s.barycenter=i.barycenter,s.weight=i.weight)}),Ee(e.edges(),function(i){var a=r[i.v],s=r[i.w];!er(a)&&!er(s)&&(s.indegree++,a.out.push(r[i.w]))});var n=$r(r,function(i){return!i.indegree});return kRe(n)}function kRe(t){var e=[];function r(a){return function(s){s.merged||(er(s.barycenter)||er(a.barycenter)||s.barycenter>=a.barycenter)&&ERe(a,s)}}o(r,"handleIn");function n(a){return function(s){s.in.push(a),--s.indegree===0&&t.push(s)}}for(o(n,"handleOut");t.length;){var i=t.pop();e.push(i),Ee(i.in.reverse(),r(i)),Ee(i.out,n(i))}return qe($r(e,function(a){return!a.merged}),function(a){return Fd(a,["vs","i","barycenter","weight"])})}function ERe(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}var mre=R(()=>{"use strict";Pt();o(pre,"resolveConflicts");o(kRe,"doResolveConflicts");o(ERe,"mergeEntries")});function yre(t,e){var r=Tte(t,function(f){return Xe(f,"barycenter")}),n=r.lhs,i=Tc(r.rhs,function(f){return-f.i}),a=[],s=0,l=0,u=0;n.sort(CRe(!!e)),u=gre(a,i,u),Ee(n,function(f){u+=f.vs.length,a.push(f.vs),s+=f.barycenter*f.weight,l+=f.weight,u=gre(a,i,u)});var h={vs:Gr(a)};return l&&(h.barycenter=s/l,h.weight=l),h}function gre(t,e,r){for(var n;e.length&&(n=ma(e)).i<=r;)e.pop(),t.push(n.vs),r++;return r}function CRe(t){return function(e,r){return e.barycenterr.barycenter?1:t?r.i-e.i:e.i-r.i}}var vre=R(()=>{"use strict";Pt();Ec();o(yre,"sort");o(gre,"consumeUnsortable");o(CRe,"compareWithBias")});function dD(t,e,r,n){var i=t.children(e),a=t.node(e),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,u={};s&&(i=$r(i,function(g){return g!==s&&g!==l}));var h=fre(t,i);Ee(h,function(g){if(t.children(g.v).length){var y=dD(t,g.v,r,n);u[g.v]=y,Xe(y,"barycenter")&&ARe(g,y)}});var f=pre(h,r);SRe(f,u);var d=yre(f,n);if(s&&(d.vs=Gr([s,d.vs,l]),t.predecessors(s).length)){var p=t.node(t.predecessors(s)[0]),m=t.node(t.predecessors(l)[0]);Xe(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+p.order+m.order)/(d.weight+2),d.weight+=2}return d}function SRe(t,e){Ee(t,function(r){r.vs=Gr(r.vs.map(function(n){return e[n]?e[n].vs:n}))})}function ARe(t,e){er(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}var xre=R(()=>{"use strict";Pt();dre();mre();vre();o(dD,"sortSubgraph");o(SRe,"expandSubgraphs");o(ARe,"mergeBarycenters")});function Tre(t){var e=KL(t),r=bre(t,Go(1,e+1),"inEdges"),n=bre(t,Go(e-1,-1,-1),"outEdges"),i=ure(t);wre(t,i);for(var a=Number.POSITIVE_INFINITY,s,l=0,u=0;u<4;++l,++u){_Re(l%2?r:n,l%4>=2),i=Qh(t);var h=lre(t,i);h{"use strict";Pt();ya();Ec();are();ore();cre();hre();xre();o(Tre,"order");o(bre,"buildLayerGraphs");o(_Re,"sweepLayerGraphs");o(wre,"assignOrder")});function Ere(t){var e=DRe(t);Ee(t.graph().dummyChains,function(r){for(var n=t.node(r),i=n.edgeObj,a=LRe(t,e,i.v,i.w),s=a.path,l=a.lca,u=0,h=s[u],f=!0;r!==i.w;){if(n=t.node(r),f){for(;(h=s[u])!==l&&t.node(h).maxRanks||l>e[u].lim));for(h=u,u=n;(u=t.parent(u))!==h;)a.push(u);return{path:i.concat(a.reverse()),lca:h}}function DRe(t){var e={},r=0;function n(i){var a=r;Ee(t.children(i),n),e[i]={low:a,lim:r++}}return o(n,"dfs"),Ee(t.children(),n),e}var Cre=R(()=>{"use strict";Pt();o(Ere,"parentDummyChains");o(LRe,"findPath");o(DRe,"postorder")});function RRe(t,e){var r={};function n(i,a){var s=0,l=0,u=i.length,h=ma(a);return Ee(a,function(f,d){var p=MRe(t,f),m=p?t.node(p).order:u;(p||f===h)&&(Ee(a.slice(l,d+1),function(g){Ee(t.predecessors(g),function(y){var v=t.node(y),x=v.order;(xh)&&Sre(r,p,f)})})}o(n,"scan");function i(a,s){var l=-1,u,h=0;return Ee(s,function(f,d){if(t.node(f).dummy==="border"){var p=t.predecessors(f);p.length&&(u=t.node(p[0]).order,n(s,h,d,l,u),h=d,l=u)}n(s,h,s.length,u,a.length)}),s}return o(i,"visitLayer"),Vr(e,i),r}function MRe(t,e){if(t.node(e).dummy)return Za(t.predecessors(e),function(r){return t.node(r).dummy})}function Sre(t,e,r){if(e>r){var n=e;e=r,r=n}var i=t[e];i||(t[e]=i={}),i[r]=!0}function IRe(t,e,r){if(e>r){var n=e;e=r,r=n}return Xe(t[e],r)}function ORe(t,e,r,n){var i={},a={},s={};return Ee(e,function(l){Ee(l,function(u,h){i[u]=u,a[u]=u,s[u]=h})}),Ee(e,function(l){var u=-1;Ee(l,function(h){var f=n(h);if(f.length){f=Tc(f,function(y){return s[y]});for(var d=(f.length-1)/2,p=Math.floor(d),m=Math.ceil(d);p<=m;++p){var g=f[p];a[h]===h&&u{"use strict";Pt();ya();Ec();o(RRe,"findType1Conflicts");o(NRe,"findType2Conflicts");o(MRe,"findOtherInnerSegmentNode");o(Sre,"addConflict");o(IRe,"hasConflict");o(ORe,"verticalAlignment");o(PRe,"horizontalCompaction");o(BRe,"buildBlockGraph");o(FRe,"findSmallestWidthAlignment");o(zRe,"alignCoordinates");o(GRe,"balance");o(Are,"positionX");o($Re,"sep");o(VRe,"width")});function Lre(t){t=eT(t),URe(t),ML(Are(t),function(e,r){t.node(r).x=e})}function URe(t){var e=Qh(t),r=t.graph().ranksep,n=0;Ee(e,function(i){var a=_s(qe(i,function(s){return t.node(s).height}));Ee(i,function(s){t.node(s).y=n+a/2}),n+=a+r})}var Dre=R(()=>{"use strict";Pt();Ec();_re();o(Lre,"position");o(URe,"positionY")});function lo(t,e){var r=e&&e.debugTiming?kte:Ete;r("layout",function(){var n=r(" buildLayoutGraph",function(){return eNe(t)});r(" runLayout",function(){HRe(n,r)}),r(" updateInputGraph",function(){YRe(t,n)})})}function HRe(t,e){e(" makeSpaceForEdgeLabels",function(){tNe(t)}),e(" removeSelfEdges",function(){uNe(t)}),e(" acyclic",function(){gte(t)}),e(" nestingGraph.run",function(){ere(t)}),e(" rank",function(){hD(eT(t))}),e(" injectEdgeLabelProxies",function(){rNe(t)}),e(" removeEmptyRanks",function(){wte(t)}),e(" nestingGraph.cleanup",function(){rre(t)}),e(" normalizeRanks",function(){bte(t)}),e(" assignRankMinMax",function(){nNe(t)}),e(" removeEdgeLabelProxies",function(){iNe(t)}),e(" normalize.run",function(){Mte(t)}),e(" parentDummyChains",function(){Ere(t)}),e(" addBorderSegments",function(){Ste(t)}),e(" order",function(){Tre(t)}),e(" insertSelfEdges",function(){hNe(t)}),e(" adjustCoordinateSystem",function(){Lte(t)}),e(" position",function(){Lre(t)}),e(" positionSelfEdges",function(){fNe(t)}),e(" removeBorderNodes",function(){cNe(t)}),e(" normalize.undo",function(){Ite(t)}),e(" fixupEdgeLabelCoords",function(){oNe(t)}),e(" undoCoordinateSystem",function(){Dte(t)}),e(" translateGraph",function(){aNe(t)}),e(" assignNodeIntersects",function(){sNe(t)}),e(" reversePoints",function(){lNe(t)}),e(" acyclic.undo",function(){yte(t)})}function YRe(t,e){Ee(t.nodes(),function(r){var n=t.node(r),i=e.node(r);n&&(n.x=i.x,n.y=i.y,e.children(r).length&&(n.width=i.width,n.height=i.height))}),Ee(t.edges(),function(r){var n=t.edge(r),i=e.edge(r);n.points=i.points,Xe(i,"x")&&(n.x=i.x,n.y=i.y)}),t.graph().width=e.graph().width,t.graph().height=e.graph().height}function eNe(t){var e=new lr({multigraph:!0,compound:!0}),r=mD(t.graph());return e.setGraph(Gh({},qRe,pD(r,WRe),Fd(r,XRe))),Ee(t.nodes(),function(n){var i=mD(t.node(n));e.setNode(n,Xh(pD(i,jRe),KRe)),e.setParent(n,t.parent(n))}),Ee(t.edges(),function(n){var i=mD(t.edge(n));e.setEdge(n,Gh({},ZRe,pD(i,QRe),Fd(i,JRe)))}),e}function tNe(t){var e=t.graph();e.ranksep/=2,Ee(t.edges(),function(r){var n=t.edge(r);n.minlen*=2,n.labelpos.toLowerCase()!=="c"&&(e.rankdir==="TB"||e.rankdir==="BT"?n.width+=n.labeloffset:n.height+=n.labeloffset)})}function rNe(t){Ee(t.edges(),function(e){var r=t.edge(e);if(r.width&&r.height){var n=t.node(e.v),i=t.node(e.w),a={rank:(i.rank-n.rank)/2+n.rank,e};kc(t,"edge-proxy",a,"_ep")}})}function nNe(t){var e=0;Ee(t.nodes(),function(r){var n=t.node(r);n.borderTop&&(n.minRank=t.node(n.borderTop).rank,n.maxRank=t.node(n.borderBottom).rank,e=_s(e,n.maxRank))}),t.graph().maxRank=e}function iNe(t){Ee(t.nodes(),function(e){var r=t.node(e);r.dummy==="edge-proxy"&&(t.edge(r.e).labelRank=r.rank,t.removeNode(e))})}function aNe(t){var e=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,a=t.graph(),s=a.marginx||0,l=a.marginy||0;function u(h){var f=h.x,d=h.y,p=h.width,m=h.height;e=Math.min(e,f-p/2),r=Math.max(r,f+p/2),n=Math.min(n,d-m/2),i=Math.max(i,d+m/2)}o(u,"getExtremes"),Ee(t.nodes(),function(h){u(t.node(h))}),Ee(t.edges(),function(h){var f=t.edge(h);Xe(f,"x")&&u(f)}),e-=s,n-=l,Ee(t.nodes(),function(h){var f=t.node(h);f.x-=e,f.y-=n}),Ee(t.edges(),function(h){var f=t.edge(h);Ee(f.points,function(d){d.x-=e,d.y-=n}),Xe(f,"x")&&(f.x-=e),Xe(f,"y")&&(f.y-=n)}),a.width=r-e+s,a.height=i-n+l}function sNe(t){Ee(t.edges(),function(e){var r=t.edge(e),n=t.node(e.v),i=t.node(e.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=i,s=n),r.points.unshift(XL(n,a)),r.points.push(XL(i,s))})}function oNe(t){Ee(t.edges(),function(e){var r=t.edge(e);if(Xe(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function lNe(t){Ee(t.edges(),function(e){var r=t.edge(e);r.reversed&&r.points.reverse()})}function cNe(t){Ee(t.nodes(),function(e){if(t.children(e).length){var r=t.node(e),n=t.node(r.borderTop),i=t.node(r.borderBottom),a=t.node(ma(r.borderLeft)),s=t.node(ma(r.borderRight));r.width=Math.abs(s.x-a.x),r.height=Math.abs(i.y-n.y),r.x=a.x+r.width/2,r.y=n.y+r.height/2}}),Ee(t.nodes(),function(e){t.node(e).dummy==="border"&&t.removeNode(e)})}function uNe(t){Ee(t.edges(),function(e){if(e.v===e.w){var r=t.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function hNe(t){var e=Qh(t);Ee(e,function(r){var n=0;Ee(r,function(i,a){var s=t.node(i);s.order=a+n,Ee(s.selfEdges,function(l){kc(t,"selfedge",{width:l.label.width,height:l.label.height,rank:s.rank,order:a+ ++n,e:l.e,label:l.label},"_se")}),delete s.selfEdges})})}function fNe(t){Ee(t.nodes(),function(e){var r=t.node(e);if(r.dummy==="selfedge"){var n=t.node(r.e.v),i=n.x+n.width/2,a=n.y,s=r.x-i,l=n.height/2;t.setEdge(r.e,r.label),t.removeNode(e),r.label.points=[{x:i+2*s/3,y:a-l},{x:i+5*s/6,y:a-l},{x:i+s,y:a},{x:i+5*s/6,y:a+l},{x:i+2*s/3,y:a+l}],r.label.x=r.x,r.label.y=r.y}})}function pD(t,e){return Pd(Fd(t,e),Number)}function mD(t){var e={};return Ee(t,function(r,n){e[n.toLowerCase()]=r}),e}var WRe,qRe,XRe,jRe,KRe,QRe,ZRe,JRe,Rre=R(()=>{"use strict";Pt();ya();Ate();Nte();qL();JL();fD();nre();kre();Cre();Dre();Ec();o(lo,"layout");o(HRe,"runLayout");o(YRe,"updateInputGraph");WRe=["nodesep","edgesep","ranksep","marginx","marginy"],qRe={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},XRe=["acyclicer","ranker","rankdir","align"],jRe=["width","height"],KRe={width:0,height:0},QRe=["minlen","weight","width","height","labeloffset"],ZRe={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},JRe=["labelpos"];o(eNe,"buildLayoutGraph");o(tNe,"makeSpaceForEdgeLabels");o(rNe,"injectEdgeLabelProxies");o(nNe,"assignRankMinMax");o(iNe,"removeEdgeLabelProxies");o(aNe,"translateGraph");o(sNe,"assignNodeIntersects");o(oNe,"fixupEdgeLabelCoords");o(lNe,"reversePointsForReversedEdges");o(cNe,"removeBorderNodes");o(uNe,"removeSelfEdges");o(hNe,"insertSelfEdges");o(fNe,"positionSelfEdges");o(pD,"selectNumberAttrs");o(mD,"canonicalize")});var Vd=R(()=>{"use strict";qL();Rre();JL();fD()});function zn(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:dNe(t),edges:pNe(t)};return er(t.graph())||(e.value=Qr(t.graph())),e}function dNe(t){return qe(t.nodes(),function(e){var r=t.node(e),n=t.parent(e),i={v:e};return er(r)||(i.value=r),er(n)||(i.parent=n),i})}function pNe(t){return qe(t.edges(),function(e){var r=t.edge(e),n={v:e.v,w:e.w};return er(e.name)||(n.name=e.name),er(r)||(n.value=r),n})}var Pv=R(()=>{"use strict";Pt();Zw();o(zn,"write");o(dNe,"writeNodes");o(pNe,"writeEdges")});var cr,Ud,Mre,Ire,aT,mNe,Ore,Pre,gNe,Bm,Nre,Bre,Fre,zre,Gre,$re=R(()=>{"use strict";ut();ya();Pv();cr=new Map,Ud=new Map,Mre=new Map,Ire=o(()=>{Ud.clear(),Mre.clear(),cr.clear()},"clear"),aT=o((t,e)=>{let r=Ud.get(e)||[];return V.trace("In isDescendant",e," ",t," = ",r.includes(t)),r.includes(t)},"isDescendant"),mNe=o((t,e)=>{let r=Ud.get(e)||[];return V.info("Descendants of ",e," is ",r),V.info("Edge is ",t),t.v===e||t.w===e?!1:r?r.includes(t.v)||aT(t.v,e)||aT(t.w,e)||r.includes(t.w):(V.debug("Tilt, ",e,",not in descendants"),!1)},"edgeInCluster"),Ore=o((t,e,r,n)=>{V.warn("Copying children of ",t,"root",n,"data",e.node(t),n);let i=e.children(t)||[];t!==n&&i.push(t),V.warn("Copying (nodes) clusterId",t,"nodes",i),i.forEach(a=>{if(e.children(a).length>0)Ore(a,e,r,n);else{let s=e.node(a);V.info("cp ",a," to ",n," with parent ",t),r.setNode(a,s),n!==e.parent(a)&&(V.warn("Setting parent",a,e.parent(a)),r.setParent(a,e.parent(a))),t!==n&&a!==t?(V.debug("Setting parent",a,t),r.setParent(a,t)):(V.info("In copy ",t,"root",n,"data",e.node(t),n),V.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==n,"node!==clusterId",a!==t));let l=e.edges(a);V.debug("Copying Edges",l),l.forEach(u=>{V.info("Edge",u);let h=e.edge(u.v,u.w,u.name);V.info("Edge data",h,n);try{mNe(u,n)?(V.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),V.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):V.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",t)}catch(f){V.error(f)}})}V.debug("Removing node",a),e.removeNode(a)})},"copy"),Pre=o((t,e)=>{let r=e.children(t),n=[...r];for(let i of r)Mre.set(i,t),n=[...n,...Pre(i,e)];return n},"extractDescendants"),gNe=o((t,e,r)=>{let n=t.edges().filter(u=>u.v===e||u.w===e),i=t.edges().filter(u=>u.v===r||u.w===r),a=n.map(u=>({v:u.v===e?r:u.v,w:u.w===e?e:u.w})),s=i.map(u=>({v:u.v,w:u.w}));return a.filter(u=>s.some(h=>u.v===h.v&&u.w===h.w))},"findCommonEdges"),Bm=o((t,e,r)=>{let n=e.children(t);if(V.trace("Searching children of id ",t,n),n.length<1)return t;let i;for(let a of n){let s=Bm(a,e,r),l=gNe(e,r,s);if(s)if(l.length>0)i=s;else return s}return i},"findNonClusterChild"),Nre=o(t=>!cr.has(t)||!cr.get(t).externalConnections?t:cr.has(t)?cr.get(t).id:t,"getAnchorId"),Bre=o((t,e)=>{if(!t||e>10){V.debug("Opting out, no graph ");return}else V.debug("Opting in, graph ");t.nodes().forEach(function(r){t.children(r).length>0&&(V.warn("Cluster identified",r," Replacement id in edges: ",Bm(r,t,r)),Ud.set(r,Pre(r,t)),cr.set(r,{id:Bm(r,t,r),clusterData:t.node(r)}))}),t.nodes().forEach(function(r){let n=t.children(r),i=t.edges();n.length>0?(V.debug("Cluster identified",r,Ud),i.forEach(a=>{let s=aT(a.v,r),l=aT(a.w,r);s^l&&(V.warn("Edge: ",a," leaves cluster ",r),V.warn("Descendants of XXX ",r,": ",Ud.get(r)),cr.get(r).externalConnections=!0)})):V.debug("Not a cluster ",r,Ud)});for(let r of cr.keys()){let n=cr.get(r).id,i=t.parent(n);i!==r&&cr.has(i)&&!cr.get(i).externalConnections&&(cr.get(r).id=i)}t.edges().forEach(function(r){let n=t.edge(r);V.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),V.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(t.edge(r)));let i=r.v,a=r.w;if(V.warn("Fix XXX",cr,"ids:",r.v,r.w,"Translating: ",cr.get(r.v)," --- ",cr.get(r.w)),cr.get(r.v)||cr.get(r.w)){if(V.warn("Fixing and trying - removing XXX",r.v,r.w,r.name),i=Nre(r.v),a=Nre(r.w),t.removeEdge(r.v,r.w,r.name),i!==r.v){let s=t.parent(i);cr.get(s).externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=t.parent(a);cr.get(s).externalConnections=!0,n.toCluster=r.w}V.warn("Fix Replacing with XXX",i,a,r.name),t.setEdge(i,a,n,r.name)}}),V.warn("Adjusted Graph",zn(t)),Fre(t,0),V.trace(cr)},"adjustClustersAndEdges"),Fre=o((t,e)=>{if(V.warn("extractor - ",e,zn(t),t.children("D")),e>10){V.error("Bailing out");return}let r=t.nodes(),n=!1;for(let i of r){let a=t.children(i);n=n||a.length>0}if(!n){V.debug("Done, no node has children",t.nodes());return}V.debug("Nodes = ",r,e);for(let i of r)if(V.debug("Extracting node",i,cr,cr.has(i)&&!cr.get(i).externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),!cr.has(i))V.debug("Not a cluster",i,e);else if(!cr.get(i).externalConnections&&t.children(i)&&t.children(i).length>0){V.warn("Cluster without external connections, without a parent and with children",i,e);let s=t.graph().rankdir==="TB"?"LR":"TB";cr.get(i)?.clusterData?.dir&&(s=cr.get(i).clusterData.dir,V.warn("Fixing dir",cr.get(i).clusterData.dir,s));let l=new lr({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});V.warn("Old graph before copy",zn(t)),Ore(i,t,l,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:cr.get(i).clusterData,label:cr.get(i).label,graph:l}),V.warn("New graph after copy node: (",i,")",zn(l)),V.debug("Old graph after copy",zn(t))}else V.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!cr.get(i).externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),V.debug(cr);r=t.nodes(),V.warn("New list of nodes",r);for(let i of r){let a=t.node(i);V.warn(" Now next level",i,a),a?.clusterNode&&Fre(a.graph,e+1)}},"extractor"),zre=o((t,e)=>{if(e.length===0)return[];let r=Object.assign([],e);return e.forEach(n=>{let i=t.children(n),a=zre(t,i);r=[...r,...a]}),r},"sorter"),Gre=o(t=>zre(t,t.children()),"sortNodesByHierarchy")});var Ure={};hr(Ure,{render:()=>yNe});var Vre,yNe,Hre=R(()=>{"use strict";Vd();Pv();ya();Q9();ri();$re();tL();X9();K9();ut();_d();_t();Vre=o(async(t,e,r,n,i,a)=>{V.warn("Graph in recursive render:XAX",zn(e),i);let s=e.graph().rankdir;V.trace("Dir in recursive render - dir:",s);let l=t.insert("g").attr("class","root");e.nodes()?V.info("Recursive render XXX",e.nodes()):V.info("No nodes found for",e),e.edges().length>0&&V.info("Recursive edges",e.edge(e.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(e.nodes().map(async function(y){let v=e.node(y);if(i!==void 0){let x=JSON.parse(JSON.stringify(i.clusterData));V.trace(`Setting data for parent cluster XXX + Node.id = `,y,` + data=`,x.height,` +Parent cluster`,i.height),e.setNode(i.id,x),e.parent(y)||(V.trace("Setting parent",y,i.id),e.setParent(y,i.id,x))}if(V.info("(Insert) Node XXX"+y+": "+JSON.stringify(e.node(y))),v?.clusterNode){V.info("Cluster identified XBX",y,v.width,e.node(y));let{ranksep:x,nodesep:b}=e.graph();v.graph.setGraph({...v.graph.graph(),ranksep:x+25,nodesep:b});let w=await Vre(d,v.graph,r,n,e.node(y),a),S=w.elem;ar(v,S),v.diff=w.diff||0,V.info("New compound node after recursive render XAX",y,"width",v.width,"height",v.height),lQ(S,v)}else e.children(y).length>0?(V.trace("Cluster - the non recursive path XBX",y,v.id,v,v.width,"Graph:",e),V.trace(Bm(v.id,e)),cr.set(v.id,{id:Bm(v.id,e),node:v})):(V.trace("Node - the non recursive path XAX",y,d,e.node(y),s),await rw(d,e.node(y),s))})),await o(async()=>{let y=e.edges().map(async function(v){let x=e.edge(v.v,v.w,v.name);V.info("Edge "+v.v+" -> "+v.w+": "+JSON.stringify(v)),V.info("Edge "+v.v+" -> "+v.w+": ",v," ",JSON.stringify(e.edge(v))),V.info("Fix",cr,"ids:",v.v,v.w,"Translating: ",cr.get(v.v),cr.get(v.w)),await Q5(f,x)});await Promise.all(y)},"processEdges")(),V.info("Graph before layout:",JSON.stringify(zn(e))),V.info("############################################# XXX"),V.info("### Layout ### XXX"),V.info("############################################# XXX"),lo(e),V.info("Graph after layout:",JSON.stringify(zn(e)));let m=0,{subGraphTitleTotalMargin:g}=io(a);return await Promise.all(Gre(e).map(async function(y){let v=e.node(y);if(V.info("Position XBX => "+y+": ("+v.x,","+v.y,") width: ",v.width," height: ",v.height),v?.clusterNode)v.y+=g,V.info("A tainted cluster node XBX1",y,v.id,v.width,v.height,v.x,v.y,e.parent(y)),cr.get(v.id).node=v,eL(v);else if(e.children(y).length>0){V.info("A pure cluster node XBX1",y,v.id,v.x,v.y,v.width,v.height,e.parent(y)),v.height+=g,e.node(v.parentId);let x=v?.padding/2||0,b=v?.labelBBox?.height||0,w=b-x||0;V.debug("OffsetY",w,"labelHeight",b,"halfPadding",x),await Y5(u,v),cr.get(v.id).node=v}else{let x=e.node(v.parentId);v.y+=g/2,V.info("A regular node XBX1 - using the padding",v.id,"parent",v.parentId,v.width,v.height,v.x,v.y,"offsetY",v.offsetY,"parent",x,x?.offsetY,v),eL(v)}})),e.edges().forEach(function(y){let v=e.edge(y);V.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(v),v),v.points.forEach(S=>S.y+=g/2);let x=e.node(y.v);var b=e.node(y.w);let w=J5(h,v,cr,r,x,b,n);Z5(v,w)}),e.nodes().forEach(function(y){let v=e.node(y);V.info(y,v.type,v.diff),v.isGroup&&(m=v.diff)}),V.warn("Returning from recursive render XAX",l,m),{elem:l,diff:m}},"recursiveRender"),yNe=o(async(t,e)=>{let r=new lr({multigraph:!0,compound:!0}).setGraph({rankdir:t.direction,nodesep:t.config?.nodeSpacing||t.config?.flowchart?.nodeSpacing||t.nodeSpacing,ranksep:t.config?.rankSpacing||t.config?.flowchart?.rankSpacing||t.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=e.select("g");ew(n,t.markers,t.type,t.diagramId),cQ(),lK(),rK(),Ire(),t.nodes.forEach(a=>{r.setNode(a.id,{...a}),a.parentId&&r.setParent(a.id,a.parentId)}),V.debug("Edges:",t.edges),t.edges.forEach(a=>{if(a.start===a.end){let s=a.start,l=s+"---"+s+"---1",u=s+"---"+s+"---2",h=r.node(s);r.setNode(l,{domId:l,id:l,parentId:h.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),r.setParent(l,h.parentId),r.setNode(u,{domId:u,id:u,parentId:h.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),r.setParent(u,h.parentId);let f=structuredClone(a),d=structuredClone(a),p=structuredClone(a);f.label="",f.arrowTypeEnd="none",f.id=s+"-cyclic-special-1",d.arrowTypeEnd="none",d.id=s+"-cyclic-special-mid",p.label="",h.isGroup&&(f.fromCluster=s,p.toCluster=s),p.id=s+"-cyclic-special-2",r.setEdge(s,l,f,s+"-cyclic-special-0"),r.setEdge(l,u,d,s+"-cyclic-special-1"),r.setEdge(u,s,p,s+"-cyc{"use strict";hQ();ut();Bv={},gD=o(t=>{for(let e of t)Bv[e.name]=e},"registerLayoutLoaders"),vNe=o(()=>{gD([{name:"dagre",loader:o(async()=>await Promise.resolve().then(()=>(Hre(),Ure)),"loader")}])},"registerDefaultLayoutLoaders");vNe();sT=o(async(t,e)=>{if(!(t.layoutAlgorithm in Bv))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let r=Bv[t.layoutAlgorithm];return(await r.loader()).render(t,e,uQ,{algorithm:r.algorithm})},"render"),Yre=o((t="",{fallback:e="dagre"}={})=>{if(t in Bv)return t;if(e in Bv)return V.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")});var lT,xNe,bNe,yD=R(()=>{"use strict";Yn();ut();lT=o((t,e,r,n)=>{t.attr("class",r);let{width:i,height:a,x:s,y:l}=xNe(t,e);Sr(t,a,i,n);let u=bNe(s,l,i,a,e);t.attr("viewBox",u),V.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),xNe=o((t,e)=>{let r=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:r.width+e*2,height:r.height+e*2,x:r.x,y:r.y}},"calculateDimensionsWithPadding"),bNe=o((t,e,r,n,i)=>`${t-i} ${e-i} ${r} ${n}`,"createViewBox")});var wNe,TNe,Wre,qre=R(()=>{"use strict";Zt();_t();ut();L9();oT();yD();xr();f9();wNe=o(function(t,e){return e.db.getClasses()},"getClasses"),TNe=o(async function(t,e,r,n){V.info("REF0:"),V.info("Drawing state diagram (v2)",e);let{securityLevel:i,flowchart:a,layout:s}=de(),l;i==="sandbox"&&(l=$e("#i"+e));let u=i==="sandbox"?l.nodes()[0].contentDocument:document;V.debug("Before getData: ");let h=n.db.getData();V.debug("Data: ",h);let f=I5(e,i),d=h9();h.type=n.type,h.layoutAlgorithm=Yre(s),h.layoutAlgorithm==="dagre"&&s==="elk"&&V.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),h.direction=d,h.nodeSpacing=a?.nodeSpacing||50,h.rankSpacing=a?.rankSpacing||50,h.markers=["point","circle","cross"],h.diagramId=e,V.debug("REF1:",h),await sT(h,f);let p=h.config.flowchart?.diagramPadding??8;Lt.insertTitle(f,"flowchartTitleText",a?.titleTopMargin||0,n.db.getDiagramTitle()),lT(f,p,"flowchart",a?.useMaxWidth||!1);for(let m of h.nodes){let g=$e(`#${e} [id="${m.id}"]`);if(!g||!m.link)continue;let y=u.createElementNS("http://www.w3.org/2000/svg","a");y.setAttributeNS("http://www.w3.org/2000/svg","class",m.cssClasses),y.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),i==="sandbox"?y.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):m.linkTarget&&y.setAttributeNS("http://www.w3.org/2000/svg","target",m.linkTarget);let v=g.insert(function(){return y},":first-child"),x=g.select(".label-container");x&&v.append(function(){return x.node()});let b=g.select(".label");b&&v.append(function(){return b.node()})}},"draw"),Wre={getClasses:wNe,draw:TNe}});var vD,Xre,jre=R(()=>{"use strict";vD=function(){var t=o(function(qi,ht,At,$t){for(At=At||{},$t=qi.length;$t--;At[qi[$t]]=ht);return At},"o"),e=[1,4],r=[1,3],n=[1,5],i=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],a=[2,2],s=[1,13],l=[1,14],u=[1,15],h=[1,16],f=[1,23],d=[1,25],p=[1,26],m=[1,27],g=[1,49],y=[1,48],v=[1,29],x=[1,30],b=[1,31],w=[1,32],S=[1,33],T=[1,44],E=[1,46],_=[1,42],A=[1,47],L=[1,43],M=[1,50],N=[1,45],k=[1,51],I=[1,52],C=[1,34],O=[1,35],D=[1,36],P=[1,37],F=[1,57],B=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],$=[1,61],z=[1,60],Y=[1,62],Q=[8,9,11,73,75],X=[1,88],ie=[1,93],j=[1,92],J=[1,89],Z=[1,85],H=[1,91],q=[1,87],K=[1,94],se=[1,90],ce=[1,95],ue=[1,86],te=[8,9,10,11,73,75],De=[8,9,10,11,44,73,75],oe=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],ke=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],Ie=[42,58,86,99,102,103,106,108,111,112,113],Se=[1,121],Ue=[1,120],Pe=[1,128],_e=[1,142],me=[1,143],W=[1,144],fe=[1,145],ge=[1,130],re=[1,132],he=[1,136],ne=[1,137],ae=[1,138],we=[1,139],Te=[1,140],Ce=[1,141],Ae=[1,146],Ge=[1,147],Me=[1,126],ye=[1,127],He=[1,134],ze=[1,129],Ze=[1,133],gt=[1,131],yt=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],tt=[1,149],Ye=[8,9,11],Je=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],Ve=[1,169],je=[1,165],kt=[1,166],at=[1,170],xt=[1,167],it=[1,168],dt=[75,113,116],lt=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],It=[10,103],mt=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],St=[1,235],gr=[1,233],xn=[1,237],jt=[1,231],rn=[1,232],Er=[1,234],Kn=[1,236],hn=[1,238],Qn=[1,255],on=[8,9,11,103],Rn=[8,9,10,11,58,81,102,103,106,107,108,109],Ha={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:o(function(ht,At,$t,rt,Ot,pe,ur){var be=pe.length-1;switch(Ot){case 2:this.$=[];break;case 3:(!Array.isArray(pe[be])||pe[be].length>0)&&pe[be-1].push(pe[be]),this.$=pe[be-1];break;case 4:case 176:this.$=pe[be];break;case 11:rt.setDirection("TB"),this.$="TB";break;case 12:rt.setDirection(pe[be-1]),this.$=pe[be-1];break;case 27:this.$=pe[be-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=rt.addSubGraph(pe[be-6],pe[be-1],pe[be-4]);break;case 34:this.$=rt.addSubGraph(pe[be-3],pe[be-1],pe[be-3]);break;case 35:this.$=rt.addSubGraph(void 0,pe[be-1],void 0);break;case 37:this.$=pe[be].trim(),rt.setAccTitle(this.$);break;case 38:case 39:this.$=pe[be].trim(),rt.setAccDescription(this.$);break;case 43:rt.addLink(pe[be-2].stmt,pe[be],pe[be-1]),this.$={stmt:pe[be],nodes:pe[be].concat(pe[be-2].nodes)};break;case 44:rt.addLink(pe[be-3].stmt,pe[be-1],pe[be-2]),this.$={stmt:pe[be-1],nodes:pe[be-1].concat(pe[be-3].nodes)};break;case 45:this.$={stmt:pe[be-1],nodes:pe[be-1]};break;case 46:this.$={stmt:pe[be],nodes:pe[be]};break;case 47:this.$=[pe[be]];break;case 48:this.$=pe[be-4].concat(pe[be]);break;case 49:this.$=pe[be];break;case 50:this.$=pe[be-2],rt.setClass(pe[be-2],pe[be]);break;case 51:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"square");break;case 52:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"doublecircle");break;case 53:this.$=pe[be-5],rt.addVertex(pe[be-5],pe[be-2],"circle");break;case 54:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"ellipse");break;case 55:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"stadium");break;case 56:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"subroutine");break;case 57:this.$=pe[be-7],rt.addVertex(pe[be-7],pe[be-1],"rect",void 0,void 0,void 0,Object.fromEntries([[pe[be-5],pe[be-3]]]));break;case 58:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"cylinder");break;case 59:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"round");break;case 60:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"diamond");break;case 61:this.$=pe[be-5],rt.addVertex(pe[be-5],pe[be-2],"hexagon");break;case 62:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"odd");break;case 63:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"trapezoid");break;case 64:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"inv_trapezoid");break;case 65:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"lean_right");break;case 66:this.$=pe[be-3],rt.addVertex(pe[be-3],pe[be-1],"lean_left");break;case 67:this.$=pe[be],rt.addVertex(pe[be]);break;case 68:pe[be-1].text=pe[be],this.$=pe[be-1];break;case 69:case 70:pe[be-2].text=pe[be-1],this.$=pe[be-2];break;case 71:this.$=pe[be];break;case 72:var Ir=rt.destructLink(pe[be],pe[be-2]);this.$={type:Ir.type,stroke:Ir.stroke,length:Ir.length,text:pe[be-1]};break;case 73:this.$={text:pe[be],type:"text"};break;case 74:this.$={text:pe[be-1].text+""+pe[be],type:pe[be-1].type};break;case 75:this.$={text:pe[be],type:"string"};break;case 76:this.$={text:pe[be],type:"markdown"};break;case 77:var Ir=rt.destructLink(pe[be]);this.$={type:Ir.type,stroke:Ir.stroke,length:Ir.length};break;case 78:this.$=pe[be-1];break;case 79:this.$={text:pe[be],type:"text"};break;case 80:this.$={text:pe[be-1].text+""+pe[be],type:pe[be-1].type};break;case 81:this.$={text:pe[be],type:"string"};break;case 82:case 97:this.$={text:pe[be],type:"markdown"};break;case 94:this.$={text:pe[be],type:"text"};break;case 95:this.$={text:pe[be-1].text+""+pe[be],type:pe[be-1].type};break;case 96:this.$={text:pe[be],type:"text"};break;case 98:this.$=pe[be-4],rt.addClass(pe[be-2],pe[be]);break;case 99:this.$=pe[be-4],rt.setClass(pe[be-2],pe[be]);break;case 100:case 108:this.$=pe[be-1],rt.setClickEvent(pe[be-1],pe[be]);break;case 101:case 109:this.$=pe[be-3],rt.setClickEvent(pe[be-3],pe[be-2]),rt.setTooltip(pe[be-3],pe[be]);break;case 102:this.$=pe[be-2],rt.setClickEvent(pe[be-2],pe[be-1],pe[be]);break;case 103:this.$=pe[be-4],rt.setClickEvent(pe[be-4],pe[be-3],pe[be-2]),rt.setTooltip(pe[be-4],pe[be]);break;case 104:this.$=pe[be-2],rt.setLink(pe[be-2],pe[be]);break;case 105:this.$=pe[be-4],rt.setLink(pe[be-4],pe[be-2]),rt.setTooltip(pe[be-4],pe[be]);break;case 106:this.$=pe[be-4],rt.setLink(pe[be-4],pe[be-2],pe[be]);break;case 107:this.$=pe[be-6],rt.setLink(pe[be-6],pe[be-4],pe[be]),rt.setTooltip(pe[be-6],pe[be-2]);break;case 110:this.$=pe[be-1],rt.setLink(pe[be-1],pe[be]);break;case 111:this.$=pe[be-3],rt.setLink(pe[be-3],pe[be-2]),rt.setTooltip(pe[be-3],pe[be]);break;case 112:this.$=pe[be-3],rt.setLink(pe[be-3],pe[be-2],pe[be]);break;case 113:this.$=pe[be-5],rt.setLink(pe[be-5],pe[be-4],pe[be]),rt.setTooltip(pe[be-5],pe[be-2]);break;case 114:this.$=pe[be-4],rt.addVertex(pe[be-2],void 0,void 0,pe[be]);break;case 115:this.$=pe[be-4],rt.updateLink([pe[be-2]],pe[be]);break;case 116:this.$=pe[be-4],rt.updateLink(pe[be-2],pe[be]);break;case 117:this.$=pe[be-8],rt.updateLinkInterpolate([pe[be-6]],pe[be-2]),rt.updateLink([pe[be-6]],pe[be]);break;case 118:this.$=pe[be-8],rt.updateLinkInterpolate(pe[be-6],pe[be-2]),rt.updateLink(pe[be-6],pe[be]);break;case 119:this.$=pe[be-6],rt.updateLinkInterpolate([pe[be-4]],pe[be]);break;case 120:this.$=pe[be-6],rt.updateLinkInterpolate(pe[be-4],pe[be]);break;case 121:case 123:this.$=[pe[be]];break;case 122:case 124:pe[be-2].push(pe[be]),this.$=pe[be-2];break;case 126:this.$=pe[be-1]+pe[be];break;case 174:this.$=pe[be];break;case 175:this.$=pe[be-1]+""+pe[be];break;case 177:this.$=pe[be-1]+""+pe[be];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},"anonymous"),table:[{3:1,4:2,9:e,10:r,12:n},{1:[3]},t(i,a,{5:6}),{4:7,9:e,10:r,12:n},{4:8,9:e,10:r,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,33:24,34:d,36:p,38:m,40:28,41:38,42:g,43:39,45:40,58:y,81:v,82:x,83:b,84:w,85:S,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I,118:C,119:O,120:D,121:P},t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),{8:[1,54],9:[1,55],10:F,15:53,18:56},t(B,[2,3]),t(B,[2,4]),t(B,[2,5]),t(B,[2,6]),t(B,[2,7]),t(B,[2,8]),{8:$,9:z,11:Y,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:$,9:z,11:Y,21:66},{8:$,9:z,11:Y,21:67},{8:$,9:z,11:Y,21:68},{8:$,9:z,11:Y,21:69},{8:$,9:z,11:Y,21:70},{8:$,9:z,10:[1,71],11:Y,21:72},t(B,[2,36]),{35:[1,73]},{37:[1,74]},t(B,[2,39]),t(Q,[2,46],{18:75,10:F}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:X,42:ie,58:j,77:[1,83],86:J,92:[1,80],94:[1,81],98:82,102:Z,103:H,106:q,108:K,111:se,112:ce,113:ue,117:84},t(B,[2,178]),t(B,[2,179]),t(B,[2,180]),t(B,[2,181]),t(te,[2,47]),t(te,[2,49],{44:[1,96]}),t(De,[2,67],{110:109,29:[1,97],42:g,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:y,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:T,99:E,102:_,103:A,106:L,108:M,111:N,112:k,113:I}),t(oe,[2,174]),t(oe,[2,135]),t(oe,[2,136]),t(oe,[2,137]),t(oe,[2,138]),t(oe,[2,139]),t(oe,[2,140]),t(oe,[2,141]),t(oe,[2,142]),t(oe,[2,143]),t(oe,[2,144]),t(oe,[2,145]),t(i,[2,12]),t(i,[2,18]),t(i,[2,19]),{9:[1,110]},t(ke,[2,26],{18:111,10:F}),t(B,[2,27]),{40:112,41:38,42:g,43:39,45:40,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I},t(B,[2,40]),t(B,[2,41]),t(B,[2,42]),t(Ie,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:Se,116:Ue},t([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),t(B,[2,28]),t(B,[2,29]),t(B,[2,30]),t(B,[2,31]),t(B,[2,32]),{10:Pe,12:_e,14:me,27:W,28:122,32:fe,42:ge,58:re,73:he,77:[1,124],78:[1,125],80:135,81:ne,82:ae,83:we,84:Te,85:Ce,86:Ae,87:Ge,88:123,102:Me,106:ye,108:He,111:ze,112:Ze,113:gt},t(yt,a,{5:148}),t(B,[2,37]),t(B,[2,38]),t(Q,[2,45],{42:tt}),{42:g,45:150,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I},{99:[1,151],100:152,102:[1,153]},{42:g,45:154,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I},{42:g,45:155,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I},t(Ye,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},t(Ye,[2,108],{117:160,10:[1,159],14:X,42:ie,58:j,86:J,102:Z,103:H,106:q,108:K,111:se,112:ce,113:ue}),t(Ye,[2,110],{10:[1,161]}),t(Je,[2,176]),t(Je,[2,163]),t(Je,[2,164]),t(Je,[2,165]),t(Je,[2,166]),t(Je,[2,167]),t(Je,[2,168]),t(Je,[2,169]),t(Je,[2,170]),t(Je,[2,171]),t(Je,[2,172]),t(Je,[2,173]),{42:g,45:162,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I},{30:163,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{30:171,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{30:173,48:[1,172],65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{30:174,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{30:175,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{30:176,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{106:[1,177]},{30:178,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{30:179,63:[1,180],65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{30:181,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{30:182,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{30:183,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},t(oe,[2,175]),t(i,[2,20]),t(ke,[2,25]),t(Q,[2,43],{18:184,10:F}),t(Ie,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{75:[1,188],76:189,113:Se,116:Ue},t(dt,[2,73]),t(dt,[2,75]),t(dt,[2,76]),t(dt,[2,161]),t(dt,[2,162]),{8:$,9:z,10:Pe,11:Y,12:_e,14:me,21:191,27:W,29:[1,190],32:fe,42:ge,58:re,73:he,80:135,81:ne,82:ae,83:we,84:Te,85:Ce,86:Ae,87:Ge,88:192,102:Me,106:ye,108:He,111:ze,112:Ze,113:gt},t(lt,[2,94]),t(lt,[2,96]),t(lt,[2,97]),t(lt,[2,150]),t(lt,[2,151]),t(lt,[2,152]),t(lt,[2,153]),t(lt,[2,154]),t(lt,[2,155]),t(lt,[2,156]),t(lt,[2,157]),t(lt,[2,158]),t(lt,[2,159]),t(lt,[2,160]),t(lt,[2,83]),t(lt,[2,84]),t(lt,[2,85]),t(lt,[2,86]),t(lt,[2,87]),t(lt,[2,88]),t(lt,[2,89]),t(lt,[2,90]),t(lt,[2,91]),t(lt,[2,92]),t(lt,[2,93]),{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,193],33:24,34:d,36:p,38:m,40:28,41:38,42:g,43:39,45:40,58:y,81:v,82:x,83:b,84:w,85:S,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I,118:C,119:O,120:D,121:P},{10:F,18:194},{10:[1,195],42:g,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:109,111:N,112:k,113:I},{10:[1,196]},{10:[1,197],103:[1,198]},t(It,[2,121]),{10:[1,199],42:g,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:109,111:N,112:k,113:I},{10:[1,200],42:g,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:109,111:N,112:k,113:I},{77:[1,201]},t(Ye,[2,102],{10:[1,202]}),t(Ye,[2,104],{10:[1,203]}),{77:[1,204]},t(Je,[2,177]),{77:[1,205],95:[1,206]},t(te,[2,50],{110:109,42:g,58:y,86:T,99:E,102:_,103:A,106:L,108:M,111:N,112:k,113:I}),{31:[1,207],65:Ve,79:208,113:at,114:xt,115:it},t(mt,[2,79]),t(mt,[2,81]),t(mt,[2,82]),t(mt,[2,146]),t(mt,[2,147]),t(mt,[2,148]),t(mt,[2,149]),{47:[1,209],65:Ve,79:208,113:at,114:xt,115:it},{30:210,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{49:[1,211],65:Ve,79:208,113:at,114:xt,115:it},{51:[1,212],65:Ve,79:208,113:at,114:xt,115:it},{53:[1,213],65:Ve,79:208,113:at,114:xt,115:it},{55:[1,214],65:Ve,79:208,113:at,114:xt,115:it},{58:[1,215]},{62:[1,216],65:Ve,79:208,113:at,114:xt,115:it},{64:[1,217],65:Ve,79:208,113:at,114:xt,115:it},{30:218,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},{31:[1,219],65:Ve,79:208,113:at,114:xt,115:it},{65:Ve,67:[1,220],69:[1,221],79:208,113:at,114:xt,115:it},{65:Ve,67:[1,223],69:[1,222],79:208,113:at,114:xt,115:it},t(Q,[2,44],{42:tt}),t(Ie,[2,70]),t(Ie,[2,69]),{60:[1,224],65:Ve,79:208,113:at,114:xt,115:it},t(Ie,[2,72]),t(dt,[2,74]),{30:225,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},t(yt,a,{5:226}),t(lt,[2,95]),t(B,[2,35]),{41:227,42:g,43:39,45:40,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I},{10:St,58:gr,81:xn,89:228,102:jt,104:229,105:230,106:rn,107:Er,108:Kn,109:hn},{10:St,58:gr,81:xn,89:239,101:[1,240],102:jt,104:229,105:230,106:rn,107:Er,108:Kn,109:hn},{10:St,58:gr,81:xn,89:241,101:[1,242],102:jt,104:229,105:230,106:rn,107:Er,108:Kn,109:hn},{102:[1,243]},{10:St,58:gr,81:xn,89:244,102:jt,104:229,105:230,106:rn,107:Er,108:Kn,109:hn},{42:g,45:245,58:y,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I},t(Ye,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},t(Ye,[2,109]),t(Ye,[2,111],{10:[1,249]}),t(Ye,[2,112]),t(De,[2,51]),t(mt,[2,80]),t(De,[2,52]),{49:[1,250],65:Ve,79:208,113:at,114:xt,115:it},t(De,[2,59]),t(De,[2,54]),t(De,[2,55]),t(De,[2,56]),{106:[1,251]},t(De,[2,58]),t(De,[2,60]),{64:[1,252],65:Ve,79:208,113:at,114:xt,115:it},t(De,[2,62]),t(De,[2,63]),t(De,[2,65]),t(De,[2,64]),t(De,[2,66]),t([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:Ve,79:208,113:at,114:xt,115:it},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,254],33:24,34:d,36:p,38:m,40:28,41:38,42:g,43:39,45:40,58:y,81:v,82:x,83:b,84:w,85:S,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I,118:C,119:O,120:D,121:P},t(te,[2,48]),t(Ye,[2,114],{103:Qn}),t(on,[2,123],{105:256,10:St,58:gr,81:xn,102:jt,106:rn,107:Er,108:Kn,109:hn}),t(Rn,[2,125]),t(Rn,[2,127]),t(Rn,[2,128]),t(Rn,[2,129]),t(Rn,[2,130]),t(Rn,[2,131]),t(Rn,[2,132]),t(Rn,[2,133]),t(Rn,[2,134]),t(Ye,[2,115],{103:Qn}),{10:[1,257]},t(Ye,[2,116],{103:Qn}),{10:[1,258]},t(It,[2,122]),t(Ye,[2,98],{103:Qn}),t(Ye,[2,99],{110:109,42:g,58:y,86:T,99:E,102:_,103:A,106:L,108:M,111:N,112:k,113:I}),t(Ye,[2,103]),t(Ye,[2,105],{10:[1,259]}),t(Ye,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:$,9:z,11:Y,21:264},t(B,[2,34]),{10:St,58:gr,81:xn,102:jt,104:265,105:230,106:rn,107:Er,108:Kn,109:hn},t(Rn,[2,126]),{14:X,42:ie,58:j,86:J,98:266,102:Z,103:H,106:q,108:K,111:se,112:ce,113:ue,117:84},{14:X,42:ie,58:j,86:J,98:267,102:Z,103:H,106:q,108:K,111:se,112:ce,113:ue,117:84},{95:[1,268]},t(Ye,[2,113]),t(De,[2,53]),{30:269,65:Ve,77:je,78:kt,79:164,113:at,114:xt,115:it},t(De,[2,61]),t(yt,a,{5:270}),t(on,[2,124],{105:256,10:St,58:gr,81:xn,102:jt,106:rn,107:Er,108:Kn,109:hn}),t(Ye,[2,119],{117:160,10:[1,271],14:X,42:ie,58:j,86:J,102:Z,103:H,106:q,108:K,111:se,112:ce,113:ue}),t(Ye,[2,120],{117:160,10:[1,272],14:X,42:ie,58:j,86:J,102:Z,103:H,106:q,108:K,111:se,112:ce,113:ue}),t(Ye,[2,107]),{31:[1,273],65:Ve,79:208,113:at,114:xt,115:it},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,274],33:24,34:d,36:p,38:m,40:28,41:38,42:g,43:39,45:40,58:y,81:v,82:x,83:b,84:w,85:S,86:T,99:E,102:_,103:A,106:L,108:M,110:41,111:N,112:k,113:I,118:C,119:O,120:D,121:P},{10:St,58:gr,81:xn,89:275,102:jt,104:229,105:230,106:rn,107:Er,108:Kn,109:hn},{10:St,58:gr,81:xn,89:276,102:jt,104:229,105:230,106:rn,107:Er,108:Kn,109:hn},t(De,[2,57]),t(B,[2,33]),t(Ye,[2,117],{103:Qn}),t(Ye,[2,118],{103:Qn})],defaultActions:{},parseError:o(function(ht,At){if(At.recoverable)this.trace(ht);else{var $t=new Error(ht);throw $t.hash=At,$t}},"parseError"),parse:o(function(ht){var At=this,$t=[0],rt=[],Ot=[null],pe=[],ur=this.table,be="",Ir=0,Xc=0,M1=0,_b=2,I1=1,O1=pe.slice.call(arguments,1),ci=Object.create(this.lexer),ko={yy:{}};for(var ih in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ih)&&(ko.yy[ih]=this.yy[ih]);ci.setInput(ht,ko.yy),ko.yy.lexer=ci,ko.yy.parser=this,typeof ci.yylloc>"u"&&(ci.yylloc={});var Us=ci.yylloc;pe.push(Us);var ah=ci.options&&ci.options.ranges;typeof ko.yy.parseError=="function"?this.parseError=ko.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Lb(La){$t.length=$t.length-2*La,Ot.length=Ot.length-La,pe.length=pe.length-La}o(Lb,"popStack");function P1(){var La;return La=rt.pop()||ci.lex()||I1,typeof La!="number"&&(La instanceof Array&&(rt=La,La=rt.pop()),La=At.symbols_[La]||La),La}o(P1,"lex");for(var sa,jc,Kc,us,_i,Wl,sh={},zf,Hs,B1,Gf;;){if(Kc=$t[$t.length-1],this.defaultActions[Kc]?us=this.defaultActions[Kc]:((sa===null||typeof sa>"u")&&(sa=P1()),us=ur[Kc]&&ur[Kc][sa]),typeof us>"u"||!us.length||!us[0]){var F1="";Gf=[];for(zf in ur[Kc])this.terminals_[zf]&&zf>_b&&Gf.push("'"+this.terminals_[zf]+"'");ci.showPosition?F1="Parse error on line "+(Ir+1)+`: +`+ci.showPosition()+` +Expecting `+Gf.join(", ")+", got '"+(this.terminals_[sa]||sa)+"'":F1="Parse error on line "+(Ir+1)+": Unexpected "+(sa==I1?"end of input":"'"+(this.terminals_[sa]||sa)+"'"),this.parseError(F1,{text:ci.match,token:this.terminals_[sa]||sa,line:ci.yylineno,loc:Us,expected:Gf})}if(us[0]instanceof Array&&us.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Kc+", token: "+sa);switch(us[0]){case 1:$t.push(sa),Ot.push(ci.yytext),pe.push(ci.yylloc),$t.push(us[1]),sa=null,jc?(sa=jc,jc=null):(Xc=ci.yyleng,be=ci.yytext,Ir=ci.yylineno,Us=ci.yylloc,M1>0&&M1--);break;case 2:if(Hs=this.productions_[us[1]][1],sh.$=Ot[Ot.length-Hs],sh._$={first_line:pe[pe.length-(Hs||1)].first_line,last_line:pe[pe.length-1].last_line,first_column:pe[pe.length-(Hs||1)].first_column,last_column:pe[pe.length-1].last_column},ah&&(sh._$.range=[pe[pe.length-(Hs||1)].range[0],pe[pe.length-1].range[1]]),Wl=this.performAction.apply(sh,[be,Xc,Ir,ko.yy,us[1],Ot,pe].concat(O1)),typeof Wl<"u")return Wl;Hs&&($t=$t.slice(0,-1*Hs*2),Ot=Ot.slice(0,-1*Hs),pe=pe.slice(0,-1*Hs)),$t.push(this.productions_[us[1]][0]),Ot.push(sh.$),pe.push(sh._$),B1=ur[$t[$t.length-2]][$t[$t.length-1]],$t.push(B1);break;case 3:return!0}}return!0},"parse")},_a=function(){var qi={EOF:1,parseError:o(function(At,$t){if(this.yy.parser)this.yy.parser.parseError(At,$t);else throw new Error(At)},"parseError"),setInput:o(function(ht,At){return this.yy=At||this.yy||{},this._input=ht,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var ht=this._input[0];this.yytext+=ht,this.yyleng++,this.offset++,this.match+=ht,this.matched+=ht;var At=ht.match(/(?:\r\n?|\n).*/g);return At?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ht},"input"),unput:o(function(ht){var At=ht.length,$t=ht.split(/(?:\r\n?|\n)/g);this._input=ht+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-At),this.offset-=At;var rt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),$t.length-1&&(this.yylineno-=$t.length-1);var Ot=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:$t?($t.length===rt.length?this.yylloc.first_column:0)+rt[rt.length-$t.length].length-$t[0].length:this.yylloc.first_column-At},this.options.ranges&&(this.yylloc.range=[Ot[0],Ot[0]+this.yyleng-At]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(ht){this.unput(this.match.slice(ht))},"less"),pastInput:o(function(){var ht=this.matched.substr(0,this.matched.length-this.match.length);return(ht.length>20?"...":"")+ht.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var ht=this.match;return ht.length<20&&(ht+=this._input.substr(0,20-ht.length)),(ht.substr(0,20)+(ht.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var ht=this.pastInput(),At=new Array(ht.length+1).join("-");return ht+this.upcomingInput()+` +`+At+"^"},"showPosition"),test_match:o(function(ht,At){var $t,rt,Ot;if(this.options.backtrack_lexer&&(Ot={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ot.yylloc.range=this.yylloc.range.slice(0))),rt=ht[0].match(/(?:\r\n?|\n).*/g),rt&&(this.yylineno+=rt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:rt?rt[rt.length-1].length-rt[rt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ht[0].length},this.yytext+=ht[0],this.match+=ht[0],this.matches=ht,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ht[0].length),this.matched+=ht[0],$t=this.performAction.call(this,this.yy,this,At,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),$t)return $t;if(this._backtrack){for(var pe in Ot)this[pe]=Ot[pe];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ht,At,$t,rt;this._more||(this.yytext="",this.match="");for(var Ot=this._currentRules(),pe=0;peAt[0].length)){if(At=$t,rt=pe,this.options.backtrack_lexer){if(ht=this.test_match($t,Ot[pe]),ht!==!1)return ht;if(this._backtrack){At=!1;continue}else return!1}else if(!this.options.flex)break}return At?(ht=this.test_match(At,Ot[rt]),ht!==!1?ht:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var At=this.next();return At||this.lex()},"lex"),begin:o(function(At){this.conditionStack.push(At)},"begin"),popState:o(function(){var At=this.conditionStack.length-1;return At>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(At){return At=this.conditionStack.length-1-Math.abs(At||0),At>=0?this.conditionStack[At]:"INITIAL"},"topState"),pushState:o(function(At){this.begin(At)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(At,$t,rt,Ot){var pe=Ot;switch(rt){case 0:return this.begin("acc_title"),34;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),36;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return At.lex.firstGraph()&&this.begin("dir"),12;break;case 30:return At.lex.firstGraph()&&this.begin("dir"),12;break;case 31:return At.lex.firstGraph()&&this.begin("dir"),12;break;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;break;case 39:return this.popState(),14;break;case 40:return this.popState(),14;break;case 41:return this.popState(),14;break;case 42:return this.popState(),14;break;case 43:return this.popState(),14;break;case 44:return this.popState(),14;break;case 45:return this.popState(),14;break;case 46:return this.popState(),14;break;case 47:return this.popState(),14;break;case 48:return this.popState(),14;break;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;break;case 62:return this.pushState("edgeText"),73;break;case 63:return 116;case 64:return this.popState(),75;break;case 65:return this.pushState("thickEdgeText"),73;break;case 66:return 116;case 67:return this.popState(),75;break;case 68:return this.pushState("dottedEdgeText"),73;break;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;break;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;break;case 74:return this.popState(),53;break;case 75:return this.pushState("text"),52;break;case 76:return this.popState(),55;break;case 77:return this.pushState("text"),54;break;case 78:return 56;case 79:return this.pushState("text"),65;break;case 80:return this.popState(),62;break;case 81:return this.pushState("text"),61;break;case 82:return this.popState(),47;break;case 83:return this.pushState("text"),46;break;case 84:return this.popState(),67;break;case 85:return this.popState(),69;break;case 86:return 114;case 87:return this.pushState("trapText"),66;break;case 88:return this.pushState("trapText"),68;break;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;break;case 101:return this.pushState("text"),60;break;case 102:return this.popState(),49;break;case 103:return this.pushState("text"),48;break;case 104:return this.popState(),31;break;case 105:return this.pushState("text"),29;break;case 106:return this.popState(),64;break;case 107:return this.pushState("text"),63;break;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return qi}();Ha.lexer=_a;function To(){this.yy={}}return o(To,"Parser"),To.prototype=Ha,Ha.Parser=To,new To}();vD.parser=vD;Xre=vD});var kNe,ENe,Kre,Qre=R(()=>{"use strict";al();kNe=o((t,e)=>{let r=X1,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return Ws(n,i,a,e)},"fade"),ENe=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .rough-node .label text , .node .label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${kNe(t.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),Kre=ENe});var cT={};hr(cT,{diagram:()=>CNe});var CNe,uT=R(()=>{"use strict";_t();f9();qre();jre();Qre();CNe={parser:Xre,db:A5,renderer:Wre,styles:Kre,init:o(t=>{t.flowchart||(t.flowchart={}),t.layout&&iS({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,iS({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),A5.clear(),A5.setGen("gen-2")},"init")}});var xD,rne,nne=R(()=>{"use strict";xD=function(){var t=o(function(A,L,M,N){for(M=M||{},N=A.length;N--;M[A[N]]=L);return M},"o"),e=[6,8,10,20,22,24,26,27,28],r=[1,10],n=[1,11],i=[1,12],a=[1,13],s=[1,14],l=[1,15],u=[1,21],h=[1,22],f=[1,23],d=[1,24],p=[1,25],m=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],g=[1,34],y=[27,28,46,47],v=[41,42,43,44,45],x=[17,34],b=[1,54],w=[1,53],S=[17,34,36,38],T={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:o(function(L,M,N,k,I,C,O){var D=C.length-1;switch(I){case 1:break;case 2:this.$=[];break;case 3:C[D-1].push(C[D]),this.$=C[D-1];break;case 4:case 5:this.$=C[D];break;case 6:case 7:this.$=[];break;case 8:k.addEntity(C[D-4]),k.addEntity(C[D-2]),k.addRelationship(C[D-4],C[D],C[D-2],C[D-3]);break;case 9:k.addEntity(C[D-3]),k.addAttributes(C[D-3],C[D-1]);break;case 10:k.addEntity(C[D-2]);break;case 11:k.addEntity(C[D]);break;case 12:k.addEntity(C[D-6],C[D-4]),k.addAttributes(C[D-6],C[D-1]);break;case 13:k.addEntity(C[D-5],C[D-3]);break;case 14:k.addEntity(C[D-3],C[D-1]);break;case 15:case 16:this.$=C[D].trim(),k.setAccTitle(this.$);break;case 17:case 18:this.$=C[D].trim(),k.setAccDescription(this.$);break;case 19:case 43:this.$=C[D];break;case 20:case 41:case 42:this.$=C[D].replace(/"/g,"");break;case 21:case 29:this.$=[C[D]];break;case 22:C[D].push(C[D-1]),this.$=C[D];break;case 23:this.$={attributeType:C[D-1],attributeName:C[D]};break;case 24:this.$={attributeType:C[D-2],attributeName:C[D-1],attributeKeyTypeList:C[D]};break;case 25:this.$={attributeType:C[D-2],attributeName:C[D-1],attributeComment:C[D]};break;case 26:this.$={attributeType:C[D-3],attributeName:C[D-2],attributeKeyTypeList:C[D-1],attributeComment:C[D]};break;case 27:case 28:case 31:this.$=C[D];break;case 30:C[D-2].push(C[D]),this.$=C[D-2];break;case 32:this.$=C[D].replace(/"/g,"");break;case 33:this.$={cardA:C[D],relType:C[D-1],cardB:C[D-2]};break;case 34:this.$=k.Cardinality.ZERO_OR_ONE;break;case 35:this.$=k.Cardinality.ZERO_OR_MORE;break;case 36:this.$=k.Cardinality.ONE_OR_MORE;break;case 37:this.$=k.Cardinality.ONLY_ONE;break;case 38:this.$=k.Cardinality.MD_PARENT;break;case 39:this.$=k.Identification.NON_IDENTIFYING;break;case 40:this.$=k.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:n,24:i,26:a,27:s,28:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:n,24:i,26:a,27:s,28:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:u,42:h,43:f,44:d,45:p}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(m,[2,19]),t(m,[2,20]),t(e,[2,4]),{11:29,27:s,28:l},{16:30,17:[1,31],29:32,30:33,34:g},{11:35,27:s,28:l},{40:36,46:[1,37],47:[1,38]},t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(y,[2,37]),t(y,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:g},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:u,42:h,43:f,44:d,45:p},t(v,[2,39]),t(v,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(x,[2,23],{32:50,33:51,35:52,37:b,38:w}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(x,[2,24],{33:56,36:[1,57],38:w}),t(x,[2,25]),t(S,[2,29]),t(x,[2,32]),t(S,[2,31]),{16:58,17:[1,59],29:32,30:33,34:g},t(x,[2,26]),{35:60,37:b},{17:[1,61]},t(e,[2,13]),t(S,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:o(function(L,M){if(M.recoverable)this.trace(L);else{var N=new Error(L);throw N.hash=M,N}},"parseError"),parse:o(function(L){var M=this,N=[0],k=[],I=[null],C=[],O=this.table,D="",P=0,F=0,B=0,$=2,z=1,Y=C.slice.call(arguments,1),Q=Object.create(this.lexer),X={yy:{}};for(var ie in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ie)&&(X.yy[ie]=this.yy[ie]);Q.setInput(L,X.yy),X.yy.lexer=Q,X.yy.parser=this,typeof Q.yylloc>"u"&&(Q.yylloc={});var j=Q.yylloc;C.push(j);var J=Q.options&&Q.options.ranges;typeof X.yy.parseError=="function"?this.parseError=X.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Z(Pe){N.length=N.length-2*Pe,I.length=I.length-Pe,C.length=C.length-Pe}o(Z,"popStack");function H(){var Pe;return Pe=k.pop()||Q.lex()||z,typeof Pe!="number"&&(Pe instanceof Array&&(k=Pe,Pe=k.pop()),Pe=M.symbols_[Pe]||Pe),Pe}o(H,"lex");for(var q,K,se,ce,ue,te,De={},oe,ke,Ie,Se;;){if(se=N[N.length-1],this.defaultActions[se]?ce=this.defaultActions[se]:((q===null||typeof q>"u")&&(q=H()),ce=O[se]&&O[se][q]),typeof ce>"u"||!ce.length||!ce[0]){var Ue="";Se=[];for(oe in O[se])this.terminals_[oe]&&oe>$&&Se.push("'"+this.terminals_[oe]+"'");Q.showPosition?Ue="Parse error on line "+(P+1)+`: +`+Q.showPosition()+` +Expecting `+Se.join(", ")+", got '"+(this.terminals_[q]||q)+"'":Ue="Parse error on line "+(P+1)+": Unexpected "+(q==z?"end of input":"'"+(this.terminals_[q]||q)+"'"),this.parseError(Ue,{text:Q.match,token:this.terminals_[q]||q,line:Q.yylineno,loc:j,expected:Se})}if(ce[0]instanceof Array&&ce.length>1)throw new Error("Parse Error: multiple actions possible at state: "+se+", token: "+q);switch(ce[0]){case 1:N.push(q),I.push(Q.yytext),C.push(Q.yylloc),N.push(ce[1]),q=null,K?(q=K,K=null):(F=Q.yyleng,D=Q.yytext,P=Q.yylineno,j=Q.yylloc,B>0&&B--);break;case 2:if(ke=this.productions_[ce[1]][1],De.$=I[I.length-ke],De._$={first_line:C[C.length-(ke||1)].first_line,last_line:C[C.length-1].last_line,first_column:C[C.length-(ke||1)].first_column,last_column:C[C.length-1].last_column},J&&(De._$.range=[C[C.length-(ke||1)].range[0],C[C.length-1].range[1]]),te=this.performAction.apply(De,[D,F,P,X.yy,ce[1],I,C].concat(Y)),typeof te<"u")return te;ke&&(N=N.slice(0,-1*ke*2),I=I.slice(0,-1*ke),C=C.slice(0,-1*ke)),N.push(this.productions_[ce[1]][0]),I.push(De.$),C.push(De._$),Ie=O[N[N.length-2]][N[N.length-1]],N.push(Ie);break;case 3:return!0}}return!0},"parse")},E=function(){var A={EOF:1,parseError:o(function(M,N){if(this.yy.parser)this.yy.parser.parseError(M,N);else throw new Error(M)},"parseError"),setInput:o(function(L,M){return this.yy=M||this.yy||{},this._input=L,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var L=this._input[0];this.yytext+=L,this.yyleng++,this.offset++,this.match+=L,this.matched+=L;var M=L.match(/(?:\r\n?|\n).*/g);return M?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),L},"input"),unput:o(function(L){var M=L.length,N=L.split(/(?:\r\n?|\n)/g);this._input=L+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-M),this.offset-=M;var k=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),N.length-1&&(this.yylineno-=N.length-1);var I=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:N?(N.length===k.length?this.yylloc.first_column:0)+k[k.length-N.length].length-N[0].length:this.yylloc.first_column-M},this.options.ranges&&(this.yylloc.range=[I[0],I[0]+this.yyleng-M]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(L){this.unput(this.match.slice(L))},"less"),pastInput:o(function(){var L=this.matched.substr(0,this.matched.length-this.match.length);return(L.length>20?"...":"")+L.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var L=this.match;return L.length<20&&(L+=this._input.substr(0,20-L.length)),(L.substr(0,20)+(L.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var L=this.pastInput(),M=new Array(L.length+1).join("-");return L+this.upcomingInput()+` +`+M+"^"},"showPosition"),test_match:o(function(L,M){var N,k,I;if(this.options.backtrack_lexer&&(I={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(I.yylloc.range=this.yylloc.range.slice(0))),k=L[0].match(/(?:\r\n?|\n).*/g),k&&(this.yylineno+=k.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:k?k[k.length-1].length-k[k.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+L[0].length},this.yytext+=L[0],this.match+=L[0],this.matches=L,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(L[0].length),this.matched+=L[0],N=this.performAction.call(this,this.yy,this,M,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),N)return N;if(this._backtrack){for(var C in I)this[C]=I[C];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var L,M,N,k;this._more||(this.yytext="",this.match="");for(var I=this._currentRules(),C=0;CM[0].length)){if(M=N,k=C,this.options.backtrack_lexer){if(L=this.test_match(N,I[C]),L!==!1)return L;if(this._backtrack){M=!1;continue}else return!1}else if(!this.options.flex)break}return M?(L=this.test_match(M,I[k]),L!==!1?L:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var M=this.next();return M||this.lex()},"lex"),begin:o(function(M){this.conditionStack.push(M)},"begin"),popState:o(function(){var M=this.conditionStack.length-1;return M>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(M){return M=this.conditionStack.length-1-Math.abs(M||0),M>=0?this.conditionStack[M]:"INITIAL"},"topState"),pushState:o(function(M){this.begin(M)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(M,N,k,I){var C=I;switch(k){case 0:return this.begin("acc_title"),22;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),24;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;break;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;break;case 22:return N.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return N.yytext[0];case 55:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return A}();T.lexer=E;function _(){this.yy={}}return o(_,"Parser"),_.prototype=T,T.Parser=_,new _}();xD.parser=xD;rne=xD});var Hd,bD,NNe,MNe,ine,INe,ONe,PNe,BNe,FNe,ane,sne=R(()=>{"use strict";ut();_t();bi();Hd=new Map,bD=[],NNe={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},MNe={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},ine=o(function(t,e=void 0){return Hd.has(t)?!Hd.get(t).alias&&e&&(Hd.get(t).alias=e,V.info(`Add alias '${e}' to entity '${t}'`)):(Hd.set(t,{attributes:[],alias:e}),V.info("Added new entity :",t)),Hd.get(t)},"addEntity"),INe=o(()=>Hd,"getEntities"),ONe=o(function(t,e){let r=ine(t),n;for(n=e.length-1;n>=0;n--)r.attributes.push(e[n]),V.debug("Added attribute ",e[n].attributeName)},"addAttributes"),PNe=o(function(t,e,r,n){let i={entityA:t,roleA:e,entityB:r,relSpec:n};bD.push(i),V.debug("Added new relationship :",i)},"addRelationship"),BNe=o(()=>bD,"getRelationships"),FNe=o(function(){Hd=new Map,bD=[],vr()},"clear"),ane={Cardinality:NNe,Identification:MNe,getConfig:o(()=>de().er,"getConfig"),addEntity:ine,addAttributes:ONe,getEntities:INe,addRelationship:PNe,getRelationships:BNe,clear:FNe,setAccTitle:kr,getAccTitle:Ar,setAccDescription:_r,getAccDescription:Lr,setDiagramTitle:nn,getDiagramTitle:Xr}});var Dl,zNe,$o,one=R(()=>{"use strict";Dl={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},zNe=o(function(t,e){let r;t.append("defs").append("marker").attr("id",Dl.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",Dl.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",Dl.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",Dl.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",Dl.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",Dl.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",Dl.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",Dl.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),r=t.append("defs").append("marker").attr("id",Dl.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),r=t.append("defs").append("marker").attr("id",Dl.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"insertMarkers"),$o={ERMarkers:Dl,insertMarkers:zNe}});var lne,cne=R(()=>{"use strict";lne=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function GNe(t){return typeof t=="string"&&lne.test(t)}var une,hne=R(()=>{"use strict";cne();o(GNe,"validate");une=GNe});function fne(t,e=0){return va[t[e+0]]+va[t[e+1]]+va[t[e+2]]+va[t[e+3]]+"-"+va[t[e+4]]+va[t[e+5]]+"-"+va[t[e+6]]+va[t[e+7]]+"-"+va[t[e+8]]+va[t[e+9]]+"-"+va[t[e+10]]+va[t[e+11]]+va[t[e+12]]+va[t[e+13]]+va[t[e+14]]+va[t[e+15]]}var va,dne=R(()=>{"use strict";va=[];for(let t=0;t<256;++t)va.push((t+256).toString(16).slice(1));o(fne,"unsafeStringify")});function $Ne(t){if(!une(t))throw TypeError("Invalid UUID");let e,r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=e&255,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=e&255,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=e&255,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=e&255,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=e&255,r}var pne,mne=R(()=>{"use strict";hne();o($Ne,"parse");pne=$Ne});function VNe(t){t=unescape(encodeURIComponent(t));let e=[];for(let r=0;r{"use strict";dne();mne();o(VNe,"stringToBytes");UNe="6ba7b810-9dad-11d1-80b4-00c04fd430c8",HNe="6ba7b811-9dad-11d1-80b4-00c04fd430c8";o(wD,"v35")});function YNe(t,e,r,n){switch(t){case 0:return e&r^~e&n;case 1:return e^r^n;case 2:return e&r^e&n^r&n;case 3:return e^r^n}}function TD(t,e){return t<>>32-e}function WNe(t){let e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){let s=unescape(encodeURIComponent(t));t=[];for(let l=0;l>>0;p=d,d=f,f=TD(h,30)>>>0,h=u,u=y}r[0]=r[0]+u>>>0,r[1]=r[1]+h>>>0,r[2]=r[2]+f>>>0,r[3]=r[3]+d>>>0,r[4]=r[4]+p>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}var yne,vne=R(()=>{"use strict";o(YNe,"f");o(TD,"ROTL");o(WNe,"sha1");yne=WNe});var qNe,kD,xne=R(()=>{"use strict";gne();vne();qNe=wD("v5",80,yne),kD=qNe});var bne=R(()=>{"use strict";xne()});function nMe(t="",e=""){let r=t.replace(XNe,"");return`${Tne(e)}${Tne(r)}${kD(t,rMe)}`}function Tne(t=""){return t.length>0?`${t}-`:""}var XNe,Ii,Fv,jNe,KNe,QNe,ZNe,kne,JNe,wne,eMe,tMe,rMe,Ene,Cne=R(()=>{"use strict";ya();Zt();Vd();_t();ut();xr();one();Yn();rr();bne();XNe=/[^\dA-Za-z](\W)*/g,Ii={},Fv=new Map,jNe=o(function(t){let e=Object.keys(t);for(let r of e)Ii[r]=t[r]},"setConf"),KNe=o((t,e,r)=>{let n=Ii.entityPadding/3,i=Ii.entityPadding/3,a=Ii.fontSize*.85,s=e.node().getBBox(),l=[],u=!1,h=!1,f=0,d=0,p=0,m=0,g=s.height+n*2,y=1;r.forEach(w=>{w.attributeKeyTypeList!==void 0&&w.attributeKeyTypeList.length>0&&(u=!0),w.attributeComment!==void 0&&(h=!0)}),r.forEach(w=>{let S=`${e.node().id}-attr-${y}`,T=0,E=gh(w.attributeType),_=t.append("text").classed("er entityLabel",!0).attr("id",`${S}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(E),A=t.append("text").classed("er entityLabel",!0).attr("id",`${S}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(w.attributeName),L={};L.tn=_,L.nn=A;let M=_.node().getBBox(),N=A.node().getBBox();if(f=Math.max(f,M.width),d=Math.max(d,N.width),T=Math.max(M.height,N.height),u){let k=w.attributeKeyTypeList!==void 0?w.attributeKeyTypeList.join(","):"",I=t.append("text").classed("er entityLabel",!0).attr("id",`${S}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(k);L.kn=I;let C=I.node().getBBox();p=Math.max(p,C.width),T=Math.max(T,C.height)}if(h){let k=t.append("text").classed("er entityLabel",!0).attr("id",`${S}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(w.attributeComment||"");L.cn=k;let I=k.node().getBBox();m=Math.max(m,I.width),T=Math.max(T,I.height)}L.height=T,l.push(L),g+=T+n*2,y+=1});let v=4;u&&(v+=2),h&&(v+=2);let x=f+d+p+m,b={width:Math.max(Ii.minEntityWidth,Math.max(s.width+Ii.entityPadding*2,x+i*v)),height:r.length>0?g:Math.max(Ii.minEntityHeight,s.height+Ii.entityPadding*2)};if(r.length>0){let w=Math.max(0,(b.width-x-i*v)/(v/2));e.attr("transform","translate("+b.width/2+","+(n+s.height/2)+")");let S=s.height+n*2,T="attributeBoxOdd";l.forEach(E=>{let _=S+n+E.height/2;E.tn.attr("transform","translate("+i+","+_+")");let A=t.insert("rect","#"+E.tn.node().id).classed(`er ${T}`,!0).attr("x",0).attr("y",S).attr("width",f+i*2+w).attr("height",E.height+n*2),L=parseFloat(A.attr("x"))+parseFloat(A.attr("width"));E.nn.attr("transform","translate("+(L+i)+","+_+")");let M=t.insert("rect","#"+E.nn.node().id).classed(`er ${T}`,!0).attr("x",L).attr("y",S).attr("width",d+i*2+w).attr("height",E.height+n*2),N=parseFloat(M.attr("x"))+parseFloat(M.attr("width"));if(u){E.kn.attr("transform","translate("+(N+i)+","+_+")");let k=t.insert("rect","#"+E.kn.node().id).classed(`er ${T}`,!0).attr("x",N).attr("y",S).attr("width",p+i*2+w).attr("height",E.height+n*2);N=parseFloat(k.attr("x"))+parseFloat(k.attr("width"))}h&&(E.cn.attr("transform","translate("+(N+i)+","+_+")"),t.insert("rect","#"+E.cn.node().id).classed(`er ${T}`,"true").attr("x",N).attr("y",S).attr("width",m+i*2+w).attr("height",E.height+n*2)),S+=E.height+n*2,T=T==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else b.height=Math.max(Ii.minEntityHeight,g),e.attr("transform","translate("+b.width/2+","+b.height/2+")");return b},"drawAttributes"),QNe=o(function(t,e,r){let n=[...e.keys()],i;return n.forEach(function(a){let s=nMe(a,"entity");Fv.set(a,s);let l=t.append("g").attr("id",s);i=i===void 0?s:i;let u="text-"+s,h=l.append("text").classed("er entityLabel",!0).attr("id",u).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",de().fontFamily).style("font-size",Ii.fontSize+"px").text(e.get(a).alias??a),{width:f,height:d}=KNe(l,h,e.get(a).attributes),m=l.insert("rect","#"+u).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",f).attr("height",d).node().getBBox();r.setNode(s,{width:m.width,height:m.height,shape:"rect",id:s})}),i},"drawEntities"),ZNe=o(function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )")})},"adjustEntities"),kne=o(function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},"getEdgeName"),JNe=o(function(t,e){return t.forEach(function(r){e.setEdge(Fv.get(r.entityA),Fv.get(r.entityB),{relationship:r},kne(r))}),t},"addRelationships"),wne=0,eMe=o(function(t,e,r,n,i){wne++;let a=r.edge(Fv.get(e.entityA),Fv.get(e.entityB),kne(e)),s=ha().x(function(y){return y.x}).y(function(y){return y.y}).curve(vs),l=t.insert("path","#"+n).classed("er relationshipLine",!0).attr("d",s(a.points)).style("stroke",Ii.stroke).style("fill","none");e.relSpec.relType===i.db.Identification.NON_IDENTIFYING&&l.attr("stroke-dasharray","8,8");let u="";switch(Ii.arrowMarkerAbsolute&&(u=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,u=u.replace(/\(/g,"\\("),u=u.replace(/\)/g,"\\)")),e.relSpec.cardA){case i.db.Cardinality.ZERO_OR_ONE:l.attr("marker-end","url("+u+"#"+$o.ERMarkers.ZERO_OR_ONE_END+")");break;case i.db.Cardinality.ZERO_OR_MORE:l.attr("marker-end","url("+u+"#"+$o.ERMarkers.ZERO_OR_MORE_END+")");break;case i.db.Cardinality.ONE_OR_MORE:l.attr("marker-end","url("+u+"#"+$o.ERMarkers.ONE_OR_MORE_END+")");break;case i.db.Cardinality.ONLY_ONE:l.attr("marker-end","url("+u+"#"+$o.ERMarkers.ONLY_ONE_END+")");break;case i.db.Cardinality.MD_PARENT:l.attr("marker-end","url("+u+"#"+$o.ERMarkers.MD_PARENT_END+")");break}switch(e.relSpec.cardB){case i.db.Cardinality.ZERO_OR_ONE:l.attr("marker-start","url("+u+"#"+$o.ERMarkers.ZERO_OR_ONE_START+")");break;case i.db.Cardinality.ZERO_OR_MORE:l.attr("marker-start","url("+u+"#"+$o.ERMarkers.ZERO_OR_MORE_START+")");break;case i.db.Cardinality.ONE_OR_MORE:l.attr("marker-start","url("+u+"#"+$o.ERMarkers.ONE_OR_MORE_START+")");break;case i.db.Cardinality.ONLY_ONE:l.attr("marker-start","url("+u+"#"+$o.ERMarkers.ONLY_ONE_START+")");break;case i.db.Cardinality.MD_PARENT:l.attr("marker-start","url("+u+"#"+$o.ERMarkers.MD_PARENT_START+")");break}let h=l.node().getTotalLength(),f=l.node().getPointAtLength(h*.5),d="rel"+wne,p=e.roleA.split(/
    /g),m=t.append("text").classed("er relationshipLabel",!0).attr("id",d).attr("x",f.x).attr("y",f.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",de().fontFamily).style("font-size",Ii.fontSize+"px");if(p.length==1)m.text(e.roleA);else{let y=-(p.length-1)*.5;p.forEach((v,x)=>{m.append("tspan").attr("x",f.x).attr("dy",`${x===0?y:1}em`).text(v)})}let g=m.node().getBBox();t.insert("rect","#"+d).classed("er relationshipLabelBox",!0).attr("x",f.x-g.width/2).attr("y",f.y-g.height/2).attr("width",g.width).attr("height",g.height)},"drawRelationshipFromLayout"),tMe=o(function(t,e,r,n){Ii=de().er,V.info("Drawing ER diagram");let i=de().securityLevel,a;i==="sandbox"&&(a=$e("#i"+e));let l=(i==="sandbox"?$e(a.nodes()[0].contentDocument.body):$e("body")).select(`[id='${e}']`);$o.insertMarkers(l,Ii);let u;u=new lr({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:Ii.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let h=QNe(l,n.db.getEntities(),u),f=JNe(n.db.getRelationships(),u);lo(u),ZNe(l,u),f.forEach(function(y){eMe(l,y,u,h,n)});let d=Ii.diagramPadding;Lt.insertTitle(l,"entityTitleText",Ii.titleTopMargin,n.db.getDiagramTitle());let p=l.node().getBBox(),m=p.width+d*2,g=p.height+d*2;Sr(l,g,m,Ii.useMaxWidth),l.attr("viewBox",`${p.x-d} ${p.y-d} ${m} ${g}`)},"draw"),rMe="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";o(nMe,"generateId");o(Tne,"strWithHyphen");Ene={setConf:jNe,draw:tMe}});var iMe,Sne,Ane=R(()=>{"use strict";iMe=o(t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${t.attributeBackgroundColorOdd}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxEven { + fill: ${t.attributeBackgroundColorEven}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${t.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + +`,"getStyles"),Sne=iMe});var _ne={};hr(_ne,{diagram:()=>aMe});var aMe,Lne=R(()=>{"use strict";nne();sne();Cne();Ane();aMe={parser:rne,db:ane,renderer:Ene,styles:Sne}});function Xn(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function xa(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function ED(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function Wd(t){return typeof t=="object"&&t!==null&&Xn(t.container)&&xa(t.reference)&&typeof t.message=="string"}function co(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function ef(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function zv(t){return co(t)&&typeof t.fullText=="string"}var Yd,Vo=R(()=>{"use strict";o(Xn,"isAstNode");o(xa,"isReference");o(ED,"isAstNodeDescription");o(Wd,"isLinkingError");Yd=class{static{o(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,r){return Xn(e)&&this.isSubtype(e.$type,r)}isSubtype(e,r){if(e===r)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});let i=n[r];if(i!==void 0)return i;{let a=this.computeIsSubtype(e,r);return n[r]=a,a}}getAllSubTypes(e){let r=this.allSubtypes[e];if(r)return r;{let n=this.getAllTypes(),i=[];for(let a of n)this.isSubtype(a,e)&&i.push(a);return this.allSubtypes[e]=i,i}}};o(co,"isCompositeCstNode");o(ef,"isLeafCstNode");o(zv,"isRootCstNode")});function cMe(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function hT(t){return!!t&&typeof t[Symbol.iterator]=="function"}function Kr(...t){if(t.length===1){let e=t[0];if(e instanceof uo)return e;if(hT(e))return new uo(()=>e[Symbol.iterator](),r=>r.next());if(typeof e.length=="number")return new uo(()=>({index:0}),r=>r.index1?new uo(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){let r=e.iterator.next();if(!r.done)return r;e.iterator=void 0}if(e.array){if(e.arrIndex{"use strict";uo=class t{static{o(this,"StreamImpl")}constructor(e,r){this.startFn=e,this.nextFn=r}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),r=0,n=e.next();for(;!n.done;)r++,n=e.next();return r}toArray(){let e=[],r=this.iterator(),n;do n=r.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,r){let n=this.map(i=>[e?e(i):i,r?r(i):i]);return new Map(n)}toString(){return this.join()}concat(e){let r=e[Symbol.iterator]();return new t(()=>({first:this.startFn(),firstDone:!1}),n=>{let i;if(!n.firstDone){do if(i=this.nextFn(n.first),!i.done)return i;while(!i.done);n.firstDone=!0}do if(i=r.next(),!i.done)return i;while(!i.done);return Ja})}join(e=","){let r=this.iterator(),n="",i,a=!1;do i=r.next(),i.done||(a&&(n+=e),n+=cMe(i.value)),a=!0;while(!i.done);return n}indexOf(e,r=0){let n=this.iterator(),i=0,a=n.next();for(;!a.done;){if(i>=r&&a.value===e)return i;a=n.next(),i++}return-1}every(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(!e(n.value))return!1;n=r.next()}return!0}some(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return!0;n=r.next()}return!1}forEach(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;)e(i.value,n),i=r.next(),n++}map(e){return new t(this.startFn,r=>{let{done:n,value:i}=this.nextFn(r);return n?Ja:{done:!1,value:e(i)}})}filter(e){return new t(this.startFn,r=>{let n;do if(n=this.nextFn(r),!n.done&&e(n.value))return n;while(!n.done);return Ja})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,r){let n=this.iterator(),i=r,a=n.next();for(;!a.done;)i===void 0?i=a.value:i=e(i,a.value),a=n.next();return i}reduceRight(e,r){return this.recursiveReduce(this.iterator(),e,r)}recursiveReduce(e,r,n){let i=e.next();if(i.done)return n;let a=this.recursiveReduce(e,r,n);return a===void 0?i.value:r(a,i.value)}find(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return n.value;n=r.next()}}findIndex(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(e(i.value))return n;i=r.next(),n++}return-1}includes(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(n.value===e)return!0;n=r.next()}return!1}flatMap(e){return new t(()=>({this:this.startFn()}),r=>{do{if(r.iterator){let a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}let{done:n,value:i}=this.nextFn(r.this);if(!n){let a=e(i);if(hT(a))r.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(r.iterator);return Ja})}flat(e){if(e===void 0&&(e=1),e<=0)return this;let r=e>1?this.flat(e-1):this;return new t(()=>({this:r.startFn()}),n=>{do{if(n.iterator){let s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}let{done:i,value:a}=r.nextFn(n.this);if(!i)if(hT(a))n.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}while(n.iterator);return Ja})}head(){let r=this.iterator().next();if(!r.done)return r.value}tail(e=1){return new t(()=>{let r=this.startFn();for(let n=0;n({size:0,state:this.startFn()}),r=>(r.size++,r.size>e?Ja:this.nextFn(r.state)))}distinct(e){let r=new Set;return this.filter(n=>{let i=e?e(n):n;return r.has(i)?!1:(r.add(i),!0)})}exclude(e,r){let n=new Set;for(let i of e){let a=r?r(i):i;n.add(a)}return this.filter(i=>{let a=r?r(i):i;return!n.has(a)})}};o(cMe,"toString");o(hT,"isIterable");Gv=new uo(()=>{},()=>Ja),Ja=Object.freeze({done:!0,value:void 0});o(Kr,"stream");Cc=class extends uo{static{o(this,"TreeStreamImpl")}constructor(e,r,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[r(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(r(s.value)[Symbol.iterator]()),s}return Ja})}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),prune:o(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};(function(t){function e(a){return a.reduce((s,l)=>s+l,0)}o(e,"sum"),t.sum=e;function r(a){return a.reduce((s,l)=>s*l,0)}o(r,"product"),t.product=r;function n(a){return a.reduce((s,l)=>Math.min(s,l))}o(n,"min"),t.min=n;function i(a){return a.reduce((s,l)=>Math.max(s,l))}o(i,"max"),t.max=i})(Fm||(Fm={}))});var dT={};hr(dT,{DefaultNameRegexp:()=>fT,RangeComparison:()=>Mu,compareRange:()=>Mne,findCommentNode:()=>_D,findDeclarationNodeAtOffset:()=>hMe,findLeafNodeAtOffset:()=>LD,findLeafNodeBeforeOffset:()=>Ine,flattenCst:()=>uMe,getInteriorNodes:()=>pMe,getNextNode:()=>fMe,getPreviousNode:()=>Pne,getStartlineNode:()=>dMe,inRange:()=>AD,isChildNode:()=>SD,isCommentNode:()=>CD,streamCst:()=>qd,toDocumentSegment:()=>Xd,tokenToRange:()=>zm});function qd(t){return new Cc(t,e=>co(e)?e.content:[],{includeRoot:!0})}function uMe(t){return qd(t).filter(ef)}function SD(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function zm(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Xd(t){if(!t)return;let{offset:e,end:r,range:n}=t;return{range:n,offset:e,end:r,length:r-e}}function Mne(t,e){if(t.end.linee.end.line||t.start.line===e.end.line&&t.start.character>e.end.character)return Mu.After;let r=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,n=t.end.lineMu.After}function hMe(t,e,r=fT){if(t){if(e>0){let n=e-t.offset,i=t.text.charAt(n);r.test(i)||e--}return LD(t,e)}}function _D(t,e){if(t){let r=Pne(t,!0);if(r&&CD(r,e))return r;if(zv(t)){let n=t.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let a=t.content[i];if(CD(a,e))return a}}}}function CD(t,e){return ef(t)&&e.includes(t.tokenType.name)}function LD(t,e){if(ef(t))return t;if(co(t)){let r=One(t,e,!1);if(r)return LD(r,e)}}function Ine(t,e){if(ef(t))return t;if(co(t)){let r=One(t,e,!0);if(r)return Ine(r,e)}}function One(t,e,r){let n=0,i=t.content.length-1,a;for(;n<=i;){let s=Math.floor((n+i)/2),l=t.content[s];if(l.offset<=e&&l.end>e)return l;l.end<=e?(a=r?l:void 0,n=s+1):i=s-1}return a}function Pne(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t);for(;n>0;){n--;let i=r.content[n];if(e||!i.hidden)return i}t=r}}function fMe(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t),i=r.content.length-1;for(;n{"use strict";Vo();Ds();o(qd,"streamCst");o(uMe,"flattenCst");o(SD,"isChildNode");o(zm,"tokenToRange");o(Xd,"toDocumentSegment");(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside"})(Mu||(Mu={}));o(Mne,"compareRange");o(AD,"inRange");fT=/^[\w\p{L}]$/u;o(hMe,"findDeclarationNodeAtOffset");o(_D,"findCommentNode");o(CD,"isCommentNode");o(LD,"findLeafNodeAtOffset");o(Ine,"findLeafNodeBeforeOffset");o(One,"binarySearch");o(Pne,"getPreviousNode");o(fMe,"getNextNode");o(dMe,"getStartlineNode");o(pMe,"getInteriorNodes");o(mMe,"getCommonParent");o(Nne,"getParentChain")});function tf(t){throw new Error("Error! The input value was not handled.")}var jd,pT=R(()=>{"use strict";jd=class extends Error{static{o(this,"ErrorWithLocation")}constructor(e,r){super(e?`${r} at ${e.range.start.line}:${e.range.start.character}`:r)}};o(tf,"assertUnreachable")});var Yv={};hr(Yv,{AbstractElement:()=>RD,AbstractRule:()=>$v,AbstractType:()=>Vv,Action:()=>aR,Alternatives:()=>sR,ArrayLiteral:()=>ND,ArrayType:()=>MD,Assignment:()=>oR,BooleanLiteral:()=>OD,CharacterRange:()=>lR,Condition:()=>mT,Conjunction:()=>BD,CrossReference:()=>uR,Disjunction:()=>zD,EndOfFile:()=>hR,Grammar:()=>$D,GrammarImport:()=>Fne,Group:()=>dR,InferredType:()=>VD,Interface:()=>UD,Keyword:()=>pR,LangiumGrammarAstReflection:()=>Gm,LangiumGrammarTerminals:()=>gMe,NamedArgument:()=>zne,NegatedToken:()=>mR,Negation:()=>HD,NumberLiteral:()=>WD,Parameter:()=>qD,ParameterReference:()=>XD,ParserRule:()=>KD,ReferenceType:()=>QD,RegexToken:()=>yR,ReturnType:()=>Gne,RuleCall:()=>xR,SimpleType:()=>eR,StringLiteral:()=>tR,TerminalAlternatives:()=>bR,TerminalGroup:()=>TR,TerminalRule:()=>yT,TerminalRuleCall:()=>ER,Type:()=>rR,TypeAttribute:()=>$ne,TypeDefinition:()=>DD,UnionType:()=>nR,UnorderedGroup:()=>CR,UntilToken:()=>SR,ValueLiteral:()=>gT,Wildcard:()=>_R,isAbstractElement:()=>Uv,isAbstractRule:()=>yMe,isAbstractType:()=>vMe,isAction:()=>Iu,isAlternatives:()=>wT,isArrayLiteral:()=>kMe,isArrayType:()=>ID,isAssignment:()=>Nl,isBooleanLiteral:()=>PD,isCharacterRange:()=>cR,isCondition:()=>xMe,isConjunction:()=>FD,isCrossReference:()=>Kd,isDisjunction:()=>GD,isEndOfFile:()=>fR,isFeatureName:()=>bMe,isGrammar:()=>EMe,isGrammarImport:()=>CMe,isGroup:()=>rf,isInferredType:()=>vT,isInterface:()=>xT,isKeyword:()=>Ho,isNamedArgument:()=>SMe,isNegatedToken:()=>gR,isNegation:()=>YD,isNumberLiteral:()=>AMe,isParameter:()=>_Me,isParameterReference:()=>jD,isParserRule:()=>Oa,isPrimitiveType:()=>Bne,isReferenceType:()=>ZD,isRegexToken:()=>vR,isReturnType:()=>JD,isRuleCall:()=>Ml,isSimpleType:()=>bT,isStringLiteral:()=>LMe,isTerminalAlternatives:()=>wR,isTerminalGroup:()=>kR,isTerminalRule:()=>Uo,isTerminalRuleCall:()=>TT,isType:()=>Hv,isTypeAttribute:()=>DMe,isTypeDefinition:()=>wMe,isUnionType:()=>iR,isUnorderedGroup:()=>kT,isUntilToken:()=>AR,isValueLiteral:()=>TMe,isWildcard:()=>LR,reflection:()=>Kt});function yMe(t){return Kt.isInstance(t,$v)}function vMe(t){return Kt.isInstance(t,Vv)}function xMe(t){return Kt.isInstance(t,mT)}function bMe(t){return Bne(t)||t==="current"||t==="entry"||t==="extends"||t==="false"||t==="fragment"||t==="grammar"||t==="hidden"||t==="import"||t==="interface"||t==="returns"||t==="terminal"||t==="true"||t==="type"||t==="infer"||t==="infers"||t==="with"||typeof t=="string"&&/\^?[_a-zA-Z][\w_]*/.test(t)}function Bne(t){return t==="string"||t==="number"||t==="boolean"||t==="Date"||t==="bigint"}function wMe(t){return Kt.isInstance(t,DD)}function TMe(t){return Kt.isInstance(t,gT)}function Uv(t){return Kt.isInstance(t,RD)}function kMe(t){return Kt.isInstance(t,ND)}function ID(t){return Kt.isInstance(t,MD)}function PD(t){return Kt.isInstance(t,OD)}function FD(t){return Kt.isInstance(t,BD)}function GD(t){return Kt.isInstance(t,zD)}function EMe(t){return Kt.isInstance(t,$D)}function CMe(t){return Kt.isInstance(t,Fne)}function vT(t){return Kt.isInstance(t,VD)}function xT(t){return Kt.isInstance(t,UD)}function SMe(t){return Kt.isInstance(t,zne)}function YD(t){return Kt.isInstance(t,HD)}function AMe(t){return Kt.isInstance(t,WD)}function _Me(t){return Kt.isInstance(t,qD)}function jD(t){return Kt.isInstance(t,XD)}function Oa(t){return Kt.isInstance(t,KD)}function ZD(t){return Kt.isInstance(t,QD)}function JD(t){return Kt.isInstance(t,Gne)}function bT(t){return Kt.isInstance(t,eR)}function LMe(t){return Kt.isInstance(t,tR)}function Uo(t){return Kt.isInstance(t,yT)}function Hv(t){return Kt.isInstance(t,rR)}function DMe(t){return Kt.isInstance(t,$ne)}function iR(t){return Kt.isInstance(t,nR)}function Iu(t){return Kt.isInstance(t,aR)}function wT(t){return Kt.isInstance(t,sR)}function Nl(t){return Kt.isInstance(t,oR)}function cR(t){return Kt.isInstance(t,lR)}function Kd(t){return Kt.isInstance(t,uR)}function fR(t){return Kt.isInstance(t,hR)}function rf(t){return Kt.isInstance(t,dR)}function Ho(t){return Kt.isInstance(t,pR)}function gR(t){return Kt.isInstance(t,mR)}function vR(t){return Kt.isInstance(t,yR)}function Ml(t){return Kt.isInstance(t,xR)}function wR(t){return Kt.isInstance(t,bR)}function kR(t){return Kt.isInstance(t,TR)}function TT(t){return Kt.isInstance(t,ER)}function kT(t){return Kt.isInstance(t,CR)}function AR(t){return Kt.isInstance(t,SR)}function LR(t){return Kt.isInstance(t,_R)}var gMe,$v,Vv,mT,DD,gT,RD,ND,MD,OD,BD,zD,$D,Fne,VD,UD,zne,HD,WD,qD,XD,KD,QD,Gne,eR,tR,yT,rR,$ne,nR,aR,sR,oR,lR,uR,hR,dR,pR,mR,yR,xR,bR,TR,ER,CR,SR,_R,Gm,Kt,Sc=R(()=>{"use strict";Vo();gMe={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},$v="AbstractRule";o(yMe,"isAbstractRule");Vv="AbstractType";o(vMe,"isAbstractType");mT="Condition";o(xMe,"isCondition");o(bMe,"isFeatureName");o(Bne,"isPrimitiveType");DD="TypeDefinition";o(wMe,"isTypeDefinition");gT="ValueLiteral";o(TMe,"isValueLiteral");RD="AbstractElement";o(Uv,"isAbstractElement");ND="ArrayLiteral";o(kMe,"isArrayLiteral");MD="ArrayType";o(ID,"isArrayType");OD="BooleanLiteral";o(PD,"isBooleanLiteral");BD="Conjunction";o(FD,"isConjunction");zD="Disjunction";o(GD,"isDisjunction");$D="Grammar";o(EMe,"isGrammar");Fne="GrammarImport";o(CMe,"isGrammarImport");VD="InferredType";o(vT,"isInferredType");UD="Interface";o(xT,"isInterface");zne="NamedArgument";o(SMe,"isNamedArgument");HD="Negation";o(YD,"isNegation");WD="NumberLiteral";o(AMe,"isNumberLiteral");qD="Parameter";o(_Me,"isParameter");XD="ParameterReference";o(jD,"isParameterReference");KD="ParserRule";o(Oa,"isParserRule");QD="ReferenceType";o(ZD,"isReferenceType");Gne="ReturnType";o(JD,"isReturnType");eR="SimpleType";o(bT,"isSimpleType");tR="StringLiteral";o(LMe,"isStringLiteral");yT="TerminalRule";o(Uo,"isTerminalRule");rR="Type";o(Hv,"isType");$ne="TypeAttribute";o(DMe,"isTypeAttribute");nR="UnionType";o(iR,"isUnionType");aR="Action";o(Iu,"isAction");sR="Alternatives";o(wT,"isAlternatives");oR="Assignment";o(Nl,"isAssignment");lR="CharacterRange";o(cR,"isCharacterRange");uR="CrossReference";o(Kd,"isCrossReference");hR="EndOfFile";o(fR,"isEndOfFile");dR="Group";o(rf,"isGroup");pR="Keyword";o(Ho,"isKeyword");mR="NegatedToken";o(gR,"isNegatedToken");yR="RegexToken";o(vR,"isRegexToken");xR="RuleCall";o(Ml,"isRuleCall");bR="TerminalAlternatives";o(wR,"isTerminalAlternatives");TR="TerminalGroup";o(kR,"isTerminalGroup");ER="TerminalRuleCall";o(TT,"isTerminalRuleCall");CR="UnorderedGroup";o(kT,"isUnorderedGroup");SR="UntilToken";o(AR,"isUntilToken");_R="Wildcard";o(LR,"isWildcard");Gm=class extends Yd{static{o(this,"LangiumGrammarAstReflection")}getAllTypes(){return["AbstractElement","AbstractRule","AbstractType","Action","Alternatives","ArrayLiteral","ArrayType","Assignment","BooleanLiteral","CharacterRange","Condition","Conjunction","CrossReference","Disjunction","EndOfFile","Grammar","GrammarImport","Group","InferredType","Interface","Keyword","NamedArgument","NegatedToken","Negation","NumberLiteral","Parameter","ParameterReference","ParserRule","ReferenceType","RegexToken","ReturnType","RuleCall","SimpleType","StringLiteral","TerminalAlternatives","TerminalGroup","TerminalRule","TerminalRuleCall","Type","TypeAttribute","TypeDefinition","UnionType","UnorderedGroup","UntilToken","ValueLiteral","Wildcard"]}computeIsSubtype(e,r){switch(e){case aR:case sR:case oR:case lR:case uR:case hR:case dR:case pR:case mR:case yR:case xR:case bR:case TR:case ER:case CR:case SR:case _R:return this.isSubtype(RD,r);case ND:case WD:case tR:return this.isSubtype(gT,r);case MD:case QD:case eR:case nR:return this.isSubtype(DD,r);case OD:return this.isSubtype(mT,r)||this.isSubtype(gT,r);case BD:case zD:case HD:case XD:return this.isSubtype(mT,r);case VD:case UD:case rR:return this.isSubtype(Vv,r);case KD:return this.isSubtype($v,r)||this.isSubtype(Vv,r);case yT:return this.isSubtype($v,r);default:return!1}}getReferenceType(e){let r=`${e.container.$type}:${e.property}`;switch(r){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Vv;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return $v;case"Grammar:usedGrammars":return $D;case"NamedArgument:parameter":case"ParameterReference:parameter":return qD;case"TerminalRuleCall:rule":return yT;default:throw new Error(`${r} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case"AbstractElement":return{name:"AbstractElement",properties:[{name:"cardinality"},{name:"lookahead"}]};case"ArrayLiteral":return{name:"ArrayLiteral",properties:[{name:"elements",defaultValue:[]}]};case"ArrayType":return{name:"ArrayType",properties:[{name:"elementType"}]};case"BooleanLiteral":return{name:"BooleanLiteral",properties:[{name:"true",defaultValue:!1}]};case"Conjunction":return{name:"Conjunction",properties:[{name:"left"},{name:"right"}]};case"Disjunction":return{name:"Disjunction",properties:[{name:"left"},{name:"right"}]};case"Grammar":return{name:"Grammar",properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case"GrammarImport":return{name:"GrammarImport",properties:[{name:"path"}]};case"InferredType":return{name:"InferredType",properties:[{name:"name"}]};case"Interface":return{name:"Interface",properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case"NamedArgument":return{name:"NamedArgument",properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case"Negation":return{name:"Negation",properties:[{name:"value"}]};case"NumberLiteral":return{name:"NumberLiteral",properties:[{name:"value"}]};case"Parameter":return{name:"Parameter",properties:[{name:"name"}]};case"ParameterReference":return{name:"ParameterReference",properties:[{name:"parameter"}]};case"ParserRule":return{name:"ParserRule",properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case"ReferenceType":return{name:"ReferenceType",properties:[{name:"referenceType"}]};case"ReturnType":return{name:"ReturnType",properties:[{name:"name"}]};case"SimpleType":return{name:"SimpleType",properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case"StringLiteral":return{name:"StringLiteral",properties:[{name:"value"}]};case"TerminalRule":return{name:"TerminalRule",properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case"Type":return{name:"Type",properties:[{name:"name"},{name:"type"}]};case"TypeAttribute":return{name:"TypeAttribute",properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case"UnionType":return{name:"UnionType",properties:[{name:"types",defaultValue:[]}]};case"Action":return{name:"Action",properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case"Alternatives":return{name:"Alternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"Assignment":return{name:"Assignment",properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case"CharacterRange":return{name:"CharacterRange",properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case"CrossReference":return{name:"CrossReference",properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case"EndOfFile":return{name:"EndOfFile",properties:[{name:"cardinality"},{name:"lookahead"}]};case"Group":return{name:"Group",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case"Keyword":return{name:"Keyword",properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case"NegatedToken":return{name:"NegatedToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"RegexToken":return{name:"RegexToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case"RuleCall":return{name:"RuleCall",properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"TerminalAlternatives":return{name:"TerminalAlternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalGroup":return{name:"TerminalGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalRuleCall":return{name:"TerminalRuleCall",properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"UnorderedGroup":return{name:"UnorderedGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"UntilToken":return{name:"UntilToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"Wildcard":return{name:"Wildcard",properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},Kt=new Gm});var CT={};hr(CT,{assignMandatoryProperties:()=>NR,copyAstNode:()=>RR,findLocalReferences:()=>NMe,findRootNode:()=>Vne,getContainerOfType:()=>Qd,getDocument:()=>Oi,hasContainerOfType:()=>RMe,linkContentToContainer:()=>ET,streamAllContents:()=>Ac,streamAst:()=>Yo,streamContents:()=>Wv,streamReferences:()=>$m});function ET(t){for(let[e,r]of Object.entries(t))e.startsWith("$")||(Array.isArray(r)?r.forEach((n,i)=>{Xn(n)&&(n.$container=t,n.$containerProperty=e,n.$containerIndex=i)}):Xn(r)&&(r.$container=t,r.$containerProperty=e))}function Qd(t,e){let r=t;for(;r;){if(e(r))return r;r=r.$container}}function RMe(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.$container}return!1}function Oi(t){let r=Vne(t).$document;if(!r)throw new Error("AST node has no document.");return r}function Vne(t){for(;t.$container;)t=t.$container;return t}function Wv(t,e){if(!t)throw new Error("Node must be an AstNode.");let r=e?.range;return new uo(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndexWv(r,e))}function Yo(t,e){if(t){if(e?.range&&!DR(t,e.range))return new Cc(t,()=>[])}else throw new Error("Root node must be an AstNode.");return new Cc(t,r=>Wv(r,e),{includeRoot:!0})}function DR(t,e){var r;if(!e)return!0;let n=(r=t.$cstNode)===null||r===void 0?void 0:r.range;return n?AD(n,e):!1}function $m(t){return new uo(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex{$m(n).forEach(i=>{i.reference.ref===t&&r.push(i.reference)})}),Kr(r)}function NR(t,e){let r=t.getTypeMetaData(e.$type),n=e;for(let i of r.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=Une(i.defaultValue))}function Une(t){return Array.isArray(t)?[...t.map(Une)]:t}function RR(t,e){let r={$type:t.$type};for(let[n,i]of Object.entries(t))if(!n.startsWith("$"))if(Xn(i))r[n]=RR(i,e);else if(xa(i))r[n]=e(r,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let a=[];for(let s of i)Xn(s)?a.push(RR(s,e)):xa(s)?a.push(e(r,n,s.$refNode,s.$refText)):a.push(s);r[n]=a}else r[n]=i;return ET(r),r}var es=R(()=>{"use strict";Vo();Ds();Rl();o(ET,"linkContentToContainer");o(Qd,"getContainerOfType");o(RMe,"hasContainerOfType");o(Oi,"getDocument");o(Vne,"findRootNode");o(Wv,"streamContents");o(Ac,"streamAllContents");o(Yo,"streamAst");o(DR,"isAstNodeInRange");o($m,"streamReferences");o(NMe,"findLocalReferences");o(NR,"assignMandatoryProperties");o(Une,"copyDefaultValue");o(RR,"copyAstNode")});function qt(t){return t.charCodeAt(0)}function ST(t,e){Array.isArray(t)?t.forEach(function(r){e.push(r)}):e.push(t)}function Vm(t,e){if(t[e]===!0)throw"duplicate flag "+e;let r=t[e];t[e]=!0}function Zd(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function qv(){throw Error("Internal Error - Should never get here!")}function MR(t){return t.type==="Character"}var IR=R(()=>{"use strict";o(qt,"cc");o(ST,"insertToSet");o(Vm,"addFlag");o(Zd,"ASSERT_EXISTS");o(qv,"ASSERT_NEVER_REACH_HERE");o(MR,"isCharacter")});var Xv,jv,OR,Hne=R(()=>{"use strict";IR();Xv=[];for(let t=qt("0");t<=qt("9");t++)Xv.push(t);jv=[qt("_")].concat(Xv);for(let t=qt("a");t<=qt("z");t++)jv.push(t);for(let t=qt("A");t<=qt("Z");t++)jv.push(t);OR=[qt(" "),qt("\f"),qt(` +`),qt("\r"),qt(" "),qt("\v"),qt(" "),qt("\xA0"),qt("\u1680"),qt("\u2000"),qt("\u2001"),qt("\u2002"),qt("\u2003"),qt("\u2004"),qt("\u2005"),qt("\u2006"),qt("\u2007"),qt("\u2008"),qt("\u2009"),qt("\u200A"),qt("\u2028"),qt("\u2029"),qt("\u202F"),qt("\u205F"),qt("\u3000"),qt("\uFEFF")]});var MMe,AT,IMe,Jd,Yne=R(()=>{"use strict";IR();Hne();MMe=/[0-9a-fA-F]/,AT=/[0-9]/,IMe=/[1-9]/,Jd=class{static{o(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let r=this.disjunction();this.consumeChar("/");let n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Vm(n,"global");break;case"i":Vm(n,"ignoreCase");break;case"m":Vm(n,"multiLine");break;case"u":Vm(n,"unicode");break;case"y":Vm(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:r,loc:this.loc(0)}}disjunction(){let e=[],r=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(r)}}alternative(){let e=[],r=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(r)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let r;switch(this.popChar()){case"=":r="Lookahead";break;case"!":r="NegativeLookahead";break}Zd(r);let n=this.disjunction();return this.consumeChar(")"),{type:r,value:n,loc:this.loc(e)}}return qv()}quantifier(e=!1){let r,n=this.idx;switch(this.popChar()){case"*":r={atLeast:0,atMost:1/0};break;case"+":r={atLeast:1,atMost:1/0};break;case"?":r={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":r={atLeast:i,atMost:i};break;case",":let a;this.isDigit()?(a=this.integerIncludingZero(),r={atLeast:i,atMost:a}):r={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&r===void 0)return;Zd(r);break}if(!(e===!0&&r===void 0)&&Zd(r))return this.peekChar(0)==="?"?(this.consumeChar("?"),r.greedy=!1):r.greedy=!0,r.type="Quantifier",r.loc=this.loc(n),r}atom(){let e,r=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Zd(e)?(e.loc=this.loc(r),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):qv()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[qt(` +`),qt("\r"),qt("\u2028"),qt("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,r=!1;switch(this.popChar()){case"d":e=Xv;break;case"D":e=Xv,r=!0;break;case"s":e=OR;break;case"S":e=OR,r=!0;break;case"w":e=jv;break;case"W":e=jv,r=!0;break}return Zd(e)?{type:"Set",value:e,complement:r}:qv()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=qt("\f");break;case"n":e=qt(` +`);break;case"r":e=qt("\r");break;case"t":e=qt(" ");break;case"v":e=qt("\v");break}return Zd(e)?{type:"Character",value:e}:qv()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:qt("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let e=this.popChar();return{type:"Character",value:qt(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let e=this.popChar();return{type:"Character",value:qt(e)}}}characterClass(){let e=[],r=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),r=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(MR(n)&&this.isRangeDash()){this.consumeChar("-");let a=this.classAtom(),s=a.type==="Character";if(MR(a)){if(a.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}});var _c,Wne=R(()=>{"use strict";_c=class{static{o(this,"BaseRegExpVisitor")}visitChildren(e){for(let r in e){let n=e[r];e.hasOwnProperty(r)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}});var Kv=R(()=>{"use strict";Yne();Wne()});var LT={};hr(LT,{NEWLINE_REGEXP:()=>BR,escapeRegExp:()=>t0,getCaseInsensitivePattern:()=>zR,getTerminalParts:()=>OMe,isMultilineComment:()=>FR,isWhitespace:()=>_T,partialMatches:()=>GR,partialRegExp:()=>Xne});function OMe(t){try{typeof t!="string"&&(t=t.source),t=`/${t}/`;let e=qne.pattern(t),r=[];for(let n of e.value.value)e0.reset(t),e0.visit(n),r.push({start:e0.startRegexp,end:e0.endRegex});return r}catch{return[]}}function FR(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),e0.reset(t),e0.visit(qne.pattern(t)),e0.multiline}catch{return!1}}function _T(t){return(typeof t=="string"?new RegExp(t):t).test(" ")}function t0(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function zR(t){return Array.prototype.map.call(t,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:t0(e)).join("")}function GR(t,e){let r=Xne(t),n=e.match(r);return!!n&&n[0].length>0}function Xne(t){typeof t=="string"&&(t=new RegExp(t));let e=t,r=t.source,n=0;function i(){let a="",s;function l(h){a+=r.substr(n,h),n+=h}o(l,"appendRaw");function u(h){a+="(?:"+r.substr(n,h)+"|$)",n+=h}for(o(u,"appendOptional");n",n)-n+1);break;default:u(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=n,s=s.exec(r)||[],u(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=n,s=s.exec(r),s?l(s[0].length):u(1);break;case"(":if(r[n+1]==="?")switch(r[n+2]){case":":a+="(?:",n+=3,a+=i()+"|$)";break;case"=":a+="(?=",n+=3,a+=i()+")";break;case"!":s=n,n+=3,i(),a+=r.substr(s,n-s);break;case"<":switch(r[n+3]){case"=":case"!":s=n,n+=4,i(),a+=r.substr(s,n-s);break;default:l(r.indexOf(">",n)-n+1),a+=i()+"|$)";break}break}else l(1),a+=i()+"|$)";break;case")":return++n,a;default:u(1);break}return a}return o(i,"process"),new RegExp(i(),t.flags)}var BR,qne,PR,e0,Um=R(()=>{"use strict";Kv();BR=/\r?\n/gm,qne=new Jd,PR=class extends _c{static{o(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let r=String.fromCharCode(e.value);if(!this.multiline&&r===` +`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=t0(r);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){let r=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(r);this.multiline=!!` +`.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},e0=new PR;o(OMe,"getTerminalParts");o(FR,"isMultilineComment");o(_T,"isWhitespace");o(t0,"escapeRegExp");o(zR,"getCaseInsensitivePattern");o(GR,"partialMatches");o(Xne,"partialRegExp")});var RT={};hr(RT,{findAssignment:()=>jR,findNameAssignment:()=>DT,findNodeForKeyword:()=>qR,findNodeForProperty:()=>Zv,findNodesForKeyword:()=>PMe,findNodesForKeywordInternal:()=>XR,findNodesForProperty:()=>YR,getActionAtElement:()=>Jne,getActionType:()=>tie,getAllReachableRules:()=>Qv,getCrossReferenceTerminal:()=>UR,getEntryRule:()=>jne,getExplicitRuleType:()=>KR,getHiddenRules:()=>Kne,getRuleType:()=>QR,getTypeName:()=>r0,isArrayCardinality:()=>FMe,isArrayOperator:()=>zMe,isCommentTerminal:()=>HR,isDataType:()=>GMe,isDataTypeRule:()=>Jv,isOptionalCardinality:()=>BMe,terminalRegex:()=>Hm});function jne(t){return t.rules.find(e=>Oa(e)&&e.entry)}function Kne(t){return t.rules.filter(e=>Uo(e)&&e.hidden)}function Qv(t,e){let r=new Set,n=jne(t);if(!n)return new Set(t.rules);let i=[n].concat(Kne(t));for(let s of i)Qne(s,r,e);let a=new Set;for(let s of t.rules)(r.has(s.name)||Uo(s)&&s.hidden)&&a.add(s);return a}function Qne(t,e,r){e.add(t.name),Ac(t).forEach(n=>{if(Ml(n)||r&&TT(n)){let i=n.rule.ref;i&&!e.has(i.name)&&Qne(i,e,r)}})}function UR(t){if(t.terminal)return t.terminal;if(t.type.ref){let e=DT(t.type.ref);return e?.terminal}}function HR(t){return t.hidden&&!Hm(t).test(" ")}function YR(t,e){return!t||!e?[]:WR(t,e,t.astNode,!0)}function Zv(t,e,r){if(!t||!e)return;let n=WR(t,e,t.astNode,!0);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function WR(t,e,r,n){if(!n){let i=Qd(t.grammarSource,Nl);if(i&&i.feature===e)return[t]}return co(t)&&t.astNode===r?t.content.flatMap(i=>WR(i,e,r,!1)):[]}function PMe(t,e){return t?XR(t,e,t?.astNode):[]}function qR(t,e,r){if(!t)return;let n=XR(t,e,t?.astNode);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function XR(t,e,r){if(t.astNode!==r)return[];if(Ho(t.grammarSource)&&t.grammarSource.value===e)return[t];let n=qd(t).iterator(),i,a=[];do if(i=n.next(),!i.done){let s=i.value;s.astNode===r?Ho(s.grammarSource)&&s.grammarSource.value===e&&a.push(s):n.prune()}while(!i.done);return a}function jR(t){var e;let r=t.astNode;for(;r===((e=t.container)===null||e===void 0?void 0:e.astNode);){let n=Qd(t.grammarSource,Nl);if(n)return n;t=t.container}}function DT(t){let e=t;return vT(e)&&(Iu(e.$container)?e=e.$container.$container:Oa(e.$container)?e=e.$container:tf(e.$container)),Zne(t,e,new Map)}function Zne(t,e,r){var n;function i(a,s){let l;return Qd(a,Nl)||(l=Zne(s,s,r)),r.set(t,l),l}if(o(i,"go"),r.has(t))return r.get(t);r.set(t,void 0);for(let a of Ac(e)){if(Nl(a)&&a.feature.toLowerCase()==="name")return r.set(t,a),a;if(Ml(a)&&Oa(a.rule.ref))return i(a,a.rule.ref);if(bT(a)&&(!((n=a.typeRef)===null||n===void 0)&&n.ref))return i(a,a.typeRef.ref)}}function Jne(t){let e=t.$container;if(rf(e)){let r=e.elements,n=r.indexOf(t);for(let i=n-1;i>=0;i--){let a=r[i];if(Iu(a))return a;{let s=Ac(r[i]).find(Iu);if(s)return s}}}if(Uv(e))return Jne(e)}function BMe(t,e){return t==="?"||t==="*"||rf(e)&&!!e.guardCondition}function FMe(t){return t==="*"||t==="+"}function zMe(t){return t==="+="}function Jv(t){return eie(t,new Set)}function eie(t,e){if(e.has(t))return!0;e.add(t);for(let r of Ac(t))if(Ml(r)){if(!r.rule.ref||Oa(r.rule.ref)&&!eie(r.rule.ref,e))return!1}else{if(Nl(r))return!1;if(Iu(r))return!1}return!!t.definition}function GMe(t){return VR(t.type,new Set)}function VR(t,e){if(e.has(t))return!0;if(e.add(t),ID(t))return!1;if(ZD(t))return!1;if(iR(t))return t.types.every(r=>VR(r,e));if(bT(t)){if(t.primitiveType!==void 0)return!0;if(t.stringType!==void 0)return!0;if(t.typeRef!==void 0){let r=t.typeRef.ref;return Hv(r)?VR(r.type,e):!1}else return!1}else return!1}function KR(t){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){let e=t.returnType.ref;if(e){if(Oa(e))return e.name;if(xT(e)||Hv(e))return e.name}}}function r0(t){var e;if(Oa(t))return Jv(t)?t.name:(e=KR(t))!==null&&e!==void 0?e:t.name;if(xT(t)||Hv(t)||JD(t))return t.name;if(Iu(t)){let r=tie(t);if(r)return r}else if(vT(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function tie(t){var e;if(t.inferredType)return t.inferredType.name;if(!((e=t.type)===null||e===void 0)&&e.ref)return r0(t.type.ref)}function QR(t){var e,r,n;return Uo(t)?(r=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&r!==void 0?r:"string":Jv(t)?t.name:(n=KR(t))!==null&&n!==void 0?n:t.name}function Hm(t){let e={s:!1,i:!1,u:!1},r=Ym(t.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(r,n)}function Ym(t,e){if(wR(t))return $Me(t);if(kR(t))return VMe(t);if(cR(t))return YMe(t);if(TT(t)){let r=t.rule.ref;if(!r)throw new Error("Missing rule reference.");return Ou(Ym(r.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}else{if(gR(t))return HMe(t);if(AR(t))return UMe(t);if(vR(t)){let r=t.regex.lastIndexOf("/"),n=t.regex.substring(1,r),i=t.regex.substring(r+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Ou(n,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}else{if(LR(t))return Ou(ZR,{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error(`Invalid terminal element: ${t?.$type}`)}}}function $Me(t){return Ou(t.elements.map(e=>Ym(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead})}function VMe(t){return Ou(t.elements.map(e=>Ym(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead})}function UMe(t){return Ou(`${ZR}*?${Ym(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead})}function HMe(t){return Ou(`(?!${Ym(t.terminal)})${ZR}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function YMe(t){return t.right?Ou(`[${$R(t.left)}-${$R(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):Ou($R(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function $R(t){return t0(t.value)}function Ou(t,e){var r;return(e.wrap!==!1||e.lookahead)&&(t=`(${(r=e.lookahead)!==null&&r!==void 0?r:""}${t})`),e.cardinality?`${t}${e.cardinality}`:t}var ZR,Il=R(()=>{"use strict";pT();Sc();Vo();es();Rl();Um();o(jne,"getEntryRule");o(Kne,"getHiddenRules");o(Qv,"getAllReachableRules");o(Qne,"ruleDfs");o(UR,"getCrossReferenceTerminal");o(HR,"isCommentTerminal");o(YR,"findNodesForProperty");o(Zv,"findNodeForProperty");o(WR,"findNodesForPropertyInternal");o(PMe,"findNodesForKeyword");o(qR,"findNodeForKeyword");o(XR,"findNodesForKeywordInternal");o(jR,"findAssignment");o(DT,"findNameAssignment");o(Zne,"findNameAssignmentInternal");o(Jne,"getActionAtElement");o(BMe,"isOptionalCardinality");o(FMe,"isArrayCardinality");o(zMe,"isArrayOperator");o(Jv,"isDataTypeRule");o(eie,"isDataTypeRuleInternal");o(GMe,"isDataType");o(VR,"isDataTypeInternal");o(KR,"getExplicitRuleType");o(r0,"getTypeName");o(tie,"getActionType");o(QR,"getRuleType");o(Hm,"terminalRegex");ZR=/[\s\S]/.source;o(Ym,"abstractElementToRegex");o($Me,"terminalAlternativesToRegex");o(VMe,"terminalGroupToRegex");o(UMe,"untilTokenToRegex");o(HMe,"negateTokenToRegex");o(YMe,"characterRangeToRegex");o($R,"keywordToRegex");o(Ou,"withCardinality")});function JR(t){let e=[],r=t.Grammar;for(let n of r.rules)Uo(n)&&HR(n)&&FR(Hm(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:fT}}var eN=R(()=>{"use strict";Rl();Il();Um();Sc();o(JR,"createGrammarConfig")});var tN=R(()=>{"use strict"});function Wm(t){console&&console.error&&console.error(`Error: ${t}`)}function e2(t){console&&console.warn&&console.warn(`Warning: ${t}`)}var rie=R(()=>{"use strict";o(Wm,"PRINT_ERROR");o(e2,"PRINT_WARNING")});function t2(t){let e=new Date().getTime(),r=t();return{time:new Date().getTime()-e,value:r}}var nie=R(()=>{"use strict";o(t2,"timer")});function r2(t){function e(){}o(e,"FakeConstructor"),e.prototype=t;let r=new e;function n(){return typeof r.bar}return o(n,"fakeAccess"),n(),n(),t;(0,eval)(t)}var iie=R(()=>{"use strict";o(r2,"toFastProperties")});var qm=R(()=>{"use strict";rie();nie();iie()});function WMe(t){return qMe(t)?t.LABEL:t.name}function qMe(t){return di(t.LABEL)&&t.LABEL!==""}function NT(t){return qe(t,Xm)}function Xm(t){function e(r){return qe(r,Xm)}if(o(e,"convertDefinition"),t instanceof Zr){let r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return di(t.label)&&(r.label=t.label),r}else{if(t instanceof Sn)return{type:"Alternative",definition:e(t.definition)};if(t instanceof Jr)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof An)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof _n)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Xm(new fr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof mn)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Xm(new fr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof br)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof gn)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof fr){let r={type:"Terminal",name:t.terminalType.name,label:WMe(t.terminalType),idx:t.idx};di(t.label)&&(r.terminalLabel=t.label);let n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(r.pattern=zo(n)?n.source:n),r}else{if(t instanceof ts)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}var ho,Zr,ts,Sn,Jr,An,_n,br,mn,gn,fr,MT=R(()=>{"use strict";Pt();o(WMe,"tokenLabel");o(qMe,"hasTokenLabel");ho=class{static{o(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),Ee(this.definition,r=>{r.accept(e)})}},Zr=class extends ho{static{o(this,"NonTerminal")}constructor(e){super([]),this.idx=1,pa(this,Ls(e,r=>r!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},ts=class extends ho{static{o(this,"Rule")}constructor(e){super(e.definition),this.orgText="",pa(this,Ls(e,r=>r!==void 0))}},Sn=class extends ho{static{o(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,pa(this,Ls(e,r=>r!==void 0))}},Jr=class extends ho{static{o(this,"Option")}constructor(e){super(e.definition),this.idx=1,pa(this,Ls(e,r=>r!==void 0))}},An=class extends ho{static{o(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,pa(this,Ls(e,r=>r!==void 0))}},_n=class extends ho{static{o(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,pa(this,Ls(e,r=>r!==void 0))}},br=class extends ho{static{o(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,pa(this,Ls(e,r=>r!==void 0))}},mn=class extends ho{static{o(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,pa(this,Ls(e,r=>r!==void 0))}},gn=class extends ho{static{o(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,pa(this,Ls(e,r=>r!==void 0))}},fr=class{static{o(this,"Terminal")}constructor(e){this.idx=1,pa(this,Ls(e,r=>r!==void 0))}accept(e){e.visit(this)}};o(NT,"serializeGrammar");o(Xm,"serializeProduction")});var rs,aie=R(()=>{"use strict";MT();rs=class{static{o(this,"GAstVisitor")}visit(e){let r=e;switch(r.constructor){case Zr:return this.visitNonTerminal(r);case Sn:return this.visitAlternative(r);case Jr:return this.visitOption(r);case An:return this.visitRepetitionMandatory(r);case _n:return this.visitRepetitionMandatoryWithSeparator(r);case mn:return this.visitRepetitionWithSeparator(r);case br:return this.visitRepetition(r);case gn:return this.visitAlternation(r);case fr:return this.visitTerminal(r);case ts:return this.visitRule(r);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}});function rN(t){return t instanceof Sn||t instanceof Jr||t instanceof br||t instanceof An||t instanceof _n||t instanceof mn||t instanceof fr||t instanceof ts}function n0(t,e=[]){return t instanceof Jr||t instanceof br||t instanceof mn?!0:t instanceof gn?Nv(t.definition,n=>n0(n,e)):t instanceof Zr&&Fn(e,t)?!1:t instanceof ho?(t instanceof Zr&&e.push(t),Ia(t.definition,n=>n0(n,e))):!1}function nN(t){return t instanceof gn}function Rs(t){if(t instanceof Zr)return"SUBRULE";if(t instanceof Jr)return"OPTION";if(t instanceof gn)return"OR";if(t instanceof An)return"AT_LEAST_ONE";if(t instanceof _n)return"AT_LEAST_ONE_SEP";if(t instanceof mn)return"MANY_SEP";if(t instanceof br)return"MANY";if(t instanceof fr)return"CONSUME";throw Error("non exhaustive match")}var sie=R(()=>{"use strict";Pt();MT();o(rN,"isSequenceProd");o(n0,"isOptionalProd");o(nN,"isBranchingProd");o(Rs,"getProductionDslName")});var ns=R(()=>{"use strict";MT();aie();sie()});function oie(t,e,r){return[new Jr({definition:[new fr({terminalType:t.separator})].concat(t.definition)})].concat(e,r)}var Pu,IT=R(()=>{"use strict";Pt();ns();Pu=class{static{o(this,"RestWalker")}walk(e,r=[]){Ee(e.definition,(n,i)=>{let a=fi(e.definition,i+1);if(n instanceof Zr)this.walkProdRef(n,a,r);else if(n instanceof fr)this.walkTerminal(n,a,r);else if(n instanceof Sn)this.walkFlat(n,a,r);else if(n instanceof Jr)this.walkOption(n,a,r);else if(n instanceof An)this.walkAtLeastOne(n,a,r);else if(n instanceof _n)this.walkAtLeastOneSep(n,a,r);else if(n instanceof mn)this.walkManySep(n,a,r);else if(n instanceof br)this.walkMany(n,a,r);else if(n instanceof gn)this.walkOr(n,a,r);else throw Error("non exhaustive match")})}walkTerminal(e,r,n){}walkProdRef(e,r,n){}walkFlat(e,r,n){let i=r.concat(n);this.walk(e,i)}walkOption(e,r,n){let i=r.concat(n);this.walk(e,i)}walkAtLeastOne(e,r,n){let i=[new Jr({definition:e.definition})].concat(r,n);this.walk(e,i)}walkAtLeastOneSep(e,r,n){let i=oie(e,r,n);this.walk(e,i)}walkMany(e,r,n){let i=[new Jr({definition:e.definition})].concat(r,n);this.walk(e,i)}walkManySep(e,r,n){let i=oie(e,r,n);this.walk(e,i)}walkOr(e,r,n){let i=r.concat(n);Ee(e.definition,a=>{let s=new Sn({definition:[a]});this.walk(s,i)})}};o(oie,"restForRepetitionWithSeparator")});function i0(t){if(t instanceof Zr)return i0(t.referencedRule);if(t instanceof fr)return KMe(t);if(rN(t))return XMe(t);if(nN(t))return jMe(t);throw Error("non exhaustive match")}function XMe(t){let e=[],r=t.definition,n=0,i=r.length>n,a,s=!0;for(;i&&s;)a=r[n],s=n0(a),e=e.concat(i0(a)),n=n+1,i=r.length>n;return Pm(e)}function jMe(t){let e=qe(t.definition,r=>i0(r));return Pm(Gr(e))}function KMe(t){return[t.terminalType]}var iN=R(()=>{"use strict";Pt();ns();o(i0,"first");o(XMe,"firstForSequence");o(jMe,"firstForBranching");o(KMe,"firstForTerminal")});var OT,aN=R(()=>{"use strict";OT="_~IN~_"});function lie(t){let e={};return Ee(t,r=>{let n=new sN(r).startWalking();pa(e,n)}),e}function QMe(t,e){return t.name+e+OT}var sN,cie=R(()=>{"use strict";IT();iN();Pt();aN();ns();sN=class extends Pu{static{o(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,r,n){}walkProdRef(e,r,n){let i=QMe(e.referencedRule,e.idx)+this.topProd.name,a=r.concat(n),s=new Sn({definition:a}),l=i0(s);this.follows[i]=l}};o(lie,"computeAllProdsFollows");o(QMe,"buildBetweenProdsFollowPrefix")});function jm(t){let e=t.toString();if(PT.hasOwnProperty(e))return PT[e];{let r=ZMe.pattern(e);return PT[e]=r,r}}function uie(){PT={}}var PT,ZMe,BT=R(()=>{"use strict";Kv();PT={},ZMe=new Jd;o(jm,"getRegExpAst");o(uie,"clearRegExpParserCache")});function die(t,e=!1){try{let r=jm(t);return oN(r.value,{},r.flags.ignoreCase)}catch(r){if(r.message===fie)e&&e2(`${n2} Unable to optimize: < ${t.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Wm(`${n2} + Failed parsing: < ${t.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function oN(t,e,r){switch(t.type){case"Disjunction":for(let i=0;i{if(typeof u=="number")FT(u,e,r);else{let h=u;if(r===!0)for(let f=h.from;f<=h.to;f++)FT(f,e,r);else{for(let f=h.from;f<=h.to&&f=Km){let f=h.from>=Km?h.from:Km,d=h.to,p=Lc(f),m=Lc(d);for(let g=p;g<=m;g++)e[g]=g}}}});break;case"Group":oN(s.value,e,r);break;default:throw Error("Non Exhaustive Match")}let l=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&lN(s)===!1||s.type!=="Group"&&l===!1)break}break;default:throw Error("non exhaustive match!")}return or(e)}function FT(t,e,r){let n=Lc(t);e[n]=n,r===!0&&JMe(t,e)}function JMe(t,e){let r=String.fromCharCode(t),n=r.toUpperCase();if(n!==r){let i=Lc(n.charCodeAt(0));e[i]=i}else{let i=r.toLowerCase();if(i!==r){let a=Lc(i.charCodeAt(0));e[a]=a}}}function hie(t,e){return Za(t.value,r=>{if(typeof r=="number")return Fn(e,r);{let n=r;return Za(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function lN(t){let e=t.quantifier;return e&&e.atLeast===0?!0:t.value?wt(t.value)?Ia(t.value,lN):lN(t.value):!1}function zT(t,e){if(e instanceof RegExp){let r=jm(e),n=new cN(t);return n.visit(r),n.found}else return Za(e,r=>Fn(t,r.charCodeAt(0)))!==void 0}var fie,n2,cN,pie=R(()=>{"use strict";Kv();Pt();qm();BT();uN();fie="Complement Sets are not supported for first char optimization",n2=`Unable to use "first char" lexer optimizations: +`;o(die,"getOptimizedStartCodesIndices");o(oN,"firstCharOptimizedIndices");o(FT,"addOptimizedIdxToResult");o(JMe,"handleIgnoreCase");o(hie,"findCode");o(lN,"isWholeOptional");cN=class extends _c{static{o(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){Fn(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?hie(e,this.targetCharCodes)===void 0&&(this.found=!0):hie(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};o(zT,"canMatchCharCode")});function yie(t,e){e=Xh(e,{useSticky:fN,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:o((b,w)=>w(),"tracer")});let r=e.tracer;r("initCharCodeToOptimizedIndexMap",()=>{yIe()});let n;r("Reject Lexer.NA",()=>{n=Kh(t,b=>b[a0]===ni.NA)});let i=!1,a;r("Transform Patterns",()=>{i=!1,a=qe(n,b=>{let w=b[a0];if(zo(w)){let S=w.source;return S.length===1&&S!=="^"&&S!=="$"&&S!=="."&&!w.ignoreCase?S:S.length===2&&S[0]==="\\"&&!Fn(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],S[1])?S[1]:e.useSticky?gie(w):mie(w)}else{if(wi(w))return i=!0,{exec:w};if(typeof w=="object")return i=!0,w;if(typeof w=="string"){if(w.length===1)return w;{let S=w.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),T=new RegExp(S);return e.useSticky?gie(T):mie(T)}}else throw Error("non exhaustive match")}})});let s,l,u,h,f;r("misc mapping",()=>{s=qe(n,b=>b.tokenTypeIdx),l=qe(n,b=>{let w=b.GROUP;if(w!==ni.SKIPPED){if(di(w))return w;if(er(w))return!1;throw Error("non exhaustive match")}}),u=qe(n,b=>{let w=b.LONGER_ALT;if(w)return wt(w)?qe(w,T=>Yw(n,T)):[Yw(n,w)]}),h=qe(n,b=>b.PUSH_MODE),f=qe(n,b=>Xe(b,"POP_MODE"))});let d;r("Line Terminator Handling",()=>{let b=Cie(e.lineTerminatorCharacters);d=qe(n,w=>!1),e.positionTracking!=="onlyOffset"&&(d=qe(n,w=>Xe(w,"LINE_BREAKS")?!!w.LINE_BREAKS:Eie(w,b)===!1&&zT(b,w.PATTERN)))});let p,m,g,y;r("Misc Mapping #2",()=>{p=qe(n,Tie),m=qe(a,mIe),g=Vr(n,(b,w)=>{let S=w.GROUP;return di(S)&&S!==ni.SKIPPED&&(b[S]=[]),b},{}),y=qe(a,(b,w)=>({pattern:a[w],longerAlt:u[w],canLineTerminator:d[w],isCustom:p[w],short:m[w],group:l[w],push:h[w],pop:f[w],tokenTypeIdx:s[w],tokenType:n[w]}))});let v=!0,x=[];return e.safeMode||r("First Char Optimization",()=>{x=Vr(n,(b,w,S)=>{if(typeof w.PATTERN=="string"){let T=w.PATTERN.charCodeAt(0),E=Lc(T);hN(b,E,y[S])}else if(wt(w.START_CHARS_HINT)){let T;Ee(w.START_CHARS_HINT,E=>{let _=typeof E=="string"?E.charCodeAt(0):E,A=Lc(_);T!==A&&(T=A,hN(b,A,y[S]))})}else if(zo(w.PATTERN))if(w.PATTERN.unicode)v=!1,e.ensureOptimizations&&Wm(`${n2} Unable to analyze < ${w.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let T=die(w.PATTERN,e.ensureOptimizations);Qt(T)&&(v=!1),Ee(T,E=>{hN(b,E,y[S])})}else e.ensureOptimizations&&Wm(`${n2} TokenType: <${w.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return b},[])}),{emptyGroups:g,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function vie(t,e){let r=[],n=tIe(t);r=r.concat(n.errors);let i=rIe(n.valid),a=i.valid;return r=r.concat(i.errors),r=r.concat(eIe(a)),r=r.concat(uIe(a)),r=r.concat(hIe(a,e)),r=r.concat(fIe(a)),r}function eIe(t){let e=[],r=$r(t,n=>zo(n[a0]));return e=e.concat(iIe(r)),e=e.concat(oIe(r)),e=e.concat(lIe(r)),e=e.concat(cIe(r)),e=e.concat(aIe(r)),e}function tIe(t){let e=$r(t,i=>!Xe(i,a0)),r=qe(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:Gn.MISSING_PATTERN,tokenTypes:[i]})),n=jh(t,e);return{errors:r,valid:n}}function rIe(t){let e=$r(t,i=>{let a=i[a0];return!zo(a)&&!wi(a)&&!Xe(a,"exec")&&!di(a)}),r=qe(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Gn.INVALID_PATTERN,tokenTypes:[i]})),n=jh(t,e);return{errors:r,valid:n}}function iIe(t){class e extends _c{static{o(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(a){this.found=!0}}let r=$r(t,i=>{let a=i.PATTERN;try{let s=jm(a),l=new e;return l.visit(s),l.found}catch{return nIe.test(a.source)}});return qe(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Gn.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function aIe(t){let e=$r(t,n=>n.PATTERN.test(""));return qe(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:Gn.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}function oIe(t){class e extends _c{static{o(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(a){this.found=!0}}let r=$r(t,i=>{let a=i.PATTERN;try{let s=jm(a),l=new e;return l.visit(s),l.found}catch{return sIe.test(a.source)}});return qe(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Gn.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function lIe(t){let e=$r(t,n=>{let i=n[a0];return i instanceof RegExp&&(i.multiline||i.global)});return qe(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Gn.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function cIe(t){let e=[],r=qe(t,a=>Vr(t,(s,l)=>(a.PATTERN.source===l.PATTERN.source&&!Fn(e,l)&&l.PATTERN!==ni.NA&&(e.push(l),s.push(l)),s),[]));r=wc(r);let n=$r(r,a=>a.length>1);return qe(n,a=>{let s=qe(a,u=>u.name);return{message:`The same RegExp pattern ->${na(a).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:Gn.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}})}function uIe(t){let e=$r(t,n=>{if(!Xe(n,"GROUP"))return!1;let i=n.GROUP;return i!==ni.SKIPPED&&i!==ni.NA&&!di(i)});return qe(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Gn.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function hIe(t,e){let r=$r(t,i=>i.PUSH_MODE!==void 0&&!Fn(e,i.PUSH_MODE));return qe(r,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:Gn.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function fIe(t){let e=[],r=Vr(t,(n,i,a)=>{let s=i.PATTERN;return s===ni.NA||(di(s)?n.push({str:s,idx:a,tokenType:i}):zo(s)&&pIe(s)&&n.push({str:s.source,idx:a,tokenType:i})),n},[]);return Ee(t,(n,i)=>{Ee(r,({str:a,idx:s,tokenType:l})=>{if(i${l.name}<- can never be matched. +Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:u,type:Gn.UNREACHABLE_PATTERN,tokenTypes:[n,l]})}})}),e}function dIe(t,e){if(zo(e)){let r=e.exec(t);return r!==null&&r.index===0}else{if(wi(e))return e(t,0,[],{});if(Xe(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function pIe(t){return Za([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>t.source.indexOf(r)!==-1)===void 0}function mie(t){let e=t.ignoreCase?"i":"";return new RegExp(`^(?:${t.source})`,e)}function gie(t){let e=t.ignoreCase?"iy":"y";return new RegExp(`${t.source}`,e)}function xie(t,e,r){let n=[];return Xe(t,Qm)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+Qm+`> property in its definition +`,type:Gn.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Xe(t,GT)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+GT+`> property in its definition +`,type:Gn.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Xe(t,GT)&&Xe(t,Qm)&&!Xe(t.modes,t.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${Qm}: <${t.defaultMode}>which does not exist +`,type:Gn.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Xe(t,GT)&&Ee(t.modes,(i,a)=>{Ee(i,(s,l)=>{if(er(s))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${a}> at index: <${l}> +`,type:Gn.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(Xe(s,"LONGER_ALT")){let u=wt(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT];Ee(u,h=>{!er(h)&&!Fn(i,h)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${h.name}> on token <${s.name}> outside of mode <${a}> +`,type:Gn.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function bie(t,e,r){let n=[],i=!1,a=wc(Gr(or(t.modes))),s=Kh(a,u=>u[a0]===ni.NA),l=Cie(r);return e&&Ee(s,u=>{let h=Eie(u,l);if(h!==!1){let d={message:gIe(u,h),type:h.issue,tokenType:u};n.push(d)}else Xe(u,"LINE_BREAKS")?u.LINE_BREAKS===!0&&(i=!0):zT(l,u.PATTERN)&&(i=!0)}),e&&!i&&n.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:Gn.NO_LINE_BREAKS_FLAGS}),n}function wie(t){let e={},r=Dr(t);return Ee(r,n=>{let i=t[n];if(wt(i))e[n]=[];else throw Error("non exhaustive match")}),e}function Tie(t){let e=t.PATTERN;if(zo(e))return!1;if(wi(e))return!0;if(Xe(e,"exec"))return!0;if(di(e))return!1;throw Error("non exhaustive match")}function mIe(t){return di(t)&&t.length===1?t.charCodeAt(0):!1}function Eie(t,e){if(Xe(t,"LINE_BREAKS"))return!1;if(zo(t.PATTERN)){try{zT(e,t.PATTERN)}catch(r){return{issue:Gn.IDENTIFY_TERMINATOR,errMsg:r.message}}return!1}else{if(di(t.PATTERN))return!1;if(Tie(t))return{issue:Gn.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function gIe(t,e){if(e.issue===Gn.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${t.name}> Token Type + Root cause: ${e.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===Gn.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${t.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Cie(t){return qe(t,r=>di(r)?r.charCodeAt(0):r)}function hN(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Lc(t){return t255?255+~~(t/255):t}}var a0,Qm,GT,fN,nIe,sIe,kie,Km,$T,uN=R(()=>{"use strict";Kv();i2();Pt();qm();pie();BT();a0="PATTERN",Qm="defaultMode",GT="modes",fN=typeof new RegExp("(?:)").sticky=="boolean";o(yie,"analyzeTokenTypes");o(vie,"validatePatterns");o(eIe,"validateRegExpPattern");o(tIe,"findMissingPatterns");o(rIe,"findInvalidPatterns");nIe=/[^\\][$]/;o(iIe,"findEndOfInputAnchor");o(aIe,"findEmptyMatchRegExps");sIe=/[^\\[][\^]|^\^/;o(oIe,"findStartOfInputAnchor");o(lIe,"findUnsupportedFlags");o(cIe,"findDuplicatePatterns");o(uIe,"findInvalidGroupType");o(hIe,"findModesThatDoNotExist");o(fIe,"findUnreachablePatterns");o(dIe,"testTokenType");o(pIe,"noMetaChar");o(mie,"addStartOfInput");o(gie,"addStickyFlag");o(xie,"performRuntimeChecks");o(bie,"performWarningRuntimeChecks");o(wie,"cloneEmptyGroups");o(Tie,"isCustomPattern");o(mIe,"isShortPattern");kie={test:o(function(t){let e=t.length;for(let r=this.lastIndex;r{r.isParent=r.categoryMatches.length>0})}function vIe(t){let e=Qr(t),r=t,n=!0;for(;n;){r=wc(Gr(qe(r,a=>a.CATEGORIES)));let i=jh(r,e);e=e.concat(i),Qt(i)?n=!1:r=i}return e}function xIe(t){Ee(t,e=>{dN(e)||(_ie[Sie]=e,e.tokenTypeIdx=Sie++),Aie(e)&&!wt(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Aie(e)||(e.CATEGORIES=[]),TIe(e)||(e.categoryMatches=[]),kIe(e)||(e.categoryMatchesMap={})})}function bIe(t){Ee(t,e=>{e.categoryMatches=[],Ee(e.categoryMatchesMap,(r,n)=>{e.categoryMatches.push(_ie[n].tokenTypeIdx)})})}function wIe(t){Ee(t,e=>{Lie([],e)})}function Lie(t,e){Ee(t,r=>{e.categoryMatchesMap[r.tokenTypeIdx]=!0}),Ee(e.CATEGORIES,r=>{let n=t.concat(e);Fn(n,r)||Lie(n,r)})}function dN(t){return Xe(t,"tokenTypeIdx")}function Aie(t){return Xe(t,"CATEGORIES")}function TIe(t){return Xe(t,"categoryMatches")}function kIe(t){return Xe(t,"categoryMatchesMap")}function Die(t){return Xe(t,"tokenTypeIdx")}var Sie,_ie,s0=R(()=>{"use strict";Pt();o(Bu,"tokenStructuredMatcher");o(Zm,"tokenStructuredMatcherNoCategories");Sie=1,_ie={};o(Fu,"augmentTokenTypes");o(vIe,"expandCategories");o(xIe,"assignTokenDefaultProps");o(bIe,"assignCategoriesTokensProp");o(wIe,"assignCategoriesMapProp");o(Lie,"singleAssignCategoriesToksMap");o(dN,"hasShortKeyProperty");o(Aie,"hasCategoriesProperty");o(TIe,"hasExtendingTokensTypesProperty");o(kIe,"hasExtendingTokensTypesMapProperty");o(Die,"isTokenType")});var pN,mN=R(()=>{"use strict";pN={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,r,n,i){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${r} characters.`}}});var Gn,a2,ni,i2=R(()=>{"use strict";uN();Pt();qm();s0();mN();BT();(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(Gn||(Gn={}));a2={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:pN,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(a2);ni=class{static{o(this,"Lexer")}constructor(e,r=a2){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,a)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let s=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);let{time:l,value:u}=t2(a),h=l>10?console.warn:console.log;return this.traceInitIndent time: ${l}ms`),this.traceInitIndent--,u}else return a()},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=pa({},a2,r);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,a=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===a2.lineTerminatorsPattern)this.config.lineTerminatorsPattern=kie;else if(this.config.lineTerminatorCharacters===a2.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),wt(e)?i={modes:{defaultMode:Qr(e)},defaultMode:Qm}:(a=!1,i=Qr(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(xie(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(bie(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},Ee(i.modes,(l,u)=>{i.modes[u]=Kh(l,h=>er(h))});let s=Dr(i.modes);if(Ee(i.modes,(l,u)=>{this.TRACE_INIT(`Mode: <${u}> processing`,()=>{if(this.modes.push(u),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(vie(l,s))}),Qt(this.lexerDefinitionErrors)){Fu(l);let h;this.TRACE_INIT("analyzeTokenTypes",()=>{h=yie(l,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[u]=h.patternIdxToConfig,this.charCodeToPatternIdxToConfig[u]=h.charCodeToPatternIdxToConfig,this.emptyGroups=pa({},this.emptyGroups,h.emptyGroups),this.hasCustom=h.hasCustom||this.hasCustom,this.canModeBeOptimized[u]=h.canBeOptimized}})}),this.defaultMode=i.defaultMode,!Qt(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let u=qe(this.lexerDefinitionErrors,h=>h.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+u)}Ee(this.lexerDefinitionWarning,l=>{e2(l.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(fN?(this.chopInput=ea,this.match=this.matchWithTest):(this.updateLastIndex=qn,this.match=this.matchWithExec),a&&(this.handleModes=qn),this.trackStartLines===!1&&(this.computeNewColumn=ea),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=qn),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let l=Vr(this.canModeBeOptimized,(u,h,f)=>(h===!1&&u.push(f),u),[]);if(r.ensureOptimizations&&!Qt(l))throw Error(`Lexer Modes: < ${l.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{uie()}),this.TRACE_INIT("toFastProperties",()=>{r2(this)})})}tokenize(e,r=this.defaultMode){if(!Qt(this.lexerDefinitionErrors)){let i=qe(this.lexerDefinitionErrors,a=>a.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(e,r)}tokenizeInternal(e,r){let n,i,a,s,l,u,h,f,d,p,m,g,y,v,x,b,w=e,S=w.length,T=0,E=0,_=this.hasCustom?0:Math.floor(e.length/10),A=new Array(_),L=[],M=this.trackStartLines?1:void 0,N=this.trackStartLines?1:void 0,k=wie(this.emptyGroups),I=this.trackStartLines,C=this.config.lineTerminatorsPattern,O=0,D=[],P=[],F=[],B=[];Object.freeze(B);let $;function z(){return D}o(z,"getPossiblePatternsSlow");function Y(J){let Z=Lc(J),H=P[Z];return H===void 0?B:H}o(Y,"getPossiblePatternsOptimized");let Q=o(J=>{if(F.length===1&&J.tokenType.PUSH_MODE===void 0){let Z=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(J);L.push({offset:J.startOffset,line:J.startLine,column:J.startColumn,length:J.image.length,message:Z})}else{F.pop();let Z=ma(F);D=this.patternIdxToConfig[Z],P=this.charCodeToPatternIdxToConfig[Z],O=D.length;let H=this.canModeBeOptimized[Z]&&this.config.safeMode===!1;P&&H?$=Y:$=z}},"pop_mode");function X(J){F.push(J),P=this.charCodeToPatternIdxToConfig[J],D=this.patternIdxToConfig[J],O=D.length,O=D.length;let Z=this.canModeBeOptimized[J]&&this.config.safeMode===!1;P&&Z?$=Y:$=z}o(X,"push_mode"),X.call(this,r);let ie,j=this.config.recoveryEnabled;for(;Tu.length){u=s,h=f,ie=ce;break}}}break}}if(u!==null){if(d=u.length,p=ie.group,p!==void 0&&(m=ie.tokenTypeIdx,g=this.createTokenInstance(u,T,m,ie.tokenType,M,N,d),this.handlePayload(g,h),p===!1?E=this.addToken(A,E,g):k[p].push(g)),e=this.chopInput(e,d),T=T+d,N=this.computeNewColumn(N,d),I===!0&&ie.canLineTerminator===!0){let q=0,K,se;C.lastIndex=0;do K=C.test(u),K===!0&&(se=C.lastIndex-1,q++);while(K===!0);q!==0&&(M=M+q,N=d-se,this.updateTokenEndLineColumnLocation(g,p,se,q,M,N,d))}this.handleModes(ie,Q,X,g)}else{let q=T,K=M,se=N,ce=j===!1;for(;ce===!1&&T{"use strict";Pt();i2();s0();o(zu,"tokenLabel");o(gN,"hasTokenLabel");EIe="parent",Rie="categories",Nie="label",Mie="group",Iie="push_mode",Oie="pop_mode",Pie="longer_alt",Bie="line_breaks",Fie="start_chars_hint";o(VT,"createToken");o(CIe,"createTokenInternal");fo=VT({name:"EOF",pattern:ni.NA});Fu([fo]);o(o0,"createTokenInstance");o(s2,"tokenMatcher")});var Gu,zie,Ol,Jm=R(()=>{"use strict";l0();Pt();ns();Gu={buildMismatchTokenMessage({expected:t,actual:e,previous:r,ruleName:n}){return`Expecting ${gN(t)?`--> ${zu(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t,ruleName:e}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",l=` +but found: '`+na(e).image+"'";if(n)return a+n+l;{let u=Vr(t,(p,m)=>p.concat(m),[]),h=qe(u,p=>`[${qe(p,m=>zu(m)).join(", ")}]`),d=`one of these possible Token sequences: +${qe(h,(p,m)=>` ${m+1}. ${p}`).join(` +`)}`;return a+d+l}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:r,ruleName:n}){let i="Expecting: ",s=` +but found: '`+na(e).image+"'";if(r)return i+r+s;{let u=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${qe(t,h=>`[${qe(h,f=>zu(f)).join(",")}]`).join(" ,")}>`;return i+u+s}}};Object.freeze(Gu);zie={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+t.name+"<-"}},Ol={buildDuplicateFoundError(t,e){function r(f){return f instanceof fr?f.terminalType.name:f instanceof Zr?f.nonTerminalName:""}o(r,"getExtraProductionArgument");let n=t.name,i=na(e),a=i.idx,s=Rs(i),l=r(i),u=a>0,h=`->${s}${u?a:""}<- ${l?`with argument: ->${l}<-`:""} + appears more than once (${e.length} times) in the top level rule: ->${n}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return h=h.replace(/[ \t]+/g," "),h=h.replace(/\s\s+/g,` +`),h},buildNamespaceConflictError(t){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){let e=qe(t.prefixPath,i=>zu(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(t){let e=qe(t.prefixPath,i=>zu(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n},buildEmptyRepetitionError(t){let e=Rs(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in inside <${t.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives: + inside <${t.topLevelRule.name}> Rule. + has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){let e=t.topLevelRule.name,r=qe(t.leftRecursionPath,a=>a.name),n=`${e} --> ${r.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${e}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${n} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof ts?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}}});function Gie(t,e){let r=new yN(t,e);return r.resolveRefs(),r.errors}var yN,$ie=R(()=>{"use strict";Ns();Pt();ns();o(Gie,"resolveGrammar");yN=class extends rs{static{o(this,"GastRefResolverVisitor")}constructor(e,r){super(),this.nameToTopRule=e,this.errMsgProvider=r,this.errors=[]}resolveRefs(){Ee(or(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let r=this.nameToTopRule[e.nonTerminalName];if(r)e.referencedRule=r;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:Pi.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}});function WT(t,e,r=[]){r=Qr(r);let n=[],i=0;function a(l){return l.concat(fi(t,i+1))}o(a,"remainingPathWith");function s(l){let u=WT(a(l),e,r);return n.concat(u)}for(o(s,"getAlternativesForProd");r.length{Qt(u.definition)===!1&&(n=s(u.definition))}),n;if(l instanceof fr)r.push(l.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:r,suffixDef:fi(t,i)}),n}function qT(t,e,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",l=!1,u=e.length,h=u-n-1,f=[],d=[];for(d.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!Qt(d);){let p=d.pop();if(p===s){l&&ma(d).idx<=h&&d.pop();continue}let m=p.def,g=p.idx,y=p.ruleStack,v=p.occurrenceStack;if(Qt(m))continue;let x=m[0];if(x===i){let b={idx:g,def:fi(m),ruleStack:Ru(y),occurrenceStack:Ru(v)};d.push(b)}else if(x instanceof fr)if(g=0;b--){let w=x.definition[b],S={idx:g,def:w.definition.concat(fi(m)),ruleStack:y,occurrenceStack:v};d.push(S),d.push(s)}else if(x instanceof Sn)d.push({idx:g,def:x.definition.concat(fi(m)),ruleStack:y,occurrenceStack:v});else if(x instanceof ts)d.push(SIe(x,g,y,v));else throw Error("non exhaustive match")}return f}function SIe(t,e,r,n){let i=Qr(r);i.push(t.name);let a=Qr(n);return a.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:a}}var vN,UT,eg,HT,o2,YT,l2,c2=R(()=>{"use strict";Pt();iN();IT();ns();vN=class extends Pu{static{o(this,"AbstractNextPossibleTokensWalker")}constructor(e,r){super(),this.topProd=e,this.path=r,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=Qr(this.path.ruleStack).reverse(),this.occurrenceStack=Qr(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,r=[]){this.found||super.walk(e,r)}walkProdRef(e,r,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=r.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){Qt(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},UT=class extends vN{static{o(this,"NextAfterTokenWalker")}constructor(e,r){super(e,r),this.path=r,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,r,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=r.concat(n),a=new Sn({definition:i});this.possibleTokTypes=i0(a),this.found=!0}}},eg=class extends Pu{static{o(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,r){super(),this.topRule=e,this.occurrence=r,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},HT=class extends eg{static{o(this,"NextTerminalAfterManyWalker")}walkMany(e,r,n){if(e.idx===this.occurrence){let i=na(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof fr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,r,n)}},o2=class extends eg{static{o(this,"NextTerminalAfterManySepWalker")}walkManySep(e,r,n){if(e.idx===this.occurrence){let i=na(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof fr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,r,n)}},YT=class extends eg{static{o(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,r,n){if(e.idx===this.occurrence){let i=na(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof fr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,r,n)}},l2=class extends eg{static{o(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,r,n){if(e.idx===this.occurrence){let i=na(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof fr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,r,n)}};o(WT,"possiblePathsFrom");o(qT,"nextPossibleTokensAfter");o(SIe,"expandTopLevelRule")});function u2(t){if(t instanceof Jr||t==="Option")return $n.OPTION;if(t instanceof br||t==="Repetition")return $n.REPETITION;if(t instanceof An||t==="RepetitionMandatory")return $n.REPETITION_MANDATORY;if(t instanceof _n||t==="RepetitionMandatoryWithSeparator")return $n.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof mn||t==="RepetitionWithSeparator")return $n.REPETITION_WITH_SEPARATOR;if(t instanceof gn||t==="Alternation")return $n.ALTERNATION;throw Error("non exhaustive match")}function jT(t){let{occurrence:e,rule:r,prodType:n,maxLookahead:i}=t,a=u2(n);return a===$n.ALTERNATION?tg(e,r,i):rg(e,r,a,i)}function Uie(t,e,r,n,i,a){let s=tg(t,e,r),l=jie(s)?Zm:Bu;return a(s,n,l,i)}function Hie(t,e,r,n,i,a){let s=rg(t,e,i,r),l=jie(s)?Zm:Bu;return a(s[0],l,n)}function Yie(t,e,r,n){let i=t.length,a=Ia(t,s=>Ia(s,l=>l.length===1));if(e)return function(s){let l=qe(s,u=>u.GATE);for(let u=0;uGr(u)),l=Vr(s,(u,h,f)=>(Ee(h,d=>{Xe(u,d.tokenTypeIdx)||(u[d.tokenTypeIdx]=f),Ee(d.categoryMatches,p=>{Xe(u,p)||(u[p]=f)})}),u),{});return function(){let u=this.LA(1);return l[u.tokenTypeIdx]}}else return function(){for(let s=0;sa.length===1),i=t.length;if(n&&!r){let a=Gr(t);if(a.length===1&&Qt(a[0].categoryMatches)){let l=a[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===l}}else{let s=Vr(a,(l,u,h)=>(l[u.tokenTypeIdx]=!0,Ee(u.categoryMatches,f=>{l[f]=!0}),l),[]);return function(){let l=this.LA(1);return s[l.tokenTypeIdx]===!0}}}else return function(){e:for(let a=0;aWT([s],1)),n=Vie(r.length),i=qe(r,s=>{let l={};return Ee(s,u=>{let h=xN(u.partialPath);Ee(h,f=>{l[f]=!0})}),l}),a=r;for(let s=1;s<=e;s++){let l=a;a=Vie(l.length);for(let u=0;u{let x=xN(v.partialPath);Ee(x,b=>{i[u][b]=!0})})}}}}return n}function tg(t,e,r,n){let i=new XT(t,$n.ALTERNATION,n);return e.accept(i),qie(i.result,r)}function rg(t,e,r,n){let i=new XT(t,r);e.accept(i);let a=i.result,l=new bN(e,t,r).startWalking(),u=new Sn({definition:a}),h=new Sn({definition:l});return qie([u,h],n)}function KT(t,e){e:for(let r=0;r{let i=e[n];return r===i||i.categoryMatchesMap[r.tokenTypeIdx]})}function jie(t){return Ia(t,e=>Ia(e,r=>Ia(r,n=>Qt(n.categoryMatches))))}var $n,bN,XT,ng=R(()=>{"use strict";Pt();c2();IT();s0();ns();(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})($n||($n={}));o(u2,"getProdType");o(jT,"getLookaheadPaths");o(Uie,"buildLookaheadFuncForOr");o(Hie,"buildLookaheadFuncForOptionalProd");o(Yie,"buildAlternativesLookAheadFunc");o(Wie,"buildSingleAlternativeLookaheadFunction");bN=class extends Pu{static{o(this,"RestDefinitionFinderWalker")}constructor(e,r,n){super(),this.topProd=e,this.targetOccurrence=r,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,r,n,i){return e.idx===this.targetOccurrence&&this.targetProdType===r?(this.restDef=n.concat(i),!0):!1}walkOption(e,r,n){this.checkIsTarget(e,$n.OPTION,r,n)||super.walkOption(e,r,n)}walkAtLeastOne(e,r,n){this.checkIsTarget(e,$n.REPETITION_MANDATORY,r,n)||super.walkOption(e,r,n)}walkAtLeastOneSep(e,r,n){this.checkIsTarget(e,$n.REPETITION_MANDATORY_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}walkMany(e,r,n){this.checkIsTarget(e,$n.REPETITION,r,n)||super.walkOption(e,r,n)}walkManySep(e,r,n){this.checkIsTarget(e,$n.REPETITION_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}},XT=class extends rs{static{o(this,"InsideDefinitionFinderVisitor")}constructor(e,r,n){super(),this.targetOccurrence=e,this.targetProdType=r,this.targetRef=n,this.result=[]}checkIsTarget(e,r){e.idx===this.targetOccurrence&&this.targetProdType===r&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,$n.OPTION)}visitRepetition(e){this.checkIsTarget(e,$n.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,$n.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,$n.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,$n.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,$n.ALTERNATION)}};o(Vie,"initializeArrayOfArrays");o(xN,"pathToHashKeys");o(AIe,"isUniquePrefixHash");o(qie,"lookAheadSequenceFromAlternatives");o(tg,"getLookaheadPathsForOr");o(rg,"getLookaheadPathsForOptionalProd");o(KT,"containsPath");o(Xie,"isStrictPrefixOfPath");o(jie,"areTokenCategoriesNotUsed")});function Kie(t){let e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return qe(e,r=>Object.assign({type:Pi.CUSTOM_LOOKAHEAD_VALIDATION},r))}function Qie(t,e,r,n){let i=ga(t,u=>_Ie(u,r)),a=IIe(t,e,r),s=ga(t,u=>RIe(u,r)),l=ga(t,u=>DIe(u,t,n,r));return i.concat(a,s,l)}function _Ie(t,e){let r=new wN;t.accept(r);let n=r.allProductions,i=IL(n,LIe),a=Ls(i,l=>l.length>1);return qe(or(a),l=>{let u=na(l),h=e.buildDuplicateFoundError(t,l),f=Rs(u),d={message:h,type:Pi.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:f,occurrence:u.idx},p=Zie(u);return p&&(d.parameter=p),d})}function LIe(t){return`${Rs(t)}_#_${t.idx}_#_${Zie(t)}`}function Zie(t){return t instanceof fr?t.terminalType.name:t instanceof Zr?t.nonTerminalName:""}function DIe(t,e,r,n){let i=[];if(Vr(e,(s,l)=>l.name===t.name?s+1:s,0)>1){let s=n.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});i.push({message:s,type:Pi.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function Jie(t,e,r){let n=[],i;return Fn(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,n.push({message:i,type:Pi.INVALID_RULE_OVERRIDE,ruleName:t})),n}function kN(t,e,r,n=[]){let i=[],a=QT(e.definition);if(Qt(a))return[];{let s=t.name;Fn(a,t)&&i.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:n}),type:Pi.LEFT_RECURSION,ruleName:s});let u=jh(a,n.concat([t])),h=ga(u,f=>{let d=Qr(n);return d.push(f),kN(t,f,r,d)});return i.concat(h)}}function QT(t){let e=[];if(Qt(t))return e;let r=na(t);if(r instanceof Zr)e.push(r.referencedRule);else if(r instanceof Sn||r instanceof Jr||r instanceof An||r instanceof _n||r instanceof mn||r instanceof br)e=e.concat(QT(r.definition));else if(r instanceof gn)e=Gr(qe(r.definition,a=>QT(a.definition)));else if(!(r instanceof fr))throw Error("non exhaustive match");let n=n0(r),i=t.length>1;if(n&&i){let a=fi(t);return e.concat(QT(a))}else return e}function eae(t,e){let r=new h2;t.accept(r);let n=r.alternations;return ga(n,a=>{let s=Ru(a.definition);return ga(s,(l,u)=>{let h=qT([l],[],Bu,1);return Qt(h)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:a,emptyChoiceIdx:u}),type:Pi.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:a.idx,alternative:u+1}]:[]})})}function tae(t,e,r){let n=new h2;t.accept(n);let i=n.alternations;return i=Kh(i,s=>s.ignoreAmbiguities===!0),ga(i,s=>{let l=s.idx,u=s.maxLookahead||e,h=tg(l,t,u,s),f=NIe(h,s,t,r),d=MIe(h,s,t,r);return f.concat(d)})}function RIe(t,e){let r=new h2;t.accept(r);let n=r.alternations;return ga(n,a=>a.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:a}),type:Pi.TOO_MANY_ALTS,ruleName:t.name,occurrence:a.idx}]:[])}function rae(t,e,r){let n=[];return Ee(t,i=>{let a=new TN;i.accept(a);let s=a.allProductions;Ee(s,l=>{let u=u2(l),h=l.maxLookahead||e,f=l.idx,p=rg(f,i,u,h)[0];if(Qt(Gr(p))){let m=r.buildEmptyRepetitionError({topLevelRule:i,repetition:l});n.push({message:m,type:Pi.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function NIe(t,e,r,n){let i=[],a=Vr(t,(l,u,h)=>(e.definition[h].ignoreAmbiguities===!0||Ee(u,f=>{let d=[h];Ee(t,(p,m)=>{h!==m&&KT(p,f)&&e.definition[m].ignoreAmbiguities!==!0&&d.push(m)}),d.length>1&&!KT(i,f)&&(i.push(f),l.push({alts:d,path:f}))}),l),[]);return qe(a,l=>{let u=qe(l.alts,f=>f+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:u,prefixPath:l.path}),type:Pi.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:l.alts}})}function MIe(t,e,r,n){let i=Vr(t,(s,l,u)=>{let h=qe(l,f=>({idx:u,path:f}));return s.concat(h)},[]);return wc(ga(i,s=>{if(e.definition[s.idx].ignoreAmbiguities===!0)return[];let u=s.idx,h=s.path,f=$r(i,p=>e.definition[p.idx].ignoreAmbiguities!==!0&&p.idx{let m=[p.idx+1,u+1],g=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:m,prefixPath:p.path}),type:Pi.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:g,alternatives:m}})}))}function IIe(t,e,r){let n=[],i=qe(e,a=>a.name);return Ee(t,a=>{let s=a.name;if(Fn(i,s)){let l=r.buildNamespaceConflictError(a);n.push({message:l,type:Pi.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),n}var wN,h2,TN,f2=R(()=>{"use strict";Pt();Ns();ns();ng();c2();s0();o(Kie,"validateLookahead");o(Qie,"validateGrammar");o(_Ie,"validateDuplicateProductions");o(LIe,"identifyProductionForDuplicates");o(Zie,"getExtraProductionArgument");wN=class extends rs{static{o(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};o(DIe,"validateRuleDoesNotAlreadyExist");o(Jie,"validateRuleIsOverridden");o(kN,"validateNoLeftRecursion");o(QT,"getFirstNoneTerminal");h2=class extends rs{static{o(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};o(eae,"validateEmptyOrAlternative");o(tae,"validateAmbiguousAlternationAlternatives");TN=class extends rs{static{o(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};o(RIe,"validateTooManyAlts");o(rae,"validateSomeNonEmptyLookaheadPath");o(NIe,"checkAlternativesAmbiguities");o(MIe,"checkPrefixAlternativesAmbiguities");o(IIe,"checkTerminalAndNoneTerminalsNameSpace")});function nae(t){let e=Xh(t,{errMsgProvider:zie}),r={};return Ee(t.rules,n=>{r[n.name]=n}),Gie(r,e.errMsgProvider)}function iae(t){return t=Xh(t,{errMsgProvider:Ol}),Qie(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}var aae=R(()=>{"use strict";Pt();$ie();f2();Jm();o(nae,"resolveGrammar");o(iae,"validateGrammar")});function nf(t){return Fn(uae,t.name)}var sae,oae,lae,cae,uae,ig,c0,d2,p2,m2,ag=R(()=>{"use strict";Pt();sae="MismatchedTokenException",oae="NoViableAltException",lae="EarlyExitException",cae="NotAllInputParsedException",uae=[sae,oae,lae,cae];Object.freeze(uae);o(nf,"isRecognitionException");ig=class extends Error{static{o(this,"RecognitionException")}constructor(e,r){super(e),this.token=r,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},c0=class extends ig{static{o(this,"MismatchedTokenException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=sae}},d2=class extends ig{static{o(this,"NoViableAltException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=oae}},p2=class extends ig{static{o(this,"NotAllInputParsedException")}constructor(e,r){super(e,r),this.name=cae}},m2=class extends ig{static{o(this,"EarlyExitException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=lae}}});function OIe(t,e,r,n,i,a,s){let l=this.getKeyForAutomaticLookahead(n,i),u=this.firstAfterRepMap[l];if(u===void 0){let p=this.getCurrRuleFullName(),m=this.getGAstProductions()[p];u=new a(m,i).startWalking(),this.firstAfterRepMap[l]=u}let h=u.token,f=u.occurrence,d=u.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=fo,f=1),!(h===void 0||f===void 0)&&this.shouldInRepetitionRecoveryBeTried(h,f,s)&&this.tryInRepetitionRecovery(t,e,r,h)}var EN,SN,CN,ZT,AN=R(()=>{"use strict";l0();Pt();ag();aN();Ns();EN={},SN="InRuleRecoveryException",CN=class extends Error{static{o(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=SN}},ZT=class{static{o(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=Xe(e,"recoveryEnabled")?e.recoveryEnabled:is.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=OIe)}getTokenToInsert(e){let r=o0(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,r,n,i){let a=this.findReSyncTokenType(),s=this.exportLexerState(),l=[],u=!1,h=this.LA(1),f=this.LA(1),d=o(()=>{let p=this.LA(0),m=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:h,previous:p,ruleName:this.getCurrRuleFullName()}),g=new c0(m,h,this.LA(0));g.resyncedTokens=Ru(l),this.SAVE_ERROR(g)},"generateErrorMessage");for(;!u;)if(this.tokenMatcher(f,i)){d();return}else if(n.call(this)){d(),e.apply(this,r);return}else this.tokenMatcher(f,a)?u=!0:(f=this.SKIP_TOKEN(),this.addToResyncTokens(f,l));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,r,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))}getFollowsForInRuleRecovery(e,r){let n=this.getCurrentGrammarPath(e,r);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new CN("sad sad panda")}canPerformInRuleRecovery(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,r){if(!this.canTokenTypeBeInsertedInRecovery(e)||Qt(r))return!1;let n=this.LA(1);return Za(r,a=>this.tokenMatcher(n,a))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let r=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(r);return Fn(n,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),r=this.LA(1),n=2;for(;;){let i=Za(e,a=>s2(r,a));if(i!==void 0)return i;r=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return EN;let e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,r=this.RULE_OCCURRENCE_STACK;return qe(e,(n,i)=>i===0?EN:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:r[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=qe(this.buildFullFollowKeyStack(),r=>this.getFollowSetFromFollowKey(r));return Gr(e)}getFollowSetFromFollowKey(e){if(e===EN)return[fo];let r=e.ruleName+e.idxInCallingRule+OT+e.inRule;return this.resyncFollows[r]}addToResyncTokens(e,r){return this.tokenMatcher(e,fo)||r.push(e),r}reSyncTo(e){let r=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,r);return Ru(r)}attemptInRepetitionRecovery(e,r,n,i,a,s,l){}getCurrentGrammarPath(e,r){let n=this.getHumanReadableRuleStack(),i=Qr(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:r}}getHumanReadableRuleStack(){return qe(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};o(OIe,"attemptInRepetitionRecovery")});function JT(t,e,r){return r|e|t}var ek=R(()=>{"use strict";o(JT,"getKeyForAutomaticLookahead")});var $u,_N=R(()=>{"use strict";Pt();Jm();Ns();f2();ng();$u=class{static{o(this,"LLkLookaheadStrategy")}constructor(e){var r;this.maxLookahead=(r=e?.maxLookahead)!==null&&r!==void 0?r:is.maxLookahead}validate(e){let r=this.validateNoLeftRecursion(e.rules);if(Qt(r)){let n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),a=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...r,...n,...i,...a]}return r}validateNoLeftRecursion(e){return ga(e,r=>kN(r,r,Ol))}validateEmptyOrAlternatives(e){return ga(e,r=>eae(r,Ol))}validateAmbiguousAlternationAlternatives(e,r){return ga(e,n=>tae(n,r,Ol))}validateSomeNonEmptyLookaheadPath(e,r){return rae(e,r,Ol)}buildLookaheadForAlternation(e){return Uie(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Yie)}buildLookaheadForOptional(e){return Hie(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,u2(e.prodType),Wie)}}});function PIe(t){tk.reset(),t.accept(tk);let e=tk.dslMethods;return tk.reset(),e}var rk,LN,tk,hae=R(()=>{"use strict";Pt();Ns();ek();ns();_N();rk=class{static{o(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=Xe(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:is.dynamicTokensEnabled,this.maxLookahead=Xe(e,"maxLookahead")?e.maxLookahead:is.maxLookahead,this.lookaheadStrategy=Xe(e,"lookaheadStrategy")?e.lookaheadStrategy:new $u({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){Ee(e,r=>{this.TRACE_INIT(`${r.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:a,repetitionMandatory:s,repetitionMandatoryWithSeparator:l,repetitionWithSeparator:u}=PIe(r);Ee(n,h=>{let f=h.idx===0?"":h.idx;this.TRACE_INIT(`${Rs(h)}${f}`,()=>{let d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:h.idx,rule:r,maxLookahead:h.maxLookahead||this.maxLookahead,hasPredicates:h.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),p=JT(this.fullRuleNameToShort[r.name],256,h.idx);this.setLaFuncCache(p,d)})}),Ee(i,h=>{this.computeLookaheadFunc(r,h.idx,768,"Repetition",h.maxLookahead,Rs(h))}),Ee(a,h=>{this.computeLookaheadFunc(r,h.idx,512,"Option",h.maxLookahead,Rs(h))}),Ee(s,h=>{this.computeLookaheadFunc(r,h.idx,1024,"RepetitionMandatory",h.maxLookahead,Rs(h))}),Ee(l,h=>{this.computeLookaheadFunc(r,h.idx,1536,"RepetitionMandatoryWithSeparator",h.maxLookahead,Rs(h))}),Ee(u,h=>{this.computeLookaheadFunc(r,h.idx,1280,"RepetitionWithSeparator",h.maxLookahead,Rs(h))})})})}computeLookaheadFunc(e,r,n,i,a,s){this.TRACE_INIT(`${s}${r===0?"":r}`,()=>{let l=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:r,rule:e,maxLookahead:a||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),u=JT(this.fullRuleNameToShort[e.name],n,r);this.setLaFuncCache(u,l)})}getKeyForAutomaticLookahead(e,r){let n=this.getLastExplicitRuleShortName();return JT(n,e,r)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,r){this.lookAheadFuncsCache.set(e,r)}},LN=class extends rs{static{o(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}},tk=new LN;o(PIe,"collectMethods")});function NN(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";o(NN,"setNodeLocationOnlyOffset");o(MN,"setNodeLocationFull");o(fae,"addTerminalToCst");o(dae,"addNoneTerminalToCst")});function IN(t,e){Object.defineProperty(t,BIe,{enumerable:!1,configurable:!0,writable:!1,value:e})}var BIe,mae=R(()=>{"use strict";BIe="name";o(IN,"defineNameProp")});function FIe(t,e){let r=Dr(t),n=r.length;for(let i=0;is.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${a.join(` + +`).replace(/\n/g,` + `)}`)}},"validateVisitor")};return r.prototype=n,r.prototype.constructor=r,r._RULE_NAMES=e,r}function yae(t,e,r){let n=o(function(){},"derivedConstructor");IN(n,t+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return Ee(e,a=>{i[a]=FIe}),n.prototype=i,n.prototype.constructor=n,n}function zIe(t,e){return GIe(t,e)}function GIe(t,e){let r=$r(e,i=>wi(t[i])===!1),n=qe(r,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:ON.MISSING_METHOD,methodName:i}));return wc(n)}var ON,vae=R(()=>{"use strict";Pt();mae();o(FIe,"defaultVisit");o(gae,"createBaseSemanticVisitorConstructor");o(yae,"createBaseVisitorConstructorWithDefaults");(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(ON||(ON={}));o(zIe,"validateVisitor");o(GIe,"validateMissingCstMethods")});var sk,xae=R(()=>{"use strict";pae();Pt();vae();Ns();sk=class{static{o(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=Xe(e,"nodeLocationTracking")?e.nodeLocationTracking:is.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=qn,this.cstFinallyStateUpdate=qn,this.cstPostTerminal=qn,this.cstPostNonTerminal=qn,this.cstPostRule=qn;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=MN,this.setNodeLocationFromNode=MN,this.cstPostRule=qn,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=qn,this.setNodeLocationFromNode=qn,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=NN,this.setNodeLocationFromNode=NN,this.cstPostRule=qn,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=qn,this.setNodeLocationFromNode=qn,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=qn,this.setNodeLocationFromNode=qn,this.cstPostRule=qn,this.setInitialNodeLocation=qn;else throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let r={name:e,children:Object.create(null)};this.setInitialNodeLocation(r),this.CST_STACK.push(r)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?(n.endOffset=r.endOffset,n.endLine=r.endLine,n.endColumn=r.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?n.endOffset=r.endOffset:n.startOffset=NaN}cstPostTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];fae(n,r,e),this.setNodeLocationFromToken(n.location,r)}cstPostNonTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];dae(n,r,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(er(this.baseCstVisitorConstructor)){let e=gae(this.className,Dr(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(er(this.baseCstVisitorWithDefaultsConstructor)){let e=yae(this.className,Dr(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}});var ok,bae=R(()=>{"use strict";Ns();ok=class{static{o(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):sg}LA(e){let r=this.currIdx+e;return r<0||this.tokVectorLength<=r?sg:this.tokVector[r]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}});var lk,wae=R(()=>{"use strict";Pt();ag();Ns();Jm();f2();ns();lk=class{static{o(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,r,n){return this.consumeInternal(r,e,n)}subrule(e,r,n){return this.subruleInternal(r,e,n)}option(e,r){return this.optionInternal(r,e)}or(e,r){return this.orInternal(r,e)}many(e,r){return this.manyInternal(e,r)}atLeastOne(e,r){return this.atLeastOneInternal(e,r)}CONSUME(e,r){return this.consumeInternal(e,0,r)}CONSUME1(e,r){return this.consumeInternal(e,1,r)}CONSUME2(e,r){return this.consumeInternal(e,2,r)}CONSUME3(e,r){return this.consumeInternal(e,3,r)}CONSUME4(e,r){return this.consumeInternal(e,4,r)}CONSUME5(e,r){return this.consumeInternal(e,5,r)}CONSUME6(e,r){return this.consumeInternal(e,6,r)}CONSUME7(e,r){return this.consumeInternal(e,7,r)}CONSUME8(e,r){return this.consumeInternal(e,8,r)}CONSUME9(e,r){return this.consumeInternal(e,9,r)}SUBRULE(e,r){return this.subruleInternal(e,0,r)}SUBRULE1(e,r){return this.subruleInternal(e,1,r)}SUBRULE2(e,r){return this.subruleInternal(e,2,r)}SUBRULE3(e,r){return this.subruleInternal(e,3,r)}SUBRULE4(e,r){return this.subruleInternal(e,4,r)}SUBRULE5(e,r){return this.subruleInternal(e,5,r)}SUBRULE6(e,r){return this.subruleInternal(e,6,r)}SUBRULE7(e,r){return this.subruleInternal(e,7,r)}SUBRULE8(e,r){return this.subruleInternal(e,8,r)}SUBRULE9(e,r){return this.subruleInternal(e,9,r)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,r,n=og){if(Fn(this.definedRulesNames,e)){let s={message:Ol.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:Pi.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);let i=this.defineRule(e,r,n);return this[e]=i,i}OVERRIDE_RULE(e,r,n=og){let i=Jie(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let a=this.defineRule(e,r,n);return this[e]=a,a}BACKTRACK(e,r){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,r),!0}catch(i){if(nf(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return NT(or(this.gastProductionsCache))}}});var ck,Tae=R(()=>{"use strict";Pt();ek();ag();ng();c2();Ns();AN();l0();s0();ck=class{static{o(this,"RecognizerEngine")}initRecognizerEngine(e,r){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Zm,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},Xe(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if(wt(e)){if(Qt(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if(wt(e))this.tokensMap=Vr(e,(a,s)=>(a[s.name]=s,a),{});else if(Xe(e,"modes")&&Ia(Gr(or(e.modes)),Die)){let a=Gr(or(e.modes)),s=Pm(a);this.tokensMap=Vr(s,(l,u)=>(l[u.name]=u,l),{})}else if(pn(e))this.tokensMap=Qr(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=fo;let n=Xe(e,"modes")?Gr(or(e.modes)):or(e),i=Ia(n,a=>Qt(a.categoryMatches));this.tokenMatcher=i?Zm:Bu,Fu(or(this.tokensMap))}defineRule(e,r,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=Xe(n,"resyncEnabled")?n.resyncEnabled:og.resyncEnabled,a=Xe(n,"recoveryValueFunc")?n.recoveryValueFunc:og.recoveryValueFunc,s=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s;let l;return this.outputCst===!0?l=o(function(...f){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f);let d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):l=o(function(...f){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f)}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(l,{ruleName:e,originalGrammarAction:r})}invokeRuleCatch(e,r,n){let i=this.RULE_STACK.length===1,a=r&&!this.isBackTracking()&&this.recoveryEnabled;if(nf(e)){let s=e;if(a){let l=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(l))if(s.resyncedTokens=this.reSyncTo(l),this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];return u.recoveredNode=!0,u}else return n(e);else{if(this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];u.recoveredNode=!0,s.partialCstResult=u}throw s}}else{if(i)return this.moveToTerminatedState(),n(e);throw s}}else throw e}optionInternal(e,r){let n=this.getKeyForAutomaticLookahead(512,r);return this.optionInternalLogic(e,r,n)}optionInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof e!="function"){a=e.DEF;let s=e.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=e;if(i.call(this)===!0)return a.call(this)}atLeastOneInternal(e,r){let n=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,r,n)}atLeastOneInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let s=r.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=r;if(i.call(this)===!0){let s=this.doSingleRepetition(a);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a)}else throw this.raiseEarlyExitException(e,$n.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,r],i,1024,e,YT)}atLeastOneSepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,r,n)}atLeastOneSepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,l2],l,1536,e,l2)}else throw this.raiseEarlyExitException(e,$n.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)}manyInternal(e,r){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,r,n)}manyInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let l=r.GATE;if(l!==void 0){let u=i;i=o(()=>l.call(this)&&u.call(this),"lookaheadFunction")}}else a=r;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a);this.attemptInRepetitionRecovery(this.manyInternal,[e,r],i,768,e,HT,s)}manySepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,r,n)}manySepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,o2],l,1280,e,o2)}}repetitionSepSecondInternal(e,r,n,i,a){for(;n();)this.CONSUME(r),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,r,n,i,a],n,1536,e,a)}doSingleRepetition(e){let r=this.getLexerPosition();return e.call(this),this.getLexerPosition()>r}orInternal(e,r){let n=this.getKeyForAutomaticLookahead(256,r),i=wt(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].ALT.call(this);this.raiseNoAltException(r,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new p2(r,e))}}subruleInternal(e,r,n){let i;try{let a=n!==void 0?n.ARGS:void 0;return this.subruleIdx=r,i=e.apply(this,a),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(a){throw this.subruleInternalError(a,n,e.ruleName)}}subruleInternalError(e,r,n){throw nf(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,r,n){let i;try{let a=this.LA(1);this.tokenMatcher(a,e)===!0?(this.consumeToken(),i=a):this.consumeInternalError(e,a,n)}catch(a){i=this.consumeInternalRecovery(e,r,a)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,r,n){let i,a=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new c0(i,r,a))}consumeInternalRecovery(e,r,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,i)}catch(a){throw a.name===SN?n:a}}else throw n}saveRecogState(){let e=this.errors,r=Qr(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,r,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),fo)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}});var uk,kae=R(()=>{"use strict";ag();Pt();ng();Ns();uk=class{static{o(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=Xe(e,"errorMessageProvider")?e.errorMessageProvider:is.errorMessageProvider}SAVE_ERROR(e){if(nf(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:Qr(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return Qr(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,r,n){let i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],l=rg(e,a,r,this.maxLookahead)[0],u=[];for(let f=1;f<=this.maxLookahead;f++)u.push(this.LA(f));let h=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:l,actual:u,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new m2(h,this.LA(1),this.LA(0)))}raiseNoAltException(e,r){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],a=tg(e,i,this.maxLookahead),s=[];for(let h=1;h<=this.maxLookahead;h++)s.push(this.LA(h));let l=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:s,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new d2(u,this.LA(1),l))}}});var hk,Eae=R(()=>{"use strict";c2();Pt();hk=class{static{o(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,r){let n=this.gastProductionsCache[e];if(er(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return qT([n],r,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let r=na(e.ruleStack),i=this.getGAstProductions()[r];return new UT(i,e).startWalking()}}});function y2(t,e,r,n=!1){dk(r);let i=ma(this.recordingProdStack),a=wi(e)?e:e.DEF,s=new t({definition:[],idx:r});return n&&(s.separator=e.SEP),Xe(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),pk}function UIe(t,e){dk(e);let r=ma(this.recordingProdStack),n=wt(t)===!1,i=n===!1?t:t.DEF,a=new gn({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});Xe(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD);let s=Nv(i,l=>wi(l.GATE));return a.hasPredicates=s,r.definition.push(a),Ee(i,l=>{let u=new Sn({definition:[]});a.definition.push(u),Xe(l,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:Xe(l,"GATE")&&(u.ignoreAmbiguities=!0),this.recordingProdStack.push(u),l.ALT.call(this),this.recordingProdStack.pop()}),pk}function Aae(t){return t===0?"":`${t}`}function dk(t){if(t<0||t>Sae){let e=new Error(`Invalid DSL Method idx value: <${t}> + Idx value must be a none negative value smaller than ${Sae+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}var pk,Cae,Sae,_ae,Lae,VIe,fk,Dae=R(()=>{"use strict";Pt();ns();i2();s0();l0();Ns();ek();pk={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(pk);Cae=!0,Sae=Math.pow(2,8)-1,_ae=VT({name:"RECORDING_PHASE_TOKEN",pattern:ni.NA});Fu([_ae]);Lae=o0(_ae,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Lae);VIe={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},fk=class{static{o(this,"GastRecorder")}initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let r=e>0?e:"";this[`CONSUME${r}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${r}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${r}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${r}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${r}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${r}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${r}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${r}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}this.consume=function(e,r,n){return this.consumeInternalRecord(r,e,n)},this.subrule=function(e,r,n){return this.subruleInternalRecord(r,e,n)},this.option=function(e,r){return this.optionInternalRecord(r,e)},this.or=function(e,r){return this.orInternalRecord(r,e)},this.many=function(e,r){this.manyInternalRecord(e,r)},this.atLeastOne=function(e,r){this.atLeastOneInternalRecord(e,r)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let r=0;r<10;r++){let n=r>0?r:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,r){return()=>!0}LA_RECORD(e){return sg}topLevelRuleRecord(e,r){try{let n=new ts({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),r.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}}optionInternalRecord(e,r){return y2.call(this,Jr,e,r)}atLeastOneInternalRecord(e,r){y2.call(this,An,r,e)}atLeastOneSepFirstInternalRecord(e,r){y2.call(this,_n,r,e,Cae)}manyInternalRecord(e,r){y2.call(this,br,r,e)}manySepFirstInternalRecord(e,r){y2.call(this,mn,r,e,Cae)}orInternalRecord(e,r){return UIe.call(this,e,r)}subruleInternalRecord(e,r,n){if(dk(r),!e||Xe(e,"ruleName")===!1){let l=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw l.KNOWN_RECORDER_ERROR=!0,l}let i=ma(this.recordingProdStack),a=e.ruleName,s=new Zr({idx:r,nonTerminalName:a,label:n?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?VIe:pk}consumeInternalRecord(e,r,n){if(dk(r),!dN(e)){let s=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=ma(this.recordingProdStack),a=new fr({idx:r,terminalType:e,label:n?.LABEL});return i.definition.push(a),Lae}};o(y2,"recordProd");o(UIe,"recordOrProd");o(Aae,"getIdxSuffix");o(dk,"assertMethodIdxIsValid")});var mk,Rae=R(()=>{"use strict";Pt();qm();Ns();mk=class{static{o(this,"PerformanceTracer")}initPerformanceTracer(e){if(Xe(e,"traceInitPerf")){let r=e.traceInitPerf,n=typeof r=="number";this.traceInitMaxIdent=n?r:1/0,this.traceInitPerf=n?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=is.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:i,value:a}=t2(r),s=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,a}else return r()}}});function Nae(t,e){e.forEach(r=>{let n=r.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let a=Object.getOwnPropertyDescriptor(n,i);a&&(a.get||a.set)?Object.defineProperty(t.prototype,i,a):t.prototype[i]=r.prototype[i]})})}var Mae=R(()=>{"use strict";o(Nae,"applyMixins")});function gk(t=void 0){return function(){return t}}var sg,is,og,Pi,v2,x2,Ns=R(()=>{"use strict";Pt();qm();cie();l0();Jm();aae();AN();hae();xae();bae();wae();Tae();kae();Eae();Dae();Rae();Mae();f2();sg=o0(fo,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(sg);is=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Gu,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),og=Object.freeze({recoveryValueFunc:o(()=>{},"recoveryValueFunc"),resyncEnabled:!0});(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(Pi||(Pi={}));o(gk,"EMPTY_ALT");v2=class t{static{o(this,"Parser")}static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{r2(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),Ee(this.definedRulesNames,i=>{let s=this[i].originalGrammarAction,l;this.TRACE_INIT(`${i} Rule`,()=>{l=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=l})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=nae({rules:or(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(Qt(n)&&this.skipValidations===!1){let i=iae({rules:or(this.gastProductionsCache),tokenTypes:or(this.tokensMap),errMsgProvider:Ol,grammarName:r}),a=Kie({lookaheadStrategy:this.lookaheadStrategy,rules:or(this.gastProductionsCache),tokenTypes:or(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(i,a)}}),Qt(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=lie(or(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,a;(a=(i=this.lookaheadStrategy).initialize)===null||a===void 0||a.call(i,{rules:or(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(or(this.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!Qt(this.definitionErrors))throw e=qe(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected: + ${e.join(` +------------------------------- +`)}`)})}constructor(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(r),n.initLexerAdapter(),n.initLooksAhead(r),n.initRecognizerEngine(e,r),n.initRecoverable(r),n.initTreeBuilder(r),n.initContentAssist(),n.initGastRecorder(r),n.initPerformanceTracer(r),Xe(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=Xe(r,"skipValidations")?r.skipValidations:is.skipValidations}};v2.DEFER_DEFINITION_ERRORS_HANDLING=!1;Nae(v2,[ZT,rk,sk,ok,ck,lk,uk,hk,fk,mk]);x2=class extends v2{static{o(this,"EmbeddedActionsParser")}constructor(e,r=is){let n=Qr(r);n.outputCst=!1,super(e,n)}}});var Iae=R(()=>{"use strict";ns()});var Oae=R(()=>{"use strict"});var Pae=R(()=>{"use strict";Iae();Oae()});var Bae=R(()=>{"use strict";tN()});var u0=R(()=>{"use strict";tN();Ns();i2();l0();ng();_N();Jm();ag();mN();ns();ns();Pae();Bae()});function h0(t,e,r){return`${t.name}_${e}_${r}`}function $ae(t){let e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};KIe(e,t);let r=t.length;for(let n=0;nVae(t,e,s));return hg(t,e,n,r,...i)}function rOe(t,e,r){let n=ia(t,e,r,{type:af});sf(t,n);let i=hg(t,e,n,r,f0(t,e,r));return nOe(t,e,r,i)}function f0(t,e,r){let n=$r(qe(r.definition,i=>Vae(t,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:aOe(t,n)}function Uae(t,e,r,n,i){let a=n.left,s=n.right,l=ia(t,e,r,{type:jIe});sf(t,l);let u=ia(t,e,r,{type:Gae});return a.loopback=l,u.loopback=l,t.decisionMap[h0(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=l,Ei(s,l),i===void 0?(Ei(l,a),Ei(l,u)):(Ei(l,u),Ei(l,i.left),Ei(i.right,a)),{left:a,right:u}}function Hae(t,e,r,n,i){let a=n.left,s=n.right,l=ia(t,e,r,{type:XIe});sf(t,l);let u=ia(t,e,r,{type:Gae}),h=ia(t,e,r,{type:qIe});return l.loopback=h,u.loopback=h,Ei(l,a),Ei(l,u),Ei(s,h),i!==void 0?(Ei(h,u),Ei(h,i.left),Ei(i.right,a)):Ei(h,l),t.decisionMap[h0(e,i?"RepetitionWithSeparator":"Repetition",r.idx)]=l,{left:l,right:u}}function nOe(t,e,r,n){let i=n.left,a=n.right;return Ei(i,a),t.decisionMap[h0(e,"Option",r.idx)]=i,n}function sf(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function hg(t,e,r,n,...i){let a=ia(t,e,n,{type:WIe,start:r});r.end=a;for(let l of i)l!==void 0?(Ei(r,l.left),Ei(l.right,a)):Ei(r,a);let s={left:r,right:a};return t.decisionMap[h0(e,iOe(n),n.idx)]=r,s}function iOe(t){if(t instanceof gn)return"Alternation";if(t instanceof Jr)return"Option";if(t instanceof br)return"Repetition";if(t instanceof mn)return"RepetitionWithSeparator";if(t instanceof An)return"RepetitionMandatory";if(t instanceof _n)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function aOe(t,e){let r=e.length;for(let a=0;a{"use strict";Mm();LL();u0();o(h0,"buildATNKey");af=1,YIe=2,Fae=4,zae=5,ug=7,WIe=8,qIe=9,XIe=10,jIe=11,Gae=12,b2=class{static{o(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},lg=class extends b2{static{o(this,"AtomTransition")}constructor(e,r){super(e),this.tokenType=r}},w2=class extends b2{static{o(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},cg=class extends b2{static{o(this,"RuleTransition")}constructor(e,r,n){super(e),this.rule=r,this.followState=n}isEpsilon(){return!0}};o($ae,"createATN");o(KIe,"createRuleStartAndStopATNStates");o(Vae,"atom");o(QIe,"repetition");o(ZIe,"repetitionSep");o(JIe,"repetitionMandatory");o(eOe,"repetitionMandatorySep");o(tOe,"alternation");o(rOe,"option");o(f0,"block");o(Uae,"plus");o(Hae,"star");o(nOe,"optional");o(sf,"defineDecisionState");o(hg,"makeAlts");o(iOe,"getProdType");o(aOe,"makeBlock");o(BN,"tokenRef");o(sOe,"ruleRef");o(oOe,"buildRuleHandle");o(Ei,"epsilon");o(ia,"newState");o(FN,"addTransition");o(lOe,"removeState")});function zN(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(r=>r.stateNumber.toString()).join("_")}`}var T2,fg,Wae=R(()=>{"use strict";Mm();T2={},fg=class{static{o(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let r=zN(e);r in this.map||(this.map[r]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return qe(this.configs,e=>e.alt)}get key(){let e="";for(let r in this.map)e+=r+":";return e}};o(zN,"getATNConfigKey")});function cOe(t,e){let r={};return n=>{let i=n.toString(),a=r[i];return a!==void 0||(a={atnStartState:t,decision:e,states:{}},r[i]=a),a}}function Xae(t,e=!0){let r=new Set;for(let n of t){let i=new Set;for(let a of n){if(a===void 0){if(e)break;return!1}let s=[a.tokenTypeIdx].concat(a.categoryMatches);for(let l of s)if(r.has(l)){if(!i.has(l))return!1}else r.add(l),i.add(l)}}return!0}function uOe(t){let e=t.decisionStates.length,r=Array(e);for(let n=0;nzu(i)).join(", "),r=t.production.idx===0?"":t.production.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${mOe(t.production)}${r}> inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n}function mOe(t){if(t instanceof Zr)return"SUBRULE";if(t instanceof Jr)return"OPTION";if(t instanceof gn)return"OR";if(t instanceof An)return"AT_LEAST_ONE";if(t instanceof _n)return"AT_LEAST_ONE_SEP";if(t instanceof mn)return"MANY_SEP";if(t instanceof br)return"MANY";if(t instanceof fr)return"CONSUME";throw Error("non exhaustive match")}function gOe(t,e,r){let n=ga(e.configs.elements,a=>a.state.transitions),i=nte(n.filter(a=>a instanceof lg).map(a=>a.tokenType),a=>a.tokenTypeIdx);return{actualToken:r,possibleTokenTypes:i,tokenPath:t}}function yOe(t,e){return t.edges[e.tokenTypeIdx]}function vOe(t,e,r){let n=new fg,i=[];for(let s of t.elements){if(r.is(s.alt)===!1)continue;if(s.state.type===ug){i.push(s);continue}let l=s.state.transitions.length;for(let u=0;u0&&!kOe(a))for(let s of i)a.add(s);return a}function xOe(t,e){if(t instanceof lg&&s2(e,t.tokenType))return t.target}function bOe(t,e){let r;for(let n of t.elements)if(e.is(n.alt)===!0){if(r===void 0)r=n.alt;else if(r!==n.alt)return}return r}function Kae(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function jae(t,e,r,n){return n=Qae(t,n),e.edges[r.tokenTypeIdx]=n,n}function Qae(t,e){if(e===T2)return e;let r=e.configs.key,n=t.states[r];return n!==void 0?n:(e.configs.finalize(),t.states[r]=e,e)}function wOe(t){let e=new fg,r=t.transitions.length;for(let n=0;n0){let i=[...t.stack],s={state:i.pop(),alt:t.alt,stack:i};vk(s,e)}else e.add(t);return}r.epsilonOnlyTransitions||e.add(t);let n=r.transitions.length;for(let i=0;i1)return!0;return!1}function _Oe(t){for(let e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var yk,qae,k2,Zae=R(()=>{"use strict";u0();Yae();Wae();BL();RL();ite();Mm();fw();$w();Ww();$L();o(cOe,"createDFACache");yk=class{static{o(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,r){this.predicates[e]=r}toString(){let e="",r=this.predicates.length;for(let n=0;nconsole.log(n)}initialize(e){this.atn=$ae(e.rules),this.dfas=uOe(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:r,rule:n,hasPredicates:i,dynamicTokensEnabled:a}=e,s=this.dfas,l=this.logging,u=h0(n,"Alternation",r),f=this.atn.decisionMap[u].decision,d=qe(jT({maxLookahead:1,occurrence:r,prodType:"Alternation",rule:n}),p=>qe(p,m=>m[0]));if(Xae(d,!1)&&!a){let p=Vr(d,(m,g,y)=>(Ee(g,v=>{v&&(m[v.tokenTypeIdx]=y,Ee(v.categoryMatches,x=>{m[x]=y}))}),m),{});return i?function(m){var g;let y=this.LA(1),v=p[y.tokenTypeIdx];if(m!==void 0&&v!==void 0){let x=(g=m[v])===null||g===void 0?void 0:g.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let m=this.LA(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new yk,g=p===void 0?0:p.length;for(let v=0;vqe(p,m=>m[0]));if(Xae(d)&&d[0][0]&&!a){let p=d[0],m=Gr(p);if(m.length===1&&Qt(m[0].categoryMatches)){let y=m[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===y}}else{let g=Vr(m,(y,v)=>(v!==void 0&&(y[v.tokenTypeIdx]=!0,Ee(v.categoryMatches,x=>{y[x]=!0})),y),{});return function(){let y=this.LA(1);return g[y.tokenTypeIdx]===!0}}}return function(){let p=GN.call(this,s,f,qae,l);return typeof p=="object"?!1:p===0}}};o(Xae,"isLL1Sequence");o(uOe,"initATNSimulator");o(GN,"adaptivePredict");o(hOe,"performLookahead");o(fOe,"computeLookaheadTarget");o(dOe,"reportLookaheadAmbiguity");o(pOe,"buildAmbiguityError");o(mOe,"getProductionDslName");o(gOe,"buildAdaptivePredictError");o(yOe,"getExistingTargetState");o(vOe,"computeReachSet");o(xOe,"getReachableTarget");o(bOe,"getUniqueAlt");o(Kae,"newDFAState");o(jae,"addDFAEdge");o(Qae,"addDFAState");o(wOe,"computeStartState");o(vk,"closure");o(TOe,"getEpsilonTarget");o(kOe,"hasConfigInRuleStopState");o(EOe,"allConfigsInRuleStopStates");o(COe,"hasConflictTerminatingPrediction");o(SOe,"getConflictingAltSets");o(AOe,"hasConflictingAltSet");o(_Oe,"hasStateAssociatedWithOneAlt")});var Jae=R(()=>{"use strict";Zae()});var ese,$N,tse,xk,Ur,wr,bk,rse,VN,nse,ise,ase,sse,UN,ose,lse,cse,wk,dg,pg,HN,mg,use,YN,WN,qN,XN,jN,hse,fse,KN,dse,QN,E2,pse,mse,gse,yse,vse,xse,bse,wse,Tk,Tse,kse,Ese,Cse,Sse,Ase,_se,Lse,Dse,Rse,Nse,kk,Mse,Ise,Ose,Pse,Bse,Fse,zse,Gse,$se,Vse,Use,Hse,Yse,ZN,JN,Wse,qse,Xse,jse,Kse,Qse,Zse,Jse,eoe,eM,Fe,tM=R(()=>{"use strict";(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(ese||(ese={}));(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})($N||($N={}));(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(tse||(tse={}));(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(xk||(xk={}));(function(t){function e(n,i){return n===Number.MAX_VALUE&&(n=xk.MAX_VALUE),i===Number.MAX_VALUE&&(i=xk.MAX_VALUE),{line:n,character:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.uinteger(i.line)&&Fe.uinteger(i.character)}o(r,"is"),t.is=r})(Ur||(Ur={}));(function(t){function e(n,i,a,s){if(Fe.uinteger(n)&&Fe.uinteger(i)&&Fe.uinteger(a)&&Fe.uinteger(s))return{start:Ur.create(n,i),end:Ur.create(a,s)};if(Ur.is(n)&&Ur.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${a}, ${s}]`)}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Ur.is(i.start)&&Ur.is(i.end)}o(r,"is"),t.is=r})(wr||(wr={}));(function(t){function e(n,i){return{uri:n,range:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&wr.is(i.range)&&(Fe.string(i.uri)||Fe.undefined(i.uri))}o(r,"is"),t.is=r})(bk||(bk={}));(function(t){function e(n,i,a,s){return{targetUri:n,targetRange:i,targetSelectionRange:a,originSelectionRange:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&wr.is(i.targetRange)&&Fe.string(i.targetUri)&&wr.is(i.targetSelectionRange)&&(wr.is(i.originSelectionRange)||Fe.undefined(i.originSelectionRange))}o(r,"is"),t.is=r})(rse||(rse={}));(function(t){function e(n,i,a,s){return{red:n,green:i,blue:a,alpha:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.numberRange(i.red,0,1)&&Fe.numberRange(i.green,0,1)&&Fe.numberRange(i.blue,0,1)&&Fe.numberRange(i.alpha,0,1)}o(r,"is"),t.is=r})(VN||(VN={}));(function(t){function e(n,i){return{range:n,color:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&wr.is(i.range)&&VN.is(i.color)}o(r,"is"),t.is=r})(nse||(nse={}));(function(t){function e(n,i,a){return{label:n,textEdit:i,additionalTextEdits:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.string(i.label)&&(Fe.undefined(i.textEdit)||pg.is(i))&&(Fe.undefined(i.additionalTextEdits)||Fe.typedArray(i.additionalTextEdits,pg.is))}o(r,"is"),t.is=r})(ise||(ise={}));(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(ase||(ase={}));(function(t){function e(n,i,a,s,l,u){let h={startLine:n,endLine:i};return Fe.defined(a)&&(h.startCharacter=a),Fe.defined(s)&&(h.endCharacter=s),Fe.defined(l)&&(h.kind=l),Fe.defined(u)&&(h.collapsedText=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.uinteger(i.startLine)&&Fe.uinteger(i.startLine)&&(Fe.undefined(i.startCharacter)||Fe.uinteger(i.startCharacter))&&(Fe.undefined(i.endCharacter)||Fe.uinteger(i.endCharacter))&&(Fe.undefined(i.kind)||Fe.string(i.kind))}o(r,"is"),t.is=r})(sse||(sse={}));(function(t){function e(n,i){return{location:n,message:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&bk.is(i.location)&&Fe.string(i.message)}o(r,"is"),t.is=r})(UN||(UN={}));(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(ose||(ose={}));(function(t){t.Unnecessary=1,t.Deprecated=2})(lse||(lse={}));(function(t){function e(r){let n=r;return Fe.objectLiteral(n)&&Fe.string(n.href)}o(e,"is"),t.is=e})(cse||(cse={}));(function(t){function e(n,i,a,s,l,u){let h={range:n,message:i};return Fe.defined(a)&&(h.severity=a),Fe.defined(s)&&(h.code=s),Fe.defined(l)&&(h.source=l),Fe.defined(u)&&(h.relatedInformation=u),h}o(e,"create"),t.create=e;function r(n){var i;let a=n;return Fe.defined(a)&&wr.is(a.range)&&Fe.string(a.message)&&(Fe.number(a.severity)||Fe.undefined(a.severity))&&(Fe.integer(a.code)||Fe.string(a.code)||Fe.undefined(a.code))&&(Fe.undefined(a.codeDescription)||Fe.string((i=a.codeDescription)===null||i===void 0?void 0:i.href))&&(Fe.string(a.source)||Fe.undefined(a.source))&&(Fe.undefined(a.relatedInformation)||Fe.typedArray(a.relatedInformation,UN.is))}o(r,"is"),t.is=r})(wk||(wk={}));(function(t){function e(n,i,...a){let s={title:n,command:i};return Fe.defined(a)&&a.length>0&&(s.arguments=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.title)&&Fe.string(i.command)}o(r,"is"),t.is=r})(dg||(dg={}));(function(t){function e(a,s){return{range:a,newText:s}}o(e,"replace"),t.replace=e;function r(a,s){return{range:{start:a,end:a},newText:s}}o(r,"insert"),t.insert=r;function n(a){return{range:a,newText:""}}o(n,"del"),t.del=n;function i(a){let s=a;return Fe.objectLiteral(s)&&Fe.string(s.newText)&&wr.is(s.range)}o(i,"is"),t.is=i})(pg||(pg={}));(function(t){function e(n,i,a){let s={label:n};return i!==void 0&&(s.needsConfirmation=i),a!==void 0&&(s.description=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.string(i.label)&&(Fe.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(Fe.string(i.description)||i.description===void 0)}o(r,"is"),t.is=r})(HN||(HN={}));(function(t){function e(r){let n=r;return Fe.string(n)}o(e,"is"),t.is=e})(mg||(mg={}));(function(t){function e(a,s,l){return{range:a,newText:s,annotationId:l}}o(e,"replace"),t.replace=e;function r(a,s,l){return{range:{start:a,end:a},newText:s,annotationId:l}}o(r,"insert"),t.insert=r;function n(a,s){return{range:a,newText:"",annotationId:s}}o(n,"del"),t.del=n;function i(a){let s=a;return pg.is(s)&&(HN.is(s.annotationId)||mg.is(s.annotationId))}o(i,"is"),t.is=i})(use||(use={}));(function(t){function e(n,i){return{textDocument:n,edits:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&KN.is(i.textDocument)&&Array.isArray(i.edits)}o(r,"is"),t.is=r})(YN||(YN={}));(function(t){function e(n,i,a){let s={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="create"&&Fe.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||Fe.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Fe.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||mg.is(i.annotationId))}o(r,"is"),t.is=r})(WN||(WN={}));(function(t){function e(n,i,a,s){let l={kind:"rename",oldUri:n,newUri:i};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(l.options=a),s!==void 0&&(l.annotationId=s),l}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="rename"&&Fe.string(i.oldUri)&&Fe.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||Fe.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Fe.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||mg.is(i.annotationId))}o(r,"is"),t.is=r})(qN||(qN={}));(function(t){function e(n,i,a){let s={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="delete"&&Fe.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||Fe.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||Fe.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||mg.is(i.annotationId))}o(r,"is"),t.is=r})(XN||(XN={}));(function(t){function e(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>Fe.string(i.kind)?WN.is(i)||qN.is(i)||XN.is(i):YN.is(i)))}o(e,"is"),t.is=e})(jN||(jN={}));(function(t){function e(n){return{uri:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.uri)}o(r,"is"),t.is=r})(hse||(hse={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.uri)&&Fe.integer(i.version)}o(r,"is"),t.is=r})(fse||(fse={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.uri)&&(i.version===null||Fe.integer(i.version))}o(r,"is"),t.is=r})(KN||(KN={}));(function(t){function e(n,i,a,s){return{uri:n,languageId:i,version:a,text:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.uri)&&Fe.string(i.languageId)&&Fe.integer(i.version)&&Fe.string(i.text)}o(r,"is"),t.is=r})(dse||(dse={}));(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(r){let n=r;return n===t.PlainText||n===t.Markdown}o(e,"is"),t.is=e})(QN||(QN={}));(function(t){function e(r){let n=r;return Fe.objectLiteral(r)&&QN.is(n.kind)&&Fe.string(n.value)}o(e,"is"),t.is=e})(E2||(E2={}));(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(pse||(pse={}));(function(t){t.PlainText=1,t.Snippet=2})(mse||(mse={}));(function(t){t.Deprecated=1})(gse||(gse={}));(function(t){function e(n,i,a){return{newText:n,insert:i,replace:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Fe.string(i.newText)&&wr.is(i.insert)&&wr.is(i.replace)}o(r,"is"),t.is=r})(yse||(yse={}));(function(t){t.asIs=1,t.adjustIndentation=2})(vse||(vse={}));(function(t){function e(r){let n=r;return n&&(Fe.string(n.detail)||n.detail===void 0)&&(Fe.string(n.description)||n.description===void 0)}o(e,"is"),t.is=e})(xse||(xse={}));(function(t){function e(r){return{label:r}}o(e,"create"),t.create=e})(bse||(bse={}));(function(t){function e(r,n){return{items:r||[],isIncomplete:!!n}}o(e,"create"),t.create=e})(wse||(wse={}));(function(t){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o(e,"fromPlainText"),t.fromPlainText=e;function r(n){let i=n;return Fe.string(i)||Fe.objectLiteral(i)&&Fe.string(i.language)&&Fe.string(i.value)}o(r,"is"),t.is=r})(Tk||(Tk={}));(function(t){function e(r){let n=r;return!!n&&Fe.objectLiteral(n)&&(E2.is(n.contents)||Tk.is(n.contents)||Fe.typedArray(n.contents,Tk.is))&&(r.range===void 0||wr.is(r.range))}o(e,"is"),t.is=e})(Tse||(Tse={}));(function(t){function e(r,n){return n?{label:r,documentation:n}:{label:r}}o(e,"create"),t.create=e})(kse||(kse={}));(function(t){function e(r,n,...i){let a={label:r};return Fe.defined(n)&&(a.documentation=n),Fe.defined(i)?a.parameters=i:a.parameters=[],a}o(e,"create"),t.create=e})(Ese||(Ese={}));(function(t){t.Text=1,t.Read=2,t.Write=3})(Cse||(Cse={}));(function(t){function e(r,n){let i={range:r};return Fe.number(n)&&(i.kind=n),i}o(e,"create"),t.create=e})(Sse||(Sse={}));(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(Ase||(Ase={}));(function(t){t.Deprecated=1})(_se||(_se={}));(function(t){function e(r,n,i,a,s){let l={name:r,kind:n,location:{uri:a,range:i}};return s&&(l.containerName=s),l}o(e,"create"),t.create=e})(Lse||(Lse={}));(function(t){function e(r,n,i,a){return a!==void 0?{name:r,kind:n,location:{uri:i,range:a}}:{name:r,kind:n,location:{uri:i}}}o(e,"create"),t.create=e})(Dse||(Dse={}));(function(t){function e(n,i,a,s,l,u){let h={name:n,detail:i,kind:a,range:s,selectionRange:l};return u!==void 0&&(h.children=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Fe.string(i.name)&&Fe.number(i.kind)&&wr.is(i.range)&&wr.is(i.selectionRange)&&(i.detail===void 0||Fe.string(i.detail))&&(i.deprecated===void 0||Fe.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}o(r,"is"),t.is=r})(Rse||(Rse={}));(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(Nse||(Nse={}));(function(t){t.Invoked=1,t.Automatic=2})(kk||(kk={}));(function(t){function e(n,i,a){let s={diagnostics:n};return i!=null&&(s.only=i),a!=null&&(s.triggerKind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.typedArray(i.diagnostics,wk.is)&&(i.only===void 0||Fe.typedArray(i.only,Fe.string))&&(i.triggerKind===void 0||i.triggerKind===kk.Invoked||i.triggerKind===kk.Automatic)}o(r,"is"),t.is=r})(Mse||(Mse={}));(function(t){function e(n,i,a){let s={title:n},l=!0;return typeof i=="string"?(l=!1,s.kind=i):dg.is(i)?s.command=i:s.edit=i,l&&a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Fe.string(i.title)&&(i.diagnostics===void 0||Fe.typedArray(i.diagnostics,wk.is))&&(i.kind===void 0||Fe.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||dg.is(i.command))&&(i.isPreferred===void 0||Fe.boolean(i.isPreferred))&&(i.edit===void 0||jN.is(i.edit))}o(r,"is"),t.is=r})(Ise||(Ise={}));(function(t){function e(n,i){let a={range:n};return Fe.defined(i)&&(a.data=i),a}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&wr.is(i.range)&&(Fe.undefined(i.command)||dg.is(i.command))}o(r,"is"),t.is=r})(Ose||(Ose={}));(function(t){function e(n,i){return{tabSize:n,insertSpaces:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.uinteger(i.tabSize)&&Fe.boolean(i.insertSpaces)}o(r,"is"),t.is=r})(Pse||(Pse={}));(function(t){function e(n,i,a){return{range:n,target:i,data:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&wr.is(i.range)&&(Fe.undefined(i.target)||Fe.string(i.target))}o(r,"is"),t.is=r})(Bse||(Bse={}));(function(t){function e(n,i){return{range:n,parent:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&wr.is(i.range)&&(i.parent===void 0||t.is(i.parent))}o(r,"is"),t.is=r})(Fse||(Fse={}));(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(zse||(zse={}));(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(Gse||(Gse={}));(function(t){function e(r){let n=r;return Fe.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}o(e,"is"),t.is=e})($se||($se={}));(function(t){function e(n,i){return{range:n,text:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&wr.is(i.range)&&Fe.string(i.text)}o(r,"is"),t.is=r})(Vse||(Vse={}));(function(t){function e(n,i,a){return{range:n,variableName:i,caseSensitiveLookup:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&wr.is(i.range)&&Fe.boolean(i.caseSensitiveLookup)&&(Fe.string(i.variableName)||i.variableName===void 0)}o(r,"is"),t.is=r})(Use||(Use={}));(function(t){function e(n,i){return{range:n,expression:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&wr.is(i.range)&&(Fe.string(i.expression)||i.expression===void 0)}o(r,"is"),t.is=r})(Hse||(Hse={}));(function(t){function e(n,i){return{frameId:n,stoppedLocation:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&wr.is(n.stoppedLocation)}o(r,"is"),t.is=r})(Yse||(Yse={}));(function(t){t.Type=1,t.Parameter=2;function e(r){return r===1||r===2}o(e,"is"),t.is=e})(ZN||(ZN={}));(function(t){function e(n){return{value:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&(i.tooltip===void 0||Fe.string(i.tooltip)||E2.is(i.tooltip))&&(i.location===void 0||bk.is(i.location))&&(i.command===void 0||dg.is(i.command))}o(r,"is"),t.is=r})(JN||(JN={}));(function(t){function e(n,i,a){let s={position:n,label:i};return a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Ur.is(i.position)&&(Fe.string(i.label)||Fe.typedArray(i.label,JN.is))&&(i.kind===void 0||ZN.is(i.kind))&&i.textEdits===void 0||Fe.typedArray(i.textEdits,pg.is)&&(i.tooltip===void 0||Fe.string(i.tooltip)||E2.is(i.tooltip))&&(i.paddingLeft===void 0||Fe.boolean(i.paddingLeft))&&(i.paddingRight===void 0||Fe.boolean(i.paddingRight))}o(r,"is"),t.is=r})(Wse||(Wse={}));(function(t){function e(r){return{kind:"snippet",value:r}}o(e,"createSnippet"),t.createSnippet=e})(qse||(qse={}));(function(t){function e(r,n,i,a){return{insertText:r,filterText:n,range:i,command:a}}o(e,"create"),t.create=e})(Xse||(Xse={}));(function(t){function e(r){return{items:r}}o(e,"create"),t.create=e})(jse||(jse={}));(function(t){t.Invoked=0,t.Automatic=1})(Kse||(Kse={}));(function(t){function e(r,n){return{range:r,text:n}}o(e,"create"),t.create=e})(Qse||(Qse={}));(function(t){function e(r,n){return{triggerKind:r,selectedCompletionInfo:n}}o(e,"create"),t.create=e})(Zse||(Zse={}));(function(t){function e(r){let n=r;return Fe.objectLiteral(n)&&$N.is(n.uri)&&Fe.string(n.name)}o(e,"is"),t.is=e})(Jse||(Jse={}));(function(t){function e(a,s,l,u){return new eM(a,s,l,u)}o(e,"create"),t.create=e;function r(a){let s=a;return!!(Fe.defined(s)&&Fe.string(s.uri)&&(Fe.undefined(s.languageId)||Fe.string(s.languageId))&&Fe.uinteger(s.lineCount)&&Fe.func(s.getText)&&Fe.func(s.positionAt)&&Fe.func(s.offsetAt))}o(r,"is"),t.is=r;function n(a,s){let l=a.getText(),u=i(s,(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),h=l.length;for(let f=u.length-1;f>=0;f--){let d=u[f],p=a.offsetAt(d.range.start),m=a.offsetAt(d.range.end);if(m<=h)l=l.substring(0,p)+d.newText+l.substring(m,l.length);else throw new Error("Overlapping edit");h=p}return l}o(n,"applyEdits"),t.applyEdits=n;function i(a,s){if(a.length<=1)return a;let l=a.length/2|0,u=a.slice(0,l),h=a.slice(l);i(u,s),i(h,s);let f=0,d=0,p=0;for(;f0&&e.push(r.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return Ur.create(0,e);for(;ne?i=s:n=s+1}let a=n-1;return Ur.create(a,e-r[a])}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line],i=e.line+1"u"}o(n,"undefined"),t.undefined=n;function i(m){return m===!0||m===!1}o(i,"boolean"),t.boolean=i;function a(m){return e.call(m)==="[object String]"}o(a,"string"),t.string=a;function s(m){return e.call(m)==="[object Number]"}o(s,"number"),t.number=s;function l(m,g,y){return e.call(m)==="[object Number]"&&g<=m&&m<=y}o(l,"numberRange"),t.numberRange=l;function u(m){return e.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}o(u,"integer"),t.integer=u;function h(m){return e.call(m)==="[object Number]"&&0<=m&&m<=2147483647}o(h,"uinteger"),t.uinteger=h;function f(m){return e.call(m)==="[object Function]"}o(f,"func"),t.func=f;function d(m){return m!==null&&typeof m=="object"}o(d,"objectLiteral"),t.objectLiteral=d;function p(m,g){return Array.isArray(m)&&m.every(g)}o(p,"typedArray"),t.typedArray=p})(Fe||(Fe={}))});var C2,S2,d0,p0,rM,gg,Ek=R(()=>{"use strict";tM();Vo();Rl();C2=class{static{o(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new gg(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let r=new p0;return r.grammarSource=e,r.root=this.rootNode,this.current.content.push(r),this.nodeStack.push(r),r}buildLeafNode(e,r){let n=new d0(e.startOffset,e.image.length,zm(e),e.tokenType,!1);return n.grammarSource=r,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let r=e.container;if(r){let n=r.content.indexOf(e);n>=0&&r.content.splice(n,1)}}construct(e){let r=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=r;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}addHiddenTokens(e){for(let r of e){let n=new d0(r.startOffset,r.image.length,zm(r),r.tokenType,!0);n.root=this.rootNode,this.addHiddenToken(this.rootNode,n)}}addHiddenToken(e,r){let{offset:n,end:i}=r;for(let a=0;al&&i=0;e--){let r=this.content[e];if(!r.hidden)return r}return this.content[this.content.length-1]}},rM=class t extends Array{static{o(this,"CstNodeContainer")}constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,t.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,r,...n){return this.addParents(n),super.splice(e,r,...n)}addParents(e){for(let r of e)r.container=this.parent}},gg=class extends p0{static{o(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}});function nM(t){return t.$type===Ck}var Ck,toe,roe,A2,_2,Sk,yg,L2,LOe,iM,D2=R(()=>{"use strict";u0();Jae();Sc();Il();es();Ek();Ck=Symbol("Datatype");o(nM,"isDataTypeNode");toe="\u200B",roe=o(t=>t.endsWith(toe)?t:t+toe,"withRuleSuffix"),A2=class{static{o(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.lexer=e.parser.Lexer;let r=this.lexer.definition;this.wrapper=new iM(r,Object.assign(Object.assign({},e.parser.ParserConfig),{errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,r){this.wrapper.wrapOr(e,r)}optional(e,r){this.wrapper.wrapOption(e,r)}many(e,r){this.wrapper.wrapMany(e,r)}atLeastOne(e,r){this.wrapper.wrapAtLeastOne(e,r)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},_2=class extends A2{static{o(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new C2,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,r){let n=e.fragment?void 0:Jv(e)?Ck:r0(e),i=this.wrapper.DEFINE_RULE(roe(e.name),this.startImplementation(n,r).bind(this));return e.entry&&(this.mainRule=i),i}parse(e){this.nodeBuilder.buildRootNode(e);let r=this.lexer.tokenize(e);this.wrapper.input=r.tokens;let n=this.mainRule.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(r.hidden),this.unorderedGroups.clear(),{value:n,lexerErrors:r.errors,parserErrors:this.wrapper.errors}}startImplementation(e,r){return n=>{if(!this.isRecording()){let a={$type:e};this.stack.push(a),e===Ck&&(a.value="")}let i;try{i=r(n)}catch{i=void 0}return!this.isRecording()&&i===void 0&&(i=this.construct()),i}}consume(e,r,n){let i=this.wrapper.wrapConsume(e,r);if(!this.isRecording()&&this.isValidToken(i)){let a=this.nodeBuilder.buildLeafNode(i,n),{assignment:s,isCrossRef:l}=this.getAssignment(n),u=this.current;if(s){let h=Ho(n)?i.image:this.converter.convert(i.image,a);this.assign(s.operator,s.feature,h,a,l)}else if(nM(u)){let h=i.image;Ho(n)||(h=this.converter.convert(h,a).toString()),u.value+=h}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,r,n,i){let a;this.isRecording()||(a=this.nodeBuilder.buildCompositeNode(n));let s=this.wrapper.wrapSubrule(e,r,i);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(s,n,a)}performSubruleAssignment(e,r,n){let{assignment:i,isCrossRef:a}=this.getAssignment(r);if(i)this.assign(i.operator,i.feature,e,n,a);else if(!i){let s=this.current;if(nM(s))s.value+=e.toString();else if(typeof e=="object"&&e){let l=e.$type,u=this.assignWithoutOverride(e,s);l&&(u.$type=l);let h=u;this.stack.pop(),this.stack.push(h)}}}action(e,r){if(!this.isRecording()){let n=this.current;if(!n.$cstNode&&r.feature&&r.operator){n=this.construct(!1);let a=n.$cstNode.feature;this.nodeBuilder.buildCompositeNode(a)}let i={$type:e};this.stack.pop(),this.stack.push(i),r.feature&&r.operator&&this.assign(r.operator,r.feature,n,n.$cstNode,!1)}}construct(e=!0){if(this.isRecording())return;let r=this.current;return ET(r),this.nodeBuilder.construct(r),e&&this.stack.pop(),nM(r)?this.converter.convert(r.value,r.$cstNode):(NR(this.astReflection,r),r)}getAssignment(e){if(!this.assignmentMap.has(e)){let r=Qd(e,Nl);this.assignmentMap.set(e,{assignment:r,isCrossRef:r?Kd(r.terminal):!1})}return this.assignmentMap.get(e)}assign(e,r,n,i,a){let s=this.current,l;switch(a&&typeof n=="string"?l=this.linker.buildReference(s,r,i,n):l=n,e){case"=":{s[r]=l;break}case"?=":{s[r]=!0;break}case"+=":Array.isArray(s[r])||(s[r]=[]),s[r].push(l)}}assignWithoutOverride(e,r){for(let[n,i]of Object.entries(r)){let a=e[n];a===void 0?e[n]=i:Array.isArray(a)&&Array.isArray(i)&&(i.push(...a),e[n]=i)}return e}get definitionErrors(){return this.wrapper.definitionErrors}},Sk=class{static{o(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return Gu.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Gu.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Gu.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Gu.buildEarlyExitMessage(e)}},yg=class extends Sk{static{o(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:r}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${r.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},L2=class extends A2{static{o(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let r=this.lexer.tokenize(e);return this.tokens=r.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,r){let n=this.wrapper.DEFINE_RULE(roe(e.name),this.startImplementation(r).bind(this));return e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return r=>{let n=this.keepStackSize();try{e(r)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,r,n){this.wrapper.wrapConsume(e,r),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,r,n,i){this.before(n),this.wrapper.wrapSubrule(e,r,i),this.after(n)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let r=this.elementStack.lastIndexOf(e);r>=0&&this.elementStack.splice(r)}}get currIdx(){return this.wrapper.currIdx}},LOe={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new yg},iM=class extends x2{static{o(this,"ChevrotainWrapper")}constructor(e,r){let n=r&&"maxLookahead"in r;super(e,Object.assign(Object.assign(Object.assign({},LOe),{lookaheadStrategy:n?new $u({maxLookahead:r.maxLookahead}):new k2}),r))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,r){return this.RULE(e,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,r){return this.consume(e,r)}wrapSubrule(e,r,n){return this.subrule(e,r,{ARGS:[n]})}wrapOr(e,r){this.or(e,r)}wrapOption(e,r){this.option(e,r)}wrapMany(e,r){this.many(e,r)}wrapAtLeastOne(e,r){this.atLeastOne(e,r)}}});function _k(t,e,r){return DOe({parser:e,tokens:r,rules:new Map,ruleNames:new Map},t),e}function DOe(t,e){let r=Qv(e,!1),n=Kr(e.rules).filter(Oa).filter(i=>r.has(i));for(let i of n){let a=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});a.rules.set(i.name,t.parser.rule(i,m0(a,i.definition)))}}function m0(t,e,r=!1){let n;if(Ho(e))n=BOe(t,e);else if(Iu(e))n=ROe(t,e);else if(Nl(e))n=m0(t,e.terminal);else if(Kd(e))n=noe(t,e);else if(Ml(e))n=NOe(t,e);else if(wT(e))n=IOe(t,e);else if(kT(e))n=OOe(t,e);else if(rf(e))n=POe(t,e);else if(fR(e)){let i=t.consume++;n=o(()=>t.parser.consume(i,fo,e),"method")}else throw new jd(e.$cstNode,`Unexpected element type: ${e.$type}`);return ioe(t,r?void 0:Ak(e),n,e.cardinality)}function ROe(t,e){let r=r0(e);return()=>t.parser.action(r,e)}function NOe(t,e){let r=e.rule.ref;if(Oa(r)){let n=t.subrule++,i=e.arguments.length>0?MOe(r,e.arguments):()=>({});return a=>t.parser.subrule(n,aoe(t,r),e,i(a))}else if(Uo(r)){let n=t.consume++,i=aM(t,r.name);return()=>t.parser.consume(n,i,e)}else if(r)tf(r);else throw new jd(e.$cstNode,`Undefined rule type: ${e.$type}`)}function MOe(t,e){let r=e.map(n=>Vu(n.value));return n=>{let i={};for(let a=0;ae(n)||r(n)}else if(FD(t)){let e=Vu(t.left),r=Vu(t.right);return n=>e(n)&&r(n)}else if(YD(t)){let e=Vu(t.value);return r=>!e(r)}else if(jD(t)){let e=t.parameter.ref.name;return r=>r!==void 0&&r[e]===!0}else if(PD(t)){let e=!!t.true;return()=>e}tf(t)}function IOe(t,e){if(e.elements.length===1)return m0(t,e.elements[0]);{let r=[];for(let i of e.elements){let a={ALT:m0(t,i,!0)},s=Ak(i);s&&(a.GATE=Vu(s)),r.push(a)}let n=t.or++;return i=>t.parser.alternatives(n,r.map(a=>{let s={ALT:o(()=>a.ALT(i),"ALT")},l=a.GATE;return l&&(s.GATE=()=>l(i)),s}))}}function OOe(t,e){if(e.elements.length===1)return m0(t,e.elements[0]);let r=[];for(let l of e.elements){let u={ALT:m0(t,l,!0)},h=Ak(l);h&&(u.GATE=Vu(h)),r.push(u)}let n=t.or++,i=o((l,u)=>{let h=u.getRuleStack().join("-");return`uGroup_${l}_${h}`},"idFunc"),a=o(l=>t.parser.alternatives(n,r.map((u,h)=>{let f={ALT:o(()=>!0,"ALT")},d=t.parser;f.ALT=()=>{if(u.ALT(l),!d.isRecording()){let m=i(n,d);d.unorderedGroups.get(m)||d.unorderedGroups.set(m,[]);let g=d.unorderedGroups.get(m);typeof g?.[h]>"u"&&(g[h]=!0)}};let p=u.GATE;return p?f.GATE=()=>p(l):f.GATE=()=>{let m=d.unorderedGroups.get(i(n,d));return!m?.[h]},f})),"alternatives"),s=ioe(t,Ak(e),a,"*");return l=>{s(l),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(n,t.parser))}}function POe(t,e){let r=e.elements.map(n=>m0(t,n));return n=>r.forEach(i=>i(n))}function Ak(t){if(rf(t))return t.guardCondition}function noe(t,e,r=e.terminal){if(r)if(Ml(r)&&Oa(r.rule.ref)){let n=t.subrule++;return i=>t.parser.subrule(n,aoe(t,r.rule.ref),e,i)}else if(Ml(r)&&Uo(r.rule.ref)){let n=t.consume++,i=aM(t,r.rule.ref.name);return()=>t.parser.consume(n,i,e)}else if(Ho(r)){let n=t.consume++,i=aM(t,r.value);return()=>t.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);let n=DT(e.type.ref),i=n?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+r0(e.type.ref));return noe(t,e,i)}}function BOe(t,e){let r=t.consume++,n=t.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(r,n,e)}function ioe(t,e,r,n){let i=e&&Vu(e);if(!n)if(i){let a=t.or++;return s=>t.parser.alternatives(a,[{ALT:o(()=>r(s),"ALT"),GATE:o(()=>i(s),"GATE")},{ALT:gk(),GATE:o(()=>!i(s),"GATE")}])}else return r;if(n==="*"){let a=t.many++;return s=>t.parser.many(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else if(n==="+"){let a=t.many++;if(i){let s=t.or++;return l=>t.parser.alternatives(s,[{ALT:o(()=>t.parser.atLeastOne(a,{DEF:o(()=>r(l),"DEF")}),"ALT"),GATE:o(()=>i(l),"GATE")},{ALT:gk(),GATE:o(()=>!i(l),"GATE")}])}else return s=>t.parser.atLeastOne(a,{DEF:o(()=>r(s),"DEF")})}else if(n==="?"){let a=t.optional++;return s=>t.parser.optional(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else tf(n)}function aoe(t,e){let r=FOe(t,e),n=t.rules.get(r);if(!n)throw new Error(`Rule "${r}" not found."`);return n}function FOe(t,e){if(Oa(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let r=e,n=r.$container,i=e.$type;for(;!Oa(n);)(rf(n)||wT(n)||kT(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,t.ruleNames.set(e,i),i}}function aM(t,e){let r=t.tokens[e];if(!r)throw new Error(`Token "${e}" not found."`);return r}var sM=R(()=>{"use strict";u0();Sc();pT();Ds();Il();o(_k,"createParser");o(DOe,"buildRules");o(m0,"buildElement");o(ROe,"buildAction");o(NOe,"buildRuleCall");o(MOe,"buildRuleCallPredicate");o(Vu,"buildPredicate");o(IOe,"buildAlternatives");o(OOe,"buildUnorderedGroup");o(POe,"buildGroup");o(Ak,"getGuardCondition");o(noe,"buildCrossReference");o(BOe,"buildKeyword");o(ioe,"wrap");o(aoe,"getRule");o(FOe,"getRuleName");o(aM,"getToken")});function oM(t){let e=t.Grammar,r=t.parser.Lexer,n=new L2(t);return _k(e,n,r.definition),n.finalize(),n}var lM=R(()=>{"use strict";D2();sM();o(oM,"createCompletionParser")});function cM(t){let e=soe(t);return e.finalize(),e}function soe(t){let e=t.Grammar,r=t.parser.Lexer,n=new _2(t);return _k(e,n,r.definition)}var uM=R(()=>{"use strict";D2();sM();o(cM,"createLangiumParser");o(soe,"prepareLangiumParser")});var g0,hM=R(()=>{"use strict";u0();Sc();es();Il();Um();Ds();g0=class{static{o(this,"DefaultTokenBuilder")}buildTokens(e,r){let n=Kr(Qv(e,!1)),i=this.buildTerminalTokens(n),a=this.buildKeywordTokens(n,i,r);return i.forEach(s=>{let l=s.PATTERN;typeof l=="object"&&l&&"test"in l&&_T(l)?a.unshift(s):a.push(s)}),a}buildTerminalTokens(e){return e.filter(Uo).filter(r=>!r.fragment).map(r=>this.buildTerminalToken(r)).toArray()}buildTerminalToken(e){let r=Hm(e),n=this.requiresCustomPattern(r)?this.regexPatternFunction(r):r,i={name:e.name,PATTERN:n,LINE_BREAKS:!0};return e.hidden&&(i.GROUP=_T(r)?ni.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")?!0:!!(e.source.includes("?<=")||e.source.includes("?(r.lastIndex=i,r.exec(n))}buildKeywordTokens(e,r,n){return e.filter(Oa).flatMap(i=>Ac(i).filter(Ho)).distinct(i=>i.value).toArray().sort((i,a)=>a.value.length-i.value.length).map(i=>this.buildKeywordToken(i,r,!!n?.caseInsensitive))}buildKeywordToken(e,r,n){return{name:e.value,PATTERN:this.buildKeywordPattern(e,n),LONGER_ALT:this.findLongerAlt(e,r)}}buildKeywordPattern(e,r){return r?new RegExp(zR(e.value)):e.value}findLongerAlt(e,r){return r.reduce((n,i)=>{let a=i?.PATTERN;return a?.source&&GR("^"+a.source+"$",e.value)&&n.push(i),n},[])}}});var y0,Dc,fM=R(()=>{"use strict";Sc();Il();y0=class{static{o(this,"DefaultValueConverter")}convert(e,r){let n=r.grammarSource;if(Kd(n)&&(n=UR(n)),Ml(n)){let i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,r)}return e}runConverter(e,r,n){var i;switch(e.name.toUpperCase()){case"INT":return Dc.convertInt(r);case"STRING":return Dc.convertString(r);case"ID":return Dc.convertID(r)}switch((i=QR(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return Dc.convertNumber(r);case"boolean":return Dc.convertBoolean(r);case"bigint":return Dc.convertBigint(r);case"date":return Dc.convertDate(r);default:return r}}};(function(t){function e(h){let f="";for(let d=1;d{"use strict";Object.defineProperty(mM,"__esModule",{value:!0});var dM;function pM(){if(dM===void 0)throw new Error("No runtime abstraction layer installed");return dM}o(pM,"RAL");(function(t){function e(r){if(r===void 0)throw new Error("No runtime abstraction layer provided");dM=r}o(e,"install"),t.install=e})(pM||(pM={}));mM.default=pM});var coe=gi(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.stringArray=Pa.array=Pa.func=Pa.error=Pa.number=Pa.string=Pa.boolean=void 0;function zOe(t){return t===!0||t===!1}o(zOe,"boolean");Pa.boolean=zOe;function ooe(t){return typeof t=="string"||t instanceof String}o(ooe,"string");Pa.string=ooe;function GOe(t){return typeof t=="number"||t instanceof Number}o(GOe,"number");Pa.number=GOe;function $Oe(t){return t instanceof Error}o($Oe,"error");Pa.error=$Oe;function VOe(t){return typeof t=="function"}o(VOe,"func");Pa.func=VOe;function loe(t){return Array.isArray(t)}o(loe,"array");Pa.array=loe;function UOe(t){return loe(t)&&t.every(e=>ooe(e))}o(UOe,"stringArray");Pa.stringArray=UOe});var vM=gi(vg=>{"use strict";Object.defineProperty(vg,"__esModule",{value:!0});vg.Emitter=vg.Event=void 0;var HOe=gM(),uoe;(function(t){let e={dispose(){}};t.None=function(){return e}})(uoe||(vg.Event=uoe={}));var yM=class{static{o(this,"CallbackList")}add(e,r=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(r),Array.isArray(n)&&n.push({dispose:o(()=>this.remove(e,r),"dispose")})}remove(e,r=null){if(!this._callbacks)return;let n=!1;for(let i=0,a=this._callbacks.length;i{this._callbacks||(this._callbacks=new yM),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,r);let i={dispose:o(()=>{this._callbacks&&(this._callbacks.remove(e,r),i.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};vg.Emitter=Lk;Lk._noop=function(){}});var hoe=gi(xg=>{"use strict";Object.defineProperty(xg,"__esModule",{value:!0});xg.CancellationTokenSource=xg.CancellationToken=void 0;var YOe=gM(),WOe=coe(),xM=vM(),Dk;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:xM.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:xM.Event.None});function e(r){let n=r;return n&&(n===t.None||n===t.Cancelled||WOe.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}o(e,"is"),t.is=e})(Dk||(xg.CancellationToken=Dk={}));var qOe=Object.freeze(function(t,e){let r=(0,YOe.default)().timer.setTimeout(t.bind(e),0);return{dispose(){r.dispose()}}}),Rk=class{static{o(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?qOe:(this._emitter||(this._emitter=new xM.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},bM=class{static{o(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new Rk),this._token}cancel(){this._token?this._token.cancel():this._token=Dk.Cancelled}dispose(){this._token?this._token instanceof Rk&&this._token.dispose():this._token=Dk.None}};xg.CancellationTokenSource=bM});var pr={};var Wo=R(()=>{"use strict";dr(pr,Xi(hoe(),1))});function TM(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}function doe(){return wM=Date.now(),new pr.CancellationTokenSource}function poe(t){foe=t}function of(t){return t===Rc}async function Bi(t){if(t===pr.CancellationToken.None)return;let e=Date.now();if(e-wM>=foe&&(wM=e,await TM()),t.isCancellationRequested)throw Rc}var wM,foe,Rc,as,qo=R(()=>{"use strict";Wo();o(TM,"delayNextTick");wM=0,foe=10;o(doe,"startCancelableOperation");o(poe,"setInterruptionPeriod");Rc=Symbol("OperationCancelled");o(of,"isOperationCancelled");o(Bi,"interruptAndCheck");as=class{static{o(this,"Deferred")}constructor(){this.promise=new Promise((e,r)=>{this.resolve=n=>(e(n),this),this.reject=n=>(r(n),this)})}}});function kM(t,e){if(t.length<=1)return t;let r=t.length/2|0,n=t.slice(0,r),i=t.slice(r);kM(n,e),kM(i,e);let a=0,s=0,l=0;for(;ar.line||e.line===r.line&&e.character>r.character?{start:r,end:e}:t}function XOe(t){let e=yoe(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Nk,bg,voe=R(()=>{"use strict";Nk=class t{static{o(this,"FullTextDocument")}constructor(e,r,n,i){this._uri=e,this._languageId=r,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let r=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(r,n)}return this._content}update(e,r){for(let n of e)if(t.isIncremental(n)){let i=yoe(n.range),a=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,a)+n.text+this._content.substring(s,this._content.length);let l=Math.max(i.start.line,0),u=Math.max(i.end.line,0),h=this._lineOffsets,f=moe(n.text,!1,a);if(u-l===f.length)for(let p=0,m=f.length;pe?i=s:n=s+1}let a=n-1;return e=this.ensureBeforeEOL(e,r[a]),{line:a,character:e-r[a]}}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line];if(e.character<=0)return n;let i=e.line+1r&&goe(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}static isFull(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}};(function(t){function e(i,a,s,l){return new Nk(i,a,s,l)}o(e,"create"),t.create=e;function r(i,a,s){if(i instanceof Nk)return i.update(a,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}o(r,"update"),t.update=r;function n(i,a){let s=i.getText(),l=kM(a.map(XOe),(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),u=0,h=[];for(let f of l){let d=i.offsetAt(f.range.start);if(du&&h.push(s.substring(u,d)),f.newText.length&&h.push(f.newText),u=i.offsetAt(f.range.end)}return h.push(s.substr(u)),h.join("")}o(n,"applyEdits"),t.applyEdits=n})(bg||(bg={}));o(kM,"mergeSort");o(moe,"computeLineOffsets");o(goe,"isEOL");o(yoe,"getWellformedRange");o(XOe,"getWellformedEdit")});var xoe,Ms,wg,EM=R(()=>{"use strict";(()=>{"use strict";var t={470:i=>{function a(u){if(typeof u!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(u))}o(a,"e");function s(u,h){for(var f,d="",p=0,m=-1,g=0,y=0;y<=u.length;++y){if(y2){var v=d.lastIndexOf("/");if(v!==d.length-1){v===-1?(d="",p=0):p=(d=d.slice(0,v)).length-1-d.lastIndexOf("/"),m=y,g=0;continue}}else if(d.length===2||d.length===1){d="",p=0,m=y,g=0;continue}}h&&(d.length>0?d+="/..":d="..",p=2)}else d.length>0?d+="/"+u.slice(m+1,y):d=u.slice(m+1,y),p=y-m-1;m=y,g=0}else f===46&&g!==-1?++g:g=-1}return d}o(s,"r");var l={resolve:o(function(){for(var u,h="",f=!1,d=arguments.length-1;d>=-1&&!f;d--){var p;d>=0?p=arguments[d]:(u===void 0&&(u=process.cwd()),p=u),a(p),p.length!==0&&(h=p+"/"+h,f=p.charCodeAt(0)===47)}return h=s(h,!f),f?h.length>0?"/"+h:"/":h.length>0?h:"."},"resolve"),normalize:o(function(u){if(a(u),u.length===0)return".";var h=u.charCodeAt(0)===47,f=u.charCodeAt(u.length-1)===47;return(u=s(u,!h)).length!==0||h||(u="."),u.length>0&&f&&(u+="/"),h?"/"+u:u},"normalize"),isAbsolute:o(function(u){return a(u),u.length>0&&u.charCodeAt(0)===47},"isAbsolute"),join:o(function(){if(arguments.length===0)return".";for(var u,h=0;h0&&(u===void 0?u=f:u+="/"+f)}return u===void 0?".":l.normalize(u)},"join"),relative:o(function(u,h){if(a(u),a(h),u===h||(u=l.resolve(u))===(h=l.resolve(h)))return"";for(var f=1;fy){if(h.charCodeAt(m+x)===47)return h.slice(m+x+1);if(x===0)return h.slice(m+x)}else p>y&&(u.charCodeAt(f+x)===47?v=x:x===0&&(v=0));break}var b=u.charCodeAt(f+x);if(b!==h.charCodeAt(m+x))break;b===47&&(v=x)}var w="";for(x=f+v+1;x<=d;++x)x!==d&&u.charCodeAt(x)!==47||(w.length===0?w+="..":w+="/..");return w.length>0?w+h.slice(m+v):(m+=v,h.charCodeAt(m)===47&&++m,h.slice(m))},"relative"),_makeLong:o(function(u){return u},"_makeLong"),dirname:o(function(u){if(a(u),u.length===0)return".";for(var h=u.charCodeAt(0),f=h===47,d=-1,p=!0,m=u.length-1;m>=1;--m)if((h=u.charCodeAt(m))===47){if(!p){d=m;break}}else p=!1;return d===-1?f?"/":".":f&&d===1?"//":u.slice(0,d)},"dirname"),basename:o(function(u,h){if(h!==void 0&&typeof h!="string")throw new TypeError('"ext" argument must be a string');a(u);var f,d=0,p=-1,m=!0;if(h!==void 0&&h.length>0&&h.length<=u.length){if(h.length===u.length&&h===u)return"";var g=h.length-1,y=-1;for(f=u.length-1;f>=0;--f){var v=u.charCodeAt(f);if(v===47){if(!m){d=f+1;break}}else y===-1&&(m=!1,y=f+1),g>=0&&(v===h.charCodeAt(g)?--g==-1&&(p=f):(g=-1,p=y))}return d===p?p=y:p===-1&&(p=u.length),u.slice(d,p)}for(f=u.length-1;f>=0;--f)if(u.charCodeAt(f)===47){if(!m){d=f+1;break}}else p===-1&&(m=!1,p=f+1);return p===-1?"":u.slice(d,p)},"basename"),extname:o(function(u){a(u);for(var h=-1,f=0,d=-1,p=!0,m=0,g=u.length-1;g>=0;--g){var y=u.charCodeAt(g);if(y!==47)d===-1&&(p=!1,d=g+1),y===46?h===-1?h=g:m!==1&&(m=1):h!==-1&&(m=-1);else if(!p){f=g+1;break}}return h===-1||d===-1||m===0||m===1&&h===d-1&&h===f+1?"":u.slice(h,d)},"extname"),format:o(function(u){if(u===null||typeof u!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof u);return function(h,f){var d=f.dir||f.root,p=f.base||(f.name||"")+(f.ext||"");return d?d===f.root?d+p:d+"/"+p:p}(0,u)},"format"),parse:o(function(u){a(u);var h={root:"",dir:"",base:"",ext:"",name:""};if(u.length===0)return h;var f,d=u.charCodeAt(0),p=d===47;p?(h.root="/",f=1):f=0;for(var m=-1,g=0,y=-1,v=!0,x=u.length-1,b=0;x>=f;--x)if((d=u.charCodeAt(x))!==47)y===-1&&(v=!1,y=x+1),d===46?m===-1?m=x:b!==1&&(b=1):m!==-1&&(b=-1);else if(!v){g=x+1;break}return m===-1||y===-1||b===0||b===1&&m===y-1&&m===g+1?y!==-1&&(h.base=h.name=g===0&&p?u.slice(1,y):u.slice(g,y)):(g===0&&p?(h.name=u.slice(1,m),h.base=u.slice(1,y)):(h.name=u.slice(g,m),h.base=u.slice(g,y)),h.ext=u.slice(m,y)),g>0?h.dir=u.slice(0,g-1):p&&(h.dir="/"),h},"parse"),sep:"/",delimiter:":",win32:null,posix:null};l.posix=l,i.exports=l}},e={};function r(i){var a=e[i];if(a!==void 0)return a.exports;var s=e[i]={exports:{}};return t[i](s,s.exports,r),s.exports}o(r,"r"),r.d=(i,a)=>{for(var s in a)r.o(a,s)&&!r.o(i,s)&&Object.defineProperty(i,s,{enumerable:!0,get:a[s]})},r.o=(i,a)=>Object.prototype.hasOwnProperty.call(i,a),r.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;r.r(n),r.d(n,{URI:o(()=>p,"URI"),Utils:o(()=>M,"Utils")}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let a=/^\w[\w\d+.-]*$/,s=/^\//,l=/^\/\//;function u(N,k){if(!N.scheme&&k)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${N.authority}", path: "${N.path}", query: "${N.query}", fragment: "${N.fragment}"}`);if(N.scheme&&!a.test(N.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(N.path){if(N.authority){if(!s.test(N.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(N.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}o(u,"s");let h="",f="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class p{static{o(this,"f")}static isUri(k){return k instanceof p||!!k&&typeof k.authority=="string"&&typeof k.fragment=="string"&&typeof k.path=="string"&&typeof k.query=="string"&&typeof k.scheme=="string"&&typeof k.fsPath=="string"&&typeof k.with=="function"&&typeof k.toString=="function"}scheme;authority;path;query;fragment;constructor(k,I,C,O,D,P=!1){typeof k=="object"?(this.scheme=k.scheme||h,this.authority=k.authority||h,this.path=k.path||h,this.query=k.query||h,this.fragment=k.fragment||h):(this.scheme=function(F,B){return F||B?F:"file"}(k,P),this.authority=I||h,this.path=function(F,B){switch(F){case"https":case"http":case"file":B?B[0]!==f&&(B=f+B):B=f}return B}(this.scheme,C||h),this.query=O||h,this.fragment=D||h,u(this,P))}get fsPath(){return b(this,!1)}with(k){if(!k)return this;let{scheme:I,authority:C,path:O,query:D,fragment:P}=k;return I===void 0?I=this.scheme:I===null&&(I=h),C===void 0?C=this.authority:C===null&&(C=h),O===void 0?O=this.path:O===null&&(O=h),D===void 0?D=this.query:D===null&&(D=h),P===void 0?P=this.fragment:P===null&&(P=h),I===this.scheme&&C===this.authority&&O===this.path&&D===this.query&&P===this.fragment?this:new g(I,C,O,D,P)}static parse(k,I=!1){let C=d.exec(k);return C?new g(C[2]||h,E(C[4]||h),E(C[5]||h),E(C[7]||h),E(C[9]||h),I):new g(h,h,h,h,h)}static file(k){let I=h;if(i&&(k=k.replace(/\\/g,f)),k[0]===f&&k[1]===f){let C=k.indexOf(f,2);C===-1?(I=k.substring(2),k=f):(I=k.substring(2,C),k=k.substring(C)||f)}return new g("file",I,k,h,h)}static from(k){let I=new g(k.scheme,k.authority,k.path,k.query,k.fragment);return u(I,!0),I}toString(k=!1){return w(this,k)}toJSON(){return this}static revive(k){if(k){if(k instanceof p)return k;{let I=new g(k);return I._formatted=k.external,I._fsPath=k._sep===m?k.fsPath:null,I}}return k}}let m=i?1:void 0;class g extends p{static{o(this,"l")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath}toString(k=!1){return k?w(this,!0):(this._formatted||(this._formatted=w(this,!1)),this._formatted)}toJSON(){let k={$mid:1};return this._fsPath&&(k.fsPath=this._fsPath,k._sep=m),this._formatted&&(k.external=this._formatted),this.path&&(k.path=this.path),this.scheme&&(k.scheme=this.scheme),this.authority&&(k.authority=this.authority),this.query&&(k.query=this.query),this.fragment&&(k.fragment=this.fragment),k}}let y={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(N,k,I){let C,O=-1;for(let D=0;D=97&&P<=122||P>=65&&P<=90||P>=48&&P<=57||P===45||P===46||P===95||P===126||k&&P===47||I&&P===91||I&&P===93||I&&P===58)O!==-1&&(C+=encodeURIComponent(N.substring(O,D)),O=-1),C!==void 0&&(C+=N.charAt(D));else{C===void 0&&(C=N.substr(0,D));let F=y[P];F!==void 0?(O!==-1&&(C+=encodeURIComponent(N.substring(O,D)),O=-1),C+=F):O===-1&&(O=D)}}return O!==-1&&(C+=encodeURIComponent(N.substring(O))),C!==void 0?C:N}o(v,"d");function x(N){let k;for(let I=0;I1&&N.scheme==="file"?`//${N.authority}${N.path}`:N.path.charCodeAt(0)===47&&(N.path.charCodeAt(1)>=65&&N.path.charCodeAt(1)<=90||N.path.charCodeAt(1)>=97&&N.path.charCodeAt(1)<=122)&&N.path.charCodeAt(2)===58?k?N.path.substr(1):N.path[1].toLowerCase()+N.path.substr(2):N.path,i&&(I=I.replace(/\//g,"\\")),I}o(b,"m");function w(N,k){let I=k?x:v,C="",{scheme:O,authority:D,path:P,query:F,fragment:B}=N;if(O&&(C+=O,C+=":"),(D||O==="file")&&(C+=f,C+=f),D){let $=D.indexOf("@");if($!==-1){let z=D.substr(0,$);D=D.substr($+1),$=z.lastIndexOf(":"),$===-1?C+=I(z,!1,!1):(C+=I(z.substr(0,$),!1,!1),C+=":",C+=I(z.substr($+1),!1,!0)),C+="@"}D=D.toLowerCase(),$=D.lastIndexOf(":"),$===-1?C+=I(D,!1,!0):(C+=I(D.substr(0,$),!1,!0),C+=D.substr($))}if(P){if(P.length>=3&&P.charCodeAt(0)===47&&P.charCodeAt(2)===58){let $=P.charCodeAt(1);$>=65&&$<=90&&(P=`/${String.fromCharCode($+32)}:${P.substr(3)}`)}else if(P.length>=2&&P.charCodeAt(1)===58){let $=P.charCodeAt(0);$>=65&&$<=90&&(P=`${String.fromCharCode($+32)}:${P.substr(2)}`)}C+=I(P,!0,!1)}return F&&(C+="?",C+=I(F,!1,!1)),B&&(C+="#",C+=k?B:v(B,!1,!1)),C}o(w,"y");function S(N){try{return decodeURIComponent(N)}catch{return N.length>3?N.substr(0,3)+S(N.substr(3)):N}}o(S,"v");let T=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(N){return N.match(T)?N.replace(T,k=>S(k)):N}o(E,"C");var _=r(470);let A=_.posix||_,L="/";var M;(function(N){N.joinPath=function(k,...I){return k.with({path:A.join(k.path,...I)})},N.resolvePath=function(k,...I){let C=k.path,O=!1;C[0]!==L&&(C=L+C,O=!0);let D=A.resolve(C,...I);return O&&D[0]===L&&!k.authority&&(D=D.substring(1)),k.with({path:D})},N.dirname=function(k){if(k.path.length===0||k.path===L)return k;let I=A.dirname(k.path);return I.length===1&&I.charCodeAt(0)===46&&(I=""),k.with({path:I})},N.basename=function(k){return A.basename(k.path)},N.extname=function(k){return A.extname(k.path)}})(M||(M={}))})(),xoe=n})();({URI:Ms,Utils:wg}=xoe)});var ss,Nc=R(()=>{"use strict";EM();(function(t){t.basename=wg.basename,t.dirname=wg.dirname,t.extname=wg.extname,t.joinPath=wg.joinPath,t.resolvePath=wg.resolvePath;function e(n,i){return n?.toString()===i?.toString()}o(e,"equals"),t.equals=e;function r(n,i){let a=typeof n=="string"?n:n.path,s=typeof i=="string"?i:i.path,l=a.split("/").filter(p=>p.length>0),u=s.split("/").filter(p=>p.length>0),h=0;for(;h{"use strict";voe();Tg();Wo();Ds();Nc();(function(t){t[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated"})(yn||(yn={}));R2=class{static{o(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,r=pr.CancellationToken.None){let n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,r)}fromTextDocument(e,r,n){return r=r??Ms.parse(e.uri),n?this.createAsync(r,e,n):this.create(r,e)}fromString(e,r,n){return n?this.createAsync(r,e,n):this.create(r,e)}fromModel(e,r){return this.create(r,{$model:e})}create(e,r){if(typeof r=="string"){let n=this.parse(e,r);return this.createLangiumDocument(n,e,void 0,r)}else if("$model"in r){let n={value:r.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}else{let n=this.parse(e,r.getText());return this.createLangiumDocument(n,e,r)}}async createAsync(e,r,n){if(typeof r=="string"){let i=await this.parseAsync(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else{let i=await this.parseAsync(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}createLangiumDocument(e,r,n,i){let a;if(n)a={parseResult:e,uri:r,state:yn.Parsed,references:[],textDocument:n};else{let s=this.createTextDocumentGetter(r,i);a={parseResult:e,uri:r,state:yn.Parsed,references:[],get textDocument(){return s()}}}return e.value.$document=a,a}async update(e,r){var n,i;let a=(n=e.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText,s=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),l=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s)Object.defineProperty(e,"textDocument",{value:s});else{let u=this.createTextDocumentGetter(e.uri,l);Object.defineProperty(e,"textDocument",{get:u})}return a!==l&&(e.parseResult=await this.parseAsync(e.uri,l,r),e.parseResult.value.$document=e),e.state=yn.Parsed,e}parse(e,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(r)}parseAsync(e,r,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(r,n)}createTextDocumentGetter(e,r){let n=this.serviceRegistry,i;return()=>i??(i=bg.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,r??""))}},N2=class{static{o(this,"DefaultLangiumDocuments")}constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory}get all(){return Kr(this.documentMap.values())}addDocument(e){let r=e.uri.toString();if(this.documentMap.has(r))throw new Error(`A document with the URI '${r}' is already present.`);this.documentMap.set(r,e)}getDocument(e){let r=e.toString();return this.documentMap.get(r)}async getOrCreateDocument(e,r){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,r),this.addDocument(n),n)}createDocument(e,r,n){if(n)return this.langiumDocumentFactory.fromString(r,e,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(r,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(n.state=yn.Changed,n.precomputedScopes=void 0,n.references=[],n.diagnostics=void 0),n}deleteDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(n.state=yn.Changed,this.documentMap.delete(r)),n}}});var M2,CM=R(()=>{"use strict";Wo();Vo();es();qo();Tg();M2=class{static{o(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,r=pr.CancellationToken.None){for(let n of Yo(e.parseResult.value))await Bi(r),$m(n).forEach(i=>this.doLink(i,e))}doLink(e,r){let n=e.reference;if(n._ref===void 0)try{let i=this.getCandidate(e);if(Wd(i))n._ref=i;else if(n._nodeDescription=i,this.langiumDocuments().hasDocument(i.documentUri)){let a=this.loadAstNode(i);n._ref=a??this.createLinkingError(e,i)}}catch(i){n._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${n.$refText}': ${i}`})}r.references.push(n)}unlink(e){for(let r of e.references)delete r._ref,delete r._nodeDescription;e.references=[]}getCandidate(e){let n=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return n??this.createLinkingError(e)}buildReference(e,r,n,i){let a=this,s={$refNode:n,$refText:i,get ref(){var l;if(Xn(this._ref))return this._ref;if(ED(this._nodeDescription)){let u=a.loadAstNode(this._nodeDescription);this._ref=u??a.createLinkingError({reference:s,container:e,property:r},this._nodeDescription)}else if(this._ref===void 0){let u=a.getLinkedNode({reference:s,container:e,property:r});if(u.error&&Oi(e).state{"use strict";Il();o(boe,"isNamed");I2=class{static{o(this,"DefaultNameProvider")}getName(e){if(boe(e))return e.name}getNameNode(e){return Zv(e.$cstNode,"name")}}});var O2,AM=R(()=>{"use strict";Il();Vo();es();Rl();Ds();Nc();O2=class{static{o(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){let r=jR(e),n=e.astNode;if(r&&n){let i=n[r.feature];if(xa(i))return i.ref;if(Array.isArray(i)){for(let a of i)if(xa(a)&&a.$refNode&&a.$refNode.offset<=e.offset&&a.$refNode.end>=e.end)return a.ref}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===e||SD(e,i)))return n}}}findDeclarationNode(e){let r=this.findDeclaration(e);if(r?.$cstNode){let n=this.nameProvider.getNameNode(r);return n??r.$cstNode}}findReferences(e,r){let n=[];if(r.includeDeclaration){let a=this.getReferenceToSelf(e);a&&n.push(a)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return r.documentUri&&(i=i.filter(a=>ss.equals(a.sourceUri,r.documentUri))),n.push(...i),Kr(n)}getReferenceToSelf(e){let r=this.nameProvider.getNameNode(e);if(r){let n=Oi(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:Xd(r),local:!0}}}}});var Mc,v0,kg=R(()=>{"use strict";Ds();Mc=class{static{o(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[r,n]of e)this.add(r,n)}get size(){return Fm.sum(Kr(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,r){if(r===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let i=n.indexOf(r);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){var r;return(r=this.map.get(e))!==null&&r!==void 0?r:[]}has(e,r){if(r===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(r)>=0:!1}}add(e,r){return this.map.has(e)?this.map.get(e).push(r):this.map.set(e,[r]),this}addAll(e,r){return this.map.has(e)?this.map.get(e).push(...r):this.map.set(e,Array.from(r)),this}forEach(e){this.map.forEach((r,n)=>r.forEach(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return Kr(this.map.entries()).flatMap(([e,r])=>r.map(n=>[e,n]))}keys(){return Kr(this.map.keys())}values(){return Kr(this.map.values()).flat()}entriesGroupedByKey(){return Kr(this.map.entries())}},v0=class{static{o(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[r,n]of e)this.set(r,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,r){return this.map.set(e,r),this.inverse.set(r,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let r=this.map.get(e);return r!==void 0?(this.map.delete(e),this.inverse.delete(r),!0):!1}}});var P2,_M=R(()=>{"use strict";Wo();es();kg();qo();P2=class{static{o(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,r=pr.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,r)}async computeExportsForNode(e,r,n=Wv,i=pr.CancellationToken.None){let a=[];this.exportNode(e,a,r);for(let s of n(e))await Bi(i),this.exportNode(s,a,r);return a}exportNode(e,r,n){let i=this.nameProvider.getName(e);i&&r.push(this.descriptions.createDescription(e,i,n))}async computeLocalScopes(e,r=pr.CancellationToken.None){let n=e.parseResult.value,i=new Mc;for(let a of Ac(n))await Bi(r),this.processNode(a,e,i);return i}processNode(e,r,n){let i=e.$container;if(i){let a=this.nameProvider.getName(e);a&&n.add(i,this.descriptions.createDescription(e,a,r))}}}});var Eg,B2,jOe,LM=R(()=>{"use strict";Ds();Eg=class{static{o(this,"StreamScope")}constructor(e,r,n){var i;this.elements=e,this.outerScope=r,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let r=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===e.toLowerCase()):this.elements.find(n=>n.name===e);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}},B2=class{static{o(this,"MapScope")}constructor(e,r,n){var i;this.elements=new Map,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1;for(let a of e){let s=this.caseInsensitive?a.name.toLowerCase():a.name;this.elements.set(s,a)}this.outerScope=r}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=Kr(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},jOe={getElement(){},getAllElements(){return Gv}}});var Cg,F2,x0,Mk,Sg,Ik=R(()=>{"use strict";Cg=class{static{o(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},F2=class extends Cg{static{o(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,r){this.throwIfDisposed(),this.cache.set(e,r)}get(e,r){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(r){let n=r();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},x0=class extends Cg{static{o(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(r=>r)}has(e,r){return this.throwIfDisposed(),this.cacheForContext(e).has(r)}set(e,r,n){this.throwIfDisposed(),this.cacheForContext(e).set(r,n)}get(e,r,n){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(r))return i.get(r);if(n){let a=n();return i.set(r,a),a}else return}delete(e,r){return this.throwIfDisposed(),this.cacheForContext(e).delete(r)}clear(e){if(this.throwIfDisposed(),e){let r=this.converter(e);this.cache.delete(r)}else this.cache.clear()}cacheForContext(e){let r=this.converter(e),n=this.cache.get(r);return n||(n=new Map,this.cache.set(r,n)),n}},Mk=class extends x0{static{o(this,"DocumentCache")}constructor(e){super(r=>r.toString()),this.onDispose(e.workspace.DocumentBuilder.onUpdate((r,n)=>{let i=r.concat(n);for(let a of i)this.clear(a)}))}},Sg=class extends F2{static{o(this,"WorkspaceCache")}constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}});var z2,DM=R(()=>{"use strict";LM();es();Ds();Ik();z2=class{static{o(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new Sg(e.shared)}getScope(e){let r=[],n=this.reflection.getReferenceType(e),i=Oi(e.container).precomputedScopes;if(i){let s=e.container;do{let l=i.get(s);l.length>0&&r.push(Kr(l).filter(u=>this.reflection.isSubtype(u.type,n))),s=s.$container}while(s)}let a=this.getGlobalScope(n,e);for(let s=r.length-1;s>=0;s--)a=this.createScope(r[s],a);return a}createScope(e,r,n){return new Eg(Kr(e),r,n)}createScopeForNodes(e,r,n){let i=Kr(e).map(a=>{let s=this.nameProvider.getName(a);if(s)return this.descriptions.createDescription(a,s)}).nonNullable();return new Eg(i,r,n)}getGlobalScope(e,r){return this.globalScopeCache.get(e,()=>new B2(this.indexManager.allElements(e)))}}});function RM(t){return typeof t.$comment=="string"}function woe(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}var G2,Ok=R(()=>{"use strict";EM();Vo();es();Il();o(RM,"isAstNodeWithComment");o(woe,"isIntermediateReference");G2=class{static{o(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,r={}){let n=r?.replacer,i=o((s,l)=>this.replacer(s,l,r),"defaultReplacer"),a=n?(s,l)=>n(s,l,i):i;try{return this.currentDocument=Oi(e),JSON.stringify(e,a,r?.space)}finally{this.currentDocument=void 0}}deserialize(e,r={}){let n=JSON.parse(e);return this.linkNode(n,n,r),n}replacer(e,r,{refText:n,sourceText:i,textRegions:a,comments:s,uriConverter:l}){var u,h,f,d;if(!this.ignoreProperties.has(e))if(xa(r)){let p=r.ref,m=n?r.$refText:void 0;if(p){let g=Oi(p),y="";this.currentDocument&&this.currentDocument!==g&&(l?y=l(g.uri,r):y=g.uri.toString());let v=this.astNodeLocator.getAstNodePath(p);return{$ref:`${y}#${v}`,$refText:m}}else return{$error:(h=(u=r.error)===null||u===void 0?void 0:u.message)!==null&&h!==void 0?h:"Could not resolve reference",$refText:m}}else if(Xn(r)){let p;if(a&&(p=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},r)),(!e||r.$document)&&p?.$textRegion&&(p.$textRegion.documentURI=(f=this.currentDocument)===null||f===void 0?void 0:f.uri.toString())),i&&!e&&(p??(p=Object.assign({},r)),p.$sourceText=(d=r.$cstNode)===null||d===void 0?void 0:d.text),s){p??(p=Object.assign({},r));let m=this.commentProvider.getComment(r);m&&(p.$comment=m.replace(/\r/g,""))}return p??r}else return r}addAstNodeRegionWithAssignmentsTo(e){let r=o(n=>({offset:n.offset,end:n.end,length:n.length,range:n.range}),"createDocumentSegment");if(e.$cstNode){let n=e.$textRegion=r(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(a=>!a.startsWith("$")).forEach(a=>{let s=YR(e.$cstNode,a).map(r);s.length!==0&&(i[a]=s)}),e}}linkNode(e,r,n,i,a,s){for(let[u,h]of Object.entries(e))if(Array.isArray(h))for(let f=0;f{"use strict";Nc();$2=class{static{o(this,"DefaultServiceRegistry")}register(e){if(!this.singleton&&!this.map){this.singleton=e;return}if(!this.map&&(this.map={},this.singleton)){for(let r of this.singleton.LanguageMetaData.fileExtensions)this.map[r]=this.singleton;this.singleton=void 0}for(let r of e.LanguageMetaData.fileExtensions)this.map[r]!==void 0&&this.map[r]!==e&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${e.LanguageMetaData.languageId}'.`),this.map[r]=e}getServices(e){if(this.singleton!==void 0)return this.singleton;if(this.map===void 0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let r=ss.extname(e),n=this.map[r];if(!n)throw new Error(`The service registry contains no services for the extension '${r}'.`);return n}get all(){return this.singleton!==void 0?[this.singleton]:this.map!==void 0?Object.values(this.map):[]}}});function Pk(t){return{code:t}}var Ag,V2,U2=R(()=>{"use strict";kg();qo();Ds();o(Pk,"diagnosticData");(function(t){t.all=["fast","slow","built-in"]})(Ag||(Ag={}));V2=class{static{o(this,"ValidationRegistry")}constructor(e){this.entries=new Mc,this.reflection=e.shared.AstReflection}register(e,r=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[i,a]of Object.entries(e)){let s=a;if(Array.isArray(s))for(let l of s){let u={check:this.wrapValidationException(l,r),category:n};this.addEntry(i,u)}else if(typeof s=="function"){let l={check:this.wrapValidationException(s,r),category:n};this.addEntry(i,l)}}}wrapValidationException(e,r){return async(n,i,a)=>{try{await e.call(r,n,i,a)}catch(s){if(of(s))throw s;console.error("An error occurred during validation:",s);let l=s instanceof Error?s.message:String(s);s instanceof Error&&s.stack&&console.error(s.stack),i("error","An error occurred during validation: "+l,{node:n})}}}addEntry(e,r){if(e==="AstNode"){this.entries.add("AstNode",r);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,r)}getChecks(e,r){let n=Kr(this.entries.get(e)).concat(this.entries.get("AstNode"));return r&&(n=n.filter(i=>r.includes(i.category))),n.map(i=>i.check)}}});function Toe(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=Zv(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=qR(t.node.$cstNode,t.keyword,t.index)),e??(e=t.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Bk(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}var H2,Uu,MM=R(()=>{"use strict";Wo();Il();es();Rl();qo();U2();H2=class{static{o(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,r={},n=pr.CancellationToken.None){let i=e.parseResult,a=[];if(await Bi(n),(!r.categories||r.categories.includes("built-in"))&&(this.processLexingErrors(i,a,r),r.stopAfterLexingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===Uu.LexingError})||(this.processParsingErrors(i,a,r),r.stopAfterParsingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===Uu.ParsingError}))||(this.processLinkingErrors(e,a,r),r.stopAfterLinkingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===Uu.LinkingError}))))return a;try{a.push(...await this.validateAst(i.value,r,n))}catch(s){if(of(s))throw s;console.error("An error occurred during validation:",s)}return await Bi(n),a}processLexingErrors(e,r,n){for(let i of e.lexerErrors){let a={severity:Bk("error"),range:{start:{line:i.line-1,character:i.column-1},end:{line:i.line-1,character:i.column+i.length-1}},message:i.message,data:Pk(Uu.LexingError),source:this.getSource()};r.push(a)}}processParsingErrors(e,r,n){for(let i of e.parserErrors){let a;if(isNaN(i.token.startOffset)){if("previousToken"in i){let s=i.previousToken;if(isNaN(s.startOffset)){let l={line:0,character:0};a={start:l,end:l}}else{let l={line:s.endLine-1,character:s.endColumn};a={start:l,end:l}}}}else a=zm(i.token);if(a){let s={severity:Bk("error"),range:a,message:i.message,data:Pk(Uu.ParsingError),source:this.getSource()};r.push(s)}}}processLinkingErrors(e,r,n){for(let i of e.references){let a=i.error;if(a){let s={node:a.container,property:a.property,index:a.index,data:{code:Uu.LinkingError,containerType:a.container.$type,property:a.property,refText:a.reference.$refText}};r.push(this.toDiagnostic("error",a.message,s))}}}async validateAst(e,r,n=pr.CancellationToken.None){let i=[],a=o((s,l,u)=>{i.push(this.toDiagnostic(s,l,u))},"acceptor");return await Promise.all(Yo(e).map(async s=>{await Bi(n);let l=this.validationRegistry.getChecks(s.$type,r.categories);for(let u of l)await u(s,a,n)})),i}toDiagnostic(e,r,n){return{message:r,range:Toe(n),severity:Bk(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};o(Toe,"getDiagnosticRange");o(Bk,"toDiagnosticSeverity");(function(t){t.LexingError="lexing-error",t.ParsingError="parsing-error",t.LinkingError="linking-error"})(Uu||(Uu={}))});var Y2,W2,IM=R(()=>{"use strict";Wo();Vo();es();Rl();qo();Nc();Y2=class{static{o(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,r,n=Oi(e)){r??(r=this.nameProvider.getName(e));let i=this.astNodeLocator.getAstNodePath(e);if(!r)throw new Error(`Node at path ${i} has no name.`);let a,s=o(()=>{var l;return a??(a=Xd((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))},"nameSegmentGetter");return{node:e,name:r,get nameSegment(){return s()},selectionSegment:Xd(e.$cstNode),type:e.$type,documentUri:n.uri,path:i}}},W2=class{static{o(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,r=pr.CancellationToken.None){let n=[],i=e.parseResult.value;for(let a of Yo(i))await Bi(r),$m(a).filter(s=>!Wd(s)).forEach(s=>{let l=this.createDescription(s);l&&n.push(l)});return n}createDescription(e){let r=e.reference.$nodeDescription,n=e.reference.$refNode;if(!r||!n)return;let i=Oi(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:r.documentUri,targetPath:r.path,segment:Xd(n),local:ss.equals(r.documentUri,i)}}}});var q2,OM=R(()=>{"use strict";q2=class{static{o(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let r=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return r+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:r}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return r!==void 0?e+this.indexSeparator+r:e}getAstNode(e,r){return r.split(this.segmentSeparator).reduce((i,a)=>{if(!i||a.length===0)return i;let s=a.indexOf(this.indexSeparator);if(s>0){let l=a.substring(0,s),u=parseInt(a.substring(s+1)),h=i[l];return h?.[u]}return i[a]},e)}}});var X2,PM=R(()=>{"use strict";qo();X2=class{static{o(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new as,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var r,n;this.workspaceConfig=(n=(r=e.capabilities.workspace)===null||r===void 0?void 0:r.configuration)!==null&&n!==void 0?n:!1}async initialized(e){if(this.workspaceConfig){if(e.register){let r=this.serviceRegistry.all;e.register({section:r.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let r=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(r);r.forEach((i,a)=>{this.updateSectionConfiguration(i.section,n[a])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(r=>{this.updateSectionConfiguration(r,e.settings[r])})}updateSectionConfiguration(e,r){this.settings[e]=r}async getConfiguration(e,r){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][r]}toSectionName(e){return`${e}`}}});var b0,BM=R(()=>{"use strict";(function(t){function e(r){return{dispose:o(async()=>await r(),"dispose")}}o(e,"create"),t.create=e})(b0||(b0={}))});var j2,FM=R(()=>{"use strict";Wo();BM();kg();qo();Ds();U2();Tg();j2=class{static{o(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Mc,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=yn.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,r={},n=pr.CancellationToken.None){var i,a;for(let s of e){let l=s.uri.toString();if(s.state===yn.Validated){if(typeof r.validation=="boolean"&&r.validation)s.state=yn.IndexedReferences,s.diagnostics=void 0,this.buildState.delete(l);else if(typeof r.validation=="object"){let u=this.buildState.get(l),h=(i=u?.result)===null||i===void 0?void 0:i.validationChecks;if(h){let d=((a=r.validation.categories)!==null&&a!==void 0?a:Ag.all).filter(p=>!h.includes(p));d.length>0&&(this.buildState.set(l,{completed:!1,options:{validation:Object.assign(Object.assign({},r.validation),{categories:d})},result:u.result}),s.state=yn.IndexedReferences)}}}else this.buildState.delete(l)}this.currentState=yn.Changed,await this.emitUpdate(e.map(s=>s.uri),[]),await this.buildDocuments(e,r,n)}async update(e,r,n=pr.CancellationToken.None){this.currentState=yn.Changed;for(let s of r)this.langiumDocuments.deleteDocument(s),this.buildState.delete(s.toString()),this.indexManager.remove(s);for(let s of e){if(!this.langiumDocuments.invalidateDocument(s)){let u=this.langiumDocumentFactory.fromModel({$type:"INVALID"},s);u.state=yn.Changed,this.langiumDocuments.addDocument(u)}this.buildState.delete(s.toString())}let i=Kr(e).concat(r).map(s=>s.toString()).toSet();this.langiumDocuments.all.filter(s=>!i.has(s.uri.toString())&&this.shouldRelink(s,i)).forEach(s=>{this.serviceRegistry.getServices(s.uri).references.Linker.unlink(s),s.state=Math.min(s.state,yn.ComputedScopes),s.diagnostics=void 0}),await this.emitUpdate(e,r),await Bi(n);let a=this.langiumDocuments.all.filter(s=>{var l;return s.staten(e,r)))}shouldRelink(e,r){return e.references.some(n=>n.error!==void 0)?!0:this.indexManager.isAffected(e,r)}onUpdate(e){return this.updateListeners.push(e),b0.create(()=>{let r=this.updateListeners.indexOf(e);r>=0&&this.updateListeners.splice(r,1)})}async buildDocuments(e,r,n){this.prepareBuild(e,r),await this.runCancelable(e,yn.Parsed,n,a=>this.langiumDocumentFactory.update(a,n)),await this.runCancelable(e,yn.IndexedContent,n,a=>this.indexManager.updateContent(a,n)),await this.runCancelable(e,yn.ComputedScopes,n,async a=>{let s=this.serviceRegistry.getServices(a.uri).references.ScopeComputation;a.precomputedScopes=await s.computeLocalScopes(a,n)}),await this.runCancelable(e,yn.Linked,n,a=>this.serviceRegistry.getServices(a.uri).references.Linker.link(a,n)),await this.runCancelable(e,yn.IndexedReferences,n,a=>this.indexManager.updateReferences(a,n));let i=e.filter(a=>this.shouldValidate(a));await this.runCancelable(i,yn.Validated,n,a=>this.validate(a,n));for(let a of e){let s=this.buildState.get(a.uri.toString());s&&(s.completed=!0)}}prepareBuild(e,r){for(let n of e){let i=n.uri.toString(),a=this.buildState.get(i);(!a||a.completed)&&this.buildState.set(i,{completed:!1,options:r,result:a?.result})}}async runCancelable(e,r,n,i){let a=e.filter(s=>s.state{this.buildPhaseListeners.delete(e,r)})}waitUntil(e,r,n){let i;if(r&&"path"in r?i=r:n=r,n??(n=pr.CancellationToken.None),i){let a=this.langiumDocuments.getDocument(i);if(a&&a.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(Rc):new Promise((a,s)=>{let l=this.onBuildPhase(e,()=>{if(l.dispose(),u.dispose(),i){let h=this.langiumDocuments.getDocument(i);a(h?.uri)}else a(void 0)}),u=n.onCancellationRequested(()=>{l.dispose(),u.dispose(),s(Rc)})})}async notifyBuildPhase(e,r,n){if(e.length===0)return;let i=this.buildPhaseListeners.get(r);for(let a of i)await Bi(n),await a(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,r){var n,i;let a=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,s=this.getBuildOptions(e).validation,l=typeof s=="object"?s:void 0,u=await a.validateDocument(e,l,r);e.diagnostics?e.diagnostics.push(...u):e.diagnostics=u;let h=this.buildState.get(e.uri.toString());if(h){(n=h.result)!==null&&n!==void 0||(h.result={});let f=(i=l?.categories)!==null&&i!==void 0?i:Ag.all;h.result.validationChecks?h.result.validationChecks.push(...f):h.result.validationChecks=[...f]}}getBuildOptions(e){var r,n;return(n=(r=this.buildState.get(e.uri.toString()))===null||r===void 0?void 0:r.options)!==null&&n!==void 0?n:{}}}});var K2,zM=R(()=>{"use strict";es();Ik();Wo();Ds();Nc();K2=class{static{o(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new x0,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,r){let n=Oi(e).uri,i=[];return this.referenceIndex.forEach(a=>{a.forEach(s=>{ss.equals(s.targetUri,n)&&s.targetPath===r&&i.push(s)})}),Kr(i)}allElements(e,r){let n=Kr(this.symbolIndex.keys());return r&&(n=n.filter(i=>!r||r.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,r){var n;return r?this.symbolByTypeIndex.get(e,r,()=>{var a;return((a=this.symbolIndex.get(e))!==null&&a!==void 0?a:[]).filter(l=>this.astReflection.isSubtype(l.type,r))}):(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}remove(e){let r=e.toString();this.symbolIndex.delete(r),this.symbolByTypeIndex.clear(r),this.referenceIndex.delete(r)}async updateContent(e,r=pr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,r),a=e.uri.toString();this.symbolIndex.set(a,i),this.symbolByTypeIndex.clear(a)}async updateReferences(e,r=pr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,r);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,r){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&r.has(i.targetUri.toString())):!1}}});var Q2,GM=R(()=>{"use strict";Wo();qo();Nc();Q2=class{static{o(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new as,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}initialize(e){var r;this.folders=(r=e.workspaceFolders)!==null&&r!==void 0?r:void 0}initialized(e){return this.mutex.write(r=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],r)})}async initializeWorkspace(e,r=pr.CancellationToken.None){let n=await this.performStartup(e);await Bi(r),await this.documentBuilder.build(n,this.initialBuildOptions,r)}async performStartup(e){let r=this.serviceRegistry.all.flatMap(a=>a.LanguageMetaData.fileExtensions),n=[],i=o(a=>{n.push(a),this.langiumDocuments.hasDocument(a.uri)||this.langiumDocuments.addDocument(a)},"collector");return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(a=>[a,this.getRootFolder(a)]).map(async a=>this.traverseFolder(...a,r,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,r){return Promise.resolve()}getRootFolder(e){return Ms.parse(e.uri)}async traverseFolder(e,r,n,i){let a=await this.fileSystemProvider.readDirectory(r);await Promise.all(a.map(async s=>{if(this.includeEntry(e,s,n)){if(s.isDirectory)await this.traverseFolder(e,s.uri,n,i);else if(s.isFile){let l=await this.langiumDocuments.getOrCreateDocument(s.uri);i(l)}}}))}includeEntry(e,r,n){let i=ss.basename(r.uri);if(i.startsWith("."))return!1;if(r.isDirectory)return i!=="node_modules"&&i!=="out";if(r.isFile){let a=ss.extname(r.uri);return n.includes(a)}return!1}}});function koe(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function VM(t){return t&&"modes"in t&&"defaultMode"in t}function $M(t){return!koe(t)&&!VM(t)}var Z2,UM=R(()=>{"use strict";u0();Z2=class{static{o(this,"DefaultLexer")}constructor(e){let r=e.parser.TokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(r);let n=$M(r)?Object.values(r):r;this.chevrotainLexer=new ni(n,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e){var r;let n=this.chevrotainLexer.tokenize(e);return{tokens:n.tokens,errors:n.errors,hidden:(r=n.groups.hidden)!==null&&r!==void 0?r:[]}}toTokenTypeDictionary(e){if($M(e))return e;let r=VM(e)?Object.values(e.modes).flat():e,n={};return r.forEach(i=>n[i.name]=i),n}};o(koe,"isTokenTypeArray");o(VM,"isIMultiModeLexerDefinition");o($M,"isTokenTypeDictionary")});function WM(t,e,r){let n,i;typeof t=="string"?(i=e,n=r):(i=t.range.start,n=e),i||(i=Ur.create(0,0));let a=Soe(t),s=XM(n),l=QOe({lines:a,position:i,options:s});return rPe({index:0,tokens:l,position:i})}function qM(t,e){let r=XM(e),n=Soe(t);if(n.length===0)return!1;let i=n[0],a=n[n.length-1],s=r.start,l=r.end;return!!s?.exec(i)&&!!l?.exec(a)}function Soe(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(BR)}function QOe(t){var e,r,n;let i=[],a=t.position.line,s=t.position.character;for(let l=0;l=f.length){if(i.length>0){let m=Ur.create(a,s);i.push({type:"break",content:"",range:wr.create(m,m)})}}else{Eoe.lastIndex=d;let m=Eoe.exec(f);if(m){let g=m[0],y=m[1],v=Ur.create(a,s+d),x=Ur.create(a,s+d+g.length);i.push({type:"tag",content:y,range:wr.create(v,x)}),d+=g.length,d=YM(f,d)}if(d0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function ZOe(t,e,r,n){let i=[];if(t.length===0){let a=Ur.create(r,n),s=Ur.create(r,n+e.length);i.push({type:"text",content:e,range:wr.create(a,s)})}else{let a=0;for(let l of t){let u=l.index,h=e.substring(a,u);h.length>0&&i.push({type:"text",content:e.substring(a,u),range:wr.create(Ur.create(r,a+n),Ur.create(r,u+n))});let f=h.length+1,d=l[1];if(i.push({type:"inline-tag",content:d,range:wr.create(Ur.create(r,a+f+n),Ur.create(r,a+f+d.length+n))}),f+=d.length,l.length===4){f+=l[2].length;let p=l[3];i.push({type:"text",content:p,range:wr.create(Ur.create(r,a+f+n),Ur.create(r,a+f+p.length+n))})}else i.push({type:"text",content:"",range:wr.create(Ur.create(r,a+f+n),Ur.create(r,a+f+n))});a=u+l[0].length}let s=e.substring(a);s.length>0&&i.push({type:"text",content:s,range:wr.create(Ur.create(r,a+n),Ur.create(r,a+n+s.length))})}return i}function YM(t,e){let r=t.substring(e).match(JOe);return r?e+r.index:t.length}function tPe(t){let e=t.match(ePe);if(e&&typeof e.index=="number")return e.index}function rPe(t){var e,r,n,i;let a=Ur.create(t.position.line,t.position.character);if(t.tokens.length===0)return new Fk([],wr.create(a,a));let s=[];for(;t.index0){let u=YM(e,a);s=e.substring(u),e=e.substring(0,a)}return(t==="linkcode"||t==="link"&&r.link==="code")&&(s=`\`${s}\``),(i=(n=r.renderLink)===null||n===void 0?void 0:n.call(r,e,s))!==null&&i!==void 0?i:oPe(e,s)}}function oPe(t,e){try{return Ms.parse(t,!0),`[${e}](${t})`}catch{return t}}function Coe(t){return t.endsWith(` +`)?` +`:` + +`}var Eoe,KOe,JOe,ePe,Fk,J2,ex,zk,jM=R(()=>{"use strict";tM();Um();Nc();o(WM,"parseJSDoc");o(qM,"isJSDoc");o(Soe,"getLines");Eoe=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,KOe=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;o(QOe,"tokenize");o(ZOe,"buildInlineTokens");JOe=/\S/,ePe=/\s*$/;o(YM,"skipWhitespace");o(tPe,"lastCharacter");o(rPe,"parseJSDocComment");o(nPe,"parseJSDocElement");o(iPe,"appendEmptyLine");o(Aoe,"parseJSDocText");o(aPe,"parseJSDocInline");o(_oe,"parseJSDocTag");o(Loe,"parseJSDocLine");o(XM,"normalizeOptions");o(HM,"normalizeOption");Fk=class{static{o(this,"JSDocCommentImpl")}constructor(e,r){this.elements=e,this.range=r}getTag(e){return this.getAllTags().find(r=>r.name===e)}getTags(e){return this.getAllTags().filter(r=>r.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let r of this.elements)if(e.length===0)e=r.toString();else{let n=r.toString();e+=Coe(e)+n}return e.trim()}toMarkdown(e){let r="";for(let n of this.elements)if(r.length===0)r=n.toMarkdown(e);else{let i=n.toMarkdown(e);r+=Coe(r)+i}return r.trim()}},J2=class{static{o(this,"JSDocTagImpl")}constructor(e,r,n,i){this.name=e,this.content=r,this.inline=n,this.range=i}toString(){let e=`@${this.name}`,r=this.content.toString();return this.content.inlines.length===1?e=`${e} ${r}`:this.content.inlines.length>1&&(e=`${e} +${r}`),this.inline?`{${e}}`:e}toMarkdown(e){var r,n;return(n=(r=e?.renderTag)===null||r===void 0?void 0:r.call(e,this))!==null&&n!==void 0?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){let r=this.content.toMarkdown(e);if(this.inline){let a=sPe(this.name,r,e??{});if(typeof a=="string")return a}let n="";e?.tag==="italic"||e?.tag===void 0?n="*":e?.tag==="bold"?n="**":e?.tag==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} \u2014 ${r}`:this.content.inlines.length>1&&(i=`${i} +${r}`),this.inline?`{${i}}`:i}};o(sPe,"renderInlineTag");o(oPe,"renderLinkDefault");ex=class{static{o(this,"JSDocTextImpl")}constructor(e,r){this.inlines=e,this.range=r}toString(){let e="";for(let r=0;rn.range.start.line&&(e+=` +`)}return e}toMarkdown(e){let r="";for(let n=0;ni.range.start.line&&(r+=` +`)}return r}},zk=class{static{o(this,"JSDocLineImpl")}constructor(e,r){this.text=e,this.range=r}toString(){return this.text}toMarkdown(){return this.text}};o(Coe,"fillNewlines")});var tx,KM=R(()=>{"use strict";es();jM();tx=class{static{o(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let r=this.commentProvider.getComment(e);if(r&&qM(r))return WM(r).toMarkdown({renderLink:o((i,a)=>this.documentationLinkRenderer(e,i,a),"renderLink"),renderTag:o(i=>this.documentationTagRenderer(e,i),"renderTag")})}documentationLinkRenderer(e,r,n){var i;let a=(i=this.findNameInPrecomputedScopes(e,r))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,r);if(a&&a.nameSegment){let s=a.nameSegment.range.start.line+1,l=a.nameSegment.range.start.character+1,u=a.documentUri.with({fragment:`L${s},${l}`});return`[${n}](${u.toString()})`}else return}documentationTagRenderer(e,r){}findNameInPrecomputedScopes(e,r){let i=Oi(e).precomputedScopes;if(!i)return;let a=e;do{let l=i.get(a).find(u=>u.name===r);if(l)return l;a=a.$container}while(a)}findNameInGlobalScope(e,r){return this.indexManager.allElements().find(i=>i.name===r)}}});var rx,QM=R(()=>{"use strict";Ok();Rl();rx=class{static{o(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var r;return RM(e)?e.$comment:(r=_D(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||r===void 0?void 0:r.text}}});var ii={};var ZM=R(()=>{"use strict";dr(ii,Xi(vM(),1))});var nx,JM,eI,tI=R(()=>{"use strict";qo();ZM();nx=class{static{o(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e){return Promise.resolve(this.syncParser.parse(e))}},JM=class{static{o(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length{if(this.queue.length>0){let r=this.queue.shift();r&&(e.lock(),r.resolve(e))}}),this.workerPool.push(e)}}async parse(e,r){let n=await this.acquireParserWorker(r),i=new as,a,s=r.onCancellationRequested(()=>{a=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(l=>{let u=this.hydrator.hydrate(l);i.resolve(u)}).catch(l=>{i.reject(l)}).finally(()=>{s.dispose(),clearTimeout(a)}),i.promise}terminateWorker(e){e.terminate();let r=this.workerPool.indexOf(e);r>=0&&this.workerPool.splice(r,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let r=new as;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(r);n>=0&&this.queue.splice(n,1),r.reject(Rc)}),this.queue.push(r),r.promise}},eI=class{static{o(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,r,n,i){this.onReadyEmitter=new ii.Emitter,this.deferred=new as,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,r(a=>{let s=a;this.deferred.resolve(s),this.unlock()}),n(a=>{this.deferred.reject(a),this.unlock()})}terminate(){this.deferred.reject(Rc),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new as,this.sendMessage(e),this.deferred.promise}}});var ix,rI=R(()=>{"use strict";Wo();qo();ix=class{static{o(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new pr.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let r=new pr.CancellationTokenSource;return this.previousTokenSource=r,this.enqueue(this.writeQueue,e,r.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,r,n){let i=new as,a={action:r,deferred:i,cancellationToken:n??pr.CancellationToken.None};return e.push(a),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:r,deferred:n,cancellationToken:i})=>{try{let a=await Promise.resolve().then(()=>r(i));n.resolve(a)}catch(a){of(a)?n.resolve(void 0):n.reject(a)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}});var ax,nI=R(()=>{"use strict";Ek();Sc();Vo();es();kg();Rl();ax=class{static{o(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new v0,this.tokenTypeIdMap=new v0,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors.map(r=>Object.assign({},r)),parserErrors:e.parserErrors.map(r=>Object.assign({},r)),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}createDehyrationContext(e){let r=new Map,n=new Map;for(let i of Yo(e))r.set(i,{});if(e.$cstNode)for(let i of qd(e.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,r));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)Xn(l)?s.push(this.dehydrateAstNode(l,r)):xa(l)?s.push(this.dehydrateReference(l,r)):s.push(l)}else Xn(a)?n[i]=this.dehydrateAstNode(a,r):xa(a)?n[i]=this.dehydrateReference(a,r):a!==void 0&&(n[i]=a);return n}dehydrateReference(e,r){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=r.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,r){let n=r.cstNodes.get(e);return zv(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=r.astNodes.get(e.astNode),co(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,r)):ef(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let r=e.value,n=this.createHydrationContext(r);return"$cstNode"in r&&this.hydrateCstNode(r.$cstNode,n),{lexerErrors:e.lexerErrors,parserErrors:e.parserErrors,value:this.hydrateAstNode(r,n)}}createHydrationContext(e){let r=new Map,n=new Map;for(let a of Yo(e))r.set(a,{});let i;if(e.$cstNode)for(let a of qd(e.$cstNode)){let s;"fullText"in a?(s=new gg(a.fullText),i=s):"content"in a?s=new p0:"tokenType"in a&&(s=this.hydrateCstLeafNode(a)),s&&(n.set(a,s),s.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=r.cstNodes.get(e.$cstNode));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)Xn(l)?s.push(this.setParent(this.hydrateAstNode(l,r),n)):xa(l)?s.push(this.hydrateReference(l,n,i,r)):s.push(l)}else Xn(a)?n[i]=this.setParent(this.hydrateAstNode(a,r),n):xa(a)?n[i]=this.hydrateReference(a,n,i,r):a!==void 0&&(n[i]=a);return n}setParent(e,r){return e.$container=r,e}hydrateReference(e,r,n,i){return this.linker.buildReference(r,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,r,n=0){let i=r.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=r.astNodes.get(e.astNode),co(i))for(let a of e.content){let s=this.hydrateCstNode(a,r,n++);i.content.push(s)}return i}hydrateCstLeafNode(e){let r=this.getTokenType(e.tokenType),n=e.offset,i=e.length,a=e.startLine,s=e.startColumn,l=e.endLine,u=e.endColumn,h=e.hidden;return new d0(n,i,{start:{line:a,character:s},end:{line:l,character:u}},r,h)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap();let r=this.grammarElementIdMap.getKey(e);if(r)return r;throw new Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(let r of Yo(this.grammar))Uv(r)&&this.grammarElementIdMap.set(r,e++)}}});function po(t){return{documentation:{CommentProvider:o(e=>new rx(e),"CommentProvider"),DocumentationProvider:o(e=>new tx(e),"DocumentationProvider")},parser:{AsyncParser:o(e=>new nx(e),"AsyncParser"),GrammarConfig:o(e=>JR(e),"GrammarConfig"),LangiumParser:o(e=>cM(e),"LangiumParser"),CompletionParser:o(e=>oM(e),"CompletionParser"),ValueConverter:o(()=>new y0,"ValueConverter"),TokenBuilder:o(()=>new g0,"TokenBuilder"),Lexer:o(e=>new Z2(e),"Lexer"),ParserErrorMessageProvider:o(()=>new yg,"ParserErrorMessageProvider")},workspace:{AstNodeLocator:o(()=>new q2,"AstNodeLocator"),AstNodeDescriptionProvider:o(e=>new Y2(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:o(e=>new W2(e),"ReferenceDescriptionProvider")},references:{Linker:o(e=>new M2(e),"Linker"),NameProvider:o(()=>new I2,"NameProvider"),ScopeProvider:o(e=>new z2(e),"ScopeProvider"),ScopeComputation:o(e=>new P2(e),"ScopeComputation"),References:o(e=>new O2(e),"References")},serializer:{Hydrator:o(e=>new ax(e),"Hydrator"),JsonSerializer:o(e=>new G2(e),"JsonSerializer")},validation:{DocumentValidator:o(e=>new H2(e),"DocumentValidator"),ValidationRegistry:o(e=>new V2(e),"ValidationRegistry")},shared:o(()=>t.shared,"shared")}}function mo(t){return{ServiceRegistry:o(()=>new $2,"ServiceRegistry"),workspace:{LangiumDocuments:o(e=>new N2(e),"LangiumDocuments"),LangiumDocumentFactory:o(e=>new R2(e),"LangiumDocumentFactory"),DocumentBuilder:o(e=>new j2(e),"DocumentBuilder"),IndexManager:o(e=>new K2(e),"IndexManager"),WorkspaceManager:o(e=>new Q2(e),"WorkspaceManager"),FileSystemProvider:o(e=>t.fileSystemProvider(e),"FileSystemProvider"),WorkspaceLock:o(()=>new ix,"WorkspaceLock"),ConfigurationProvider:o(e=>new X2(e),"ConfigurationProvider")}}}var iI=R(()=>{"use strict";eN();lM();uM();hM();fM();CM();SM();AM();_M();DM();Ok();NM();MM();U2();IM();OM();PM();FM();Tg();zM();GM();UM();KM();QM();D2();tI();rI();nI();o(po,"createDefaultCoreModule");o(mo,"createDefaultSharedCoreModule")});function Fi(t,e,r,n,i,a,s,l,u){let h=[t,e,r,n,i,a,s,l,u].reduce(Gk,{});return Moe(h)}function Noe(t){if(t&&t[sI])for(let e of Object.values(t))Noe(e);return t}function Moe(t,e){let r=new Proxy({},{deleteProperty:o(()=>!1,"deleteProperty"),get:o((n,i)=>Roe(n,i,t,e||r),"get"),getOwnPropertyDescriptor:o((n,i)=>(Roe(n,i,t,e||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:o((n,i)=>i in t,"has"),ownKeys:o(()=>[...Reflect.ownKeys(t),sI],"ownKeys")});return r[sI]=!0,r}function Roe(t,e,r,n){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:t[e]});if(t[e]===Doe)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in r){let i=r[e];t[e]=Doe;try{t[e]=typeof i=="function"?i(n):Moe(i,n)}catch(a){throw t[e]=a instanceof Error?a:void 0,a}return t[e]}else return}function Gk(t,e){if(e){for(let[r,n]of Object.entries(e))if(n!==void 0){let i=t[r];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?t[r]=Gk(i,n):t[r]=n}}return t}var aI,sI,Doe,oI=R(()=>{"use strict";(function(t){t.merge=(e,r)=>Gk(Gk({},e),r)})(aI||(aI={}));o(Fi,"inject");sI=Symbol("isProxy");o(Noe,"eagerLoad");o(Moe,"_inject");Doe=Symbol();o(Roe,"_resolve");o(Gk,"_merge")});var Ioe=R(()=>{"use strict"});var Ooe=R(()=>{"use strict";QM();KM();jM()});var Poe=R(()=>{"use strict"});var Boe=R(()=>{"use strict";eN();Poe()});var Foe=R(()=>{"use strict"});var zoe=R(()=>{"use strict";tI();lM();Ek();uM();D2();UM();Foe();hM();fM()});var Goe=R(()=>{"use strict";CM();SM();AM();LM();_M();DM()});var $oe=R(()=>{"use strict";nI();Ok()});var $k,go,lI=R(()=>{"use strict";$k=class{static{o(this,"EmptyFileSystemProvider")}readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},go={fileSystemProvider:o(()=>new $k,"fileSystemProvider")}});function uPe(){let t=Fi(mo(go),cPe),e=Fi(po({shared:t}),lPe);return t.ServiceRegistry.register(e),e}function lf(t){var e;let r=uPe(),n=r.serializer.JsonSerializer.deserialize(t);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,Ms.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}var lPe,cPe,Voe=R(()=>{"use strict";iI();oI();Sc();lI();Nc();lPe={Grammar:o(()=>{},"Grammar"),LanguageMetaData:o(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},cPe={AstReflection:o(()=>new Gm,"AstReflection")};o(uPe,"createMinimalGrammarServices");o(lf,"loadGrammarFromJson")});var Rr={};hr(Rr,{AstUtils:()=>CT,BiMap:()=>v0,Cancellation:()=>pr,ContextCache:()=>x0,CstUtils:()=>dT,DONE_RESULT:()=>Ja,Deferred:()=>as,Disposable:()=>b0,DisposableCache:()=>Cg,DocumentCache:()=>Mk,EMPTY_STREAM:()=>Gv,ErrorWithLocation:()=>jd,GrammarUtils:()=>RT,MultiMap:()=>Mc,OperationCancelled:()=>Rc,Reduction:()=>Fm,RegExpUtils:()=>LT,SimpleCache:()=>F2,StreamImpl:()=>uo,TreeStreamImpl:()=>Cc,URI:()=>Ms,UriUtils:()=>ss,WorkspaceCache:()=>Sg,assertUnreachable:()=>tf,delayNextTick:()=>TM,interruptAndCheck:()=>Bi,isOperationCancelled:()=>of,loadGrammarFromJson:()=>lf,setInterruptionPeriod:()=>poe,startCancelableOperation:()=>doe,stream:()=>Kr});var Uoe=R(()=>{"use strict";Ik();ZM();dr(Rr,ii);kg();BM();pT();Voe();qo();Ds();Nc();es();Wo();Rl();Il();Um()});var Hoe=R(()=>{"use strict";MM();U2()});var Yoe=R(()=>{"use strict";IM();OM();PM();FM();Tg();lI();zM();rI();GM()});var ba={};hr(ba,{AbstractAstReflection:()=>Yd,AbstractCstNode:()=>S2,AbstractLangiumParser:()=>A2,AbstractParserErrorMessageProvider:()=>Sk,AbstractThreadedAsyncParser:()=>JM,AstUtils:()=>CT,BiMap:()=>v0,Cancellation:()=>pr,CompositeCstNodeImpl:()=>p0,ContextCache:()=>x0,CstNodeBuilder:()=>C2,CstUtils:()=>dT,DONE_RESULT:()=>Ja,DatatypeSymbol:()=>Ck,DefaultAstNodeDescriptionProvider:()=>Y2,DefaultAstNodeLocator:()=>q2,DefaultAsyncParser:()=>nx,DefaultCommentProvider:()=>rx,DefaultConfigurationProvider:()=>X2,DefaultDocumentBuilder:()=>j2,DefaultDocumentValidator:()=>H2,DefaultHydrator:()=>ax,DefaultIndexManager:()=>K2,DefaultJsonSerializer:()=>G2,DefaultLangiumDocumentFactory:()=>R2,DefaultLangiumDocuments:()=>N2,DefaultLexer:()=>Z2,DefaultLinker:()=>M2,DefaultNameProvider:()=>I2,DefaultReferenceDescriptionProvider:()=>W2,DefaultReferences:()=>O2,DefaultScopeComputation:()=>P2,DefaultScopeProvider:()=>z2,DefaultServiceRegistry:()=>$2,DefaultTokenBuilder:()=>g0,DefaultValueConverter:()=>y0,DefaultWorkspaceLock:()=>ix,DefaultWorkspaceManager:()=>Q2,Deferred:()=>as,Disposable:()=>b0,DisposableCache:()=>Cg,DocumentCache:()=>Mk,DocumentState:()=>yn,DocumentValidator:()=>Uu,EMPTY_SCOPE:()=>jOe,EMPTY_STREAM:()=>Gv,EmptyFileSystem:()=>go,EmptyFileSystemProvider:()=>$k,ErrorWithLocation:()=>jd,GrammarAST:()=>Yv,GrammarUtils:()=>RT,JSDocDocumentationProvider:()=>tx,LangiumCompletionParser:()=>L2,LangiumParser:()=>_2,LangiumParserErrorMessageProvider:()=>yg,LeafCstNodeImpl:()=>d0,MapScope:()=>B2,Module:()=>aI,MultiMap:()=>Mc,OperationCancelled:()=>Rc,ParserWorker:()=>eI,Reduction:()=>Fm,RegExpUtils:()=>LT,RootCstNodeImpl:()=>gg,SimpleCache:()=>F2,StreamImpl:()=>uo,StreamScope:()=>Eg,TextDocument:()=>bg,TreeStreamImpl:()=>Cc,URI:()=>Ms,UriUtils:()=>ss,ValidationCategory:()=>Ag,ValidationRegistry:()=>V2,ValueConverter:()=>Dc,WorkspaceCache:()=>Sg,assertUnreachable:()=>tf,createCompletionParser:()=>oM,createDefaultCoreModule:()=>po,createDefaultSharedCoreModule:()=>mo,createGrammarConfig:()=>JR,createLangiumParser:()=>cM,delayNextTick:()=>TM,diagnosticData:()=>Pk,eagerLoad:()=>Noe,getDiagnosticRange:()=>Toe,inject:()=>Fi,interruptAndCheck:()=>Bi,isAstNode:()=>Xn,isAstNodeDescription:()=>ED,isAstNodeWithComment:()=>RM,isCompositeCstNode:()=>co,isIMultiModeLexerDefinition:()=>VM,isJSDoc:()=>qM,isLeafCstNode:()=>ef,isLinkingError:()=>Wd,isNamed:()=>boe,isOperationCancelled:()=>of,isReference:()=>xa,isRootCstNode:()=>zv,isTokenTypeArray:()=>koe,isTokenTypeDictionary:()=>$M,loadGrammarFromJson:()=>lf,parseJSDoc:()=>WM,prepareLangiumParser:()=>soe,setInterruptionPeriod:()=>poe,startCancelableOperation:()=>doe,stream:()=>Kr,toDiagnosticSeverity:()=>Bk});var Ic=R(()=>{"use strict";iI();oI();NM();Ioe();Vo();Ooe();Boe();zoe();Goe();$oe();Uoe();dr(ba,Rr);Hoe();Yoe();Sc()});function Joe(t){return Pl.isInstance(t,Zoe)}function ele(t){return Pl.isInstance(t,cI)}function tle(t){return Pl.isInstance(t,uI)}function rle(t){return Pl.isInstance(t,pPe)}function nle(t){return Pl.isInstance(t,hI)}function ale(t){return Pl.isInstance(t,ile)}function sle(t){return Pl.isInstance(t,fI)}function lle(t){return Pl.isInstance(t,ole)}function ule(t){return Pl.isInstance(t,cle)}function fle(t){return Pl.isInstance(t,hle)}function ple(t){return Pl.isInstance(t,dle)}var hPe,Tt,Qoe,Zoe,cI,fPe,dPe,uI,pPe,hI,ile,fI,ole,cle,hle,dle,mPe,mle,Pl,Woe,gPe,qoe,yPe,Xoe,vPe,joe,xPe,Koe,bPe,wPe,TPe,kPe,EPe,CPe,Bl,dI,pI,mI,gI,yI,SPe,APe,_Pe,LPe,_g,w0,Xo,DPe,jo=R(()=>{"use strict";Ic();Ic();Ic();Ic();hPe=Object.defineProperty,Tt=o((t,e)=>hPe(t,"name",{value:e,configurable:!0}),"__name"),Qoe="Statement",Zoe="Architecture";o(Joe,"isArchitecture");Tt(Joe,"isArchitecture");cI="Branch";o(ele,"isBranch");Tt(ele,"isBranch");fPe="Checkout",dPe="CherryPicking",uI="Commit";o(tle,"isCommit");Tt(tle,"isCommit");pPe="Common";o(rle,"isCommon");Tt(rle,"isCommon");hI="GitGraph";o(nle,"isGitGraph");Tt(nle,"isGitGraph");ile="Info";o(ale,"isInfo");Tt(ale,"isInfo");fI="Merge";o(sle,"isMerge");Tt(sle,"isMerge");ole="Packet";o(lle,"isPacket");Tt(lle,"isPacket");cle="PacketBlock";o(ule,"isPacketBlock");Tt(ule,"isPacketBlock");hle="Pie";o(fle,"isPie");Tt(fle,"isPie");dle="PieSection";o(ple,"isPieSection");Tt(ple,"isPieSection");mPe="Direction",mle=class extends Yd{static{o(this,"MermaidAstReflection")}static{Tt(this,"MermaidAstReflection")}getAllTypes(){return["Architecture","Branch","Checkout","CherryPicking","Commit","Common","Direction","Edge","GitGraph","Group","Info","Junction","Merge","Packet","PacketBlock","Pie","PieSection","Service","Statement"]}computeIsSubtype(t,e){switch(t){case cI:case fPe:case dPe:case uI:case fI:return this.isSubtype(Qoe,e);case mPe:return this.isSubtype(hI,e);default:return!1}}getReferenceType(t){let e=`${t.container.$type}:${t.property}`;switch(e){default:throw new Error(`${e} is not a valid reference id.`)}}getTypeMetaData(t){switch(t){case"Architecture":return{name:"Architecture",properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case"Branch":return{name:"Branch",properties:[{name:"name"},{name:"order"}]};case"Checkout":return{name:"Checkout",properties:[{name:"branch"}]};case"CherryPicking":return{name:"CherryPicking",properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case"Commit":return{name:"Commit",properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Common":return{name:"Common",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Edge":return{name:"Edge",properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Group":return{name:"Group",properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Junction":return{name:"Junction",properties:[{name:"id"},{name:"in"}]};case"Merge":return{name:"Merge",properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Packet":return{name:"Packet",properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case"PacketBlock":return{name:"PacketBlock",properties:[{name:"end"},{name:"label"},{name:"start"}]};case"Pie":return{name:"Pie",properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case"PieSection":return{name:"PieSection",properties:[{name:"label"},{name:"value"}]};case"Service":return{name:"Service",properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:t,properties:[]}}}},Pl=new mle,gPe=Tt(()=>Woe??(Woe=lf('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"InfoGrammar"),yPe=Tt(()=>qoe??(qoe=lf(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),vPe=Tt(()=>Xoe??(Xoe=lf('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"PieGrammar"),xPe=Tt(()=>joe??(joe=lf('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LeftPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RightPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),bPe=Tt(()=>Koe??(Koe=lf(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),wPe={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},TPe={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},kPe={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},EPe={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},CPe={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Bl={AstReflection:Tt(()=>new mle,"AstReflection")},dI={Grammar:Tt(()=>gPe(),"Grammar"),LanguageMetaData:Tt(()=>wPe,"LanguageMetaData"),parser:{}},pI={Grammar:Tt(()=>yPe(),"Grammar"),LanguageMetaData:Tt(()=>TPe,"LanguageMetaData"),parser:{}},mI={Grammar:Tt(()=>vPe(),"Grammar"),LanguageMetaData:Tt(()=>kPe,"LanguageMetaData"),parser:{}},gI={Grammar:Tt(()=>xPe(),"Grammar"),LanguageMetaData:Tt(()=>EPe,"LanguageMetaData"),parser:{}},yI={Grammar:Tt(()=>bPe(),"Grammar"),LanguageMetaData:Tt(()=>CPe,"LanguageMetaData"),parser:{}},SPe=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,APe=/accTitle[\t ]*:([^\n\r]*)/,_Pe=/title([\t ][^\n\r]*|)/,LPe={ACC_DESCR:SPe,ACC_TITLE:APe,TITLE:_Pe},_g=class extends y0{static{o(this,"AbstractMermaidValueConverter")}static{Tt(this,"AbstractMermaidValueConverter")}runConverter(t,e,r){let n=this.runCommonConverter(t,e,r);return n===void 0&&(n=this.runCustomConverter(t,e,r)),n===void 0?super.runConverter(t,e,r):n}runCommonConverter(t,e,r){let n=LPe[t.name];if(n===void 0)return;let i=n.exec(e);if(i!==null){if(i[1]!==void 0)return i[1].trim().replace(/[\t ]{2,}/gm," ");if(i[2]!==void 0)return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` +`)}}},w0=class extends _g{static{o(this,"CommonValueConverter")}static{Tt(this,"CommonValueConverter")}runCustomConverter(t,e,r){}},Xo=class extends g0{static{o(this,"AbstractMermaidTokenBuilder")}static{Tt(this,"AbstractMermaidTokenBuilder")}constructor(t){super(),this.keywords=new Set(t)}buildKeywordTokens(t,e,r){let n=super.buildKeywordTokens(t,e,r);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},DPe=class extends Xo{static{o(this,"CommonTokenBuilder")}static{Tt(this,"CommonTokenBuilder")}}});function Uk(t=go){let e=Fi(mo(t),Bl),r=Fi(po({shared:e}),yI,Vk);return e.ServiceRegistry.register(r),{shared:e,GitGraph:r}}var RPe,Vk,vI=R(()=>{"use strict";jo();Ic();RPe=class extends Xo{static{o(this,"GitGraphTokenBuilder")}static{Tt(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},Vk={parser:{TokenBuilder:Tt(()=>new RPe,"TokenBuilder"),ValueConverter:Tt(()=>new w0,"ValueConverter")}};o(Uk,"createGitGraphServices");Tt(Uk,"createGitGraphServices")});function Yk(t=go){let e=Fi(mo(t),Bl),r=Fi(po({shared:e}),dI,Hk);return e.ServiceRegistry.register(r),{shared:e,Info:r}}var NPe,Hk,xI=R(()=>{"use strict";jo();Ic();NPe=class extends Xo{static{o(this,"InfoTokenBuilder")}static{Tt(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},Hk={parser:{TokenBuilder:Tt(()=>new NPe,"TokenBuilder"),ValueConverter:Tt(()=>new w0,"ValueConverter")}};o(Yk,"createInfoServices");Tt(Yk,"createInfoServices")});function qk(t=go){let e=Fi(mo(t),Bl),r=Fi(po({shared:e}),pI,Wk);return e.ServiceRegistry.register(r),{shared:e,Packet:r}}var MPe,Wk,bI=R(()=>{"use strict";jo();Ic();MPe=class extends Xo{static{o(this,"PacketTokenBuilder")}static{Tt(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},Wk={parser:{TokenBuilder:Tt(()=>new MPe,"TokenBuilder"),ValueConverter:Tt(()=>new w0,"ValueConverter")}};o(qk,"createPacketServices");Tt(qk,"createPacketServices")});function jk(t=go){let e=Fi(mo(t),Bl),r=Fi(po({shared:e}),mI,Xk);return e.ServiceRegistry.register(r),{shared:e,Pie:r}}var IPe,OPe,Xk,wI=R(()=>{"use strict";jo();Ic();IPe=class extends Xo{static{o(this,"PieTokenBuilder")}static{Tt(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},OPe=class extends _g{static{o(this,"PieValueConverter")}static{Tt(this,"PieValueConverter")}runCustomConverter(t,e,r){if(t.name==="PIE_SECTION_LABEL")return e.replace(/"/g,"").trim()}},Xk={parser:{TokenBuilder:Tt(()=>new IPe,"TokenBuilder"),ValueConverter:Tt(()=>new OPe,"ValueConverter")}};o(jk,"createPieServices");Tt(jk,"createPieServices")});function Qk(t=go){let e=Fi(mo(t),Bl),r=Fi(po({shared:e}),gI,Kk);return e.ServiceRegistry.register(r),{shared:e,Architecture:r}}var PPe,BPe,Kk,TI=R(()=>{"use strict";jo();Ic();PPe=class extends Xo{static{o(this,"ArchitectureTokenBuilder")}static{Tt(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},BPe=class extends _g{static{o(this,"ArchitectureValueConverter")}static{Tt(this,"ArchitectureValueConverter")}runCustomConverter(t,e,r){if(t.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(t.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(t.name==="ARCH_TITLE")return e.replace(/[[\]]/g,"").trim()}},Kk={parser:{TokenBuilder:Tt(()=>new PPe,"TokenBuilder"),ValueConverter:Tt(()=>new BPe,"ValueConverter")}};o(Qk,"createArchitectureServices");Tt(Qk,"createArchitectureServices")});var gle={};hr(gle,{InfoModule:()=>Hk,createInfoServices:()=>Yk});var yle=R(()=>{"use strict";xI();jo()});var vle={};hr(vle,{PacketModule:()=>Wk,createPacketServices:()=>qk});var xle=R(()=>{"use strict";bI();jo()});var ble={};hr(ble,{PieModule:()=>Xk,createPieServices:()=>jk});var wle=R(()=>{"use strict";wI();jo()});var Tle={};hr(Tle,{ArchitectureModule:()=>Kk,createArchitectureServices:()=>Qk});var kle=R(()=>{"use strict";TI();jo()});var Ele={};hr(Ele,{GitGraphModule:()=>Vk,createGitGraphServices:()=>Uk});var Cle=R(()=>{"use strict";vI();jo()});async function Fl(t,e){let r=FPe[t];if(!r)throw new Error(`Unknown diagram type: ${t}`);T0[t]||await r();let i=T0[t].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new zPe(i);return i.value}var T0,FPe,zPe,Lg=R(()=>{"use strict";vI();xI();bI();wI();TI();jo();T0={},FPe={info:Tt(async()=>{let{createInfoServices:t}=await Promise.resolve().then(()=>(yle(),gle)),e=t().Info.parser.LangiumParser;T0.info=e},"info"),packet:Tt(async()=>{let{createPacketServices:t}=await Promise.resolve().then(()=>(xle(),vle)),e=t().Packet.parser.LangiumParser;T0.packet=e},"packet"),pie:Tt(async()=>{let{createPieServices:t}=await Promise.resolve().then(()=>(wle(),ble)),e=t().Pie.parser.LangiumParser;T0.pie=e},"pie"),architecture:Tt(async()=>{let{createArchitectureServices:t}=await Promise.resolve().then(()=>(kle(),Tle)),e=t().Architecture.parser.LangiumParser;T0.architecture=e},"architecture"),gitGraph:Tt(async()=>{let{createGitGraphServices:t}=await Promise.resolve().then(()=>(Cle(),Ele)),e=t().GitGraph.parser.LangiumParser;T0.gitGraph=e},"gitGraph")};o(Fl,"parse");Tt(Fl,"parse");zPe=class extends Error{static{o(this,"MermaidParseError")}constructor(t){let e=t.lexerErrors.map(n=>n.message).join(` +`),r=t.parserErrors.map(n=>n.message).join(` +`);super(`Parsing failed: ${e} ${r}`),this.result=t}static{Tt(this,"MermaidParseError")}}});function cf(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}var sx=R(()=>{"use strict";o(cf,"populateCommonDb")});var Hr,Zk=R(()=>{"use strict";Hr={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}});var uf,Jk=R(()=>{"use strict";uf=class{constructor(e){this.init=e;this.records=this.init()}static{o(this,"ImperativeState")}reset(){this.records=this.init()}}});function kI(){return J_({length:7})}function $Pe(t,e){let r=Object.create(null);return t.reduce((n,i)=>{let a=e(i);return r[a]||(r[a]=!0,n.push(i)),n},[])}function Sle(t,e,r){let n=t.indexOf(e);n===-1?t.push(r):t.splice(n,1,r)}function _le(t){let e=t.reduce((i,a)=>i.seq>a.seq?i:a,t[0]),r="";t.forEach(function(i){i===e?r+=" *":r+=" |"});let n=[r,e.id,e.seq];for(let i in pt.records.branches)pt.records.branches.get(i)===e.id&&n.push(i);if(V.debug(n.join(" ")),e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){let i=pt.records.commits.get(e.parents[0]);Sle(t,e,i),e.parents[1]&&t.push(pt.records.commits.get(e.parents[1]))}else{if(e.parents.length==0)return;if(e.parents[0]){let i=pt.records.commits.get(e.parents[0]);Sle(t,e,i)}}t=$Pe(t,i=>i.id),_le(t)}var GPe,k0,pt,VPe,UPe,HPe,YPe,WPe,qPe,XPe,Ale,jPe,KPe,QPe,ZPe,JPe,Lle,eBe,tBe,rBe,eE,EI=R(()=>{"use strict";ut();xr();qs();rr();bi();Zk();Jk();sl();GPe=mr.gitGraph,k0=o(()=>Ts({...GPe,...Or().gitGraph}),"getConfig"),pt=new uf(()=>{let t=k0(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});o(kI,"getID");o($Pe,"uniqBy");VPe=o(function(t){pt.records.direction=t},"setDirection"),UPe=o(function(t){V.debug("options str",t),t=t?.trim(),t=t||"{}";try{pt.records.options=JSON.parse(t)}catch(e){V.error("error while parsing gitGraph options",e.message)}},"setOptions"),HPe=o(function(){return pt.records.options},"getOptions"),YPe=o(function(t){let e=t.msg,r=t.id,n=t.type,i=t.tags;V.info("commit",e,r,n,i),V.debug("Entering commit:",e,r,n,i);let a=k0();r=We.sanitizeText(r,a),e=We.sanitizeText(e,a),i=i?.map(l=>We.sanitizeText(l,a));let s={id:r||pt.records.seq+"-"+kI(),message:e,seq:pt.records.seq++,type:n??Hr.NORMAL,tags:i??[],parents:pt.records.head==null?[]:[pt.records.head.id],branch:pt.records.currBranch};pt.records.head=s,V.info("main branch",a.mainBranchName),pt.records.commits.set(s.id,s),pt.records.branches.set(pt.records.currBranch,s.id),V.debug("in pushCommit "+s.id)},"commit"),WPe=o(function(t){let e=t.name,r=t.order;if(e=We.sanitizeText(e,k0()),pt.records.branches.has(e))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);pt.records.branches.set(e,pt.records.head!=null?pt.records.head.id:null),pt.records.branchConfig.set(e,{name:e,order:r}),Ale(e),V.debug("in createBranch")},"branch"),qPe=o(t=>{let e=t.branch,r=t.id,n=t.type,i=t.tags,a=k0();e=We.sanitizeText(e,a),r&&(r=We.sanitizeText(r,a));let s=pt.records.branches.get(pt.records.currBranch),l=pt.records.branches.get(e),u=s?pt.records.commits.get(s):void 0,h=l?pt.records.commits.get(l):void 0;if(u&&h&&u.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(pt.records.currBranch===e){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(u===void 0||!u){let p=new Error(`Incorrect usage of "merge". Current branch (${pt.records.currBranch})has no commits`);throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},p}if(!pt.records.branches.has(e)){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},p}if(h===void 0||!h){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},p}if(u===h){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(r&&pt.records.commits.has(r)){let p=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom Id");throw p.hash={text:`merge ${e} ${r} ${n} ${i?.join(" ")}`,token:`merge ${e} ${r} ${n} ${i?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${n} ${i?.join(" ")}`]},p}let f=l||"",d={id:r||`${pt.records.seq}-${kI()}`,message:`merged branch ${e} into ${pt.records.currBranch}`,seq:pt.records.seq++,parents:pt.records.head==null?[]:[pt.records.head.id,f],branch:pt.records.currBranch,type:Hr.MERGE,customType:n,customId:!!r,tags:i??[]};pt.records.head=d,pt.records.commits.set(d.id,d),pt.records.branches.set(pt.records.currBranch,d.id),V.debug(pt.records.branches),V.debug("in mergeBranch")},"merge"),XPe=o(function(t){let e=t.id,r=t.targetId,n=t.tags,i=t.parent;V.debug("Entering cherryPick:",e,r,n);let a=k0();if(e=We.sanitizeText(e,a),r=We.sanitizeText(r,a),n=n?.map(u=>We.sanitizeText(u,a)),i=We.sanitizeText(i,a),!e||!pt.records.commits.has(e)){let u=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw u.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},u}let s=pt.records.commits.get(e);if(s===void 0||!s)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&!(Array.isArray(s.parents)&&s.parents.includes(i)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let l=s.branch;if(s.type===Hr.MERGE&&!i)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!pt.records.commits.has(r)){if(l===pt.records.currBranch){let d=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let u=pt.records.branches.get(pt.records.currBranch);if(u===void 0||!u){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${pt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let h=pt.records.commits.get(u);if(h===void 0||!h){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${pt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let f={id:pt.records.seq+"-"+kI(),message:`cherry-picked ${s?.message} into ${pt.records.currBranch}`,seq:pt.records.seq++,parents:pt.records.head==null?[]:[pt.records.head.id,s.id],branch:pt.records.currBranch,type:Hr.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${s.id}${s.type===Hr.MERGE?`|parent:${i}`:""}`]};pt.records.head=f,pt.records.commits.set(f.id,f),pt.records.branches.set(pt.records.currBranch,f.id),V.debug(pt.records.branches),V.debug("in cherryPick")}},"cherryPick"),Ale=o(function(t){if(t=We.sanitizeText(t,k0()),pt.records.branches.has(t)){pt.records.currBranch=t;let e=pt.records.branches.get(pt.records.currBranch);e===void 0||!e?pt.records.head=null:pt.records.head=pt.records.commits.get(e)??null}else{let e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");o(Sle,"upsert");o(_le,"prettyPrintCommitHistory");jPe=o(function(){V.debug(pt.records.commits);let t=Lle()[0];_le([t])},"prettyPrint"),KPe=o(function(){pt.reset(),vr()},"clear"),QPe=o(function(){return[...pt.records.branchConfig.values()].map((e,r)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${r}`)}).sort((e,r)=>(e.order??0)-(r.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),ZPe=o(function(){return pt.records.branches},"getBranches"),JPe=o(function(){return pt.records.commits},"getCommits"),Lle=o(function(){let t=[...pt.records.commits.values()];return t.forEach(function(e){V.debug(e.id)}),t.sort((e,r)=>e.seq-r.seq),t},"getCommitsArray"),eBe=o(function(){return pt.records.currBranch},"getCurrentBranch"),tBe=o(function(){return pt.records.direction},"getDirection"),rBe=o(function(){return pt.records.head},"getHead"),eE={commitType:Hr,getConfig:k0,setDirection:VPe,setOptions:UPe,getOptions:HPe,commit:YPe,branch:WPe,merge:qPe,cherryPick:XPe,checkout:Ale,prettyPrint:jPe,clear:KPe,getBranchesAsObjArray:QPe,getBranches:ZPe,getCommits:JPe,getCommitsArray:Lle,getCurrentBranch:eBe,getDirection:tBe,getHead:rBe,setAccTitle:kr,getAccTitle:Ar,getAccDescription:Lr,setAccDescription:_r,setDiagramTitle:nn,getDiagramTitle:Xr}});var nBe,iBe,aBe,sBe,oBe,lBe,cBe,Dle,Rle=R(()=>{"use strict";Lg();ut();sx();EI();Zk();nBe=o((t,e)=>{cf(t,e),t.dir&&e.setDirection(t.dir);for(let r of t.statements)iBe(r,e)},"populate"),iBe=o((t,e)=>{let n={Commit:o(i=>e.commit(aBe(i)),"Commit"),Branch:o(i=>e.branch(sBe(i)),"Branch"),Merge:o(i=>e.merge(oBe(i)),"Merge"),Checkout:o(i=>e.checkout(lBe(i)),"Checkout"),CherryPicking:o(i=>e.cherryPick(cBe(i)),"CherryPicking")}[t.$type];n?n(t):V.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),aBe=o(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?Hr[t.type]:Hr.NORMAL,tags:t.tags??void 0}),"parseCommit"),sBe=o(t=>({name:t.name,order:t.order??0}),"parseBranch"),oBe=o(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?Hr[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),lBe=o(t=>t.branch,"parseCheckout"),cBe=o(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),Dle={parse:o(async t=>{let e=await Fl("gitGraph",t);V.debug(e),nBe(e,eE)},"parse")}});var uBe,Ko,ff,df,Oc,Hu,E0,Is,Os,tE,ox,rE,hf,Tr,hBe,Mle,Ile,fBe,dBe,pBe,mBe,gBe,yBe,vBe,xBe,bBe,wBe,TBe,kBe,Nle,EBe,lx,CBe,SBe,ABe,_Be,LBe,Ole,Ple=R(()=>{"use strict";Zt();_t();ut();xr();Zk();uBe=de(),Ko=uBe?.gitGraph,ff=10,df=40,Oc=4,Hu=2,E0=8,Is=new Map,Os=new Map,tE=30,ox=new Map,rE=[],hf=0,Tr="LR",hBe=o(()=>{Is.clear(),Os.clear(),ox.clear(),hf=0,rE=[],Tr="LR"},"clear"),Mle=o(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|/gi):t).forEach(n=>{let i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),i.setAttribute("class","row"),i.textContent=n.trim(),e.appendChild(i)}),e},"drawText"),Ile=o(t=>{let e,r,n;return Tr==="BT"?(r=o((i,a)=>i<=a,"comparisonFunc"),n=1/0):(r=o((i,a)=>i>=a,"comparisonFunc"),n=0),t.forEach(i=>{let a=Tr==="TB"||Tr=="BT"?Os.get(i)?.y:Os.get(i)?.x;a!==void 0&&r(a,n)&&(e=i,n=a)}),e},"findClosestParent"),fBe=o(t=>{let e="",r=1/0;return t.forEach(n=>{let i=Os.get(n).y;i<=r&&(e=n,r=i)}),e||void 0},"findClosestParentBT"),dBe=o((t,e,r)=>{let n=r,i=r,a=[];t.forEach(s=>{let l=e.get(s);if(!l)throw new Error(`Commit not found for key ${s}`);l.parents.length?(n=mBe(l),i=Math.max(n,i)):a.push(l),gBe(l,n)}),n=i,a.forEach(s=>{yBe(s,n,r)}),t.forEach(s=>{let l=e.get(s);if(l?.parents.length){let u=fBe(l.parents);n=Os.get(u).y-df,n<=i&&(i=n);let h=Is.get(l.branch).pos,f=n-ff;Os.set(l.id,{x:h,y:f})}})},"setParallelBTPos"),pBe=o(t=>{let e=Ile(t.parents.filter(n=>n!==null));if(!e)throw new Error(`Closest parent not found for commit ${t.id}`);let r=Os.get(e)?.y;if(r===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),mBe=o(t=>pBe(t)+df,"calculateCommitPosition"),gBe=o((t,e)=>{let r=Is.get(t.branch);if(!r)throw new Error(`Branch not found for commit ${t.id}`);let n=r.pos,i=e+ff;return Os.set(t.id,{x:n,y:i}),{x:n,y:i}},"setCommitPosition"),yBe=o((t,e,r)=>{let n=Is.get(t.branch);if(!n)throw new Error(`Branch not found for commit ${t.id}`);let i=e+r,a=n.pos;Os.set(t.id,{x:a,y:i})},"setRootPosition"),vBe=o((t,e,r,n,i,a)=>{if(a===Hr.HIGHLIGHT)t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${i%E0} ${n}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${i%E0} ${n}-inner`);else if(a===Hr.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`);else{let s=t.append("circle");if(s.attr("cx",r.x),s.attr("cy",r.y),s.attr("r",e.type===Hr.MERGE?9:10),s.attr("class",`commit ${e.id} commit${i%E0}`),a===Hr.MERGE){let l=t.append("circle");l.attr("cx",r.x),l.attr("cy",r.y),l.attr("r",6),l.attr("class",`commit ${n} ${e.id} commit${i%E0}`)}a===Hr.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${n} ${e.id} commit${i%E0}`)}},"drawCommitBullet"),xBe=o((t,e,r,n)=>{if(e.type!==Hr.CHERRY_PICK&&(e.customId&&e.type===Hr.MERGE||e.type!==Hr.MERGE)&&Ko?.showCommitLabel){let i=t.append("g"),a=i.insert("rect").attr("class","commit-label-bkg"),s=i.append("text").attr("x",n).attr("y",r.y+25).attr("class","commit-label").text(e.id),l=s.node()?.getBBox();if(l&&(a.attr("x",r.posWithOffset-l.width/2-Hu).attr("y",r.y+13.5).attr("width",l.width+2*Hu).attr("height",l.height+2*Hu),Tr==="TB"||Tr==="BT"?(a.attr("x",r.x-(l.width+4*Oc+5)).attr("y",r.y-12),s.attr("x",r.x-(l.width+4*Oc)).attr("y",r.y+l.height-12)):s.attr("x",r.posWithOffset-l.width/2),Ko.rotateCommitLabel))if(Tr==="TB"||Tr==="BT")s.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),a.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let u=-7.5-(l.width+10)/25*9.5,h=10+l.width/25*8.5;i.attr("transform","translate("+u+", "+h+") rotate(-45, "+n+", "+r.y+")")}}},"drawCommitLabel"),bBe=o((t,e,r,n)=>{if(e.tags.length>0){let i=0,a=0,s=0,l=[];for(let u of e.tags.reverse()){let h=t.insert("polygon"),f=t.append("circle"),d=t.append("text").attr("y",r.y-16-i).attr("class","tag-label").text(u),p=d.node()?.getBBox();if(!p)throw new Error("Tag bbox not found");a=Math.max(a,p.width),s=Math.max(s,p.height),d.attr("x",r.posWithOffset-p.width/2),l.push({tag:d,hole:f,rect:h,yOffset:i}),i+=20}for(let{tag:u,hole:h,rect:f,yOffset:d}of l){let p=s/2,m=r.y-19.2-d;if(f.attr("class","tag-label-bkg").attr("points",` + ${n-a/2-Oc/2},${m+Hu} + ${n-a/2-Oc/2},${m-Hu} + ${r.posWithOffset-a/2-Oc},${m-p-Hu} + ${r.posWithOffset+a/2+Oc},${m-p-Hu} + ${r.posWithOffset+a/2+Oc},${m+p+Hu} + ${r.posWithOffset-a/2-Oc},${m+p+Hu}`),h.attr("cy",m).attr("cx",n-a/2+Oc/2).attr("r",1.5).attr("class","tag-hole"),Tr==="TB"||Tr==="BT"){let g=n+d;f.attr("class","tag-label-bkg").attr("points",` + ${r.x},${g+2} + ${r.x},${g-2} + ${r.x+ff},${g-p-2} + ${r.x+ff+a+4},${g-p-2} + ${r.x+ff+a+4},${g+p+2} + ${r.x+ff},${g+p+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),h.attr("cx",r.x+Oc/2).attr("cy",g).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),u.attr("x",r.x+5).attr("y",g+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+n+")")}}}},"drawCommitTags"),wBe=o(t=>{switch(t.customType??t.type){case Hr.NORMAL:return"commit-normal";case Hr.REVERSE:return"commit-reverse";case Hr.HIGHLIGHT:return"commit-highlight";case Hr.MERGE:return"commit-merge";case Hr.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),TBe=o((t,e,r,n)=>{let i={x:0,y:0};if(t.parents.length>0){let a=Ile(t.parents);if(a){let s=n.get(a)??i;return e==="TB"?s.y+df:e==="BT"?(n.get(t.id)??i).y-df:s.x+df}}else return e==="TB"?tE:e==="BT"?(n.get(t.id)??i).y-df:0;return 0},"calculatePosition"),kBe=o((t,e,r)=>{let n=Tr==="BT"&&r?e:e+ff,i=Tr==="TB"||Tr==="BT"?n:Is.get(t.branch)?.pos,a=Tr==="TB"||Tr==="BT"?Is.get(t.branch)?.pos:n;if(a===void 0||i===void 0)throw new Error(`Position were undefined for commit ${t.id}`);return{x:a,y:i,posWithOffset:n}},"getCommitPosition"),Nle=o((t,e,r)=>{if(!Ko)throw new Error("GitGraph config not found");let n=t.append("g").attr("class","commit-bullets"),i=t.append("g").attr("class","commit-labels"),a=Tr==="TB"||Tr==="BT"?tE:0,s=[...e.keys()],l=Ko?.parallelCommits??!1,u=o((f,d)=>{let p=e.get(f)?.seq,m=e.get(d)?.seq;return p!==void 0&&m!==void 0?p-m:0},"sortKeys"),h=s.sort(u);Tr==="BT"&&(l&&dBe(h,e,a),h=h.reverse()),h.forEach(f=>{let d=e.get(f);if(!d)throw new Error(`Commit not found for key ${f}`);l&&(a=TBe(d,Tr,a,Os));let p=kBe(d,a,l);if(r){let m=wBe(d),g=d.customType??d.type,y=Is.get(d.branch)?.index??0;vBe(n,d,p,m,y,g),xBe(i,d,p,a),bBe(i,d,p,a)}Tr==="TB"||Tr==="BT"?Os.set(d.id,{x:p.x,y:p.posWithOffset}):Os.set(d.id,{x:p.posWithOffset,y:p.y}),a=Tr==="BT"&&l?a+df:a+df+ff,a>hf&&(hf=a)})},"drawCommits"),EBe=o((t,e,r,n,i)=>{let s=(Tr==="TB"||Tr==="BT"?r.xh.branch===s,"isOnBranchToGetCurve"),u=o(h=>h.seq>t.seq&&h.sequ(h)&&l(h))},"shouldRerouteArrow"),lx=o((t,e,r=0)=>{let n=t+Math.abs(t-e)/2;if(r>5)return n;if(rE.every(s=>Math.abs(s-n)>=10))return rE.push(n),n;let a=Math.abs(t-e);return lx(t,e-a/5,r+1)},"findLane"),CBe=o((t,e,r,n)=>{let i=Os.get(e.id),a=Os.get(r.id);if(i===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let s=EBe(e,r,i,a,n),l="",u="",h=0,f=0,d=Is.get(r.branch)?.index;r.type===Hr.MERGE&&e.id!==r.parents[0]&&(d=Is.get(e.branch)?.index);let p;if(s){l="A 10 10, 0, 0, 0,",u="A 10 10, 0, 0, 1,",h=10,f=10;let m=i.ya.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===Hr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${u} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${l} ${a.x} ${i.y+f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):Tr==="BT"?(i.xa.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===Hr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${l} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):(i.ya.y&&(r.type===Hr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${u} ${i.x+f} ${a.y} L ${a.x} ${a.y}`),i.y===a.y&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`));if(p===void 0)throw new Error("Line definition not found");t.append("path").attr("d",p).attr("class","arrow arrow"+d%E0)},"drawArrow"),SBe=o((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(n=>{let i=e.get(n);i.parents&&i.parents.length>0&&i.parents.forEach(a=>{CBe(r,e.get(a),i,e)})})},"drawArrows"),ABe=o((t,e)=>{let r=t.append("g");e.forEach((n,i)=>{let a=i%E0,s=Is.get(n.name)?.pos;if(s===void 0)throw new Error(`Position not found for branch ${n.name}`);let l=r.append("line");l.attr("x1",0),l.attr("y1",s),l.attr("x2",hf),l.attr("y2",s),l.attr("class","branch branch"+a),Tr==="TB"?(l.attr("y1",tE),l.attr("x1",s),l.attr("y2",hf),l.attr("x2",s)):Tr==="BT"&&(l.attr("y1",hf),l.attr("x1",s),l.attr("y2",tE),l.attr("x2",s)),rE.push(s);let u=n.name,h=Mle(u),f=r.insert("rect"),p=r.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);p.node().appendChild(h);let m=h.getBBox();f.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-m.width-4-(Ko?.rotateCommitLabel===!0?30:0)).attr("y",-m.height/2+8).attr("width",m.width+18).attr("height",m.height+4),p.attr("transform","translate("+(-m.width-14-(Ko?.rotateCommitLabel===!0?30:0))+", "+(s-m.height/2-1)+")"),Tr==="TB"?(f.attr("x",s-m.width/2-10).attr("y",0),p.attr("transform","translate("+(s-m.width/2-5)+", 0)")):Tr==="BT"?(f.attr("x",s-m.width/2-10).attr("y",hf),p.attr("transform","translate("+(s-m.width/2-5)+", "+hf+")")):f.attr("transform","translate(-19, "+(s-m.height/2)+")")})},"drawBranches"),_Be=o(function(t,e,r,n,i){return Is.set(t,{pos:e,index:r}),e+=50+(i?40:0)+(Tr==="TB"||Tr==="BT"?n.width/2:0),e},"setBranchPosition"),LBe=o(function(t,e,r,n){if(hBe(),V.debug("in gitgraph renderer",t+` +`,"id:",e,r),!Ko)throw new Error("GitGraph config not found");let i=Ko.rotateCommitLabel??!1,a=n.db;ox=a.getCommits();let s=a.getBranchesAsObjArray();Tr=a.getDirection();let l=$e(`[id="${e}"]`),u=0;s.forEach((h,f)=>{let d=Mle(h.name),p=l.append("g"),m=p.insert("g").attr("class","branchLabel"),g=m.insert("g").attr("class","label branch-label");g.node()?.appendChild(d);let y=d.getBBox();u=_Be(h.name,u,f,y,i),g.remove(),m.remove(),p.remove()}),Nle(l,ox,!1),Ko.showBranches&&ABe(l,s),SBe(l,ox),Nle(l,ox,!0),Lt.insertTitle(l,"gitTitleText",Ko.titleTopMargin??0,a.getDiagramTitle()),aS(void 0,l,Ko.diagramPadding,Ko.useMaxWidth)},"draw"),Ole={draw:LBe}});var DBe,Ble,Fle=R(()=>{"use strict";DBe=o(t=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(e=>` + .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } + .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } + .label${e} { fill: ${t["git"+e]}; } + .arrow${e} { stroke: ${t["git"+e]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${t.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + .commit-reverse { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),Ble=DBe});var zle={};hr(zle,{diagram:()=>RBe});var RBe,Gle=R(()=>{"use strict";Rle();EI();Ple();Fle();RBe={parser:Dle,db:eE,renderer:Ole,styles:Ble}});var CI,Ule,Hle=R(()=>{"use strict";CI=function(){var t=o(function(I,C,O,D){for(O=O||{},D=I.length;D--;O[I[D]]=C);return O},"o"),e=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],r=[1,26],n=[1,27],i=[1,28],a=[1,29],s=[1,30],l=[1,31],u=[1,32],h=[1,33],f=[1,34],d=[1,9],p=[1,10],m=[1,11],g=[1,12],y=[1,13],v=[1,14],x=[1,15],b=[1,16],w=[1,19],S=[1,20],T=[1,21],E=[1,22],_=[1,23],A=[1,25],L=[1,35],M={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:o(function(C,O,D,P,F,B,$){var z=B.length-1;switch(F){case 1:return B[z-1];case 2:this.$=[];break;case 3:B[z-1].push(B[z]),this.$=B[z-1];break;case 4:case 5:this.$=B[z];break;case 6:case 7:this.$=[];break;case 8:P.setWeekday("monday");break;case 9:P.setWeekday("tuesday");break;case 10:P.setWeekday("wednesday");break;case 11:P.setWeekday("thursday");break;case 12:P.setWeekday("friday");break;case 13:P.setWeekday("saturday");break;case 14:P.setWeekday("sunday");break;case 15:P.setWeekend("friday");break;case 16:P.setWeekend("saturday");break;case 17:P.setDateFormat(B[z].substr(11)),this.$=B[z].substr(11);break;case 18:P.enableInclusiveEndDates(),this.$=B[z].substr(18);break;case 19:P.TopAxis(),this.$=B[z].substr(8);break;case 20:P.setAxisFormat(B[z].substr(11)),this.$=B[z].substr(11);break;case 21:P.setTickInterval(B[z].substr(13)),this.$=B[z].substr(13);break;case 22:P.setExcludes(B[z].substr(9)),this.$=B[z].substr(9);break;case 23:P.setIncludes(B[z].substr(9)),this.$=B[z].substr(9);break;case 24:P.setTodayMarker(B[z].substr(12)),this.$=B[z].substr(12);break;case 27:P.setDiagramTitle(B[z].substr(6)),this.$=B[z].substr(6);break;case 28:this.$=B[z].trim(),P.setAccTitle(this.$);break;case 29:case 30:this.$=B[z].trim(),P.setAccDescription(this.$);break;case 31:P.addSection(B[z].substr(8)),this.$=B[z].substr(8);break;case 33:P.addTask(B[z-1],B[z]),this.$="task";break;case 34:this.$=B[z-1],P.setClickEvent(B[z-1],B[z],null);break;case 35:this.$=B[z-2],P.setClickEvent(B[z-2],B[z-1],B[z]);break;case 36:this.$=B[z-2],P.setClickEvent(B[z-2],B[z-1],null),P.setLink(B[z-2],B[z]);break;case 37:this.$=B[z-3],P.setClickEvent(B[z-3],B[z-2],B[z-1]),P.setLink(B[z-3],B[z]);break;case 38:this.$=B[z-2],P.setClickEvent(B[z-2],B[z],null),P.setLink(B[z-2],B[z-1]);break;case 39:this.$=B[z-3],P.setClickEvent(B[z-3],B[z-1],B[z]),P.setLink(B[z-3],B[z-2]);break;case 40:this.$=B[z-1],P.setLink(B[z-1],B[z]);break;case 41:case 47:this.$=B[z-1]+" "+B[z];break;case 42:case 43:case 45:this.$=B[z-2]+" "+B[z-1]+" "+B[z];break;case 44:case 46:this.$=B[z-3]+" "+B[z-2]+" "+B[z-1]+" "+B[z];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:S,33:T,35:E,36:_,37:24,38:A,40:L},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:S,33:T,35:E,36:_,37:24,38:A,40:L},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:o(function(C,O){if(O.recoverable)this.trace(C);else{var D=new Error(C);throw D.hash=O,D}},"parseError"),parse:o(function(C){var O=this,D=[0],P=[],F=[null],B=[],$=this.table,z="",Y=0,Q=0,X=0,ie=2,j=1,J=B.slice.call(arguments,1),Z=Object.create(this.lexer),H={yy:{}};for(var q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,q)&&(H.yy[q]=this.yy[q]);Z.setInput(C,H.yy),H.yy.lexer=Z,H.yy.parser=this,typeof Z.yylloc>"u"&&(Z.yylloc={});var K=Z.yylloc;B.push(K);var se=Z.options&&Z.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ce(ge){D.length=D.length-2*ge,F.length=F.length-ge,B.length=B.length-ge}o(ce,"popStack");function ue(){var ge;return ge=P.pop()||Z.lex()||j,typeof ge!="number"&&(ge instanceof Array&&(P=ge,ge=P.pop()),ge=O.symbols_[ge]||ge),ge}o(ue,"lex");for(var te,De,oe,ke,Ie,Se,Ue={},Pe,_e,me,W;;){if(oe=D[D.length-1],this.defaultActions[oe]?ke=this.defaultActions[oe]:((te===null||typeof te>"u")&&(te=ue()),ke=$[oe]&&$[oe][te]),typeof ke>"u"||!ke.length||!ke[0]){var fe="";W=[];for(Pe in $[oe])this.terminals_[Pe]&&Pe>ie&&W.push("'"+this.terminals_[Pe]+"'");Z.showPosition?fe="Parse error on line "+(Y+1)+`: +`+Z.showPosition()+` +Expecting `+W.join(", ")+", got '"+(this.terminals_[te]||te)+"'":fe="Parse error on line "+(Y+1)+": Unexpected "+(te==j?"end of input":"'"+(this.terminals_[te]||te)+"'"),this.parseError(fe,{text:Z.match,token:this.terminals_[te]||te,line:Z.yylineno,loc:K,expected:W})}if(ke[0]instanceof Array&&ke.length>1)throw new Error("Parse Error: multiple actions possible at state: "+oe+", token: "+te);switch(ke[0]){case 1:D.push(te),F.push(Z.yytext),B.push(Z.yylloc),D.push(ke[1]),te=null,De?(te=De,De=null):(Q=Z.yyleng,z=Z.yytext,Y=Z.yylineno,K=Z.yylloc,X>0&&X--);break;case 2:if(_e=this.productions_[ke[1]][1],Ue.$=F[F.length-_e],Ue._$={first_line:B[B.length-(_e||1)].first_line,last_line:B[B.length-1].last_line,first_column:B[B.length-(_e||1)].first_column,last_column:B[B.length-1].last_column},se&&(Ue._$.range=[B[B.length-(_e||1)].range[0],B[B.length-1].range[1]]),Se=this.performAction.apply(Ue,[z,Q,Y,H.yy,ke[1],F,B].concat(J)),typeof Se<"u")return Se;_e&&(D=D.slice(0,-1*_e*2),F=F.slice(0,-1*_e),B=B.slice(0,-1*_e)),D.push(this.productions_[ke[1]][0]),F.push(Ue.$),B.push(Ue._$),me=$[D[D.length-2]][D[D.length-1]],D.push(me);break;case 3:return!0}}return!0},"parse")},N=function(){var I={EOF:1,parseError:o(function(O,D){if(this.yy.parser)this.yy.parser.parseError(O,D);else throw new Error(O)},"parseError"),setInput:o(function(C,O){return this.yy=O||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var O=C.match(/(?:\r\n?|\n).*/g);return O?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},"input"),unput:o(function(C){var O=C.length,D=C.split(/(?:\r\n?|\n)/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-O),this.offset-=O;var P=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),D.length-1&&(this.yylineno-=D.length-1);var F=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:D?(D.length===P.length?this.yylloc.first_column:0)+P[P.length-D.length].length-D[0].length:this.yylloc.first_column-O},this.options.ranges&&(this.yylloc.range=[F[0],F[0]+this.yyleng-O]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(C){this.unput(this.match.slice(C))},"less"),pastInput:o(function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var C=this.pastInput(),O=new Array(C.length+1).join("-");return C+this.upcomingInput()+` +`+O+"^"},"showPosition"),test_match:o(function(C,O){var D,P,F;if(this.options.backtrack_lexer&&(F={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(F.yylloc.range=this.yylloc.range.slice(0))),P=C[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],D=this.performAction.call(this,this.yy,this,O,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),D)return D;if(this._backtrack){for(var B in F)this[B]=F[B];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,O,D,P;this._more||(this.yytext="",this.match="");for(var F=this._currentRules(),B=0;BO[0].length)){if(O=D,P=B,this.options.backtrack_lexer){if(C=this.test_match(D,F[B]),C!==!1)return C;if(this._backtrack){O=!1;continue}else return!1}else if(!this.options.flex)break}return O?(C=this.test_match(O,F[P]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var O=this.next();return O||this.lex()},"lex"),begin:o(function(O){this.conditionStack.push(O)},"begin"),popState:o(function(){var O=this.conditionStack.length-1;return O>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(O){return O=this.conditionStack.length-1-Math.abs(O||0),O>=0?this.conditionStack[O]:"INITIAL"},"topState"),pushState:o(function(O){this.begin(O)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(O,D,P,F){var B=F;switch(P){case 0:return this.begin("open_directive"),"open_directive";break;case 1:return this.begin("acc_title"),31;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),33;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 43;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 21:this.popState();break;case 22:return 42;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}};return I}();M.lexer=N;function k(){this.yy={}}return o(k,"Parser"),k.prototype=M,M.Parser=k,new k}();CI.parser=CI;Ule=CI});var Yle=gi((SI,AI)=>{"use strict";(function(t,e){typeof SI=="object"&&typeof AI<"u"?AI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_isoWeek=e()})(SI,function(){"use strict";var t="day";return function(e,r,n){var i=o(function(l){return l.add(4-l.isoWeekday(),t)},"a"),a=r.prototype;a.isoWeekYear=function(){return i(this).year()},a.isoWeek=function(l){if(!this.$utils().u(l))return this.add(7*(l-this.isoWeek()),t);var u,h,f,d,p=i(this),m=(u=this.isoWeekYear(),h=this.$u,f=(h?n.utc:n)().year(u).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,t));return p.diff(m,"week")+1},a.isoWeekday=function(l){return this.$utils().u(l)?this.day()||7:this.day(this.day()%7?l:l-7)};var s=a.startOf;a.startOf=function(l,u){var h=this.$utils(),f=!!h.u(u)||u;return h.p(l)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(l,u)}}})});var Wle=gi((_I,LI)=>{"use strict";(function(t,e){typeof _I=="object"&&typeof LI<"u"?LI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_customParseFormat=e()})(_I,function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,s={},l=o(function(g){return(g=+g)+(g>68?1900:2e3)},"a"),u=o(function(g){return function(y){this[g]=+y}},"f"),h=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(y){if(!y||y==="Z")return 0;var v=y.match(/([+-]|\d\d)/g),x=60*v[1]+(+v[2]||0);return x===0?0:v[0]==="+"?-x:x}(g)}],f=o(function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},"u"),d=o(function(g,y){var v,x=s.meridiem;if(x){for(var b=1;b<=24;b+=1)if(g.indexOf(x(b,0,y))>-1){v=b>12;break}}else v=g===(y?"pm":"PM");return v},"d"),p={A:[a,function(g){this.afternoon=d(g,!1)}],a:[a,function(g){this.afternoon=d(g,!0)}],Q:[r,function(g){this.month=3*(g-1)+1}],S:[r,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[n,u("day")],Do:[a,function(g){var y=s.ordinal,v=g.match(/\d+/);if(this.day=v[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[i,u("week")],ww:[n,u("week")],M:[i,u("month")],MM:[n,u("month")],MMM:[a,function(g){var y=f("months"),v=(f("monthsShort")||y.map(function(x){return x.slice(0,3)})).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var y=f("months").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,u("year")],YY:[n,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function m(g){var y,v;y=g,v=s&&s.formats;for(var x=(g=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(A,L,M){var N=M&&M.toUpperCase();return L||v[M]||t[M]||v[N].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(k,I,C){return I||C.slice(1)})})).match(e),b=x.length,w=0;w-1)return new Date((D==="X"?1e3:1)*O);var B=m(D)(O),$=B.year,z=B.month,Y=B.day,Q=B.hours,X=B.minutes,ie=B.seconds,j=B.milliseconds,J=B.zone,Z=B.week,H=new Date,q=Y||($||z?1:H.getDate()),K=$||H.getFullYear(),se=0;$&&!z||(se=z>0?z-1:H.getMonth());var ce,ue=Q||0,te=X||0,De=ie||0,oe=j||0;return J?new Date(Date.UTC(K,se,q,ue,te,De,oe+60*J.offset*1e3)):P?new Date(Date.UTC(K,se,q,ue,te,De,oe)):(ce=new Date(K,se,q,ue,te,De,oe),Z&&(ce=F(ce).week(Z).toDate()),ce)}catch{return new Date("")}}(S,_,T,v),this.init(),N&&N!==!0&&(this.$L=this.locale(N).$L),M&&S!=this.format(_)&&(this.$d=new Date("")),s={}}else if(_ instanceof Array)for(var k=_.length,I=1;I<=k;I+=1){E[1]=_[I-1];var C=v.apply(this,E);if(C.isValid()){this.$d=C.$d,this.$L=C.$L,this.init();break}I===k&&(this.$d=new Date(""))}else b.call(this,w)}}})});var qle=gi((DI,RI)=>{"use strict";(function(t,e){typeof DI=="object"&&typeof RI<"u"?RI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=e()})(DI,function(){"use strict";return function(t,e){var r=e.prototype,n=r.format;r.format=function(i){var a=this,s=this.$locale();if(!this.isValid())return n.bind(this)(i);var l=this.$utils(),u=(i||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(h){switch(h){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return l.s(a.week(),h==="w"?1:2,"0");case"W":case"WW":return l.s(a.isoWeek(),h==="W"?1:2,"0");case"k":case"kk":return l.s(String(a.$H===0?24:a.$H),h==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return h}});return n.bind(this)(u)}}})});function cce(t,e,r){let n=!0;for(;n;)n=!1,r.forEach(function(i){let a="^\\s*"+i+"\\s*$",s=new RegExp(a);t[0].match(s)&&(e[i]=!0,t.shift(1),n=!0)})}var Kle,yo,Qle,Zle,Jle,Xle,Pc,OI,PI,BI,cx,ux,FI,zI,aE,Rg,GI,ece,$I,hx,VI,UI,sE,NI,OBe,PBe,BBe,FBe,zBe,GBe,$Be,VBe,UBe,HBe,YBe,WBe,qBe,XBe,jBe,KBe,QBe,ZBe,JBe,eFe,tFe,rFe,nFe,tce,iFe,aFe,sFe,rce,oFe,MI,nce,ice,nE,Dg,lFe,cFe,II,iE,zi,ace,uFe,C0,hFe,jle,fFe,sce,dFe,oce,pFe,mFe,lce,uce=R(()=>{"use strict";Kle=Xi(Up(),1),yo=Xi(Nb(),1),Qle=Xi(Yle(),1),Zle=Xi(Wle(),1),Jle=Xi(qle(),1);ut();_t();xr();bi();yo.default.extend(Qle.default);yo.default.extend(Zle.default);yo.default.extend(Jle.default);Xle={friday:5,saturday:6},Pc="",OI="",BI="",cx=[],ux=[],FI=new Map,zI=[],aE=[],Rg="",GI="",ece=["active","done","crit","milestone"],$I=[],hx=!1,VI=!1,UI="sunday",sE="saturday",NI=0,OBe=o(function(){zI=[],aE=[],Rg="",$I=[],nE=0,II=void 0,iE=void 0,zi=[],Pc="",OI="",GI="",PI=void 0,BI="",cx=[],ux=[],hx=!1,VI=!1,NI=0,FI=new Map,vr(),UI="sunday",sE="saturday"},"clear"),PBe=o(function(t){OI=t},"setAxisFormat"),BBe=o(function(){return OI},"getAxisFormat"),FBe=o(function(t){PI=t},"setTickInterval"),zBe=o(function(){return PI},"getTickInterval"),GBe=o(function(t){BI=t},"setTodayMarker"),$Be=o(function(){return BI},"getTodayMarker"),VBe=o(function(t){Pc=t},"setDateFormat"),UBe=o(function(){hx=!0},"enableInclusiveEndDates"),HBe=o(function(){return hx},"endDatesAreInclusive"),YBe=o(function(){VI=!0},"enableTopAxis"),WBe=o(function(){return VI},"topAxisEnabled"),qBe=o(function(t){GI=t},"setDisplayMode"),XBe=o(function(){return GI},"getDisplayMode"),jBe=o(function(){return Pc},"getDateFormat"),KBe=o(function(t){cx=t.toLowerCase().split(/[\s,]+/)},"setIncludes"),QBe=o(function(){return cx},"getIncludes"),ZBe=o(function(t){ux=t.toLowerCase().split(/[\s,]+/)},"setExcludes"),JBe=o(function(){return ux},"getExcludes"),eFe=o(function(){return FI},"getLinks"),tFe=o(function(t){Rg=t,zI.push(t)},"addSection"),rFe=o(function(){return zI},"getSections"),nFe=o(function(){let t=jle(),e=10,r=0;for(;!t&&r[\d\w- ]+)/.exec(r);if(i!==null){let s=null;for(let u of i.groups.ids.split(" ")){let h=C0(u);h!==void 0&&(!s||h.endTime>s.endTime)&&(s=h)}if(s)return s.endTime;let l=new Date;return l.setHours(0,0,0,0),l}let a=(0,yo.default)(r,e.trim(),!0);if(a.isValid())return a.toDate();{V.debug("Invalid date:"+r),V.debug("With date format:"+e.trim());let s=new Date(r);if(s===void 0||isNaN(s.getTime())||s.getFullYear()<-1e4||s.getFullYear()>1e4)throw new Error("Invalid date:"+r);return s}},"getStartDate"),nce=o(function(t){let e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),ice=o(function(t,e,r,n=!1){r=r.trim();let a=/^until\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let f=null;for(let p of a.groups.ids.split(" ")){let m=C0(p);m!==void 0&&(!f||m.startTime{window.open(r,"_self")}),FI.set(n,r))}),sce(t,"clickable")},"setLink"),sce=o(function(t,e){t.split(",").forEach(function(r){let n=C0(r);n!==void 0&&n.classes.push(e)})},"setClass"),dFe=o(function(t,e,r){if(de().securityLevel!=="loose"||e===void 0)return;let n=[];if(typeof r=="string"){n=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a{Lt.runFunc(e,...n)})},"setClickFun"),oce=o(function(t,e){$I.push(function(){let r=document.querySelector(`[id="${t}"]`);r!==null&&r.addEventListener("click",function(){e()})},function(){let r=document.querySelector(`[id="${t}-text"]`);r!==null&&r.addEventListener("click",function(){e()})})},"pushFun"),pFe=o(function(t,e,r){t.split(",").forEach(function(n){dFe(n,e,r)}),sce(t,"clickable")},"setClickEvent"),mFe=o(function(t){$I.forEach(function(e){e(t)})},"bindFunctions"),lce={getConfig:o(()=>de().gantt,"getConfig"),clear:OBe,setDateFormat:VBe,getDateFormat:jBe,enableInclusiveEndDates:UBe,endDatesAreInclusive:HBe,enableTopAxis:YBe,topAxisEnabled:WBe,setAxisFormat:PBe,getAxisFormat:BBe,setTickInterval:FBe,getTickInterval:zBe,setTodayMarker:GBe,getTodayMarker:$Be,setAccTitle:kr,getAccTitle:Ar,setDiagramTitle:nn,getDiagramTitle:Xr,setDisplayMode:qBe,getDisplayMode:XBe,setAccDescription:_r,getAccDescription:Lr,addSection:tFe,getSections:rFe,getTasks:nFe,addTask:uFe,findTaskById:C0,addTaskOrg:hFe,setIncludes:KBe,getIncludes:QBe,setExcludes:ZBe,getExcludes:JBe,setClickEvent:pFe,setLink:fFe,getLinks:eFe,bindFunctions:mFe,parseDuration:nce,isInvalidDate:tce,setWeekday:iFe,getWeekday:aFe,setWeekend:sFe};o(cce,"getTaskTags")});var oE,gFe,hce,yFe,Yu,vFe,fce,dce=R(()=>{"use strict";oE=Xi(Nb(),1);ut();Zt();rr();_t();Yn();gFe=o(function(){V.debug("Something is calling, setConf, remove the call")},"setConf"),hce={monday:_h,tuesday:k3,wednesday:E3,thursday:cc,friday:C3,saturday:S3,sunday:yl},yFe=o((t,e)=>{let r=[...t].map(()=>-1/0),n=[...t].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),i=0;for(let a of n)for(let s=0;s=r[s]){r[s]=a.endTime,a.order=s+e,s>i&&(i=s);break}return i},"getMaxIntersections"),vFe=o(function(t,e,r,n){let i=de().gantt,a=de().securityLevel,s;a==="sandbox"&&(s=$e("#i"+e));let l=a==="sandbox"?$e(s.nodes()[0].contentDocument.body):$e("body"),u=a==="sandbox"?s.nodes()[0].contentDocument:document,h=u.getElementById(e);Yu=h.parentElement.offsetWidth,Yu===void 0&&(Yu=1200),i.useWidth!==void 0&&(Yu=i.useWidth);let f=n.db.getTasks(),d=[];for(let A of f)d.push(A.type);d=_(d);let p={},m=2*i.topPadding;if(n.db.getDisplayMode()==="compact"||i.displayMode==="compact"){let A={};for(let M of f)A[M.section]===void 0?A[M.section]=[M]:A[M.section].push(M);let L=0;for(let M of Object.keys(A)){let N=yFe(A[M],L)+1;L+=N,m+=N*(i.barHeight+i.barGap),p[M]=N}}else{m+=f.length*(i.barHeight+i.barGap);for(let A of d)p[A]=f.filter(L=>L.type===A).length}h.setAttribute("viewBox","0 0 "+Yu+" "+m);let g=l.select(`[id="${e}"]`),y=L3().domain([I4(f,function(A){return A.startTime}),M4(f,function(A){return A.endTime})]).rangeRound([0,Yu-i.leftPadding-i.rightPadding]);function v(A,L){let M=A.startTime,N=L.startTime,k=0;return M>N?k=1:M$.order))].map($=>A.find(z=>z.order===$));g.append("g").selectAll("rect").data(D).enter().append("rect").attr("x",0).attr("y",function($,z){return z=$.order,z*L+M-2}).attr("width",function(){return C-i.rightPadding/2}).attr("height",L).attr("class",function($){for(let[z,Y]of d.entries())if($.type===Y)return"section section"+z%i.numberSectionStyles;return"section section0"});let P=g.append("g").selectAll("rect").data(A).enter(),F=n.db.getLinks();if(P.append("rect").attr("id",function($){return $.id}).attr("rx",3).attr("ry",3).attr("x",function($){return $.milestone?y($.startTime)+N+.5*(y($.endTime)-y($.startTime))-.5*k:y($.startTime)+N}).attr("y",function($,z){return z=$.order,z*L+M}).attr("width",function($){return $.milestone?k:y($.renderEndTime||$.endTime)-y($.startTime)}).attr("height",k).attr("transform-origin",function($,z){return z=$.order,(y($.startTime)+N+.5*(y($.endTime)-y($.startTime))).toString()+"px "+(z*L+M+.5*k).toString()+"px"}).attr("class",function($){let z="task",Y="";$.classes.length>0&&(Y=$.classes.join(" "));let Q=0;for(let[ie,j]of d.entries())$.type===j&&(Q=ie%i.numberSectionStyles);let X="";return $.active?$.crit?X+=" activeCrit":X=" active":$.done?$.crit?X=" doneCrit":X=" done":$.crit&&(X+=" crit"),X.length===0&&(X=" task"),$.milestone&&(X=" milestone "+X),X+=Q,X+=" "+Y,z+X}),P.append("text").attr("id",function($){return $.id+"-text"}).text(function($){return $.task}).attr("font-size",i.fontSize).attr("x",function($){let z=y($.startTime),Y=y($.renderEndTime||$.endTime);$.milestone&&(z+=.5*(y($.endTime)-y($.startTime))-.5*k),$.milestone&&(Y=z+k);let Q=this.getBBox().width;return Q>Y-z?Y+Q+1.5*i.leftPadding>C?z+N-5:Y+N+5:(Y-z)/2+z+N}).attr("y",function($,z){return z=$.order,z*L+i.barHeight/2+(i.fontSize/2-2)+M}).attr("text-height",k).attr("class",function($){let z=y($.startTime),Y=y($.endTime);$.milestone&&(Y=z+k);let Q=this.getBBox().width,X="";$.classes.length>0&&(X=$.classes.join(" "));let ie=0;for(let[J,Z]of d.entries())$.type===Z&&(ie=J%i.numberSectionStyles);let j="";return $.active&&($.crit?j="activeCritText"+ie:j="activeText"+ie),$.done?$.crit?j=j+" doneCritText"+ie:j=j+" doneText"+ie:$.crit&&(j=j+" critText"+ie),$.milestone&&(j+=" milestoneText"),Q>Y-z?Y+Q+1.5*i.leftPadding>C?X+" taskTextOutsideLeft taskTextOutside"+ie+" "+j:X+" taskTextOutsideRight taskTextOutside"+ie+" "+j+" width-"+Q:X+" taskText taskText"+ie+" "+j+" width-"+Q}),de().securityLevel==="sandbox"){let $;$=$e("#i"+e);let z=$.nodes()[0].contentDocument;P.filter(function(Y){return F.has(Y.id)}).each(function(Y){var Q=z.querySelector("#"+Y.id),X=z.querySelector("#"+Y.id+"-text");let ie=Q.parentNode;var j=z.createElement("a");j.setAttribute("xlink:href",F.get(Y.id)),j.setAttribute("target","_top"),ie.appendChild(j),j.appendChild(Q),j.appendChild(X)})}}o(b,"drawRects");function w(A,L,M,N,k,I,C,O){if(C.length===0&&O.length===0)return;let D,P;for(let{startTime:Q,endTime:X}of I)(D===void 0||QP)&&(P=X);if(!D||!P)return;if((0,oE.default)(P).diff((0,oE.default)(D),"year")>5){V.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}let F=n.db.getDateFormat(),B=[],$=null,z=(0,oE.default)(D);for(;z.valueOf()<=P;)n.db.isInvalidDate(z,F,C,O)?$?$.end=z:$={start:z,end:z}:$&&(B.push($),$=null),z=z.add(1,"d");g.append("g").selectAll("rect").data(B).enter().append("rect").attr("id",function(Q){return"exclude-"+Q.start.format("YYYY-MM-DD")}).attr("x",function(Q){return y(Q.start)+M}).attr("y",i.gridLineStartPadding).attr("width",function(Q){let X=Q.end.add(1,"day");return y(X)-y(Q.start)}).attr("height",k-L-i.gridLineStartPadding).attr("transform-origin",function(Q,X){return(y(Q.start)+M+.5*(y(Q.end)-y(Q.start))).toString()+"px "+(X*A+.5*k).toString()+"px"}).attr("class","exclude-range")}o(w,"drawExcludeDays");function S(A,L,M,N){let k=vS(y).tickSize(-N+L+i.gridLineStartPadding).tickFormat(md(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d")),C=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(n.db.getTickInterval()||i.tickInterval);if(C!==null){let O=C[1],D=C[2],P=n.db.getWeekday()||i.weekday;switch(D){case"millisecond":k.ticks(oc.every(O));break;case"second":k.ticks(Ks.every(O));break;case"minute":k.ticks(gu.every(O));break;case"hour":k.ticks(yu.every(O));break;case"day":k.ticks(Do.every(O));break;case"week":k.ticks(hce[P].every(O));break;case"month":k.ticks(vu.every(O));break}}if(g.append("g").attr("class","grid").attr("transform","translate("+A+", "+(N-50)+")").call(k).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),n.db.topAxisEnabled()||i.topAxis){let O=yS(y).tickSize(-N+L+i.gridLineStartPadding).tickFormat(md(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));if(C!==null){let D=C[1],P=C[2],F=n.db.getWeekday()||i.weekday;switch(P){case"millisecond":O.ticks(oc.every(D));break;case"second":O.ticks(Ks.every(D));break;case"minute":O.ticks(gu.every(D));break;case"hour":O.ticks(yu.every(D));break;case"day":O.ticks(Do.every(D));break;case"week":O.ticks(hce[F].every(D));break;case"month":O.ticks(vu.every(D));break}}g.append("g").attr("class","grid").attr("transform","translate("+A+", "+L+")").call(O).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}o(S,"makeGrid");function T(A,L){let M=0,N=Object.keys(p).map(k=>[k,p[k]]);g.append("g").selectAll("text").data(N).enter().append(function(k){let I=k[0].split(We.lineBreakRegex),C=-(I.length-1)/2,O=u.createElementNS("http://www.w3.org/2000/svg","text");O.setAttribute("dy",C+"em");for(let[D,P]of I.entries()){let F=u.createElementNS("http://www.w3.org/2000/svg","tspan");F.setAttribute("alignment-baseline","central"),F.setAttribute("x","10"),D>0&&F.setAttribute("dy","1em"),F.textContent=P,O.appendChild(F)}return O}).attr("x",10).attr("y",function(k,I){if(I>0)for(let C=0;C{"use strict";xFe=o(t=>` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`,"getStyles"),pce=xFe});var gce={};hr(gce,{diagram:()=>bFe});var bFe,yce=R(()=>{"use strict";Hle();uce();dce();mce();bFe={parser:Ule,db:lce,renderer:fce,styles:pce}});var bce,wce=R(()=>{"use strict";Lg();ut();bce={parse:o(async t=>{let e=await Fl("info",t);V.debug(e)},"parse")}});var fx,HI=R(()=>{fx="11.2.0"});var CFe,SFe,Tce,kce=R(()=>{"use strict";HI();CFe={version:fx},SFe=o(()=>CFe.version,"getVersion"),Tce={getVersion:SFe}});var Ps,pf=R(()=>{"use strict";Zt();_t();Ps=o(t=>{let{securityLevel:e}=de(),r=$e("body");if(e==="sandbox"){let a=$e(`#i${t}`).node()?.contentDocument??document;r=$e(a.body)}return r.select(`#${t}`)},"selectSvgElement")});var AFe,Ece,Cce=R(()=>{"use strict";ut();pf();Yn();AFe=o((t,e,r)=>{V.debug(`rendering info diagram +`+t);let n=Ps(e);Sr(n,100,400,!0),n.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw"),Ece={draw:AFe}});var Sce={};hr(Sce,{diagram:()=>_Fe});var _Fe,Ace=R(()=>{"use strict";wce();kce();Cce();_Fe={parser:bce,db:Tce,renderer:Ece}});var Dce,YI,lE,WI,RFe,NFe,MFe,IFe,OFe,PFe,BFe,cE,qI=R(()=>{"use strict";ut();bi();sl();Dce=mr.pie,YI={sections:new Map,showData:!1,config:Dce},lE=YI.sections,WI=YI.showData,RFe=structuredClone(Dce),NFe=o(()=>structuredClone(RFe),"getConfig"),MFe=o(()=>{lE=new Map,WI=YI.showData,vr()},"clear"),IFe=o(({label:t,value:e})=>{lE.has(t)||(lE.set(t,e),V.debug(`added new section: ${t}, with value: ${e}`))},"addSection"),OFe=o(()=>lE,"getSections"),PFe=o(t=>{WI=t},"setShowData"),BFe=o(()=>WI,"getShowData"),cE={getConfig:NFe,clear:MFe,setDiagramTitle:nn,getDiagramTitle:Xr,setAccTitle:kr,getAccTitle:Ar,setAccDescription:_r,getAccDescription:Lr,addSection:IFe,getSections:OFe,setShowData:PFe,getShowData:BFe}});var FFe,Rce,Nce=R(()=>{"use strict";Lg();ut();sx();qI();FFe=o((t,e)=>{cf(t,e),e.setShowData(t.showData),t.sections.map(e.addSection)},"populateDb"),Rce={parse:o(async t=>{let e=await Fl("pie",t);V.debug(e),FFe(e,cE)},"parse")}});var zFe,Mce,Ice=R(()=>{"use strict";zFe=o(t=>` + .pieCircle{ + stroke: ${t.pieStrokeColor}; + stroke-width : ${t.pieStrokeWidth}; + opacity : ${t.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${t.pieOuterStrokeColor}; + stroke-width: ${t.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${t.pieTitleTextSize}; + fill: ${t.pieTitleTextColor}; + font-family: ${t.fontFamily}; + } + .slice { + font-family: ${t.fontFamily}; + fill: ${t.pieSectionTextColor}; + font-size:${t.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${t.pieLegendTextColor}; + font-family: ${t.fontFamily}; + font-size: ${t.pieLegendTextSize}; + } +`,"getStyles"),Mce=zFe});var GFe,$Fe,Oce,Pce=R(()=>{"use strict";Zt();_t();ut();pf();Yn();xr();GFe=o(t=>{let e=[...t.entries()].map(n=>({label:n[0],value:n[1]})).sort((n,i)=>i.value-n.value);return O3().value(n=>n.value)(e)},"createPieArcs"),$Fe=o((t,e,r,n)=>{V.debug(`rendering pie chart +`+t);let i=n.db,a=de(),s=Ts(i.getConfig(),a.pie),l=40,u=18,h=4,f=450,d=f,p=Ps(e),m=p.append("g");m.attr("transform","translate("+d/2+","+f/2+")");let{themeVariables:g}=a,[y]=mc(g.pieOuterStrokeWidth);y??=2;let v=s.textPosition,x=Math.min(d,f)/2-l,b=bl().innerRadius(0).outerRadius(x),w=bl().innerRadius(x*v).outerRadius(x*v);m.append("circle").attr("cx",0).attr("cy",0).attr("r",x+y/2).attr("class","pieOuterCircle");let S=i.getSections(),T=GFe(S),E=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],_=pu(E);m.selectAll("mySlices").data(T).enter().append("path").attr("d",b).attr("fill",k=>_(k.data.label)).attr("class","pieCircle");let A=0;S.forEach(k=>{A+=k}),m.selectAll("mySlices").data(T).enter().append("text").text(k=>(k.data.value/A*100).toFixed(0)+"%").attr("transform",k=>"translate("+w.centroid(k)+")").style("text-anchor","middle").attr("class","slice"),m.append("text").text(i.getDiagramTitle()).attr("x",0).attr("y",-(f-50)/2).attr("class","pieTitleText");let L=m.selectAll(".legend").data(_.domain()).enter().append("g").attr("class","legend").attr("transform",(k,I)=>{let C=u+h,O=C*_.domain().length/2,D=12*u,P=I*C-O;return"translate("+D+","+P+")"});L.append("rect").attr("width",u).attr("height",u).style("fill",_).style("stroke",_),L.data(T).append("text").attr("x",u+h).attr("y",u-h).text(k=>{let{label:I,value:C}=k.data;return i.getShowData()?`${I} [${C}]`:I});let M=Math.max(...L.selectAll("text").nodes().map(k=>k?.getBoundingClientRect().width??0)),N=d+l+u+h+M;p.attr("viewBox",`0 0 ${N} ${f}`),Sr(p,f,N,s.useMaxWidth)},"draw"),Oce={draw:$Fe}});var Bce={};hr(Bce,{diagram:()=>VFe});var VFe,Fce=R(()=>{"use strict";Nce();qI();Ice();Pce();VFe={parser:Rce,db:cE,renderer:Oce,styles:Mce}});var XI,$ce,Vce=R(()=>{"use strict";XI=function(){var t=o(function(we,Te,Ce,Ae){for(Ce=Ce||{},Ae=we.length;Ae--;Ce[we[Ae]]=Te);return Ce},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[1,7],s=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],u=[55,56,57],h=[2,36],f=[1,37],d=[1,36],p=[1,38],m=[1,35],g=[1,43],y=[1,41],v=[1,14],x=[1,23],b=[1,18],w=[1,19],S=[1,20],T=[1,21],E=[1,22],_=[1,24],A=[1,25],L=[1,26],M=[1,27],N=[1,28],k=[1,29],I=[1,32],C=[1,33],O=[1,34],D=[1,39],P=[1,40],F=[1,42],B=[1,44],$=[1,62],z=[1,61],Y=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],Q=[1,65],X=[1,66],ie=[1,67],j=[1,68],J=[1,69],Z=[1,70],H=[1,71],q=[1,72],K=[1,73],se=[1,74],ce=[1,75],ue=[1,76],te=[4,5,6,7,8,9,10,11,12,13,14,15,18],De=[1,90],oe=[1,91],ke=[1,92],Ie=[1,99],Se=[1,93],Ue=[1,96],Pe=[1,94],_e=[1,95],me=[1,97],W=[1,98],fe=[1,102],ge=[10,55,56,57],re=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],he={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(Te,Ce,Ae,Ge,Me,ye,He){var ze=ye.length-1;switch(Me){case 23:this.$=ye[ze];break;case 24:this.$=ye[ze-1]+""+ye[ze];break;case 26:this.$=ye[ze-1]+ye[ze];break;case 27:this.$=[ye[ze].trim()];break;case 28:ye[ze-2].push(ye[ze].trim()),this.$=ye[ze-2];break;case 29:this.$=ye[ze-4],Ge.addClass(ye[ze-2],ye[ze]);break;case 37:this.$=[];break;case 42:this.$=ye[ze].trim(),Ge.setDiagramTitle(this.$);break;case 43:this.$=ye[ze].trim(),Ge.setAccTitle(this.$);break;case 44:case 45:this.$=ye[ze].trim(),Ge.setAccDescription(this.$);break;case 46:Ge.addSection(ye[ze].substr(8)),this.$=ye[ze].substr(8);break;case 47:Ge.addPoint(ye[ze-3],"",ye[ze-1],ye[ze],[]);break;case 48:Ge.addPoint(ye[ze-4],ye[ze-3],ye[ze-1],ye[ze],[]);break;case 49:Ge.addPoint(ye[ze-4],"",ye[ze-2],ye[ze-1],ye[ze]);break;case 50:Ge.addPoint(ye[ze-5],ye[ze-4],ye[ze-2],ye[ze-1],ye[ze]);break;case 51:Ge.setXAxisLeftText(ye[ze-2]),Ge.setXAxisRightText(ye[ze]);break;case 52:ye[ze-1].text+=" \u27F6 ",Ge.setXAxisLeftText(ye[ze-1]);break;case 53:Ge.setXAxisLeftText(ye[ze]);break;case 54:Ge.setYAxisBottomText(ye[ze-2]),Ge.setYAxisTopText(ye[ze]);break;case 55:ye[ze-1].text+=" \u27F6 ",Ge.setYAxisBottomText(ye[ze-1]);break;case 56:Ge.setYAxisBottomText(ye[ze]);break;case 57:Ge.setQuadrant1Text(ye[ze]);break;case 58:Ge.setQuadrant2Text(ye[ze]);break;case 59:Ge.setQuadrant3Text(ye[ze]);break;case 60:Ge.setQuadrant4Text(ye[ze]);break;case 64:this.$={text:ye[ze],type:"text"};break;case 65:this.$={text:ye[ze-1].text+""+ye[ze],type:ye[ze-1].type};break;case 66:this.$={text:ye[ze],type:"text"};break;case 67:this.$={text:ye[ze],type:"markdown"};break;case 68:this.$=ye[ze];break;case 69:this.$=ye[ze-1]+""+ye[ze];break}},"anonymous"),table:[{18:e,26:1,27:2,28:r,55:n,56:i,57:a},{1:[3]},{18:e,26:8,27:2,28:r,55:n,56:i,57:a},{18:e,26:9,27:2,28:r,55:n,56:i,57:a},t(s,[2,33],{29:10}),t(l,[2,61]),t(l,[2,62]),t(l,[2,63]),{1:[2,30]},{1:[2,31]},t(u,h,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:S,41:T,42:E,48:_,50:A,51:L,52:M,53:N,54:k,60:I,61:C,63:O,64:D,65:P,66:F,67:B}),t(s,[2,34]),{27:45,55:n,56:i,57:a},t(u,[2,37]),t(u,h,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:S,41:T,42:E,48:_,50:A,51:L,52:M,53:N,54:k,60:I,61:C,63:O,64:D,65:P,66:F,67:B}),t(u,[2,39]),t(u,[2,40]),t(u,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(u,[2,45]),t(u,[2,46]),{18:[1,50]},{4:f,5:d,10:p,12:m,13:g,14:y,43:51,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:52,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:53,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:54,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:55,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:56,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,44:[1,57],47:[1,58],58:60,59:59,63:O,64:D,65:P,66:F,67:B},t(Y,[2,64]),t(Y,[2,66]),t(Y,[2,67]),t(Y,[2,70]),t(Y,[2,71]),t(Y,[2,72]),t(Y,[2,73]),t(Y,[2,74]),t(Y,[2,75]),t(Y,[2,76]),t(Y,[2,77]),t(Y,[2,78]),t(Y,[2,79]),t(Y,[2,80]),t(s,[2,35]),t(u,[2,38]),t(u,[2,42]),t(u,[2,43]),t(u,[2,44]),{3:64,4:Q,5:X,6:ie,7:j,8:J,9:Z,10:H,11:q,12:K,13:se,14:ce,15:ue,21:63},t(u,[2,53],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,49:[1,77],63:O,64:D,65:P,66:F,67:B}),t(u,[2,56],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,49:[1,78],63:O,64:D,65:P,66:F,67:B}),t(u,[2,57],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),t(u,[2,58],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),t(u,[2,59],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),t(u,[2,60],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),{45:[1,79]},{44:[1,80]},t(Y,[2,65]),t(Y,[2,81]),t(Y,[2,82]),t(Y,[2,83]),{3:82,4:Q,5:X,6:ie,7:j,8:J,9:Z,10:H,11:q,12:K,13:se,14:ce,15:ue,18:[1,81]},t(te,[2,23]),t(te,[2,1]),t(te,[2,2]),t(te,[2,3]),t(te,[2,4]),t(te,[2,5]),t(te,[2,6]),t(te,[2,7]),t(te,[2,8]),t(te,[2,9]),t(te,[2,10]),t(te,[2,11]),t(te,[2,12]),t(u,[2,52],{58:31,43:83,4:f,5:d,10:p,12:m,13:g,14:y,60:I,61:C,63:O,64:D,65:P,66:F,67:B}),t(u,[2,55],{58:31,43:84,4:f,5:d,10:p,12:m,13:g,14:y,60:I,61:C,63:O,64:D,65:P,66:F,67:B}),{46:[1,85]},{45:[1,86]},{4:De,5:oe,6:ke,8:Ie,11:Se,13:Ue,16:89,17:Pe,18:_e,19:me,20:W,22:88,23:87},t(te,[2,24]),t(u,[2,51],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),t(u,[2,54],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),t(u,[2,47],{22:88,16:89,23:100,4:De,5:oe,6:ke,8:Ie,11:Se,13:Ue,17:Pe,18:_e,19:me,20:W}),{46:[1,101]},t(u,[2,29],{10:fe}),t(ge,[2,27],{16:103,4:De,5:oe,6:ke,8:Ie,11:Se,13:Ue,17:Pe,18:_e,19:me,20:W}),t(re,[2,25]),t(re,[2,13]),t(re,[2,14]),t(re,[2,15]),t(re,[2,16]),t(re,[2,17]),t(re,[2,18]),t(re,[2,19]),t(re,[2,20]),t(re,[2,21]),t(re,[2,22]),t(u,[2,49],{10:fe}),t(u,[2,48],{22:88,16:89,23:104,4:De,5:oe,6:ke,8:Ie,11:Se,13:Ue,17:Pe,18:_e,19:me,20:W}),{4:De,5:oe,6:ke,8:Ie,11:Se,13:Ue,16:89,17:Pe,18:_e,19:me,20:W,22:105},t(re,[2,26]),t(u,[2,50],{10:fe}),t(ge,[2,28],{16:103,4:De,5:oe,6:ke,8:Ie,11:Se,13:Ue,17:Pe,18:_e,19:me,20:W})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(Te,Ce){if(Ce.recoverable)this.trace(Te);else{var Ae=new Error(Te);throw Ae.hash=Ce,Ae}},"parseError"),parse:o(function(Te){var Ce=this,Ae=[0],Ge=[],Me=[null],ye=[],He=this.table,ze="",Ze=0,gt=0,yt=0,tt=2,Ye=1,Je=ye.slice.call(arguments,1),Ve=Object.create(this.lexer),je={yy:{}};for(var kt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,kt)&&(je.yy[kt]=this.yy[kt]);Ve.setInput(Te,je.yy),je.yy.lexer=Ve,je.yy.parser=this,typeof Ve.yylloc>"u"&&(Ve.yylloc={});var at=Ve.yylloc;ye.push(at);var xt=Ve.options&&Ve.options.ranges;typeof je.yy.parseError=="function"?this.parseError=je.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function it(on){Ae.length=Ae.length-2*on,Me.length=Me.length-on,ye.length=ye.length-on}o(it,"popStack");function dt(){var on;return on=Ge.pop()||Ve.lex()||Ye,typeof on!="number"&&(on instanceof Array&&(Ge=on,on=Ge.pop()),on=Ce.symbols_[on]||on),on}o(dt,"lex");for(var lt,It,mt,St,gr,xn,jt={},rn,Er,Kn,hn;;){if(mt=Ae[Ae.length-1],this.defaultActions[mt]?St=this.defaultActions[mt]:((lt===null||typeof lt>"u")&&(lt=dt()),St=He[mt]&&He[mt][lt]),typeof St>"u"||!St.length||!St[0]){var Qn="";hn=[];for(rn in He[mt])this.terminals_[rn]&&rn>tt&&hn.push("'"+this.terminals_[rn]+"'");Ve.showPosition?Qn="Parse error on line "+(Ze+1)+`: +`+Ve.showPosition()+` +Expecting `+hn.join(", ")+", got '"+(this.terminals_[lt]||lt)+"'":Qn="Parse error on line "+(Ze+1)+": Unexpected "+(lt==Ye?"end of input":"'"+(this.terminals_[lt]||lt)+"'"),this.parseError(Qn,{text:Ve.match,token:this.terminals_[lt]||lt,line:Ve.yylineno,loc:at,expected:hn})}if(St[0]instanceof Array&&St.length>1)throw new Error("Parse Error: multiple actions possible at state: "+mt+", token: "+lt);switch(St[0]){case 1:Ae.push(lt),Me.push(Ve.yytext),ye.push(Ve.yylloc),Ae.push(St[1]),lt=null,It?(lt=It,It=null):(gt=Ve.yyleng,ze=Ve.yytext,Ze=Ve.yylineno,at=Ve.yylloc,yt>0&&yt--);break;case 2:if(Er=this.productions_[St[1]][1],jt.$=Me[Me.length-Er],jt._$={first_line:ye[ye.length-(Er||1)].first_line,last_line:ye[ye.length-1].last_line,first_column:ye[ye.length-(Er||1)].first_column,last_column:ye[ye.length-1].last_column},xt&&(jt._$.range=[ye[ye.length-(Er||1)].range[0],ye[ye.length-1].range[1]]),xn=this.performAction.apply(jt,[ze,gt,Ze,je.yy,St[1],Me,ye].concat(Je)),typeof xn<"u")return xn;Er&&(Ae=Ae.slice(0,-1*Er*2),Me=Me.slice(0,-1*Er),ye=ye.slice(0,-1*Er)),Ae.push(this.productions_[St[1]][0]),Me.push(jt.$),ye.push(jt._$),Kn=He[Ae[Ae.length-2]][Ae[Ae.length-1]],Ae.push(Kn);break;case 3:return!0}}return!0},"parse")},ne=function(){var we={EOF:1,parseError:o(function(Ce,Ae){if(this.yy.parser)this.yy.parser.parseError(Ce,Ae);else throw new Error(Ce)},"parseError"),setInput:o(function(Te,Ce){return this.yy=Ce||this.yy||{},this._input=Te,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Te=this._input[0];this.yytext+=Te,this.yyleng++,this.offset++,this.match+=Te,this.matched+=Te;var Ce=Te.match(/(?:\r\n?|\n).*/g);return Ce?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Te},"input"),unput:o(function(Te){var Ce=Te.length,Ae=Te.split(/(?:\r\n?|\n)/g);this._input=Te+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ce),this.offset-=Ce;var Ge=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ae.length-1&&(this.yylineno-=Ae.length-1);var Me=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ae?(Ae.length===Ge.length?this.yylloc.first_column:0)+Ge[Ge.length-Ae.length].length-Ae[0].length:this.yylloc.first_column-Ce},this.options.ranges&&(this.yylloc.range=[Me[0],Me[0]+this.yyleng-Ce]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Te){this.unput(this.match.slice(Te))},"less"),pastInput:o(function(){var Te=this.matched.substr(0,this.matched.length-this.match.length);return(Te.length>20?"...":"")+Te.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Te=this.match;return Te.length<20&&(Te+=this._input.substr(0,20-Te.length)),(Te.substr(0,20)+(Te.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Te=this.pastInput(),Ce=new Array(Te.length+1).join("-");return Te+this.upcomingInput()+` +`+Ce+"^"},"showPosition"),test_match:o(function(Te,Ce){var Ae,Ge,Me;if(this.options.backtrack_lexer&&(Me={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Me.yylloc.range=this.yylloc.range.slice(0))),Ge=Te[0].match(/(?:\r\n?|\n).*/g),Ge&&(this.yylineno+=Ge.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ge?Ge[Ge.length-1].length-Ge[Ge.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Te[0].length},this.yytext+=Te[0],this.match+=Te[0],this.matches=Te,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Te[0].length),this.matched+=Te[0],Ae=this.performAction.call(this,this.yy,this,Ce,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ae)return Ae;if(this._backtrack){for(var ye in Me)this[ye]=Me[ye];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Te,Ce,Ae,Ge;this._more||(this.yytext="",this.match="");for(var Me=this._currentRules(),ye=0;yeCe[0].length)){if(Ce=Ae,Ge=ye,this.options.backtrack_lexer){if(Te=this.test_match(Ae,Me[ye]),Te!==!1)return Te;if(this._backtrack){Ce=!1;continue}else return!1}else if(!this.options.flex)break}return Ce?(Te=this.test_match(Ce,Me[Ge]),Te!==!1?Te:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ce=this.next();return Ce||this.lex()},"lex"),begin:o(function(Ce){this.conditionStack.push(Ce)},"begin"),popState:o(function(){var Ce=this.conditionStack.length-1;return Ce>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ce){return Ce=this.conditionStack.length-1-Math.abs(Ce||0),Ce>=0?this.conditionStack[Ce]:"INITIAL"},"topState"),pushState:o(function(Ce){this.begin(Ce)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Ce,Ae,Ge,Me){var ye=Me;switch(Ge){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;break;case 5:return this.popState(),"title_value";break;case 6:return this.begin("acc_title"),37;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),39;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;break;case 29:return this.begin("point_start"),44;break;case 30:return this.begin("point_x"),45;break;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;break;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:return 65;case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return we}();he.lexer=ne;function ae(){this.yy={}}return o(ae,"Parser"),ae.prototype=he,he.Parser=ae,new ae}();XI.parser=XI;$ce=XI});var os,uE,Uce=R(()=>{"use strict";Zt();sl();ut();jb();os=hp(),uE=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{o(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:mr.quadrantChart?.chartWidth||500,chartWidth:mr.quadrantChart?.chartHeight||500,titlePadding:mr.quadrantChart?.titlePadding||10,titleFontSize:mr.quadrantChart?.titleFontSize||20,quadrantPadding:mr.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:mr.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:mr.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:mr.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:mr.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:mr.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:mr.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:mr.quadrantChart?.pointTextPadding||5,pointLabelFontSize:mr.quadrantChart?.pointLabelFontSize||12,pointRadius:mr.quadrantChart?.pointRadius||5,xAxisPosition:mr.quadrantChart?.xAxisPosition||"top",yAxisPosition:mr.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:mr.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:mr.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:os.quadrant1Fill,quadrant2Fill:os.quadrant2Fill,quadrant3Fill:os.quadrant3Fill,quadrant4Fill:os.quadrant4Fill,quadrant1TextFill:os.quadrant1TextFill,quadrant2TextFill:os.quadrant2TextFill,quadrant3TextFill:os.quadrant3TextFill,quadrant4TextFill:os.quadrant4TextFill,quadrantPointFill:os.quadrantPointFill,quadrantPointTextFill:os.quadrantPointTextFill,quadrantXAxisTextFill:os.quadrantXAxisTextFill,quadrantYAxisTextFill:os.quadrantYAxisTextFill,quadrantTitleFill:os.quadrantTitleFill,quadrantInternalBorderStrokeFill:os.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:os.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,V.info("clear called")}setData(e){this.data={...this.data,...e}}addPoints(e){this.data.points=[...e,...this.data.points]}addClass(e,r){this.classes.set(e,r)}setConfig(e){V.trace("setConfig called with: ",e),this.config={...this.config,...e}}setThemeConfig(e){V.trace("setThemeConfig called with: ",e),this.themeConfig={...this.themeConfig,...e}}calculateSpace(e,r,n,i){let a=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,s={top:e==="top"&&r?a:0,bottom:e==="bottom"&&r?a:0},l=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,u={left:this.config.yAxisPosition==="left"&&n?l:0,right:this.config.yAxisPosition==="right"&&n?l:0},h=this.config.titleFontSize+this.config.titlePadding*2,f={top:i?h:0},d=this.config.quadrantPadding+u.left,p=this.config.quadrantPadding+s.top+f.top,m=this.config.chartWidth-this.config.quadrantPadding*2-u.left-u.right,g=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-f.top,y=m/2,v=g/2;return{xAxisSpace:s,yAxisSpace:u,titleSpace:f,quadrantSpace:{quadrantLeft:d,quadrantTop:p,quadrantWidth:m,quadrantHalfWidth:y,quadrantHeight:g,quadrantHalfHeight:v}}}getAxisLabels(e,r,n,i){let{quadrantSpace:a,titleSpace:s}=i,{quadrantHalfHeight:l,quadrantHeight:u,quadrantLeft:h,quadrantHalfWidth:f,quadrantTop:d,quadrantWidth:p}=a,m=!!this.data.xAxisRightText,g=!!this.data.yAxisTopText,y=[];return this.data.xAxisLeftText&&r&&y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&r&&y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+f+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&n&&y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+u-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&n&&y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+l-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),y}getQuadrants(e){let{quadrantSpace:r}=e,{quadrantHalfHeight:n,quadrantLeft:i,quadrantHalfWidth:a,quadrantTop:s}=r,l=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s,width:a,height:n,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s,width:a,height:n,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant4Fill}];for(let u of l)u.text.x=u.x+u.width/2,this.data.points.length===0?(u.text.y=u.y+u.height/2,u.text.horizontalPos="middle"):(u.text.y=u.y+this.config.quadrantTextTopPadding,u.text.horizontalPos="top");return l}getQuadrantPoints(e){let{quadrantSpace:r}=e,{quadrantHeight:n,quadrantLeft:i,quadrantTop:a,quadrantWidth:s}=r,l=gl().domain([0,1]).range([i,s+i]),u=gl().domain([0,1]).range([n+a,a]);return this.data.points.map(f=>{let d=this.classes.get(f.className);return d&&(f={...d,...f}),{x:l(f.x),y:u(f.y),fill:f.color??this.themeConfig.quadrantPointFill,radius:f.radius??this.config.pointRadius,text:{text:f.text,fill:this.themeConfig.quadrantPointTextFill,x:l(f.x),y:u(f.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:f.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:f.strokeWidth??"0px"}})}getBorders(e){let r=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:n}=e,{quadrantHalfHeight:i,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:l,quadrantTop:u,quadrantWidth:h}=n;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u,x2:s+h+r,y2:u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+h,y1:u+r,x2:s+h,y2:u+a-r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u+a,x2:s+h+r,y2:u+a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:u+r,x2:s,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+l,y1:u+r,x2:s+l,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:u+i,x2:s+h-r,y2:u+i}]}getTitle(e){if(e)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let e=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),r=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),n=this.config.showTitle&&!!this.data.titleText,i=this.data.points.length>0?"bottom":this.config.xAxisPosition,a=this.calculateSpace(i,e,r,n);return{points:this.getQuadrantPoints(a),quadrants:this.getQuadrants(a),axisLabels:this.getAxisLabels(i,e,r,a),borderLines:this.getBorders(a),title:this.getTitle(n)}}}});function jI(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function Hce(t){return!/^\d+$/.test(t)}function Yce(t){return!/^\d+px$/.test(t)}var S0,Wce=R(()=>{"use strict";S0=class extends Error{static{o(this,"InvalidStyleError")}constructor(e,r,n){super(`value for ${e} ${r} is invalid, please use a valid ${n}`),this.name="InvalidStyleError"}};o(jI,"validateHexCode");o(Hce,"validateNumber");o(Yce,"validateSizeInPixels")});function Wu(t){return qr(t.trim(),YFe)}function WFe(t){wa.setData({quadrant1Text:Wu(t.text)})}function qFe(t){wa.setData({quadrant2Text:Wu(t.text)})}function XFe(t){wa.setData({quadrant3Text:Wu(t.text)})}function jFe(t){wa.setData({quadrant4Text:Wu(t.text)})}function KFe(t){wa.setData({xAxisLeftText:Wu(t.text)})}function QFe(t){wa.setData({xAxisRightText:Wu(t.text)})}function ZFe(t){wa.setData({yAxisTopText:Wu(t.text)})}function JFe(t){wa.setData({yAxisBottomText:Wu(t.text)})}function KI(t){let e={};for(let r of t){let[n,i]=r.trim().split(/\s*:\s*/);if(n==="radius"){if(Hce(i))throw new S0(n,i,"number");e.radius=parseInt(i)}else if(n==="color"){if(jI(i))throw new S0(n,i,"hex code");e.color=i}else if(n==="stroke-color"){if(jI(i))throw new S0(n,i,"hex code");e.strokeColor=i}else if(n==="stroke-width"){if(Yce(i))throw new S0(n,i,"number of pixels (eg. 10px)");e.strokeWidth=i}else throw new Error(`style named ${n} is not supported.`)}return e}function eze(t,e,r,n,i){let a=KI(i);wa.addPoints([{x:r,y:n,text:Wu(t.text),className:e,...a}])}function tze(t,e){wa.addClass(t,KI(e))}function rze(t){wa.setConfig({chartWidth:t})}function nze(t){wa.setConfig({chartHeight:t})}function ize(){let t=de(),{themeVariables:e,quadrantChart:r}=t;return r&&wa.setConfig(r),wa.setThemeConfig({quadrant1Fill:e.quadrant1Fill,quadrant2Fill:e.quadrant2Fill,quadrant3Fill:e.quadrant3Fill,quadrant4Fill:e.quadrant4Fill,quadrant1TextFill:e.quadrant1TextFill,quadrant2TextFill:e.quadrant2TextFill,quadrant3TextFill:e.quadrant3TextFill,quadrant4TextFill:e.quadrant4TextFill,quadrantPointFill:e.quadrantPointFill,quadrantPointTextFill:e.quadrantPointTextFill,quadrantXAxisTextFill:e.quadrantXAxisTextFill,quadrantYAxisTextFill:e.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:e.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:e.quadrantInternalBorderStrokeFill,quadrantTitleFill:e.quadrantTitleFill}),wa.setData({titleText:Xr()}),wa.build()}var YFe,wa,aze,qce,Xce=R(()=>{"use strict";_t();rr();bi();Uce();Wce();YFe=de();o(Wu,"textSanitizer");wa=new uE;o(WFe,"setQuadrant1Text");o(qFe,"setQuadrant2Text");o(XFe,"setQuadrant3Text");o(jFe,"setQuadrant4Text");o(KFe,"setXAxisLeftText");o(QFe,"setXAxisRightText");o(ZFe,"setYAxisTopText");o(JFe,"setYAxisBottomText");o(KI,"parseStyles");o(eze,"addPoint");o(tze,"addClass");o(rze,"setWidth");o(nze,"setHeight");o(ize,"getQuadrantData");aze=o(function(){wa.clear(),vr()},"clear"),qce={setWidth:rze,setHeight:nze,setQuadrant1Text:WFe,setQuadrant2Text:qFe,setQuadrant3Text:XFe,setQuadrant4Text:jFe,setXAxisLeftText:KFe,setXAxisRightText:QFe,setYAxisTopText:ZFe,setYAxisBottomText:JFe,parseStyles:KI,addPoint:eze,addClass:tze,getQuadrantData:ize,clear:aze,setAccTitle:kr,getAccTitle:Ar,setDiagramTitle:nn,getDiagramTitle:Xr,getAccDescription:Lr,setAccDescription:_r}});var sze,jce,Kce=R(()=>{"use strict";Zt();_t();ut();Yn();sze=o((t,e,r,n)=>{function i(A){return A==="top"?"hanging":"middle"}o(i,"getDominantBaseLine");function a(A){return A==="left"?"start":"middle"}o(a,"getTextAnchor");function s(A){return`translate(${A.x}, ${A.y}) rotate(${A.rotation||0})`}o(s,"getTransformation");let l=de();V.debug(`Rendering quadrant chart +`+t);let u=l.securityLevel,h;u==="sandbox"&&(h=$e("#i"+e));let d=(u==="sandbox"?$e(h.nodes()[0].contentDocument.body):$e("body")).select(`[id="${e}"]`),p=d.append("g").attr("class","main"),m=l.quadrantChart?.chartWidth??500,g=l.quadrantChart?.chartHeight??500;Sr(d,g,m,l.quadrantChart?.useMaxWidth??!0),d.attr("viewBox","0 0 "+m+" "+g),n.db.setHeight(g),n.db.setWidth(m);let y=n.db.getQuadrantData(),v=p.append("g").attr("class","quadrants"),x=p.append("g").attr("class","border"),b=p.append("g").attr("class","data-points"),w=p.append("g").attr("class","labels"),S=p.append("g").attr("class","title");y.title&&S.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",i(y.title.horizontalPos)).attr("text-anchor",a(y.title.verticalPos)).attr("transform",s(y.title)).text(y.title.text),y.borderLines&&x.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",A=>A.x1).attr("y1",A=>A.y1).attr("x2",A=>A.x2).attr("y2",A=>A.y2).style("stroke",A=>A.strokeFill).style("stroke-width",A=>A.strokeWidth);let T=v.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");T.append("rect").attr("x",A=>A.x).attr("y",A=>A.y).attr("width",A=>A.width).attr("height",A=>A.height).attr("fill",A=>A.fill),T.append("text").attr("x",0).attr("y",0).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text)).text(A=>A.text.text),w.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(A=>A.text).attr("fill",A=>A.fill).attr("font-size",A=>A.fontSize).attr("dominant-baseline",A=>i(A.horizontalPos)).attr("text-anchor",A=>a(A.verticalPos)).attr("transform",A=>s(A));let _=b.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");_.append("circle").attr("cx",A=>A.x).attr("cy",A=>A.y).attr("r",A=>A.radius).attr("fill",A=>A.fill).attr("stroke",A=>A.strokeColor).attr("stroke-width",A=>A.strokeWidth),_.append("text").attr("x",0).attr("y",0).text(A=>A.text.text).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text))},"draw"),jce={draw:sze}});var Qce={};hr(Qce,{diagram:()=>oze});var oze,Zce=R(()=>{"use strict";Vce();Xce();Kce();oze={parser:$ce,db:qce,renderer:jce,styles:o(()=>"","styles")}});var QI,tue,rue=R(()=>{"use strict";QI=function(){var t=o(function(O,D,P,F){for(P=P||{},F=O.length;F--;P[O[F]]=D);return P},"o"),e=[1,10,12,14,16,18,19,21,23],r=[2,6],n=[1,3],i=[1,5],a=[1,6],s=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],u=[1,25],h=[1,26],f=[1,28],d=[1,29],p=[1,30],m=[1,31],g=[1,32],y=[1,33],v=[1,34],x=[1,35],b=[1,36],w=[1,37],S=[1,43],T=[1,42],E=[1,47],_=[1,50],A=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],M=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],N=[1,64],k={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:o(function(D,P,F,B,$,z,Y){var Q=z.length-1;switch($){case 5:B.setOrientation(z[Q]);break;case 9:B.setDiagramTitle(z[Q].text.trim());break;case 12:B.setLineData({text:"",type:"text"},z[Q]);break;case 13:B.setLineData(z[Q-1],z[Q]);break;case 14:B.setBarData({text:"",type:"text"},z[Q]);break;case 15:B.setBarData(z[Q-1],z[Q]);break;case 16:this.$=z[Q].trim(),B.setAccTitle(this.$);break;case 17:case 18:this.$=z[Q].trim(),B.setAccDescription(this.$);break;case 19:this.$=z[Q-1];break;case 20:this.$=[Number(z[Q-2]),...z[Q]];break;case 21:this.$=[Number(z[Q])];break;case 22:B.setXAxisTitle(z[Q]);break;case 23:B.setXAxisTitle(z[Q-1]);break;case 24:B.setXAxisTitle({type:"text",text:""});break;case 25:B.setXAxisBand(z[Q]);break;case 26:B.setXAxisRangeData(Number(z[Q-2]),Number(z[Q]));break;case 27:this.$=z[Q-1];break;case 28:this.$=[z[Q-2],...z[Q]];break;case 29:this.$=[z[Q]];break;case 30:B.setYAxisTitle(z[Q]);break;case 31:B.setYAxisTitle(z[Q-1]);break;case 32:B.setYAxisTitle({type:"text",text:""});break;case 33:B.setYAxisRangeData(Number(z[Q-2]),Number(z[Q]));break;case 37:this.$={text:z[Q],type:"text"};break;case 38:this.$={text:z[Q],type:"text"};break;case 39:this.$={text:z[Q],type:"markdown"};break;case 40:this.$=z[Q];break;case 41:this.$=z[Q-1]+""+z[Q];break}},"anonymous"),table:[t(e,r,{3:1,4:2,7:4,5:n,34:i,35:a,36:s}),{1:[3]},t(e,r,{4:2,7:4,3:8,5:n,34:i,35:a,36:s}),t(e,r,{4:2,7:4,6:9,3:10,5:n,8:[1,11],34:i,35:a,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(l,[2,34]),t(l,[2,35]),t(l,[2,36]),{1:[2,1]},t(e,r,{4:2,7:4,3:21,5:n,34:i,35:a,36:s}),{1:[2,3]},t(l,[2,5]),t(e,[2,7],{4:22,34:i,35:a,36:s}),{11:23,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:39,13:38,24:S,27:T,29:40,30:41,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:45,15:44,27:E,33:46,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:49,17:48,24:_,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:52,17:51,24:_,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{20:[1,53]},{22:[1,54]},t(A,[2,18]),{1:[2,2]},t(A,[2,8]),t(A,[2,9]),t(L,[2,37],{40:55,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w}),t(L,[2,38]),t(L,[2,39]),t(M,[2,40]),t(M,[2,42]),t(M,[2,43]),t(M,[2,44]),t(M,[2,45]),t(M,[2,46]),t(M,[2,47]),t(M,[2,48]),t(M,[2,49]),t(M,[2,50]),t(M,[2,51]),t(A,[2,10]),t(A,[2,22],{30:41,29:56,24:S,27:T}),t(A,[2,24]),t(A,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},t(A,[2,11]),t(A,[2,30],{33:60,27:E}),t(A,[2,32]),{31:[1,61]},t(A,[2,12]),{17:62,24:_},{25:63,27:N},t(A,[2,14]),{17:65,24:_},t(A,[2,16]),t(A,[2,17]),t(M,[2,41]),t(A,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(A,[2,31]),{27:[1,69]},t(A,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(A,[2,15]),t(A,[2,26]),t(A,[2,27]),{11:59,32:72,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},t(A,[2,33]),t(A,[2,19]),{25:73,27:N},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:o(function(D,P){if(P.recoverable)this.trace(D);else{var F=new Error(D);throw F.hash=P,F}},"parseError"),parse:o(function(D){var P=this,F=[0],B=[],$=[null],z=[],Y=this.table,Q="",X=0,ie=0,j=0,J=2,Z=1,H=z.slice.call(arguments,1),q=Object.create(this.lexer),K={yy:{}};for(var se in this.yy)Object.prototype.hasOwnProperty.call(this.yy,se)&&(K.yy[se]=this.yy[se]);q.setInput(D,K.yy),K.yy.lexer=q,K.yy.parser=this,typeof q.yylloc>"u"&&(q.yylloc={});var ce=q.yylloc;z.push(ce);var ue=q.options&&q.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function te(he){F.length=F.length-2*he,$.length=$.length-he,z.length=z.length-he}o(te,"popStack");function De(){var he;return he=B.pop()||q.lex()||Z,typeof he!="number"&&(he instanceof Array&&(B=he,he=B.pop()),he=P.symbols_[he]||he),he}o(De,"lex");for(var oe,ke,Ie,Se,Ue,Pe,_e={},me,W,fe,ge;;){if(Ie=F[F.length-1],this.defaultActions[Ie]?Se=this.defaultActions[Ie]:((oe===null||typeof oe>"u")&&(oe=De()),Se=Y[Ie]&&Y[Ie][oe]),typeof Se>"u"||!Se.length||!Se[0]){var re="";ge=[];for(me in Y[Ie])this.terminals_[me]&&me>J&&ge.push("'"+this.terminals_[me]+"'");q.showPosition?re="Parse error on line "+(X+1)+`: +`+q.showPosition()+` +Expecting `+ge.join(", ")+", got '"+(this.terminals_[oe]||oe)+"'":re="Parse error on line "+(X+1)+": Unexpected "+(oe==Z?"end of input":"'"+(this.terminals_[oe]||oe)+"'"),this.parseError(re,{text:q.match,token:this.terminals_[oe]||oe,line:q.yylineno,loc:ce,expected:ge})}if(Se[0]instanceof Array&&Se.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ie+", token: "+oe);switch(Se[0]){case 1:F.push(oe),$.push(q.yytext),z.push(q.yylloc),F.push(Se[1]),oe=null,ke?(oe=ke,ke=null):(ie=q.yyleng,Q=q.yytext,X=q.yylineno,ce=q.yylloc,j>0&&j--);break;case 2:if(W=this.productions_[Se[1]][1],_e.$=$[$.length-W],_e._$={first_line:z[z.length-(W||1)].first_line,last_line:z[z.length-1].last_line,first_column:z[z.length-(W||1)].first_column,last_column:z[z.length-1].last_column},ue&&(_e._$.range=[z[z.length-(W||1)].range[0],z[z.length-1].range[1]]),Pe=this.performAction.apply(_e,[Q,ie,X,K.yy,Se[1],$,z].concat(H)),typeof Pe<"u")return Pe;W&&(F=F.slice(0,-1*W*2),$=$.slice(0,-1*W),z=z.slice(0,-1*W)),F.push(this.productions_[Se[1]][0]),$.push(_e.$),z.push(_e._$),fe=Y[F[F.length-2]][F[F.length-1]],F.push(fe);break;case 3:return!0}}return!0},"parse")},I=function(){var O={EOF:1,parseError:o(function(P,F){if(this.yy.parser)this.yy.parser.parseError(P,F);else throw new Error(P)},"parseError"),setInput:o(function(D,P){return this.yy=P||this.yy||{},this._input=D,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var D=this._input[0];this.yytext+=D,this.yyleng++,this.offset++,this.match+=D,this.matched+=D;var P=D.match(/(?:\r\n?|\n).*/g);return P?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),D},"input"),unput:o(function(D){var P=D.length,F=D.split(/(?:\r\n?|\n)/g);this._input=D+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-P),this.offset-=P;var B=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),F.length-1&&(this.yylineno-=F.length-1);var $=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:F?(F.length===B.length?this.yylloc.first_column:0)+B[B.length-F.length].length-F[0].length:this.yylloc.first_column-P},this.options.ranges&&(this.yylloc.range=[$[0],$[0]+this.yyleng-P]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(D){this.unput(this.match.slice(D))},"less"),pastInput:o(function(){var D=this.matched.substr(0,this.matched.length-this.match.length);return(D.length>20?"...":"")+D.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var D=this.match;return D.length<20&&(D+=this._input.substr(0,20-D.length)),(D.substr(0,20)+(D.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var D=this.pastInput(),P=new Array(D.length+1).join("-");return D+this.upcomingInput()+` +`+P+"^"},"showPosition"),test_match:o(function(D,P){var F,B,$;if(this.options.backtrack_lexer&&($={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&($.yylloc.range=this.yylloc.range.slice(0))),B=D[0].match(/(?:\r\n?|\n).*/g),B&&(this.yylineno+=B.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:B?B[B.length-1].length-B[B.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+D[0].length},this.yytext+=D[0],this.match+=D[0],this.matches=D,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(D[0].length),this.matched+=D[0],F=this.performAction.call(this,this.yy,this,P,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),F)return F;if(this._backtrack){for(var z in $)this[z]=$[z];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var D,P,F,B;this._more||(this.yytext="",this.match="");for(var $=this._currentRules(),z=0;z<$.length;z++)if(F=this._input.match(this.rules[$[z]]),F&&(!P||F[0].length>P[0].length)){if(P=F,B=z,this.options.backtrack_lexer){if(D=this.test_match(F,$[z]),D!==!1)return D;if(this._backtrack){P=!1;continue}else return!1}else if(!this.options.flex)break}return P?(D=this.test_match(P,$[B]),D!==!1?D:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var P=this.next();return P||this.lex()},"lex"),begin:o(function(P){this.conditionStack.push(P)},"begin"),popState:o(function(){var P=this.conditionStack.length-1;return P>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(P){return P=this.conditionStack.length-1-Math.abs(P||0),P>=0?this.conditionStack[P]:"INITIAL"},"topState"),pushState:o(function(P){this.begin(P)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(P,F,B,$){var z=$;switch(B){case 0:break;case 1:break;case 2:return this.popState(),34;break;case 3:return this.popState(),34;break;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";break;case 17:return this.pushState("axis_data"),"Y_AXIS";break;case 18:return this.pushState("axis_band_data"),24;break;case 19:return 31;case 20:return this.pushState("data"),16;break;case 21:return this.pushState("data"),18;break;case 22:return this.pushState("data_inner"),24;break;case 23:return 27;case 24:return this.popState(),26;break;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return O}();k.lexer=I;function C(){this.yy={}}return o(C,"Parser"),C.prototype=k,k.Parser=C,new C}();QI.parser=QI;tue=QI});function ZI(t){return t.type==="bar"}function hE(t){return t.type==="band"}function Ng(t){return t.type==="linear"}var fE=R(()=>{"use strict";o(ZI,"isBarPlot");o(hE,"isBandAxisData");o(Ng,"isLinearAxisData")});var Mg,JI=R(()=>{"use strict";Al();Mg=class{constructor(e){this.parentGroup=e}static{o(this,"TextDimensionCalculatorWithFont")}getMaxDimension(e,r){if(!this.parentGroup)return{width:e.reduce((a,s)=>Math.max(s.length,a),0)*r,height:r};let n={width:0,height:0},i=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",r);for(let a of e){let s=bj(i,1,a),l=s?s.width:a.length*r,u=s?s.height:r;n.width=Math.max(n.width,l),n.height=Math.max(n.height,u)}return i.remove(),n}}});var Ig,eO=R(()=>{"use strict";Ig=class{constructor(e,r,n,i){this.axisConfig=e;this.title=r;this.textDimensionCalculator=n;this.axisThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=!1;this.showLabel=!1;this.showTick=!1;this.showAxisLine=!1;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{o(this,"BaseAxis")}setRange(e){this.range=e,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=e[1]-e[0]:this.boundingRect.width=e[1]-e[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(e){this.axisPosition=e,this.setRange(this.range)}getTickDistance(){let e=this.getRange();return Math.abs(e[0]-e[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(e=>e.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(e){let r=e.height;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.width;this.outerPadding=Math.min(n.width/2,i);let a=n.height+this.axisConfig.labelPadding*2;this.labelTextHeight=n.height,a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width,this.boundingRect.height=e.height-r}calculateSpaceIfDrawnVertical(e){let r=e.width;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.height;this.outerPadding=Math.min(n.height/2,i);let a=n.width+this.axisConfig.labelPadding*2;a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width-r,this.boundingRect.height=e.height}calculateSpace(e){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(e):this.calculateSpaceIfDrawnHorizontally(e),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}getDrawableElementsForLeftAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${r},${this.boundingRect.y} L ${r},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(r),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let r=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${r},${this.getScaleValue(n)} L ${r-this.axisConfig.tickLength},${this.getScaleValue(n)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForBottomAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r} L ${this.getScaleValue(n)},${r+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForTopAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y;e.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(n)},${r+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}});var dE,nue=R(()=>{"use strict";Zt();ut();eO();dE=class extends Ig{static{o(this,"BandAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.categories=n,this.scale=Op().domain(this.categories).range(this.getRange())}setRange(e){super.setRange(e)}recalculateScale(){this.scale=Op().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),V.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(e){return this.scale(e)??this.getRange()[0]}}});var pE,iue=R(()=>{"use strict";Zt();eO();pE=class extends Ig{static{o(this,"LinearAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.domain=n,this.scale=gl().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let e=[...this.domain];this.axisPosition==="left"&&e.reverse(),this.scale=gl().domain(e).range(this.getRange())}getScaleValue(e){return this.scale(e)}}});function tO(t,e,r,n){let i=new Mg(n);return hE(t)?new dE(e,r,t.categories,t.title,i):new pE(e,r,[t.min,t.max],t.title,i)}var aue=R(()=>{"use strict";fE();JI();nue();iue();o(tO,"getAxis")});function sue(t,e,r,n){let i=new Mg(n);return new rO(i,t,e,r)}var rO,oue=R(()=>{"use strict";JI();rO=class{constructor(e,r,n,i){this.textDimensionCalculator=e;this.chartConfig=r;this.chartData=n;this.chartThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{o(this,"ChartTitle")}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){let r=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),n=Math.max(r.width,e.width),i=r.height+2*this.chartConfig.titlePadding;return r.width<=n&&r.height<=i&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=n,this.boundingRect.height=i,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let e=[];return this.showChartTitle&&e.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),e}};o(sue,"getChartTitleComponent")});var mE,lue=R(()=>{"use strict";Zt();mE=class{constructor(e,r,n,i,a){this.plotData=e;this.xAxis=r;this.yAxis=n;this.orientation=i;this.plotIndex=a}static{o(this,"LinePlot")}getDrawableElement(){let e=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),r;return this.orientation==="horizontal"?r=ha().y(n=>n[0]).x(n=>n[1])(e):r=ha().x(n=>n[0]).y(n=>n[1])(e),r?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:r,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}});var gE,cue=R(()=>{"use strict";gE=class{constructor(e,r,n,i,a,s){this.barData=e;this.boundingRect=r;this.xAxis=n;this.yAxis=i;this.orientation=a;this.plotIndex=s}static{o(this,"BarPlot")}getDrawableElement(){let e=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),n=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),i=n/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:this.boundingRect.x,y:a[0]-i,height:n,width:a[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:a[0]-i,y:a[1],width:n,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function uue(t,e,r){return new nO(t,e,r)}var nO,hue=R(()=>{"use strict";lue();cue();nO=class{constructor(e,r,n){this.chartConfig=e;this.chartData=r;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0}}static{o(this,"BasePlot")}setAxes(e,r){this.xAxis=e,this.yAxis=r}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){return this.boundingRect.width=e.width,this.boundingRect.height=e.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let e=[];for(let[r,n]of this.chartData.plots.entries())switch(n.type){case"line":{let i=new mE(n,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break;case"bar":{let i=new gE(n,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break}return e}};o(uue,"getPlotComponent")});var yE,fue=R(()=>{"use strict";aue();oue();hue();fE();yE=class{constructor(e,r,n,i){this.chartConfig=e;this.chartData=r;this.componentStore={title:sue(e,r,n,i),plot:uue(e,r,n),xAxis:tO(r.xAxis,e.xAxis,{titleColor:n.xAxisTitleColor,labelColor:n.xAxisLabelColor,tickColor:n.xAxisTickColor,axisLineColor:n.xAxisLineColor},i),yAxis:tO(r.yAxis,e.yAxis,{titleColor:n.yAxisTitleColor,labelColor:n.yAxisLabelColor,tickColor:n.yAxisTickColor,axisLineColor:n.yAxisLineColor},i)}}static{o(this,"Orchestrator")}calculateVerticalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:s});e-=l.width,r-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),i=l.height,r-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:e,height:r}),r-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:e,height:r}),n=l.width,e-=l.width,e>0&&(a+=e,e=0),r>0&&(s+=r,r=0),this.componentStore.plot.calculateSpace({width:a,height:s}),this.componentStore.plot.setBoundingBoxXY({x:n,y:i}),this.componentStore.xAxis.setRange([n,n+a]),this.componentStore.xAxis.setBoundingBoxXY({x:n,y:i+s}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:i}),this.chartData.plots.some(u=>ZI(u))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=0,s=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:s,height:l});e-=u.width,r-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),n=u.height,r-=u.height,this.componentStore.xAxis.setAxisPosition("left"),u=this.componentStore.xAxis.calculateSpace({width:e,height:r}),e-=u.width,i=u.width,this.componentStore.yAxis.setAxisPosition("top"),u=this.componentStore.yAxis.calculateSpace({width:e,height:r}),r-=u.height,a=n+u.height,e>0&&(s+=e,e=0),r>0&&(l+=r,r=0),this.componentStore.plot.calculateSpace({width:s,height:l}),this.componentStore.plot.setBoundingBoxXY({x:i,y:a}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:i,y:n}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(h=>ZI(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let e=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let r of Object.values(this.componentStore))e.push(...r.getDrawableElements());return e}}});var vE,due=R(()=>{"use strict";fue();vE=class{static{o(this,"XYChartBuilder")}static build(e,r,n,i){return new yE(e,r,n,i).getDrawableElement()}}});function mue(){let t=hp(),e=Or();return Ts(t.xyChart,e.themeVariables.xyChart)}function gue(){let t=Or();return Ts(mr.xyChart,t.xyChart)}function yue(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function sO(t){let e=Or();return qr(t.trim(),e)}function hze(t){pue=t}function fze(t){t==="horizontal"?px.chartOrientation="horizontal":px.chartOrientation="vertical"}function dze(t){sn.xAxis.title=sO(t.text)}function vue(t,e){sn.xAxis={type:"linear",title:sn.xAxis.title,min:t,max:e},xE=!0}function pze(t){sn.xAxis={type:"band",title:sn.xAxis.title,categories:t.map(e=>sO(e.text))},xE=!0}function mze(t){sn.yAxis.title=sO(t.text)}function gze(t,e){sn.yAxis={type:"linear",title:sn.yAxis.title,min:t,max:e},aO=!0}function yze(t){let e=Math.min(...t),r=Math.max(...t),n=Ng(sn.yAxis)?sn.yAxis.min:1/0,i=Ng(sn.yAxis)?sn.yAxis.max:-1/0;sn.yAxis={type:"linear",title:sn.yAxis.title,min:Math.min(n,e),max:Math.max(i,r)}}function xue(t){let e=[];if(t.length===0)return e;if(!xE){let r=Ng(sn.xAxis)?sn.xAxis.min:1/0,n=Ng(sn.xAxis)?sn.xAxis.max:-1/0;vue(Math.min(r,1),Math.max(n,t.length))}if(aO||yze(t),hE(sn.xAxis)&&(e=sn.xAxis.categories.map((r,n)=>[r,t[n]])),Ng(sn.xAxis)){let r=sn.xAxis.min,n=sn.xAxis.max,i=(n-r)/(t.length-1),a=[];for(let s=r;s<=n;s+=i)a.push(`${s}`);e=a.map((s,l)=>[s,t[l]])}return e}function bue(t){return iO[t===0?0:t%iO.length]}function vze(t,e){let r=xue(e);sn.plots.push({type:"line",strokeFill:bue(dx),strokeWidth:2,data:r}),dx++}function xze(t,e){let r=xue(e);sn.plots.push({type:"bar",fill:bue(dx),data:r}),dx++}function bze(){if(sn.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return sn.title=Xr(),vE.build(px,sn,mx,pue)}function wze(){return mx}function Tze(){return px}var dx,pue,px,mx,sn,iO,xE,aO,kze,wue,Tue=R(()=>{"use strict";qs();sl();jb();xr();rr();bi();due();fE();dx=0,px=gue(),mx=mue(),sn=yue(),iO=mx.plotColorPalette.split(",").map(t=>t.trim()),xE=!1,aO=!1;o(mue,"getChartDefaultThemeConfig");o(gue,"getChartDefaultConfig");o(yue,"getChartDefaultData");o(sO,"textSanitizer");o(hze,"setTmpSVGG");o(fze,"setOrientation");o(dze,"setXAxisTitle");o(vue,"setXAxisRangeData");o(pze,"setXAxisBand");o(mze,"setYAxisTitle");o(gze,"setYAxisRangeData");o(yze,"setYAxisRangeFromPlotData");o(xue,"transformDataWithoutCategory");o(bue,"getPlotColorFromPalette");o(vze,"setLineData");o(xze,"setBarData");o(bze,"getDrawableElem");o(wze,"getChartThemeConfig");o(Tze,"getChartConfig");kze=o(function(){vr(),dx=0,px=gue(),sn=yue(),mx=mue(),iO=mx.plotColorPalette.split(",").map(t=>t.trim()),xE=!1,aO=!1},"clear"),wue={getDrawableElem:bze,clear:kze,setAccTitle:kr,getAccTitle:Ar,setDiagramTitle:nn,getDiagramTitle:Xr,getAccDescription:Lr,setAccDescription:_r,setOrientation:fze,setXAxisTitle:dze,setXAxisRangeData:vue,setXAxisBand:pze,setYAxisTitle:mze,setYAxisRangeData:gze,setLineData:vze,setBarData:xze,setTmpSVGG:hze,getChartThemeConfig:wze,getChartConfig:Tze}});var Eze,kue,Eue=R(()=>{"use strict";ut();pf();Yn();Eze=o((t,e,r,n)=>{let i=n.db,a=i.getChartThemeConfig(),s=i.getChartConfig();function l(v){return v==="top"?"text-before-edge":"middle"}o(l,"getDominantBaseLine");function u(v){return v==="left"?"start":v==="right"?"end":"middle"}o(u,"getTextAnchor");function h(v){return`translate(${v.x}, ${v.y}) rotate(${v.rotation||0})`}o(h,"getTextTransformation"),V.debug(`Rendering xychart chart +`+t);let f=Ps(e),d=f.append("g").attr("class","main"),p=d.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background");Sr(f,s.height,s.width,!0),f.attr("viewBox",`0 0 ${s.width} ${s.height}`),p.attr("fill",a.backgroundColor),i.setTmpSVGG(f.append("g").attr("class","mermaid-tmp-group"));let m=i.getDrawableElem(),g={};function y(v){let x=d,b="";for(let[w]of v.entries()){let S=d;w>0&&g[b]&&(S=g[b]),b+=v[w],x=g[b],x||(x=g[b]=S.append("g").attr("class",v[w]))}return x}o(y,"getGroup");for(let v of m){if(v.data.length===0)continue;let x=y(v.groupTexts);switch(v.type){case"rect":x.selectAll("rect").data(v.data).enter().append("rect").attr("x",b=>b.x).attr("y",b=>b.y).attr("width",b=>b.width).attr("height",b=>b.height).attr("fill",b=>b.fill).attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break;case"text":x.selectAll("text").data(v.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",b=>b.fill).attr("font-size",b=>b.fontSize).attr("dominant-baseline",b=>l(b.verticalPos)).attr("text-anchor",b=>u(b.horizontalPos)).attr("transform",b=>h(b)).text(b=>b.text);break;case"path":x.selectAll("path").data(v.data).enter().append("path").attr("d",b=>b.path).attr("fill",b=>b.fill?b.fill:"none").attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break}}},"draw"),kue={draw:Eze}});var Cue={};hr(Cue,{diagram:()=>Cze});var Cze,Sue=R(()=>{"use strict";rue();Tue();Eue();Cze={parser:tue,db:wue,renderer:kue}});var oO,Lue,Due=R(()=>{"use strict";oO=function(){var t=o(function(ie,j,J,Z){for(J=J||{},Z=ie.length;Z--;J[ie[Z]]=j);return J},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],s=[1,18],l=[2,7],u=[1,22],h=[1,23],f=[1,24],d=[1,25],p=[1,26],m=[1,27],g=[1,20],y=[1,28],v=[1,29],x=[62,63],b=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],w=[1,47],S=[1,48],T=[1,49],E=[1,50],_=[1,51],A=[1,52],L=[1,53],M=[53,54],N=[1,64],k=[1,60],I=[1,61],C=[1,62],O=[1,63],D=[1,65],P=[1,69],F=[1,70],B=[1,67],$=[1,68],z=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],Y={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:o(function(j,J,Z,H,q,K,se){var ce=K.length-1;switch(q){case 4:this.$=K[ce].trim(),H.setAccTitle(this.$);break;case 5:case 6:this.$=K[ce].trim(),H.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:H.addRequirement(K[ce-3],K[ce-4]);break;case 14:H.setNewReqId(K[ce-2]);break;case 15:H.setNewReqText(K[ce-2]);break;case 16:H.setNewReqRisk(K[ce-2]);break;case 17:H.setNewReqVerifyMethod(K[ce-2]);break;case 20:this.$=H.RequirementType.REQUIREMENT;break;case 21:this.$=H.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=H.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=H.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=H.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=H.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=H.RiskLevel.LOW_RISK;break;case 27:this.$=H.RiskLevel.MED_RISK;break;case 28:this.$=H.RiskLevel.HIGH_RISK;break;case 29:this.$=H.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=H.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=H.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=H.VerifyType.VERIFY_TEST;break;case 33:H.addElement(K[ce-3]);break;case 34:H.setNewElementType(K[ce-2]);break;case 35:H.setNewElementDocRef(K[ce-2]);break;case 38:H.addRelationship(K[ce-2],K[ce],K[ce-4]);break;case 39:H.addRelationship(K[ce-2],K[ce-4],K[ce]);break;case 40:this.$=H.Relationships.CONTAINS;break;case 41:this.$=H.Relationships.COPIES;break;case 42:this.$=H.Relationships.DERIVES;break;case 43:this.$=H.Relationships.SATISFIES;break;case 44:this.$=H.Relationships.VERIFIES;break;case 45:this.$=H.Relationships.REFINES;break;case 46:this.$=H.Relationships.TRACES;break}},"anonymous"),table:[{3:1,4:2,6:e,9:r,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:r,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(a,[2,6]),{3:12,4:2,6:e,9:r,11:n,13:i},{1:[2,2]},{4:17,5:s,7:13,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},t(a,[2,4]),t(a,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:s,7:31,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:32,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:33,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:34,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:35,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},t(x,[2,20]),t(x,[2,21]),t(x,[2,22]),t(x,[2,23]),t(x,[2,24]),t(x,[2,25]),t(b,[2,49]),t(b,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:w,56:S,57:T,58:E,59:_,60:A,61:L},{52:54,55:w,56:S,57:T,58:E,59:_,60:A,61:L},{5:[1,55]},{5:[1,56]},{53:[1,57]},t(M,[2,40]),t(M,[2,41]),t(M,[2,42]),t(M,[2,43]),t(M,[2,44]),t(M,[2,45]),t(M,[2,46]),{54:[1,58]},{5:N,20:59,21:k,24:I,26:C,28:O,30:D},{5:P,30:F,46:66,47:B,49:$},{23:71,62:y,63:v},{23:72,62:y,63:v},t(z,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:N,20:77,21:k,24:I,26:C,28:O,30:D},t(z,[2,19]),t(z,[2,33]),{22:[1,78]},{22:[1,79]},{5:P,30:F,46:80,47:B,49:$},t(z,[2,37]),t(z,[2,38]),t(z,[2,39]),{23:81,62:y,63:v},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},t(z,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},t(z,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:N,20:106,21:k,24:I,26:C,28:O,30:D},{5:N,20:107,21:k,24:I,26:C,28:O,30:D},{5:N,20:108,21:k,24:I,26:C,28:O,30:D},{5:N,20:109,21:k,24:I,26:C,28:O,30:D},{5:P,30:F,46:110,47:B,49:$},{5:P,30:F,46:111,47:B,49:$},t(z,[2,14]),t(z,[2,15]),t(z,[2,16]),t(z,[2,17]),t(z,[2,34]),t(z,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:o(function(j,J){if(J.recoverable)this.trace(j);else{var Z=new Error(j);throw Z.hash=J,Z}},"parseError"),parse:o(function(j){var J=this,Z=[0],H=[],q=[null],K=[],se=this.table,ce="",ue=0,te=0,De=0,oe=2,ke=1,Ie=K.slice.call(arguments,1),Se=Object.create(this.lexer),Ue={yy:{}};for(var Pe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Pe)&&(Ue.yy[Pe]=this.yy[Pe]);Se.setInput(j,Ue.yy),Ue.yy.lexer=Se,Ue.yy.parser=this,typeof Se.yylloc>"u"&&(Se.yylloc={});var _e=Se.yylloc;K.push(_e);var me=Se.options&&Se.options.ranges;typeof Ue.yy.parseError=="function"?this.parseError=Ue.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function W(He){Z.length=Z.length-2*He,q.length=q.length-He,K.length=K.length-He}o(W,"popStack");function fe(){var He;return He=H.pop()||Se.lex()||ke,typeof He!="number"&&(He instanceof Array&&(H=He,He=H.pop()),He=J.symbols_[He]||He),He}o(fe,"lex");for(var ge,re,he,ne,ae,we,Te={},Ce,Ae,Ge,Me;;){if(he=Z[Z.length-1],this.defaultActions[he]?ne=this.defaultActions[he]:((ge===null||typeof ge>"u")&&(ge=fe()),ne=se[he]&&se[he][ge]),typeof ne>"u"||!ne.length||!ne[0]){var ye="";Me=[];for(Ce in se[he])this.terminals_[Ce]&&Ce>oe&&Me.push("'"+this.terminals_[Ce]+"'");Se.showPosition?ye="Parse error on line "+(ue+1)+`: +`+Se.showPosition()+` +Expecting `+Me.join(", ")+", got '"+(this.terminals_[ge]||ge)+"'":ye="Parse error on line "+(ue+1)+": Unexpected "+(ge==ke?"end of input":"'"+(this.terminals_[ge]||ge)+"'"),this.parseError(ye,{text:Se.match,token:this.terminals_[ge]||ge,line:Se.yylineno,loc:_e,expected:Me})}if(ne[0]instanceof Array&&ne.length>1)throw new Error("Parse Error: multiple actions possible at state: "+he+", token: "+ge);switch(ne[0]){case 1:Z.push(ge),q.push(Se.yytext),K.push(Se.yylloc),Z.push(ne[1]),ge=null,re?(ge=re,re=null):(te=Se.yyleng,ce=Se.yytext,ue=Se.yylineno,_e=Se.yylloc,De>0&&De--);break;case 2:if(Ae=this.productions_[ne[1]][1],Te.$=q[q.length-Ae],Te._$={first_line:K[K.length-(Ae||1)].first_line,last_line:K[K.length-1].last_line,first_column:K[K.length-(Ae||1)].first_column,last_column:K[K.length-1].last_column},me&&(Te._$.range=[K[K.length-(Ae||1)].range[0],K[K.length-1].range[1]]),we=this.performAction.apply(Te,[ce,te,ue,Ue.yy,ne[1],q,K].concat(Ie)),typeof we<"u")return we;Ae&&(Z=Z.slice(0,-1*Ae*2),q=q.slice(0,-1*Ae),K=K.slice(0,-1*Ae)),Z.push(this.productions_[ne[1]][0]),q.push(Te.$),K.push(Te._$),Ge=se[Z[Z.length-2]][Z[Z.length-1]],Z.push(Ge);break;case 3:return!0}}return!0},"parse")},Q=function(){var ie={EOF:1,parseError:o(function(J,Z){if(this.yy.parser)this.yy.parser.parseError(J,Z);else throw new Error(J)},"parseError"),setInput:o(function(j,J){return this.yy=J||this.yy||{},this._input=j,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var j=this._input[0];this.yytext+=j,this.yyleng++,this.offset++,this.match+=j,this.matched+=j;var J=j.match(/(?:\r\n?|\n).*/g);return J?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),j},"input"),unput:o(function(j){var J=j.length,Z=j.split(/(?:\r\n?|\n)/g);this._input=j+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-J),this.offset-=J;var H=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Z.length-1&&(this.yylineno-=Z.length-1);var q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Z?(Z.length===H.length?this.yylloc.first_column:0)+H[H.length-Z.length].length-Z[0].length:this.yylloc.first_column-J},this.options.ranges&&(this.yylloc.range=[q[0],q[0]+this.yyleng-J]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(j){this.unput(this.match.slice(j))},"less"),pastInput:o(function(){var j=this.matched.substr(0,this.matched.length-this.match.length);return(j.length>20?"...":"")+j.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var j=this.match;return j.length<20&&(j+=this._input.substr(0,20-j.length)),(j.substr(0,20)+(j.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var j=this.pastInput(),J=new Array(j.length+1).join("-");return j+this.upcomingInput()+` +`+J+"^"},"showPosition"),test_match:o(function(j,J){var Z,H,q;if(this.options.backtrack_lexer&&(q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(q.yylloc.range=this.yylloc.range.slice(0))),H=j[0].match(/(?:\r\n?|\n).*/g),H&&(this.yylineno+=H.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:H?H[H.length-1].length-H[H.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+j[0].length},this.yytext+=j[0],this.match+=j[0],this.matches=j,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(j[0].length),this.matched+=j[0],Z=this.performAction.call(this,this.yy,this,J,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Z)return Z;if(this._backtrack){for(var K in q)this[K]=q[K];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var j,J,Z,H;this._more||(this.yytext="",this.match="");for(var q=this._currentRules(),K=0;KJ[0].length)){if(J=Z,H=K,this.options.backtrack_lexer){if(j=this.test_match(Z,q[K]),j!==!1)return j;if(this._backtrack){J=!1;continue}else return!1}else if(!this.options.flex)break}return J?(j=this.test_match(J,q[H]),j!==!1?j:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var J=this.next();return J||this.lex()},"lex"),begin:o(function(J){this.conditionStack.push(J)},"begin"),popState:o(function(){var J=this.conditionStack.length-1;return J>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(J){return J=this.conditionStack.length-1-Math.abs(J||0),J>=0?this.conditionStack[J]:"INITIAL"},"topState"),pushState:o(function(J){this.begin(J)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(J,Z,H,q){var K=q;switch(H){case 0:return"title";case 1:return this.begin("acc_title"),9;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),11;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return Z.yytext=Z.yytext.trim(),62;break}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return ie}();Y.lexer=Q;function X(){this.yy={}}return o(X,"Parser"),X.prototype=Y,Y.Parser=X,new X}();oO.parser=oO;Lue=oO});var lO,Bs,gx,mf,yx,Lze,Dze,Rze,Nze,Mze,Ize,Oze,Pze,Bze,Fze,zze,Gze,$ze,Vze,Uze,Hze,Yze,Rue,Nue=R(()=>{"use strict";_t();ut();bi();lO=[],Bs={},gx=new Map,mf={},yx=new Map,Lze={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},Dze={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},Rze={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Nze={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},Mze=o((t,e)=>(gx.has(t)||gx.set(t,{name:t,type:e,id:Bs.id,text:Bs.text,risk:Bs.risk,verifyMethod:Bs.verifyMethod}),Bs={},gx.get(t)),"addRequirement"),Ize=o(()=>gx,"getRequirements"),Oze=o(t=>{Bs!==void 0&&(Bs.id=t)},"setNewReqId"),Pze=o(t=>{Bs!==void 0&&(Bs.text=t)},"setNewReqText"),Bze=o(t=>{Bs!==void 0&&(Bs.risk=t)},"setNewReqRisk"),Fze=o(t=>{Bs!==void 0&&(Bs.verifyMethod=t)},"setNewReqVerifyMethod"),zze=o(t=>(yx.has(t)||(yx.set(t,{name:t,type:mf.type,docRef:mf.docRef}),V.info("Added new requirement: ",t)),mf={},yx.get(t)),"addElement"),Gze=o(()=>yx,"getElements"),$ze=o(t=>{mf!==void 0&&(mf.type=t)},"setNewElementType"),Vze=o(t=>{mf!==void 0&&(mf.docRef=t)},"setNewElementDocRef"),Uze=o((t,e,r)=>{lO.push({type:t,src:e,dst:r})},"addRelationship"),Hze=o(()=>lO,"getRelationships"),Yze=o(()=>{lO=[],Bs={},gx=new Map,mf={},yx=new Map,vr()},"clear"),Rue={RequirementType:Lze,RiskLevel:Dze,VerifyType:Rze,Relationships:Nze,getConfig:o(()=>de().req,"getConfig"),addRequirement:Mze,getRequirements:Ize,setNewReqId:Oze,setNewReqText:Pze,setNewReqRisk:Bze,setNewReqVerifyMethod:Fze,setAccTitle:kr,getAccTitle:Ar,setAccDescription:_r,getAccDescription:Lr,addElement:zze,getElements:Gze,setNewElementType:$ze,setNewElementDocRef:Vze,addRelationship:Uze,getRelationships:Hze,clear:Yze}});var Wze,Mue,Iue=R(()=>{"use strict";Wze=o(t=>` + + marker { + fill: ${t.relationColor}; + stroke: ${t.relationColor}; + } + + marker.cross { + stroke: ${t.lineColor}; + } + + svg { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + } + + .reqBox { + fill: ${t.requirementBackground}; + fill-opacity: 1.0; + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${t.requirementTextColor}; + } + .reqLabelBox { + fill: ${t.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + .relationshipLine { + stroke: ${t.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${t.relationLabelColor}; + } + +`,"getStyles"),Mue=Wze});var cO,qze,uO,Oue=R(()=>{"use strict";cO={CONTAINS:"contains",ARROW:"arrow"},qze=o((t,e)=>{let r=t.append("defs").append("marker").attr("id",cO.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");r.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),r.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),r.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",cO.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${e.line_height},${e.line_height/2} + M${e.line_height},${e.line_height/2} + L0,${e.line_height}`).attr("stroke-width",1)},"insertLineEndings"),uO={ReqMarkers:cO,insertLineEndings:qze}});var ai,Pue,Bue,Fue,zue,Xze,jze,Kze,Qze,Zze,Jze,Og,eGe,Gue,$ue=R(()=>{"use strict";Zt();Vd();ya();_t();ut();Yn();rr();Oue();ai={},Pue=0,Bue=o((t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",ai.rect_min_width+"px").attr("height",ai.rect_min_height+"px"),"newRectNode"),Fue=o((t,e,r)=>{let n=ai.rect_min_width/2,i=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",n).attr("y",ai.rect_padding).attr("dominant-baseline","hanging"),a=0;r.forEach(h=>{a==0?i.append("tspan").attr("text-anchor","middle").attr("x",ai.rect_min_width/2).attr("dy",0).text(h):i.append("tspan").attr("text-anchor","middle").attr("x",ai.rect_min_width/2).attr("dy",ai.line_height*.75).text(h),a++});let s=1.5*ai.rect_padding,l=a*ai.line_height*.75,u=s+l;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",ai.rect_min_width).attr("y1",u).attr("y2",u),{titleNode:i,y:u}},"newTitleNode"),zue=o((t,e,r,n)=>{let i=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",ai.rect_padding).attr("y",n).attr("dominant-baseline","hanging"),a=0,s=30,l=[];return r.forEach(u=>{let h=u.length;for(;h>s&&a<3;){let f=u.substring(0,s);u=u.substring(s,u.length),h=u.length,l[l.length]=f,a++}if(a==3){let f=l[l.length-1];l[l.length-1]=f.substring(0,f.length-4)+"..."}else l[l.length]=u;a=0}),l.forEach(u=>{i.append("tspan").attr("x",ai.rect_padding).attr("dy",ai.line_height).text(u)}),i},"newBodyNode"),Xze=o((t,e,r,n)=>{let i=e.node().getTotalLength(),a=e.node().getPointAtLength(i*.5),s="rel"+Pue;Pue++;let u=t.append("text").attr("class","req relationshipLabel").attr("id",s).attr("x",a.x).attr("y",a.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n).node().getBBox();t.insert("rect","#"+s).attr("class","req reqLabelBox").attr("x",a.x-u.width/2).attr("y",a.y-u.height/2).attr("width",u.width).attr("height",u.height).attr("fill","white").attr("fill-opacity","85%")},"addEdgeLabel"),jze=o(function(t,e,r,n,i){let a=r.edge(Og(e.src),Og(e.dst)),s=ha().x(function(u){return u.x}).y(function(u){return u.y}),l=t.insert("path","#"+n).attr("class","er relationshipLine").attr("d",s(a.points)).attr("fill","none");e.type==i.db.Relationships.CONTAINS?l.attr("marker-start","url("+We.getUrl(ai.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(l.attr("stroke-dasharray","10,7"),l.attr("marker-end","url("+We.getUrl(ai.arrowMarkerAbsolute)+"#"+uO.ReqMarkers.ARROW+"_line_ending)")),Xze(t,l,ai,`<<${e.type}>>`)},"drawRelationshipFromLayout"),Kze=o((t,e,r)=>{t.forEach((n,i)=>{i=Og(i),V.info("Added new requirement: ",i);let a=r.append("g").attr("id",i),s="req-"+i,l=Bue(a,s),u=[],h=Fue(a,i+"_title",[`<<${n.type}>>`,`${n.name}`]);u.push(h.titleNode);let f=zue(a,i+"_body",[`Id: ${n.id}`,`Text: ${n.text}`,`Risk: ${n.risk}`,`Verification: ${n.verifyMethod}`],h.y);u.push(f);let d=l.node().getBBox();e.setNode(i,{width:d.width,height:d.height,shape:"rect",id:i})})},"drawReqs"),Qze=o((t,e,r)=>{t.forEach((n,i)=>{let a=Og(i),s=r.append("g").attr("id",a),l="element-"+a,u=Bue(s,l),h=[],f=Fue(s,l+"_title",["<>",`${i}`]);h.push(f.titleNode);let d=zue(s,l+"_body",[`Type: ${n.type||"Not Specified"}`,`Doc Ref: ${n.docRef||"None"}`],f.y);h.push(d);let p=u.node().getBBox();e.setNode(a,{width:p.width,height:p.height,shape:"rect",id:a})})},"drawElements"),Zze=o((t,e)=>(t.forEach(function(r){let n=Og(r.src),i=Og(r.dst);e.setEdge(n,i,{relationship:r})}),t),"addRelationships"),Jze=o(function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&(t.select("#"+r),t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )"))})},"adjustEntities"),Og=o(t=>t.replace(/\s/g,"").replace(/\./g,"_"),"elementString"),eGe=o((t,e,r,n)=>{ai=de().requirement;let i=ai.securityLevel,a;i==="sandbox"&&(a=$e("#i"+e));let l=(i==="sandbox"?$e(a.nodes()[0].contentDocument.body):$e("body")).select(`[id='${e}']`);uO.insertLineEndings(l,ai);let u=new lr({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:ai.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}}),h=n.db.getRequirements(),f=n.db.getElements(),d=n.db.getRelationships();Kze(h,u,l),Qze(f,u,l),Zze(d,u),lo(u),Jze(l,u),d.forEach(function(v){jze(l,v,u,e,n)});let p=ai.rect_padding,m=l.node().getBBox(),g=m.width+p*2,y=m.height+p*2;Sr(l,y,g,ai.useMaxWidth),l.attr("viewBox",`${m.x-p} ${m.y-p} ${g} ${y}`)},"draw"),Gue={draw:eGe}});var Vue={};hr(Vue,{diagram:()=>tGe});var tGe,Uue=R(()=>{"use strict";Due();Nue();Iue();$ue();tGe={parser:Lue,db:Rue,renderer:Gue,styles:Mue}});var hO,Wue,que=R(()=>{"use strict";hO=function(){var t=o(function(H,q,K,se){for(K=K||{},se=H.length;se--;K[H[se]]=q);return K},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,13],u=[1,14],h=[1,16],f=[1,17],d=[1,18],p=[1,24],m=[1,25],g=[1,26],y=[1,27],v=[1,28],x=[1,29],b=[1,30],w=[1,31],S=[1,32],T=[1,33],E=[1,34],_=[1,35],A=[1,36],L=[1,37],M=[1,38],N=[1,39],k=[1,41],I=[1,42],C=[1,43],O=[1,44],D=[1,45],P=[1,46],F=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],B=[4,5,16,50,52,53],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],z=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],Y=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Q=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],X=[68,69,70],ie=[1,122],j={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:o(function(q,K,se,ce,ue,te,De){var oe=te.length-1;switch(ue){case 3:return ce.apply(te[oe]),te[oe];break;case 4:case 9:this.$=[];break;case 5:case 10:te[oe-1].push(te[oe]),this.$=te[oe-1];break;case 6:case 7:case 11:case 12:this.$=te[oe];break;case 8:case 13:this.$=[];break;case 15:te[oe].type="createParticipant",this.$=te[oe];break;case 16:te[oe-1].unshift({type:"boxStart",boxData:ce.parseBoxData(te[oe-2])}),te[oe-1].push({type:"boxEnd",boxText:te[oe-2]}),this.$=te[oe-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(te[oe-2]),sequenceIndexStep:Number(te[oe-1]),sequenceVisible:!0,signalType:ce.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(te[oe-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:ce.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:ce.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:ce.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:ce.LINETYPE.ACTIVE_START,actor:te[oe-1].actor};break;case 23:this.$={type:"activeEnd",signalType:ce.LINETYPE.ACTIVE_END,actor:te[oe-1].actor};break;case 29:ce.setDiagramTitle(te[oe].substring(6)),this.$=te[oe].substring(6);break;case 30:ce.setDiagramTitle(te[oe].substring(7)),this.$=te[oe].substring(7);break;case 31:this.$=te[oe].trim(),ce.setAccTitle(this.$);break;case 32:case 33:this.$=te[oe].trim(),ce.setAccDescription(this.$);break;case 34:te[oe-1].unshift({type:"loopStart",loopText:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.LOOP_START}),te[oe-1].push({type:"loopEnd",loopText:te[oe-2],signalType:ce.LINETYPE.LOOP_END}),this.$=te[oe-1];break;case 35:te[oe-1].unshift({type:"rectStart",color:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.RECT_START}),te[oe-1].push({type:"rectEnd",color:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.RECT_END}),this.$=te[oe-1];break;case 36:te[oe-1].unshift({type:"optStart",optText:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.OPT_START}),te[oe-1].push({type:"optEnd",optText:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.OPT_END}),this.$=te[oe-1];break;case 37:te[oe-1].unshift({type:"altStart",altText:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.ALT_START}),te[oe-1].push({type:"altEnd",signalType:ce.LINETYPE.ALT_END}),this.$=te[oe-1];break;case 38:te[oe-1].unshift({type:"parStart",parText:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.PAR_START}),te[oe-1].push({type:"parEnd",signalType:ce.LINETYPE.PAR_END}),this.$=te[oe-1];break;case 39:te[oe-1].unshift({type:"parStart",parText:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.PAR_OVER_START}),te[oe-1].push({type:"parEnd",signalType:ce.LINETYPE.PAR_END}),this.$=te[oe-1];break;case 40:te[oe-1].unshift({type:"criticalStart",criticalText:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.CRITICAL_START}),te[oe-1].push({type:"criticalEnd",signalType:ce.LINETYPE.CRITICAL_END}),this.$=te[oe-1];break;case 41:te[oe-1].unshift({type:"breakStart",breakText:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.BREAK_START}),te[oe-1].push({type:"breakEnd",optText:ce.parseMessage(te[oe-2]),signalType:ce.LINETYPE.BREAK_END}),this.$=te[oe-1];break;case 43:this.$=te[oe-3].concat([{type:"option",optionText:ce.parseMessage(te[oe-1]),signalType:ce.LINETYPE.CRITICAL_OPTION},te[oe]]);break;case 45:this.$=te[oe-3].concat([{type:"and",parText:ce.parseMessage(te[oe-1]),signalType:ce.LINETYPE.PAR_AND},te[oe]]);break;case 47:this.$=te[oe-3].concat([{type:"else",altText:ce.parseMessage(te[oe-1]),signalType:ce.LINETYPE.ALT_ELSE},te[oe]]);break;case 48:te[oe-3].draw="participant",te[oe-3].type="addParticipant",te[oe-3].description=ce.parseMessage(te[oe-1]),this.$=te[oe-3];break;case 49:te[oe-1].draw="participant",te[oe-1].type="addParticipant",this.$=te[oe-1];break;case 50:te[oe-3].draw="actor",te[oe-3].type="addParticipant",te[oe-3].description=ce.parseMessage(te[oe-1]),this.$=te[oe-3];break;case 51:te[oe-1].draw="actor",te[oe-1].type="addParticipant",this.$=te[oe-1];break;case 52:te[oe-1].type="destroyParticipant",this.$=te[oe-1];break;case 53:this.$=[te[oe-1],{type:"addNote",placement:te[oe-2],actor:te[oe-1].actor,text:te[oe]}];break;case 54:te[oe-2]=[].concat(te[oe-1],te[oe-1]).slice(0,2),te[oe-2][0]=te[oe-2][0].actor,te[oe-2][1]=te[oe-2][1].actor,this.$=[te[oe-1],{type:"addNote",placement:ce.PLACEMENT.OVER,actor:te[oe-2].slice(0,2),text:te[oe]}];break;case 55:this.$=[te[oe-1],{type:"addLinks",actor:te[oe-1].actor,text:te[oe]}];break;case 56:this.$=[te[oe-1],{type:"addALink",actor:te[oe-1].actor,text:te[oe]}];break;case 57:this.$=[te[oe-1],{type:"addProperties",actor:te[oe-1].actor,text:te[oe]}];break;case 58:this.$=[te[oe-1],{type:"addDetails",actor:te[oe-1].actor,text:te[oe]}];break;case 61:this.$=[te[oe-2],te[oe]];break;case 62:this.$=te[oe];break;case 63:this.$=ce.PLACEMENT.LEFTOF;break;case 64:this.$=ce.PLACEMENT.RIGHTOF;break;case 65:this.$=[te[oe-4],te[oe-1],{type:"addMessage",from:te[oe-4].actor,to:te[oe-1].actor,signalType:te[oe-3],msg:te[oe],activate:!0},{type:"activeStart",signalType:ce.LINETYPE.ACTIVE_START,actor:te[oe-1].actor}];break;case 66:this.$=[te[oe-4],te[oe-1],{type:"addMessage",from:te[oe-4].actor,to:te[oe-1].actor,signalType:te[oe-3],msg:te[oe]},{type:"activeEnd",signalType:ce.LINETYPE.ACTIVE_END,actor:te[oe-4].actor}];break;case 67:this.$=[te[oe-3],te[oe-1],{type:"addMessage",from:te[oe-3].actor,to:te[oe-1].actor,signalType:te[oe-2],msg:te[oe]}];break;case 68:this.$={type:"addParticipant",actor:te[oe]};break;case 69:this.$=ce.LINETYPE.SOLID_OPEN;break;case 70:this.$=ce.LINETYPE.DOTTED_OPEN;break;case 71:this.$=ce.LINETYPE.SOLID;break;case 72:this.$=ce.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=ce.LINETYPE.DOTTED;break;case 74:this.$=ce.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=ce.LINETYPE.SOLID_CROSS;break;case 76:this.$=ce.LINETYPE.DOTTED_CROSS;break;case 77:this.$=ce.LINETYPE.SOLID_POINT;break;case 78:this.$=ce.LINETYPE.DOTTED_POINT;break;case 79:this.$=ce.parseMessage(te[oe].trim().substring(1));break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},t(F,[2,5]),{9:47,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},t(F,[2,7]),t(F,[2,8]),t(F,[2,14]),{12:48,50:L,52:M,53:N},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:P},{22:55,70:P},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(F,[2,29]),t(F,[2,30]),{32:[1,61]},{34:[1,62]},t(F,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:P},{22:72,70:P},{22:73,70:P},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:P},{22:90,70:P},{22:91,70:P},{22:92,70:P},t([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),t(F,[2,6]),t(F,[2,15]),t(B,[2,9],{10:93}),t(F,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},t(F,[2,21]),{5:[1,97]},{5:[1,98]},t(F,[2,24]),t(F,[2,25]),t(F,[2,26]),t(F,[2,27]),t(F,[2,28]),t(F,[2,31]),t(F,[2,32]),t($,i,{7:99}),t($,i,{7:100}),t($,i,{7:101}),t(z,i,{40:102,7:103}),t(Y,i,{42:104,7:105}),t(Y,i,{7:105,42:106}),t(Q,i,{45:107,7:108}),t($,i,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:P},t(X,[2,69]),t(X,[2,70]),t(X,[2,71]),t(X,[2,72]),t(X,[2,73]),t(X,[2,74]),t(X,[2,75]),t(X,[2,76]),t(X,[2,77]),t(X,[2,78]),{22:118,70:P},{22:120,58:119,70:P},{70:[2,63]},{70:[2,64]},{56:121,81:ie},{56:123,81:ie},{56:124,81:ie},{56:125,81:ie},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:L,52:M,53:N},{5:[1,131]},t(F,[2,19]),t(F,[2,20]),t(F,[2,22]),t(F,[2,23]),{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,132],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,133],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,134],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{16:[1,135]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,46],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,49:[1,136],50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{16:[1,137]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,44],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,48:[1,138],50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{16:[1,139]},{16:[1,140]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,42],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,47:[1,141],50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,142],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{15:[1,143]},t(F,[2,49]),{15:[1,144]},t(F,[2,51]),t(F,[2,52]),{22:145,70:P},{22:146,70:P},{56:147,81:ie},{56:148,81:ie},{56:149,81:ie},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(F,[2,16]),t(B,[2,10]),{12:151,50:L,52:M,53:N},t(B,[2,12]),t(B,[2,13]),t(F,[2,18]),t(F,[2,34]),t(F,[2,35]),t(F,[2,36]),t(F,[2,37]),{15:[1,152]},t(F,[2,38]),{15:[1,153]},t(F,[2,39]),t(F,[2,40]),{15:[1,154]},t(F,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:ie},{56:158,81:ie},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:P},t(B,[2,11]),t(z,i,{7:103,40:160}),t(Y,i,{7:105,42:161}),t(Q,i,{7:108,45:162}),t(F,[2,48]),t(F,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:o(function(q,K){if(K.recoverable)this.trace(q);else{var se=new Error(q);throw se.hash=K,se}},"parseError"),parse:o(function(q){var K=this,se=[0],ce=[],ue=[null],te=[],De=this.table,oe="",ke=0,Ie=0,Se=0,Ue=2,Pe=1,_e=te.slice.call(arguments,1),me=Object.create(this.lexer),W={yy:{}};for(var fe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,fe)&&(W.yy[fe]=this.yy[fe]);me.setInput(q,W.yy),W.yy.lexer=me,W.yy.parser=this,typeof me.yylloc>"u"&&(me.yylloc={});var ge=me.yylloc;te.push(ge);var re=me.options&&me.options.ranges;typeof W.yy.parseError=="function"?this.parseError=W.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function he(yt){se.length=se.length-2*yt,ue.length=ue.length-yt,te.length=te.length-yt}o(he,"popStack");function ne(){var yt;return yt=ce.pop()||me.lex()||Pe,typeof yt!="number"&&(yt instanceof Array&&(ce=yt,yt=ce.pop()),yt=K.symbols_[yt]||yt),yt}o(ne,"lex");for(var ae,we,Te,Ce,Ae,Ge,Me={},ye,He,ze,Ze;;){if(Te=se[se.length-1],this.defaultActions[Te]?Ce=this.defaultActions[Te]:((ae===null||typeof ae>"u")&&(ae=ne()),Ce=De[Te]&&De[Te][ae]),typeof Ce>"u"||!Ce.length||!Ce[0]){var gt="";Ze=[];for(ye in De[Te])this.terminals_[ye]&&ye>Ue&&Ze.push("'"+this.terminals_[ye]+"'");me.showPosition?gt="Parse error on line "+(ke+1)+`: +`+me.showPosition()+` +Expecting `+Ze.join(", ")+", got '"+(this.terminals_[ae]||ae)+"'":gt="Parse error on line "+(ke+1)+": Unexpected "+(ae==Pe?"end of input":"'"+(this.terminals_[ae]||ae)+"'"),this.parseError(gt,{text:me.match,token:this.terminals_[ae]||ae,line:me.yylineno,loc:ge,expected:Ze})}if(Ce[0]instanceof Array&&Ce.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Te+", token: "+ae);switch(Ce[0]){case 1:se.push(ae),ue.push(me.yytext),te.push(me.yylloc),se.push(Ce[1]),ae=null,we?(ae=we,we=null):(Ie=me.yyleng,oe=me.yytext,ke=me.yylineno,ge=me.yylloc,Se>0&&Se--);break;case 2:if(He=this.productions_[Ce[1]][1],Me.$=ue[ue.length-He],Me._$={first_line:te[te.length-(He||1)].first_line,last_line:te[te.length-1].last_line,first_column:te[te.length-(He||1)].first_column,last_column:te[te.length-1].last_column},re&&(Me._$.range=[te[te.length-(He||1)].range[0],te[te.length-1].range[1]]),Ge=this.performAction.apply(Me,[oe,Ie,ke,W.yy,Ce[1],ue,te].concat(_e)),typeof Ge<"u")return Ge;He&&(se=se.slice(0,-1*He*2),ue=ue.slice(0,-1*He),te=te.slice(0,-1*He)),se.push(this.productions_[Ce[1]][0]),ue.push(Me.$),te.push(Me._$),ze=De[se[se.length-2]][se[se.length-1]],se.push(ze);break;case 3:return!0}}return!0},"parse")},J=function(){var H={EOF:1,parseError:o(function(K,se){if(this.yy.parser)this.yy.parser.parseError(K,se);else throw new Error(K)},"parseError"),setInput:o(function(q,K){return this.yy=K||this.yy||{},this._input=q,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var q=this._input[0];this.yytext+=q,this.yyleng++,this.offset++,this.match+=q,this.matched+=q;var K=q.match(/(?:\r\n?|\n).*/g);return K?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),q},"input"),unput:o(function(q){var K=q.length,se=q.split(/(?:\r\n?|\n)/g);this._input=q+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-K),this.offset-=K;var ce=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),se.length-1&&(this.yylineno-=se.length-1);var ue=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:se?(se.length===ce.length?this.yylloc.first_column:0)+ce[ce.length-se.length].length-se[0].length:this.yylloc.first_column-K},this.options.ranges&&(this.yylloc.range=[ue[0],ue[0]+this.yyleng-K]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(q){this.unput(this.match.slice(q))},"less"),pastInput:o(function(){var q=this.matched.substr(0,this.matched.length-this.match.length);return(q.length>20?"...":"")+q.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var q=this.match;return q.length<20&&(q+=this._input.substr(0,20-q.length)),(q.substr(0,20)+(q.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var q=this.pastInput(),K=new Array(q.length+1).join("-");return q+this.upcomingInput()+` +`+K+"^"},"showPosition"),test_match:o(function(q,K){var se,ce,ue;if(this.options.backtrack_lexer&&(ue={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ue.yylloc.range=this.yylloc.range.slice(0))),ce=q[0].match(/(?:\r\n?|\n).*/g),ce&&(this.yylineno+=ce.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ce?ce[ce.length-1].length-ce[ce.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+q[0].length},this.yytext+=q[0],this.match+=q[0],this.matches=q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(q[0].length),this.matched+=q[0],se=this.performAction.call(this,this.yy,this,K,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),se)return se;if(this._backtrack){for(var te in ue)this[te]=ue[te];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var q,K,se,ce;this._more||(this.yytext="",this.match="");for(var ue=this._currentRules(),te=0;teK[0].length)){if(K=se,ce=te,this.options.backtrack_lexer){if(q=this.test_match(se,ue[te]),q!==!1)return q;if(this._backtrack){K=!1;continue}else return!1}else if(!this.options.flex)break}return K?(q=this.test_match(K,ue[ce]),q!==!1?q:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var K=this.next();return K||this.lex()},"lex"),begin:o(function(K){this.conditionStack.push(K)},"begin"),popState:o(function(){var K=this.conditionStack.length-1;return K>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(K){return K=this.conditionStack.length-1-Math.abs(K||0),K>=0?this.conditionStack[K]:"INITIAL"},"topState"),pushState:o(function(K){this.begin(K)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(K,se,ce,ue){var te=ue;switch(ce){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;break;case 8:return this.begin("ID"),50;break;case 9:return this.begin("ID"),52;break;case 10:return 13;case 11:return this.begin("ID"),53;break;case 12:return se.yytext=se.yytext.trim(),this.begin("ALIAS"),70;break;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;break;case 14:return this.popState(),this.popState(),5;break;case 15:return this.begin("LINE"),36;break;case 16:return this.begin("LINE"),37;break;case 17:return this.begin("LINE"),38;break;case 18:return this.begin("LINE"),39;break;case 19:return this.begin("LINE"),49;break;case 20:return this.begin("LINE"),41;break;case 21:return this.begin("LINE"),43;break;case 22:return this.begin("LINE"),48;break;case 23:return this.begin("LINE"),44;break;case 24:return this.begin("LINE"),47;break;case 25:return this.begin("LINE"),46;break;case 26:return this.popState(),15;break;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;break;case 37:return this.begin("ID"),23;break;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;break;case 41:return this.popState(),"acc_title_value";break;case 42:return this.begin("acc_descr"),33;break;case 43:return this.popState(),"acc_descr_value";break;case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return se.yytext=se.yytext.trim(),70;break;case 53:return 73;case 54:return 74;case 55:return 75;case 56:return 76;case 57:return 71;case 58:return 72;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 80;case 63:return 81;case 64:return 68;case 65:return 69;case 66:return 5;case 67:return"INVALID"}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\<->\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};return H}();j.lexer=J;function Z(){this.yy={}}return o(Z,"Parser"),Z.prototype=j,j.Parser=Z,new Z}();hO.parser=hO;Wue=hO});function dO(t,e){if(t.links==null)t.links=e;else for(let r in e)t.links[r]=e[r]}function Zue(t,e){if(t.properties==null)t.properties=e;else for(let r in e)t.properties[r]=e[r]}function SGe(){Mt.records.currentBox=void 0}var Mt,aGe,fO,sGe,oGe,pi,lGe,cGe,uGe,hGe,fGe,dGe,pGe,xx,mGe,gGe,yGe,vGe,xGe,Xue,A0,bGe,wGe,TGe,vx,kGe,EGe,jue,Kue,CGe,Que,Jue,AGe,ehe,pO,the=R(()=>{"use strict";_t();ut();Jk();rr();bi();Mt=new uf(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),aGe=o(function(t){Mt.records.boxes.push({name:t.text,wrap:t.wrap??A0(),fill:t.color,actorKeys:[]}),Mt.records.currentBox=Mt.records.boxes.slice(-1)[0]},"addBox"),fO=o(function(t,e,r,n){let i=Mt.records.currentBox,a=Mt.records.actors.get(t);if(a){if(Mt.records.currentBox&&a.box&&Mt.records.currentBox!==a.box)throw new Error(`A same participant should only be defined in one Box: ${a.name} can't be in '${a.box.name}' and in '${Mt.records.currentBox.name}' at the same time.`);if(i=a.box?a.box:Mt.records.currentBox,a.box=i,a&&e===a.name&&r==null)return}if(r?.text==null&&(r={text:e,type:n}),(n==null||r.text==null)&&(r={text:e,type:n}),Mt.records.actors.set(t,{box:i,name:e,description:r.text,wrap:r.wrap??A0(),prevActor:Mt.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:n??"participant"}),Mt.records.prevActor){let s=Mt.records.actors.get(Mt.records.prevActor);s&&(s.nextActor=t)}Mt.records.currentBox&&Mt.records.currentBox.actorKeys.push(t),Mt.records.prevActor=t},"addActor"),sGe=o(t=>{let e,r=0;if(!t)return 0;for(e=0;e>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},s}return Mt.records.messages.push({from:t,to:e,message:r?.text??"",wrap:r?.wrap??A0(),type:n,activate:i}),!0},"addSignal"),lGe=o(function(){return Mt.records.boxes.length>0},"hasAtLeastOneBox"),cGe=o(function(){return Mt.records.boxes.some(t=>t.name)},"hasAtLeastOneBoxWithTitle"),uGe=o(function(){return Mt.records.messages},"getMessages"),hGe=o(function(){return Mt.records.boxes},"getBoxes"),fGe=o(function(){return Mt.records.actors},"getActors"),dGe=o(function(){return Mt.records.createdActors},"getCreatedActors"),pGe=o(function(){return Mt.records.destroyedActors},"getDestroyedActors"),xx=o(function(t){return Mt.records.actors.get(t)},"getActor"),mGe=o(function(){return[...Mt.records.actors.keys()]},"getActorKeys"),gGe=o(function(){Mt.records.sequenceNumbersEnabled=!0},"enableSequenceNumbers"),yGe=o(function(){Mt.records.sequenceNumbersEnabled=!1},"disableSequenceNumbers"),vGe=o(()=>Mt.records.sequenceNumbersEnabled,"showSequenceNumbers"),xGe=o(function(t){Mt.records.wrapEnabled=t},"setWrap"),Xue=o(t=>{if(t===void 0)return{};t=t.trim();let e=/^:?wrap:/.exec(t)!==null?!0:/^:?nowrap:/.exec(t)!==null?!1:void 0;return{cleanedText:(e===void 0?t:t.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:e}},"extractWrap"),A0=o(()=>Mt.records.wrapEnabled!==void 0?Mt.records.wrapEnabled:de().sequence?.wrap??!1,"autoWrap"),bGe=o(function(){Mt.reset(),vr()},"clear"),wGe=o(function(t){let e=t.trim(),{wrap:r,cleanedText:n}=Xue(e),i={text:n,wrap:r};return V.debug(`parseMessage: ${JSON.stringify(i)}`),i},"parseMessage"),TGe=o(function(t){let e=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(t),r=e?.[1]?e[1].trim():"transparent",n=e?.[2]?e[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",r)||(r="transparent",n=t.trim());else{let s=new Option().style;s.color=r,s.color!==r&&(r="transparent",n=t.trim())}let{wrap:i,cleanedText:a}=Xue(n);return{text:a?qr(a,de()):void 0,color:r,wrap:i}},"parseBoxData"),vx={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},kGe={FILLED:0,OPEN:1},EGe={LEFTOF:0,RIGHTOF:1,OVER:2},jue=o(function(t,e,r){let n={actor:t,placement:e,message:r.text,wrap:r.wrap??A0()},i=[].concat(t,t);Mt.records.notes.push(n),Mt.records.messages.push({from:i[0],to:i[1],message:r.text,wrap:r.wrap??A0(),type:vx.NOTE,placement:e})},"addNote"),Kue=o(function(t,e){let r=xx(t);try{let n=qr(e.text,de());n=n.replace(/&/g,"&"),n=n.replace(/=/g,"=");let i=JSON.parse(n);dO(r,i)}catch(n){V.error("error while parsing actor link text",n)}},"addLinks"),CGe=o(function(t,e){let r=xx(t);try{let n={},i=qr(e.text,de()),a=i.indexOf("@");i=i.replace(/&/g,"&"),i=i.replace(/=/g,"=");let s=i.slice(0,a-1).trim(),l=i.slice(a+1).trim();n[s]=l,dO(r,n)}catch(n){V.error("error while parsing actor link text",n)}},"addALink");o(dO,"insertLinks");Que=o(function(t,e){let r=xx(t);try{let n=qr(e.text,de()),i=JSON.parse(n);Zue(r,i)}catch(n){V.error("error while parsing actor properties text",n)}},"addProperties");o(Zue,"insertProperties");o(SGe,"boxEnd");Jue=o(function(t,e){let r=xx(t),n=document.getElementById(e.text);try{let i=n.innerHTML,a=JSON.parse(i);a.properties&&Zue(r,a.properties),a.links&&dO(r,a.links)}catch(i){V.error("error while parsing actor details text",i)}},"addDetails"),AGe=o(function(t,e){if(t?.properties!==void 0)return t.properties[e]},"getActorProperty"),ehe=o(function(t){if(Array.isArray(t))t.forEach(function(e){ehe(e)});else switch(t.type){case"sequenceIndex":Mt.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":fO(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(Mt.records.actors.has(t.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");Mt.records.lastCreated=t.actor,fO(t.actor,t.actor,t.description,t.draw),Mt.records.createdActors.set(t.actor,Mt.records.messages.length);break;case"destroyParticipant":Mt.records.lastDestroyed=t.actor,Mt.records.destroyedActors.set(t.actor,Mt.records.messages.length);break;case"activeStart":pi(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":pi(t.actor,void 0,void 0,t.signalType);break;case"addNote":jue(t.actor,t.placement,t.text);break;case"addLinks":Kue(t.actor,t.text);break;case"addALink":CGe(t.actor,t.text);break;case"addProperties":Que(t.actor,t.text);break;case"addDetails":Jue(t.actor,t.text);break;case"addMessage":if(Mt.records.lastCreated){if(t.to!==Mt.records.lastCreated)throw new Error("The created participant "+Mt.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");Mt.records.lastCreated=void 0}else if(Mt.records.lastDestroyed){if(t.to!==Mt.records.lastDestroyed&&t.from!==Mt.records.lastDestroyed)throw new Error("The destroyed participant "+Mt.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");Mt.records.lastDestroyed=void 0}pi(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":aGe(t.boxData);break;case"boxEnd":SGe();break;case"loopStart":pi(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":pi(void 0,void 0,void 0,t.signalType);break;case"rectStart":pi(void 0,void 0,t.color,t.signalType);break;case"rectEnd":pi(void 0,void 0,void 0,t.signalType);break;case"optStart":pi(void 0,void 0,t.optText,t.signalType);break;case"optEnd":pi(void 0,void 0,void 0,t.signalType);break;case"altStart":pi(void 0,void 0,t.altText,t.signalType);break;case"else":pi(void 0,void 0,t.altText,t.signalType);break;case"altEnd":pi(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":kr(t.text);break;case"parStart":pi(void 0,void 0,t.parText,t.signalType);break;case"and":pi(void 0,void 0,t.parText,t.signalType);break;case"parEnd":pi(void 0,void 0,void 0,t.signalType);break;case"criticalStart":pi(void 0,void 0,t.criticalText,t.signalType);break;case"option":pi(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":pi(void 0,void 0,void 0,t.signalType);break;case"breakStart":pi(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":pi(void 0,void 0,void 0,t.signalType);break}},"apply"),pO={addActor:fO,addMessage:oGe,addSignal:pi,addLinks:Kue,addDetails:Jue,addProperties:Que,autoWrap:A0,setWrap:xGe,enableSequenceNumbers:gGe,disableSequenceNumbers:yGe,showSequenceNumbers:vGe,getMessages:uGe,getActors:fGe,getCreatedActors:dGe,getDestroyedActors:pGe,getActor:xx,getActorKeys:mGe,getActorProperty:AGe,getAccTitle:Ar,getBoxes:hGe,getDiagramTitle:Xr,setDiagramTitle:nn,getConfig:o(()=>de().sequence,"getConfig"),clear:bGe,parseMessage:wGe,parseBoxData:TGe,LINETYPE:vx,ARROWTYPE:kGe,PLACEMENT:EGe,addNote:jue,setAccTitle:kr,apply:ehe,setAccDescription:_r,getAccDescription:Lr,hasAtLeastOneBox:lGe,hasAtLeastOneBoxWithTitle:cGe}});var _Ge,rhe,nhe=R(()=>{"use strict";_Ge=o(t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`,"getStyles"),rhe=_Ge});var mO,gf,ahe,she,LGe,ihe,gO,DGe,RGe,bx,_0,ohe,Bc,yO,NGe,MGe,IGe,OGe,PGe,BGe,FGe,lhe,zGe,GGe,$Ge,VGe,UGe,HGe,YGe,che,WGe,vO,qGe,si,uhe=R(()=>{"use strict";rr();Qy();xr();mO=Xi(Up(),1);qs();gf=18*2,ahe="actor-top",she="actor-bottom",LGe="actor-box",ihe="actor-man",gO=o(function(t,e){return yd(t,e)},"drawRect"),DGe=o(function(t,e,r,n,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};let a=e.links,s=e.actorCnt,l=e.rectData;var u="none";i&&(u="block !important");let h=t.append("g");h.attr("id","actor"+s+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",u);var f="";l.class!==void 0&&(f=" "+l.class);let d=l.width>r?l.width:r,p=h.append("rect");if(p.attr("class","actorPopupMenuPanel"+f),p.attr("x",l.x),p.attr("y",l.height),p.attr("fill",l.fill),p.attr("stroke",l.stroke),p.attr("width",d),p.attr("height",l.height),p.attr("rx",l.rx),p.attr("ry",l.ry),a!=null){var m=20;for(let v in a){var g=h.append("a"),y=(0,mO.sanitizeUrl)(a[v]);g.attr("xlink:href",y),g.attr("target","_blank"),qGe(n)(v,g,l.x+10,l.height+m,d,20,{class:"actor"},n),m+=30}}return p.attr("height",m),{height:l.height+m,width:d}},"drawPopup"),RGe=o(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),bx=o(async function(t,e,r=null){let n=t.append("foreignObject"),i=await yh(e.text,Or()),s=n.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(n.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),e.class==="noteText"){let l=t.node().firstChild;l.setAttribute("height",s.height+2*e.textMargin);let u=l.getBBox();n.attr("x",Math.round(u.x+u.width/2-s.width/2)).attr("y",Math.round(u.y+u.height/2-s.height/2))}else if(r){let{startx:l,stopx:u,starty:h}=r;if(l>u){let f=l;l=u,u=f}n.attr("x",Math.round(l+Math.abs(l-u)/2-s.width/2)),e.class==="loopText"?n.attr("y",Math.round(h)):n.attr("y",Math.round(h-s.height))}return[n]},"drawKatex"),_0=o(function(t,e){let r=0,n=0,i=e.text.split(We.lineBreakRegex),[a,s]=mc(e.fontSize),l=[],u=0,h=o(()=>e.y,"yfunc");if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":h=o(()=>Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":h=o(()=>Math.round(e.y+(r+n+e.textMargin)/2),"yfunc");break;case"bottom":case"end":h=o(()=>Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin),"yfunc");break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[f,d]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(u=f*a);let p=t.append("text");p.attr("x",e.x),p.attr("y",h()),e.anchor!==void 0&&p.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&p.style("font-family",e.fontFamily),s!==void 0&&p.style("font-size",s),e.fontWeight!==void 0&&p.style("font-weight",e.fontWeight),e.fill!==void 0&&p.attr("fill",e.fill),e.class!==void 0&&p.attr("class",e.class),e.dy!==void 0?p.attr("dy",e.dy):u!==0&&p.attr("dy",u);let m=d||K_;if(e.tspan){let g=p.append("tspan");g.attr("x",e.x),e.fill!==void 0&&g.attr("fill",e.fill),g.text(m)}else p.text(m);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(n+=(p._groups||p)[0][0].getBBox().height,r=n),l.push(p)}return l},"drawText"),ohe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");return n.attr("points",r(e.x,e.y,e.width,e.height,7)),n.attr("class","labelBox"),e.y=e.y+e.height/2,_0(t,e),n},"drawLabel"),Bc=-1,yO=o((t,e,r,n)=>{t.select&&r.forEach(i=>{let a=e.get(i),s=t.select("#actor"+a.actorCnt);!n.mirrorActors&&a.stopy?s.attr("y2",a.stopy+a.height/2):n.mirrorActors&&s.attr("y2",a.stopy)})},"fixLifeLineHeights"),NGe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+5,l=t.append("g").lower();var u=l;n||(Bc++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",RGe(`actor${Bc}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Bc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Bc,e.links!=null&&u.attr("id","root-"+Bc));let h=wl();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${she}`:f+=` ${ahe}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.rx=3,h.ry=3,h.name=e.name;let d=gO(u,h);if(e.rectData=h,e.properties?.icon){let m=e.properties.icon.trim();m.charAt(0)==="@"?EW(u,h.x+h.width-20,h.y+10,m.substr(1)):kW(u,h.x+h.width-20,h.y+10,m)}vO(r,Ni(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${LGe}`},r);let p=e.height;if(d.node){let m=d.node().getBBox();e.height=m.height,p=m.height}return p},"drawActorTypeParticipant"),MGe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=t.append("g").lower();n||(Bc++,l.append("line").attr("id","actor"+Bc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Bc);let u=t.append("g"),h=ihe;n?h+=` ${she}`:h+=` ${ahe}`,u.attr("class",h),u.attr("name",e.name);let f=wl();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor",f.rx=3,f.ry=3,u.append("line").attr("id","actor-man-torso"+Bc).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),u.append("line").attr("id","actor-man-arms"+Bc).attr("x1",a-gf/2).attr("y1",i+33).attr("x2",a+gf/2).attr("y2",i+33),u.append("line").attr("x1",a-gf/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),u.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+gf/2-2).attr("y2",i+60);let d=u.append("circle");d.attr("cx",e.x+e.width/2),d.attr("cy",i+10),d.attr("r",15),d.attr("width",e.width),d.attr("height",e.height);let p=u.node().getBBox();return e.height=p.height,vO(r,Ni(e.description))(e.description,u,f.x,f.y+35,f.width,f.height,{class:`actor ${ihe}`},r),e.height},"drawActorTypeActor"),IGe=o(async function(t,e,r,n){switch(e.type){case"actor":return await MGe(t,e,r,n);case"participant":return await NGe(t,e,r,n)}},"drawActor"),OGe=o(function(t,e,r){let i=t.append("g");lhe(i,e),e.name&&vO(r)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},r),i.lower()},"drawBox"),PGe=o(function(t){return t.append("g")},"anchorElement"),BGe=o(function(t,e,r,n,i){let a=wl(),s=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=r-e.starty,gO(s,a)},"drawActivation"),FGe=o(async function(t,e,r,n){let{boxMargin:i,boxTextMargin:a,labelBoxHeight:s,labelBoxWidth:l,messageFontFamily:u,messageFontSize:h,messageFontWeight:f}=n,d=t.append("g"),p=o(function(y,v,x,b){return d.append("line").attr("x1",y).attr("y1",v).attr("x2",x).attr("y2",b).attr("class","loopLine")},"drawLoopLine");p(e.startx,e.starty,e.stopx,e.starty),p(e.stopx,e.starty,e.stopx,e.stopy),p(e.startx,e.stopy,e.stopx,e.stopy),p(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(y){p(e.startx,y.y,e.stopx,y.y).style("stroke-dasharray","3, 3")});let m=Ky();m.text=r,m.x=e.startx,m.y=e.starty,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.anchor="middle",m.valign="middle",m.tspan=!1,m.width=l||50,m.height=s||20,m.textMargin=a,m.class="labelText",ohe(d,m),m=che(),m.text=e.title,m.x=e.startx+l/2+(e.stopx-e.startx)/2,m.y=e.starty+i+a,m.anchor="middle",m.valign="middle",m.textMargin=a,m.class="loopText",m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=!0;let g=Ni(m.text)?await bx(d,m,e):_0(d,m);if(e.sectionTitles!==void 0){for(let[y,v]of Object.entries(e.sectionTitles))if(v.message){m.text=v.message,m.x=e.startx+(e.stopx-e.startx)/2,m.y=e.sections[y].y+i+a,m.class="loopText",m.anchor="middle",m.valign="middle",m.tspan=!1,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=e.wrap,Ni(m.text)?(e.starty=e.sections[y].y,await bx(d,m,e)):_0(d,m);let x=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,w)=>b+w));e.sections[y].height+=x-(i+a)}}return e.height=Math.round(e.stopy-e.starty),d},"drawLoop"),lhe=o(function(t,e){j3(t,e)},"drawBackgroundRect"),zGe=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),GGe=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),$Ge=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),VGe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),UGe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),HGe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),YGe=o(function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),che=o(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),WGe=o(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),vO=function(){function t(a,s,l,u,h,f,d){let p=s.append("text").attr("x",l+h/2).attr("y",u+f/2+5).style("text-anchor","middle").text(a);i(p,d)}o(t,"byText");function e(a,s,l,u,h,f,d,p){let{actorFontSize:m,actorFontFamily:g,actorFontWeight:y}=p,[v,x]=mc(m),b=a.split(We.lineBreakRegex);for(let w=0;w{let s=L0(Ne),l=a.actorKeys.reduce((f,d)=>f+=t.get(d).width+(t.get(d).margin||0),0);l-=2*Ne.boxTextMargin,a.wrap&&(a.name=Lt.wrapLabel(a.name,l-2*Ne.wrapPadding,s));let u=Lt.calculateTextDimensions(a.name,s);i=We.getMax(u.height,i);let h=We.getMax(l,u.width+2*Ne.wrapPadding);if(a.margin=Ne.boxTextMargin,la.textMaxHeight=i),We.getMax(n,Ne.height)}var Ne,Ke,XGe,L0,Pg,xO,KGe,QGe,bO,fhe,dhe,bE,hhe,JGe,t$e,n$e,i$e,a$e,phe,mhe=R(()=>{"use strict";Zt();uhe();ut();rr();Qy();_t();cp();xr();Yn();Ne={},Ke={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:o(function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(t=>t.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},"getHeight"),clear:o(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:o(function(t){this.boxes.push(t)},"addBox"),addActor:o(function(t){this.actors.push(t)},"addActor"),addLoop:o(function(t){this.loops.push(t)},"addLoop"),addMessage:o(function(t){this.messages.push(t)},"addMessage"),addNote:o(function(t){this.notes.push(t)},"addNote"),lastActor:o(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:o(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:o(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:o(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:o(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,dhe(de())},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=this,a=0;function s(l){return o(function(h){a++;let f=i.sequenceItems.length-a+1;i.updateVal(h,"starty",e-f*Ne.boxMargin,Math.min),i.updateVal(h,"stopy",n+f*Ne.boxMargin,Math.max),i.updateVal(Ke.data,"startx",t-f*Ne.boxMargin,Math.min),i.updateVal(Ke.data,"stopx",r+f*Ne.boxMargin,Math.max),l!=="activation"&&(i.updateVal(h,"startx",t-f*Ne.boxMargin,Math.min),i.updateVal(h,"stopx",r+f*Ne.boxMargin,Math.max),i.updateVal(Ke.data,"starty",e-f*Ne.boxMargin,Math.min),i.updateVal(Ke.data,"stopy",n+f*Ne.boxMargin,Math.max))},"updateItemBounds")}o(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:o(function(t,e,r,n){let i=We.getMin(t,r),a=We.getMax(t,r),s=We.getMin(e,n),l=We.getMax(e,n);this.updateVal(Ke.data,"startx",i,Math.min),this.updateVal(Ke.data,"starty",s,Math.min),this.updateVal(Ke.data,"stopx",a,Math.max),this.updateVal(Ke.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),newActivation:o(function(t,e,r){let n=r.get(t.from),i=bE(t.from).length||0,a=n.x+n.width/2+(i-1)*Ne.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+Ne.activationWidth,stopy:void 0,actor:t.from,anchored:si.anchorElement(e)})},"newActivation"),endActivation:o(function(t){let e=this.activations.map(function(r){return r.actor}).lastIndexOf(t.from);return this.activations.splice(e,1)[0]},"endActivation"),createLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},"createLoop"),newLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:o(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:o(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:o(function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:Ke.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:o(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:o(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=We.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return{bounds:this.data,models:this.models}},"getBounds")},XGe=o(async function(t,e){Ke.bumpVerticalPos(Ne.boxMargin),e.height=Ne.boxMargin,e.starty=Ke.getVerticalPos();let r=wl();r.x=e.startx,r.y=e.starty,r.width=e.width||Ne.width,r.class="note";let n=t.append("g"),i=si.drawRect(n,r),a=Ky();a.x=e.startx,a.y=e.starty,a.width=r.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=Ne.noteFontFamily,a.fontSize=Ne.noteFontSize,a.fontWeight=Ne.noteFontWeight,a.anchor=Ne.noteAlign,a.textMargin=Ne.noteMargin,a.valign="center";let s=Ni(a.text)?await bx(n,a):_0(n,a),l=Math.round(s.map(u=>(u._groups||u)[0][0].getBBox().height).reduce((u,h)=>u+h));i.attr("height",l+2*Ne.noteMargin),e.height+=l+2*Ne.noteMargin,Ke.bumpVerticalPos(l+2*Ne.noteMargin),e.stopy=e.starty+l+2*Ne.noteMargin,e.stopx=e.startx+r.width,Ke.insert(e.startx,e.starty,e.stopx,e.stopy),Ke.models.addNote(e)},"drawNote"),L0=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),Pg=o(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),xO=o(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont");o(jGe,"boundMessage");KGe=o(async function(t,e,r,n){let{startx:i,stopx:a,starty:s,message:l,type:u,sequenceIndex:h,sequenceVisible:f}=e,d=Lt.calculateTextDimensions(l,L0(Ne)),p=Ky();p.x=i,p.y=s+10,p.width=a-i,p.class="messageText",p.dy="1em",p.text=l,p.fontFamily=Ne.messageFontFamily,p.fontSize=Ne.messageFontSize,p.fontWeight=Ne.messageFontWeight,p.anchor=Ne.messageAlign,p.valign="center",p.textMargin=Ne.wrapPadding,p.tspan=!1,Ni(p.text)?await bx(t,p,{startx:i,stopx:a,starty:r}):_0(t,p);let m=d.width,g;i===a?Ne.rightAngles?g=t.append("path").attr("d",`M ${i},${r} H ${i+We.getMax(Ne.width/2,m/2)} V ${r+25} H ${i}`):g=t.append("path").attr("d","M "+i+","+r+" C "+(i+60)+","+(r-10)+" "+(i+60)+","+(r+30)+" "+i+","+(r+20)):(g=t.append("line"),g.attr("x1",i),g.attr("y1",r),g.attr("x2",a),g.attr("y2",r)),u===n.db.LINETYPE.DOTTED||u===n.db.LINETYPE.DOTTED_CROSS||u===n.db.LINETYPE.DOTTED_POINT||u===n.db.LINETYPE.DOTTED_OPEN||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let y="";Ne.arrowMarkerAbsolute&&(y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,y=y.replace(/\(/g,"\\("),y=y.replace(/\)/g,"\\)")),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),(u===n.db.LINETYPE.SOLID||u===n.db.LINETYPE.DOTTED)&&g.attr("marker-end","url("+y+"#arrowhead)"),(u===n.db.LINETYPE.BIDIRECTIONAL_SOLID||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(g.attr("marker-start","url("+y+"#arrowhead)"),g.attr("marker-end","url("+y+"#arrowhead)")),(u===n.db.LINETYPE.SOLID_POINT||u===n.db.LINETYPE.DOTTED_POINT)&&g.attr("marker-end","url("+y+"#filled-head)"),(u===n.db.LINETYPE.SOLID_CROSS||u===n.db.LINETYPE.DOTTED_CROSS)&&g.attr("marker-end","url("+y+"#crosshead)"),(f||Ne.showSequenceNumbers)&&(g.attr("marker-start","url("+y+"#sequencenumber)"),t.append("text").attr("x",i).attr("y",r+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(h))},"drawMessage"),QGe=o(function(t,e,r,n,i,a,s){let l=0,u=0,h,f=0;for(let d of n){let p=e.get(d),m=p.box;h&&h!=m&&(s||Ke.models.addBox(h),u+=Ne.boxMargin+h.margin),m&&m!=h&&(s||(m.x=l+u,m.y=i),u+=m.margin),p.width=p.width||Ne.width,p.height=We.getMax(p.height||Ne.height,Ne.height),p.margin=p.margin||Ne.actorMargin,f=We.getMax(f,p.height),r.get(p.name)&&(u+=p.width/2),p.x=l+u,p.starty=Ke.getVerticalPos(),Ke.insert(p.x,i,p.x+p.width,p.height),l+=p.width+u,p.box&&(p.box.width=l+m.margin-p.box.x),u=p.margin,h=p.box,Ke.models.addActor(p)}h&&!s&&Ke.models.addBox(h),Ke.bumpVerticalPos(f)},"addActorRenderingData"),bO=o(async function(t,e,r,n){if(n){let i=0;Ke.bumpVerticalPos(Ne.boxMargin*2);for(let a of r){let s=e.get(a);s.stopy||(s.stopy=Ke.getVerticalPos());let l=await si.drawActor(t,s,Ne,!0);i=We.getMax(i,l)}Ke.bumpVerticalPos(i+Ne.boxMargin)}else for(let i of r){let a=e.get(i);await si.drawActor(t,a,Ne,!1)}},"drawActors"),fhe=o(function(t,e,r,n){let i=0,a=0;for(let s of r){let l=e.get(s),u=t$e(l),h=si.drawPopup(t,l,u,Ne,Ne.forceMenus,n);h.height>i&&(i=h.height),h.width+l.x>a&&(a=h.width+l.x)}return{maxHeight:i,maxWidth:a}},"drawActorsPopup"),dhe=o(function(t){On(Ne,t),t.fontFamily&&(Ne.actorFontFamily=Ne.noteFontFamily=Ne.messageFontFamily=t.fontFamily),t.fontSize&&(Ne.actorFontSize=Ne.noteFontSize=Ne.messageFontSize=t.fontSize),t.fontWeight&&(Ne.actorFontWeight=Ne.noteFontWeight=Ne.messageFontWeight=t.fontWeight)},"setConf"),bE=o(function(t){return Ke.activations.filter(function(e){return e.actor===t})},"actorActivations"),hhe=o(function(t,e){let r=e.get(t),n=bE(t),i=n.reduce(function(s,l){return We.getMin(s,l.startx)},r.x+r.width/2-1),a=n.reduce(function(s,l){return We.getMax(s,l.stopx)},r.x+r.width/2+1);return[i,a]},"activationBounds");o(Fc,"adjustLoopHeightForWrap");o(ZGe,"adjustCreatedDestroyedData");JGe=o(async function(t,e,r,n){let{securityLevel:i,sequence:a}=de();Ne=a;let s;i==="sandbox"&&(s=$e("#i"+e));let l=i==="sandbox"?$e(s.nodes()[0].contentDocument.body):$e("body"),u=i==="sandbox"?s.nodes()[0].contentDocument:document;Ke.init(),V.debug(n.db);let h=i==="sandbox"?l.select(`[id="${e}"]`):$e(`[id="${e}"]`),f=n.db.getActors(),d=n.db.getCreatedActors(),p=n.db.getDestroyedActors(),m=n.db.getBoxes(),g=n.db.getActorKeys(),y=n.db.getMessages(),v=n.db.getDiagramTitle(),x=n.db.hasAtLeastOneBox(),b=n.db.hasAtLeastOneBoxWithTitle(),w=await e$e(f,y,n);if(Ne.height=await r$e(f,w,m),si.insertComputerIcon(h),si.insertDatabaseIcon(h),si.insertClockIcon(h),x&&(Ke.bumpVerticalPos(Ne.boxMargin),b&&Ke.bumpVerticalPos(m[0].textMaxHeight)),Ne.hideUnusedParticipants===!0){let F=new Set;y.forEach(B=>{F.add(B.from),F.add(B.to)}),g=g.filter(B=>F.has(B))}QGe(h,f,d,g,0,y,!1);let S=await a$e(y,f,w,n);si.insertArrowHead(h),si.insertArrowCrossHead(h),si.insertArrowFilledHead(h),si.insertSequenceNumber(h);function T(F,B){let $=Ke.endActivation(F);$.starty+18>B&&($.starty=B-6,B+=12),si.drawActivation(h,$,B,Ne,bE(F.from).length),Ke.insert($.startx,B-10,$.stopx,B)}o(T,"activeEnd");let E=1,_=1,A=[],L=[],M=0;for(let F of y){let B,$,z;switch(F.type){case n.db.LINETYPE.NOTE:Ke.resetVerticalPos(),$=F.noteModel,await XGe(h,$);break;case n.db.LINETYPE.ACTIVE_START:Ke.newActivation(F,h,f);break;case n.db.LINETYPE.ACTIVE_END:T(F,Ke.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:Fc(S,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,Y=>Ke.newLoop(Y));break;case n.db.LINETYPE.LOOP_END:B=Ke.endLoop(),await si.drawLoop(h,B,"loop",Ne),Ke.bumpVerticalPos(B.stopy-Ke.getVerticalPos()),Ke.models.addLoop(B);break;case n.db.LINETYPE.RECT_START:Fc(S,F,Ne.boxMargin,Ne.boxMargin,Y=>Ke.newLoop(void 0,Y.message));break;case n.db.LINETYPE.RECT_END:B=Ke.endLoop(),L.push(B),Ke.models.addLoop(B),Ke.bumpVerticalPos(B.stopy-Ke.getVerticalPos());break;case n.db.LINETYPE.OPT_START:Fc(S,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,Y=>Ke.newLoop(Y));break;case n.db.LINETYPE.OPT_END:B=Ke.endLoop(),await si.drawLoop(h,B,"opt",Ne),Ke.bumpVerticalPos(B.stopy-Ke.getVerticalPos()),Ke.models.addLoop(B);break;case n.db.LINETYPE.ALT_START:Fc(S,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,Y=>Ke.newLoop(Y));break;case n.db.LINETYPE.ALT_ELSE:Fc(S,F,Ne.boxMargin+Ne.boxTextMargin,Ne.boxMargin,Y=>Ke.addSectionToLoop(Y));break;case n.db.LINETYPE.ALT_END:B=Ke.endLoop(),await si.drawLoop(h,B,"alt",Ne),Ke.bumpVerticalPos(B.stopy-Ke.getVerticalPos()),Ke.models.addLoop(B);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:Fc(S,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,Y=>Ke.newLoop(Y)),Ke.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:Fc(S,F,Ne.boxMargin+Ne.boxTextMargin,Ne.boxMargin,Y=>Ke.addSectionToLoop(Y));break;case n.db.LINETYPE.PAR_END:B=Ke.endLoop(),await si.drawLoop(h,B,"par",Ne),Ke.bumpVerticalPos(B.stopy-Ke.getVerticalPos()),Ke.models.addLoop(B);break;case n.db.LINETYPE.AUTONUMBER:E=F.message.start||E,_=F.message.step||_,F.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:Fc(S,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,Y=>Ke.newLoop(Y));break;case n.db.LINETYPE.CRITICAL_OPTION:Fc(S,F,Ne.boxMargin+Ne.boxTextMargin,Ne.boxMargin,Y=>Ke.addSectionToLoop(Y));break;case n.db.LINETYPE.CRITICAL_END:B=Ke.endLoop(),await si.drawLoop(h,B,"critical",Ne),Ke.bumpVerticalPos(B.stopy-Ke.getVerticalPos()),Ke.models.addLoop(B);break;case n.db.LINETYPE.BREAK_START:Fc(S,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,Y=>Ke.newLoop(Y));break;case n.db.LINETYPE.BREAK_END:B=Ke.endLoop(),await si.drawLoop(h,B,"break",Ne),Ke.bumpVerticalPos(B.stopy-Ke.getVerticalPos()),Ke.models.addLoop(B);break;default:try{z=F.msgModel,z.starty=Ke.getVerticalPos(),z.sequenceIndex=E,z.sequenceVisible=n.db.showSequenceNumbers();let Y=await jGe(h,z);ZGe(F,z,Y,M,f,d,p),A.push({messageModel:z,lineStartY:Y}),Ke.models.addMessage(z)}catch(Y){V.error("error while drawing message",Y)}}[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT,n.db.LINETYPE.BIDIRECTIONAL_SOLID,n.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(F.type)&&(E=E+_),M++}V.debug("createdActors",d),V.debug("destroyedActors",p),await bO(h,f,g,!1);for(let F of A)await KGe(h,F.messageModel,F.lineStartY,n);Ne.mirrorActors&&await bO(h,f,g,!0),L.forEach(F=>si.drawBackgroundRect(h,F)),yO(h,f,g,Ne);for(let F of Ke.models.boxes)F.height=Ke.getVerticalPos()-F.y,Ke.insert(F.x,F.y,F.x+F.width,F.height),F.startx=F.x,F.starty=F.y,F.stopx=F.startx+F.width,F.stopy=F.starty+F.height,F.stroke="rgb(0,0,0, 0.5)",si.drawBox(h,F,Ne);x&&Ke.bumpVerticalPos(Ne.boxMargin);let N=fhe(h,f,g,u),{bounds:k}=Ke.getBounds();k.startx===void 0&&(k.startx=0),k.starty===void 0&&(k.starty=0),k.stopx===void 0&&(k.stopx=0),k.stopy===void 0&&(k.stopy=0);let I=k.stopy-k.starty;I2,d=o(y=>l?-y:y,"adjustValue");t.from===t.to?h=u:(t.activate&&!f&&(h+=d(Ne.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(h+=d(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(u-=d(3)));let p=[n,i,a,s],m=Math.abs(u-h);t.wrap&&t.message&&(t.message=Lt.wrapLabel(t.message,We.getMax(m+2*Ne.wrapPadding,Ne.width),L0(Ne)));let g=Lt.calculateTextDimensions(t.message,L0(Ne));return{width:We.getMax(t.wrap?0:g.width+2*Ne.wrapPadding,m+2*Ne.wrapPadding,Ne.width),height:0,startx:u,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,p),toBounds:Math.max.apply(null,p)}},"buildMessageModel"),a$e=o(async function(t,e,r,n){let i={},a=[],s,l,u;for(let h of t){switch(h.id=Lt.random({length:10}),h.type){case n.db.LINETYPE.LOOP_START:case n.db.LINETYPE.ALT_START:case n.db.LINETYPE.OPT_START:case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:case n.db.LINETYPE.CRITICAL_START:case n.db.LINETYPE.BREAK_START:a.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case n.db.LINETYPE.ALT_ELSE:case n.db.LINETYPE.PAR_AND:case n.db.LINETYPE.CRITICAL_OPTION:h.message&&(s=a.pop(),i[s.id]=s,i[h.id]=s,a.push(s));break;case n.db.LINETYPE.LOOP_END:case n.db.LINETYPE.ALT_END:case n.db.LINETYPE.OPT_END:case n.db.LINETYPE.PAR_END:case n.db.LINETYPE.CRITICAL_END:case n.db.LINETYPE.BREAK_END:s=a.pop(),i[s.id]=s;break;case n.db.LINETYPE.ACTIVE_START:{let d=e.get(h.from?h.from:h.to.actor),p=bE(h.from?h.from:h.to.actor).length,m=d.x+d.width/2+(p-1)*Ne.activationWidth/2,g={startx:m,stopx:m+Ne.activationWidth,actor:h.from,enabled:!0};Ke.activations.push(g)}break;case n.db.LINETYPE.ACTIVE_END:{let d=Ke.activations.map(p=>p.actor).lastIndexOf(h.from);Ke.activations.splice(d,1).splice(0,1)}break}h.placement!==void 0?(l=await n$e(h,e,n),h.noteModel=l,a.forEach(d=>{s=d,s.from=We.getMin(s.from,l.startx),s.to=We.getMax(s.to,l.startx+l.width),s.width=We.getMax(s.width,Math.abs(s.from-s.to))-Ne.labelBoxWidth})):(u=i$e(h,e,n),h.msgModel=u,u.startx&&u.stopx&&a.length>0&&a.forEach(d=>{if(s=d,u.startx===u.stopx){let p=e.get(h.from),m=e.get(h.to);s.from=We.getMin(p.x-u.width/2,p.x-p.width/2,s.from),s.to=We.getMax(m.x+u.width/2,m.x+p.width/2,s.to),s.width=We.getMax(s.width,Math.abs(s.to-s.from))-Ne.labelBoxWidth}else s.from=We.getMin(u.startx,s.from),s.to=We.getMax(u.stopx,s.to),s.width=We.getMax(s.width,u.width)-Ne.labelBoxWidth}))}return Ke.activations=[],V.debug("Loop type widths:",i),i},"calculateLoopBounds"),phe={bounds:Ke,drawActors:bO,drawActorsPopup:fhe,setConf:dhe,draw:JGe}});var ghe={};hr(ghe,{diagram:()=>s$e});var s$e,yhe=R(()=>{"use strict";que();the();nhe();mhe();s$e={parser:Wue,db:pO,renderer:phe,styles:rhe,init:o(({wrap:t})=>{pO.setWrap(t)},"init")}});var wO,wE,TO=R(()=>{"use strict";wO=function(){var t=o(function(Pe,_e,me,W){for(me=me||{},W=Pe.length;W--;me[Pe[W]]=_e);return me},"o"),e=[1,17],r=[1,18],n=[1,19],i=[1,39],a=[1,40],s=[1,25],l=[1,23],u=[1,24],h=[1,31],f=[1,32],d=[1,33],p=[1,34],m=[1,35],g=[1,36],y=[1,26],v=[1,27],x=[1,28],b=[1,29],w=[1,43],S=[1,30],T=[1,42],E=[1,44],_=[1,41],A=[1,45],L=[1,9],M=[1,8,9],N=[1,56],k=[1,57],I=[1,58],C=[1,59],O=[1,60],D=[1,61],P=[1,62],F=[1,8,9,39],B=[1,74],$=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],z=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],Y=[13,74,80,95,97,98],Q=[13,64,65,74,80,95,97,98],X=[13,59,60,61,62,63,74,80,95,97,98],ie=[1,93],j=[1,110],J=[1,108],Z=[1,102],H=[1,103],q=[1,104],K=[1,105],se=[1,106],ce=[1,107],ue=[1,109],te=[1,8,9,37,39,42],De=[1,8,9,21],oe=[1,8,9,78],ke=[1,8,9,21,73,74,78,80,81,82,83,84,85],Ie={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:o(function(_e,me,W,fe,ge,re,he){var ne=re.length-1;switch(ge){case 8:this.$=re[ne-1];break;case 9:case 11:case 12:this.$=re[ne];break;case 10:case 13:this.$=re[ne-1]+re[ne];break;case 14:case 15:this.$=re[ne-1]+"~"+re[ne]+"~";break;case 16:fe.addRelation(re[ne]);break;case 17:re[ne-1].title=fe.cleanupLabel(re[ne]),fe.addRelation(re[ne-1]);break;case 27:this.$=re[ne].trim(),fe.setAccTitle(this.$);break;case 28:case 29:this.$=re[ne].trim(),fe.setAccDescription(this.$);break;case 30:fe.addClassesToNamespace(re[ne-3],re[ne-1]);break;case 31:fe.addClassesToNamespace(re[ne-4],re[ne-1]);break;case 32:this.$=re[ne],fe.addNamespace(re[ne]);break;case 33:this.$=[re[ne]];break;case 34:this.$=[re[ne-1]];break;case 35:re[ne].unshift(re[ne-2]),this.$=re[ne];break;case 37:fe.setCssClass(re[ne-2],re[ne]);break;case 38:fe.addMembers(re[ne-3],re[ne-1]);break;case 39:fe.setCssClass(re[ne-5],re[ne-3]),fe.addMembers(re[ne-5],re[ne-1]);break;case 40:this.$=re[ne],fe.addClass(re[ne]);break;case 41:this.$=re[ne-1],fe.addClass(re[ne-1]),fe.setClassLabel(re[ne-1],re[ne]);break;case 42:fe.addAnnotation(re[ne],re[ne-2]);break;case 43:this.$=[re[ne]];break;case 44:re[ne].push(re[ne-1]),this.$=re[ne];break;case 45:break;case 46:fe.addMember(re[ne-1],fe.cleanupLabel(re[ne]));break;case 47:break;case 48:break;case 49:this.$={id1:re[ne-2],id2:re[ne],relation:re[ne-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:re[ne-3],id2:re[ne],relation:re[ne-1],relationTitle1:re[ne-2],relationTitle2:"none"};break;case 51:this.$={id1:re[ne-3],id2:re[ne],relation:re[ne-2],relationTitle1:"none",relationTitle2:re[ne-1]};break;case 52:this.$={id1:re[ne-4],id2:re[ne],relation:re[ne-2],relationTitle1:re[ne-3],relationTitle2:re[ne-1]};break;case 53:fe.addNote(re[ne],re[ne-1]);break;case 54:fe.addNote(re[ne]);break;case 55:fe.setDirection("TB");break;case 56:fe.setDirection("BT");break;case 57:fe.setDirection("RL");break;case 58:fe.setDirection("LR");break;case 59:this.$={type1:re[ne-2],type2:re[ne],lineType:re[ne-1]};break;case 60:this.$={type1:"none",type2:re[ne],lineType:re[ne-1]};break;case 61:this.$={type1:re[ne-1],type2:"none",lineType:re[ne]};break;case 62:this.$={type1:"none",type2:"none",lineType:re[ne]};break;case 63:this.$=fe.relationType.AGGREGATION;break;case 64:this.$=fe.relationType.EXTENSION;break;case 65:this.$=fe.relationType.COMPOSITION;break;case 66:this.$=fe.relationType.DEPENDENCY;break;case 67:this.$=fe.relationType.LOLLIPOP;break;case 68:this.$=fe.lineType.LINE;break;case 69:this.$=fe.lineType.DOTTED_LINE;break;case 70:case 76:this.$=re[ne-2],fe.setClickEvent(re[ne-1],re[ne]);break;case 71:case 77:this.$=re[ne-3],fe.setClickEvent(re[ne-2],re[ne-1]),fe.setTooltip(re[ne-2],re[ne]);break;case 72:this.$=re[ne-2],fe.setLink(re[ne-1],re[ne]);break;case 73:this.$=re[ne-3],fe.setLink(re[ne-2],re[ne-1],re[ne]);break;case 74:this.$=re[ne-3],fe.setLink(re[ne-2],re[ne-1]),fe.setTooltip(re[ne-2],re[ne]);break;case 75:this.$=re[ne-4],fe.setLink(re[ne-3],re[ne-2],re[ne]),fe.setTooltip(re[ne-3],re[ne-1]);break;case 78:this.$=re[ne-3],fe.setClickEvent(re[ne-2],re[ne-1],re[ne]);break;case 79:this.$=re[ne-4],fe.setClickEvent(re[ne-3],re[ne-2],re[ne-1]),fe.setTooltip(re[ne-3],re[ne]);break;case 80:this.$=re[ne-3],fe.setLink(re[ne-2],re[ne]);break;case 81:this.$=re[ne-4],fe.setLink(re[ne-3],re[ne-1],re[ne]);break;case 82:this.$=re[ne-4],fe.setLink(re[ne-3],re[ne-1]),fe.setTooltip(re[ne-3],re[ne]);break;case 83:this.$=re[ne-5],fe.setLink(re[ne-4],re[ne-2],re[ne]),fe.setTooltip(re[ne-4],re[ne-1]);break;case 84:this.$=re[ne-2],fe.setCssStyle(re[ne-1],re[ne]);break;case 85:fe.setCssClass(re[ne-1],re[ne]);break;case 86:this.$=[re[ne]];break;case 87:re[ne-2].push(re[ne]),this.$=re[ne-2];break;case 89:this.$=re[ne-1]+re[ne];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:e,33:r,35:n,36:21,40:i,41:22,44:a,45:s,47:l,48:u,50:h,52:f,53:d,54:p,55:m,56:g,66:y,67:v,69:x,73:b,74:w,76:S,80:T,95:E,97:_,98:A},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(L,[2,5],{8:[1,46]}),{8:[1,47]},t(M,[2,16],{21:[1,48]}),t(M,[2,18]),t(M,[2,19]),t(M,[2,20]),t(M,[2,21]),t(M,[2,22]),t(M,[2,23]),t(M,[2,24]),t(M,[2,25]),t(M,[2,26]),{32:[1,49]},{34:[1,50]},t(M,[2,29]),t(M,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:N,60:k,61:I,62:C,63:O,64:D,65:P}),{37:[1,63]},t(F,[2,36],{37:[1,65],42:[1,64]}),t(M,[2,47]),t(M,[2,48]),{16:66,74:w,80:T,95:E,97:_},{16:37,17:67,18:38,74:w,80:T,95:E,97:_,98:A},{16:37,17:68,18:38,74:w,80:T,95:E,97:_,98:A},{16:37,17:69,18:38,74:w,80:T,95:E,97:_,98:A},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:w,80:T,95:E,97:_,98:A},{13:B,51:73},t(M,[2,55]),t(M,[2,56]),t(M,[2,57]),t(M,[2,58]),t($,[2,11],{16:37,18:38,17:75,19:[1,76],74:w,80:T,95:E,97:_,98:A}),t($,[2,12],{19:[1,77]}),{15:78,16:79,74:w,80:T,95:E,97:_},{16:37,17:80,18:38,74:w,80:T,95:E,97:_,98:A},t(z,[2,112]),t(z,[2,113]),t(z,[2,114]),t(z,[2,115]),t([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),t(L,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:e,33:r,35:n,40:i,44:a,45:s,47:l,48:u,50:h,52:f,53:d,54:p,55:m,56:g,66:y,67:v,69:x,73:b,74:w,76:S,80:T,95:E,97:_,98:A}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:e,33:r,35:n,36:21,40:i,41:22,44:a,45:s,47:l,48:u,50:h,52:f,53:d,54:p,55:m,56:g,66:y,67:v,69:x,73:b,74:w,76:S,80:T,95:E,97:_,98:A},t(M,[2,17]),t(M,[2,27]),t(M,[2,28]),{13:[1,84],16:37,17:83,18:38,74:w,80:T,95:E,97:_,98:A},{49:85,57:54,58:55,59:N,60:k,61:I,62:C,63:O,64:D,65:P},t(M,[2,46]),{58:86,64:D,65:P},t(Y,[2,62],{57:87,59:N,60:k,61:I,62:C,63:O}),t(Q,[2,63]),t(Q,[2,64]),t(Q,[2,65]),t(Q,[2,66]),t(Q,[2,67]),t(X,[2,68]),t(X,[2,69]),{8:[1,89],23:90,38:88,41:22,44:a},{16:91,74:w,80:T,95:E,97:_},{43:92,47:ie},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:j,73:J,74:Z,75:99,77:100,79:101,80:H,81:q,82:K,83:se,84:ce,85:ue},{74:[1,111]},{13:B,51:112},t(M,[2,54]),t(M,[2,117]),t($,[2,13]),t($,[2,14]),t($,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:w,80:T,95:E,97:_},t(te,[2,40],{11:114,12:[1,115]}),t(L,[2,7]),{9:[1,116]},t(De,[2,49]),{16:37,17:117,18:38,74:w,80:T,95:E,97:_,98:A},{13:[1,119],16:37,17:118,18:38,74:w,80:T,95:E,97:_,98:A},t(Y,[2,61],{57:120,59:N,60:k,61:I,62:C,63:O}),t(Y,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:a},{8:[1,123],39:[2,33]},t(F,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:ie},{16:37,17:127,18:38,74:w,80:T,95:E,97:_,98:A},t(M,[2,70],{13:[1,128]}),t(M,[2,72],{13:[1,130],68:[1,129]}),t(M,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},t(M,[2,84],{78:[1,134]}),t(oe,[2,86],{79:135,21:j,73:J,74:Z,80:H,81:q,82:K,83:se,84:ce,85:ue}),t(ke,[2,88]),t(ke,[2,90]),t(ke,[2,91]),t(ke,[2,92]),t(ke,[2,93]),t(ke,[2,94]),t(ke,[2,95]),t(ke,[2,96]),t(ke,[2,97]),t(ke,[2,98]),t(M,[2,85]),t(M,[2,53]),{37:[2,10]},t(te,[2,41]),{13:[1,136]},{1:[2,4]},t(De,[2,51]),t(De,[2,50]),{16:37,17:137,18:38,74:w,80:T,95:E,97:_,98:A},t(Y,[2,59]),t(M,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:a},{43:140,47:ie},t(F,[2,38]),{39:[2,44]},t(M,[2,42]),t(M,[2,71]),t(M,[2,73]),t(M,[2,74],{68:[1,141]}),t(M,[2,77]),t(M,[2,78],{13:[1,142]}),t(M,[2,80],{13:[1,144],68:[1,143]}),{21:j,73:J,74:Z,77:145,79:101,80:H,81:q,82:K,83:se,84:ce,85:ue},t(ke,[2,89]),{14:[1,146]},t(De,[2,52]),t(M,[2,31]),{39:[2,35]},{39:[1,147]},t(M,[2,75]),t(M,[2,79]),t(M,[2,81]),t(M,[2,82],{68:[1,148]}),t(oe,[2,87],{79:135,21:j,73:J,74:Z,80:H,81:q,82:K,83:se,84:ce,85:ue}),t(te,[2,8]),t(F,[2,39]),t(M,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:o(function(_e,me){if(me.recoverable)this.trace(_e);else{var W=new Error(_e);throw W.hash=me,W}},"parseError"),parse:o(function(_e){var me=this,W=[0],fe=[],ge=[null],re=[],he=this.table,ne="",ae=0,we=0,Te=0,Ce=2,Ae=1,Ge=re.slice.call(arguments,1),Me=Object.create(this.lexer),ye={yy:{}};for(var He in this.yy)Object.prototype.hasOwnProperty.call(this.yy,He)&&(ye.yy[He]=this.yy[He]);Me.setInput(_e,ye.yy),ye.yy.lexer=Me,ye.yy.parser=this,typeof Me.yylloc>"u"&&(Me.yylloc={});var ze=Me.yylloc;re.push(ze);var Ze=Me.options&&Me.options.ranges;typeof ye.yy.parseError=="function"?this.parseError=ye.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function gt(mt){W.length=W.length-2*mt,ge.length=ge.length-mt,re.length=re.length-mt}o(gt,"popStack");function yt(){var mt;return mt=fe.pop()||Me.lex()||Ae,typeof mt!="number"&&(mt instanceof Array&&(fe=mt,mt=fe.pop()),mt=me.symbols_[mt]||mt),mt}o(yt,"lex");for(var tt,Ye,Je,Ve,je,kt,at={},xt,it,dt,lt;;){if(Je=W[W.length-1],this.defaultActions[Je]?Ve=this.defaultActions[Je]:((tt===null||typeof tt>"u")&&(tt=yt()),Ve=he[Je]&&he[Je][tt]),typeof Ve>"u"||!Ve.length||!Ve[0]){var It="";lt=[];for(xt in he[Je])this.terminals_[xt]&&xt>Ce&<.push("'"+this.terminals_[xt]+"'");Me.showPosition?It="Parse error on line "+(ae+1)+`: +`+Me.showPosition()+` +Expecting `+lt.join(", ")+", got '"+(this.terminals_[tt]||tt)+"'":It="Parse error on line "+(ae+1)+": Unexpected "+(tt==Ae?"end of input":"'"+(this.terminals_[tt]||tt)+"'"),this.parseError(It,{text:Me.match,token:this.terminals_[tt]||tt,line:Me.yylineno,loc:ze,expected:lt})}if(Ve[0]instanceof Array&&Ve.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Je+", token: "+tt);switch(Ve[0]){case 1:W.push(tt),ge.push(Me.yytext),re.push(Me.yylloc),W.push(Ve[1]),tt=null,Ye?(tt=Ye,Ye=null):(we=Me.yyleng,ne=Me.yytext,ae=Me.yylineno,ze=Me.yylloc,Te>0&&Te--);break;case 2:if(it=this.productions_[Ve[1]][1],at.$=ge[ge.length-it],at._$={first_line:re[re.length-(it||1)].first_line,last_line:re[re.length-1].last_line,first_column:re[re.length-(it||1)].first_column,last_column:re[re.length-1].last_column},Ze&&(at._$.range=[re[re.length-(it||1)].range[0],re[re.length-1].range[1]]),kt=this.performAction.apply(at,[ne,we,ae,ye.yy,Ve[1],ge,re].concat(Ge)),typeof kt<"u")return kt;it&&(W=W.slice(0,-1*it*2),ge=ge.slice(0,-1*it),re=re.slice(0,-1*it)),W.push(this.productions_[Ve[1]][0]),ge.push(at.$),re.push(at._$),dt=he[W[W.length-2]][W[W.length-1]],W.push(dt);break;case 3:return!0}}return!0},"parse")},Se=function(){var Pe={EOF:1,parseError:o(function(me,W){if(this.yy.parser)this.yy.parser.parseError(me,W);else throw new Error(me)},"parseError"),setInput:o(function(_e,me){return this.yy=me||this.yy||{},this._input=_e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var _e=this._input[0];this.yytext+=_e,this.yyleng++,this.offset++,this.match+=_e,this.matched+=_e;var me=_e.match(/(?:\r\n?|\n).*/g);return me?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_e},"input"),unput:o(function(_e){var me=_e.length,W=_e.split(/(?:\r\n?|\n)/g);this._input=_e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-me),this.offset-=me;var fe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),W.length-1&&(this.yylineno-=W.length-1);var ge=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:W?(W.length===fe.length?this.yylloc.first_column:0)+fe[fe.length-W.length].length-W[0].length:this.yylloc.first_column-me},this.options.ranges&&(this.yylloc.range=[ge[0],ge[0]+this.yyleng-me]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(_e){this.unput(this.match.slice(_e))},"less"),pastInput:o(function(){var _e=this.matched.substr(0,this.matched.length-this.match.length);return(_e.length>20?"...":"")+_e.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var _e=this.match;return _e.length<20&&(_e+=this._input.substr(0,20-_e.length)),(_e.substr(0,20)+(_e.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var _e=this.pastInput(),me=new Array(_e.length+1).join("-");return _e+this.upcomingInput()+` +`+me+"^"},"showPosition"),test_match:o(function(_e,me){var W,fe,ge;if(this.options.backtrack_lexer&&(ge={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ge.yylloc.range=this.yylloc.range.slice(0))),fe=_e[0].match(/(?:\r\n?|\n).*/g),fe&&(this.yylineno+=fe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:fe?fe[fe.length-1].length-fe[fe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_e[0].length},this.yytext+=_e[0],this.match+=_e[0],this.matches=_e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_e[0].length),this.matched+=_e[0],W=this.performAction.call(this,this.yy,this,me,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),W)return W;if(this._backtrack){for(var re in ge)this[re]=ge[re];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _e,me,W,fe;this._more||(this.yytext="",this.match="");for(var ge=this._currentRules(),re=0;reme[0].length)){if(me=W,fe=re,this.options.backtrack_lexer){if(_e=this.test_match(W,ge[re]),_e!==!1)return _e;if(this._backtrack){me=!1;continue}else return!1}else if(!this.options.flex)break}return me?(_e=this.test_match(me,ge[fe]),_e!==!1?_e:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var me=this.next();return me||this.lex()},"lex"),begin:o(function(me){this.conditionStack.push(me)},"begin"),popState:o(function(){var me=this.conditionStack.length-1;return me>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(me){return me=this.conditionStack.length-1-Math.abs(me||0),me>=0?this.conditionStack[me]:"INITIAL"},"topState"),pushState:o(function(me){this.begin(me)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(me,W,fe,ge){var re=ge;switch(fe){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:break;case 5:break;case 6:return this.begin("acc_title"),31;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),33;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 22:this.popState();break;case 23:return 71;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;break;case 29:return this.popState(),8;break;case 30:break;case 31:return this.begin("namespace-body"),37;break;case 32:return this.popState(),39;break;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),44;break;case 38:return this.popState(),8;break;case 39:break;case 40:return this.popState(),this.popState(),39;break;case 41:return this.begin("class-body"),37;break;case 42:return this.popState(),39;break;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 68;case 64:return 68;case 65:return 68;case 66:return 68;case 67:return 60;case 68:return 60;case 69:return 62;case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:return 84;case 84:return 84;case 85:return 85;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:return 83;case 95:return 83;case 96:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return Pe}();Ie.lexer=Se;function Ue(){this.yy={}}return o(Ue,"Parser"),Ue.prototype=Ie,Ie.Parser=Ue,new Ue}();wO.parser=wO;wE=wO});var bhe,wx,whe=R(()=>{"use strict";_t();rr();bhe=["#","+","~","-",""],wx=class{static{o(this,"ClassMember")}constructor(e,r){this.memberType=r,this.visibility="",this.classifier="";let n=qr(e,de());this.parseMember(n)}getDisplayDetails(){let e=this.visibility+gh(this.id);this.memberType==="method"&&(e+=`(${gh(this.parameters.trim())})`,this.returnType&&(e+=" : "+gh(this.returnType))),e=e.trim();let r=this.parseClassifier();return{displayText:e,cssStyle:r}}parseMember(e){let r="";if(this.memberType==="method"){let i=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(e);if(i){let a=i[1]?i[1].trim():"";if(bhe.includes(a)&&(this.visibility=a),this.id=i[2].trim(),this.parameters=i[3]?i[3].trim():"",r=i[4]?i[4].trim():"",this.returnType=i[5]?i[5].trim():"",r===""){let s=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(s)&&(r=s,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let n=e.length,i=e.substring(0,1),a=e.substring(n-1);bhe.includes(i)&&(this.visibility=i),/[$*]/.exec(a)&&(r=a),this.id=e.substring(this.visibility===""?0:1,r===""?n:n-1)}this.classifier=r}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});var EE,EO,Gi,TE,The,qu,kO,Tx,D0,R0,u$e,kE,khe,h$e,f$e,d$e,p$e,m$e,g$e,y$e,Ehe,v$e,x$e,b$e,CO,w$e,T$e,k$e,E$e,C$e,S$e,A$e,_$e,Che,SO,L$e,D$e,R$e,N$e,M$e,I$e,O$e,Bg,AO=R(()=>{"use strict";Zt();ut();_t();rr();xr();bi();whe();EE="classId-",EO=[],Gi=new Map,TE=[],The=0,qu=new Map,kO=0,Tx=[],D0=o(t=>We.sanitizeText(t,de()),"sanitizeText"),R0=o(function(t){let e=We.sanitizeText(t,de()),r="",n=e;if(e.indexOf("~")>0){let i=e.split("~");n=D0(i[0]),r=D0(i[1])}return{className:n,type:r}},"splitClassNameAndType"),u$e=o(function(t,e){let r=We.sanitizeText(t,de());e&&(e=D0(e));let{className:n}=R0(r);Gi.get(n).label=e},"setClassLabel"),kE=o(function(t){let e=We.sanitizeText(t,de()),{className:r,type:n}=R0(e);if(Gi.has(r))return;let i=We.sanitizeText(r,de());Gi.set(i,{id:i,type:n,label:i,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:EE+i+"-"+The}),The++},"addClass"),khe=o(function(t){let e=We.sanitizeText(t,de());if(Gi.has(e))return Gi.get(e).domId;throw new Error("Class not found: "+e)},"lookUpDomId"),h$e=o(function(){EO=[],Gi=new Map,TE=[],Tx=[],Tx.push(Che),qu=new Map,kO=0,SO="TB",vr()},"clear"),f$e=o(function(t){return Gi.get(t)},"getClass"),d$e=o(function(){return Gi},"getClasses"),p$e=o(function(){return EO},"getRelations"),m$e=o(function(){return TE},"getNotes"),g$e=o(function(t){V.debug("Adding relation: "+JSON.stringify(t)),kE(t.id1),kE(t.id2),t.id1=R0(t.id1).className,t.id2=R0(t.id2).className,t.relationTitle1=We.sanitizeText(t.relationTitle1.trim(),de()),t.relationTitle2=We.sanitizeText(t.relationTitle2.trim(),de()),EO.push(t)},"addRelation"),y$e=o(function(t,e){let r=R0(t).className;Gi.get(r).annotations.push(e)},"addAnnotation"),Ehe=o(function(t,e){kE(t);let r=R0(t).className,n=Gi.get(r);if(typeof e=="string"){let i=e.trim();i.startsWith("<<")&&i.endsWith(">>")?n.annotations.push(D0(i.substring(2,i.length-2))):i.indexOf(")")>0?n.methods.push(new wx(i,"method")):i&&n.members.push(new wx(i,"attribute"))}},"addMember"),v$e=o(function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach(r=>Ehe(t,r)))},"addMembers"),x$e=o(function(t,e){let r={id:`note${TE.length}`,class:e,text:t};TE.push(r)},"addNote"),b$e=o(function(t){return t.startsWith(":")&&(t=t.substring(1)),D0(t.trim())},"cleanupLabel"),CO=o(function(t,e){t.split(",").forEach(function(r){let n=r;/\d/.exec(r[0])&&(n=EE+n);let i=Gi.get(n);i&&i.cssClasses.push(e)})},"setCssClass"),w$e=o(function(t,e){t.split(",").forEach(function(r){e!==void 0&&(Gi.get(r).tooltip=D0(e))})},"setTooltip"),T$e=o(function(t,e){return e&&qu.has(e)?qu.get(e).classes.get(t).tooltip:Gi.get(t).tooltip},"getTooltip"),k$e=o(function(t,e,r){let n=de();t.split(",").forEach(function(i){let a=i;/\d/.exec(i[0])&&(a=EE+a);let s=Gi.get(a);s&&(s.link=Lt.formatUrl(e,n),n.securityLevel==="sandbox"?s.linkTarget="_top":typeof r=="string"?s.linkTarget=D0(r):s.linkTarget="_blank")}),CO(t,"clickable")},"setLink"),E$e=o(function(t,e,r){t.split(",").forEach(function(n){C$e(n,e,r),Gi.get(n).haveCallback=!0}),CO(t,"clickable")},"setClickEvent"),C$e=o(function(t,e,r){let n=We.sanitizeText(t,de());if(de().securityLevel!=="loose"||e===void 0)return;let a=n;if(Gi.has(a)){let s=khe(a),l=[];if(typeof r=="string"){l=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let u=0;u")),i.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),$e(this).classed("hover",!1)})},"setupToolTips");Tx.push(Che);SO="TB",L$e=o(()=>SO,"getDirection"),D$e=o(t=>{SO=t},"setDirection"),R$e=o(function(t){qu.has(t)||(qu.set(t,{id:t,classes:new Map,children:{},domId:EE+t+"-"+kO}),kO++)},"addNamespace"),N$e=o(function(t){return qu.get(t)},"getNamespace"),M$e=o(function(){return qu},"getNamespaces"),I$e=o(function(t,e){if(qu.has(t))for(let r of e){let{className:n}=R0(r);Gi.get(n).parent=t,qu.get(t).classes.set(n,Gi.get(n))}},"addClassesToNamespace"),O$e=o(function(t,e){let r=Gi.get(t);if(!(!e||!r))for(let n of e)n.includes(",")?r.styles.push(...n.split(",")):r.styles.push(n)},"setCssStyle"),Bg={setAccTitle:kr,getAccTitle:Ar,getAccDescription:Lr,setAccDescription:_r,getConfig:o(()=>de().class,"getConfig"),addClass:kE,bindFunctions:S$e,clear:h$e,getClass:f$e,getClasses:d$e,getNotes:m$e,addAnnotation:y$e,addNote:x$e,getRelations:p$e,addRelation:g$e,getDirection:L$e,setDirection:D$e,addMember:Ehe,addMembers:v$e,cleanupLabel:b$e,lineType:A$e,relationType:_$e,setClickEvent:E$e,setCssClass:CO,setLink:k$e,getTooltip:T$e,setTooltip:w$e,lookUpDomId:khe,setDiagramTitle:nn,getDiagramTitle:Xr,setClassLabel:u$e,addNamespace:R$e,addClassesToNamespace:I$e,getNamespace:N$e,getNamespaces:M$e,setCssStyle:O$e}});var P$e,CE,_O=R(()=>{"use strict";P$e=o(t=>`g.classGroup text { + fill: ${t.nodeBorder||t.classText}; + stroke: none; + font-family: ${t.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${t.classText}; +} +.edgeLabel .label rect { + fill: ${t.mainBkg}; +} +.label text { + fill: ${t.classText}; +} +.edgeLabel .label span { + background: ${t.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.classGroup line { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${t.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),CE=P$e});var She,B$e,F$e,_he,z$e,Ahe,SE,Lhe=R(()=>{"use strict";Zt();xr();ut();rr();She=0,B$e=o(function(t,e,r,n,i){let a=o(function(b){switch(b){case i.db.relationType.AGGREGATION:return"aggregation";case i.db.relationType.EXTENSION:return"extension";case i.db.relationType.COMPOSITION:return"composition";case i.db.relationType.DEPENDENCY:return"dependency";case i.db.relationType.LOLLIPOP:return"lollipop"}},"getRelationType");e.points=e.points.filter(b=>!Number.isNaN(b.y));let s=e.points,l=ha().x(function(b){return b.x}).y(function(b){return b.y}).curve(vs),u=t.append("path").attr("d",l(s)).attr("id","edge"+She).attr("class","relation"),h="";n.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),r.relation.lineType==1&&u.attr("class","relation dashed-line"),r.relation.lineType==10&&u.attr("class","relation dotted-line"),r.relation.type1!=="none"&&u.attr("marker-start","url("+h+"#"+a(r.relation.type1)+"Start)"),r.relation.type2!=="none"&&u.attr("marker-end","url("+h+"#"+a(r.relation.type2)+"End)");let f,d,p=e.points.length,m=Lt.calcLabelPosition(e.points);f=m.x,d=m.y;let g,y,v,x;if(p%2!==0&&p>1){let b=Lt.calcCardinalityPosition(r.relation.type1!=="none",e.points,e.points[0]),w=Lt.calcCardinalityPosition(r.relation.type2!=="none",e.points,e.points[p-1]);V.debug("cardinality_1_point "+JSON.stringify(b)),V.debug("cardinality_2_point "+JSON.stringify(w)),g=b.x,y=b.y,v=w.x,x=w.y}if(r.title!==void 0){let b=t.append("g").attr("class","classLabel"),w=b.append("text").attr("class","label").attr("x",f).attr("y",d).attr("fill","red").attr("text-anchor","middle").text(r.title);window.label=w;let S=w.node().getBBox();b.insert("rect",":first-child").attr("class","box").attr("x",S.x-n.padding/2).attr("y",S.y-n.padding/2).attr("width",S.width+n.padding).attr("height",S.height+n.padding)}V.info("Rendering relation "+JSON.stringify(r)),r.relationTitle1!==void 0&&r.relationTitle1!=="none"&&t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",g).attr("y",y).attr("fill","black").attr("font-size","6").text(r.relationTitle1),r.relationTitle2!==void 0&&r.relationTitle2!=="none"&&t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",v).attr("y",x).attr("fill","black").attr("font-size","6").text(r.relationTitle2),She++},"drawEdge"),F$e=o(function(t,e,r,n){V.debug("Rendering class ",e,r);let i=e.id,a={id:i,label:e.id,width:0,height:0},s=t.append("g").attr("id",n.db.lookUpDomId(i)).attr("class","classGroup"),l;e.link?l=s.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",r.textHeight+r.padding).attr("x",0):l=s.append("text").attr("y",r.textHeight+r.padding).attr("x",0);let u=!0;e.annotations.forEach(function(w){let S=l.append("tspan").text("\xAB"+w+"\xBB");u||S.attr("dy",r.textHeight),u=!1});let h=_he(e),f=l.append("tspan").text(h).attr("class","title");u||f.attr("dy",r.textHeight);let d=l.node().getBBox().height,p,m,g;if(e.members.length>0){p=s.append("line").attr("x1",0).attr("y1",r.padding+d+r.dividerMargin/2).attr("y2",r.padding+d+r.dividerMargin/2);let w=s.append("text").attr("x",r.padding).attr("y",d+r.dividerMargin+r.textHeight).attr("fill","white").attr("class","classText");u=!0,e.members.forEach(function(S){Ahe(w,S,u,r),u=!1}),m=w.node().getBBox()}if(e.methods.length>0){g=s.append("line").attr("x1",0).attr("y1",r.padding+d+r.dividerMargin+m.height).attr("y2",r.padding+d+r.dividerMargin+m.height);let w=s.append("text").attr("x",r.padding).attr("y",d+2*r.dividerMargin+m.height+r.textHeight).attr("fill","white").attr("class","classText");u=!0,e.methods.forEach(function(S){Ahe(w,S,u,r),u=!1})}let y=s.node().getBBox();var v=" ";e.cssClasses.length>0&&(v=v+e.cssClasses.join(" "));let b=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",y.width+2*r.padding).attr("height",y.height+r.padding+.5*r.dividerMargin).attr("class",v).node().getBBox().width;return l.node().childNodes.forEach(function(w){w.setAttribute("x",(b-w.getBBox().width)/2)}),e.tooltip&&l.insert("title").text(e.tooltip),p&&p.attr("x2",b),g&&g.attr("x2",b),a.width=b,a.height=y.height+r.padding+.5*r.dividerMargin,a},"drawClass"),_he=o(function(t){let e=t.id;return t.type&&(e+="<"+gh(t.type)+">"),e},"getClassTitleString"),z$e=o(function(t,e,r,n){V.debug("Rendering note ",e,r);let i=e.id,a={id:i,text:e.text,width:0,height:0},s=t.append("g").attr("id",i).attr("class","classGroup"),l=s.append("text").attr("y",r.textHeight+r.padding).attr("x",0),u=JSON.parse(`"${e.text}"`).split(` +`);u.forEach(function(p){V.debug(`Adding line: ${p}`),l.append("tspan").text(p).attr("class","title").attr("dy",r.textHeight)});let h=s.node().getBBox(),d=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",h.width+2*r.padding).attr("height",h.height+u.length*r.textHeight+r.padding+.5*r.dividerMargin).node().getBBox().width;return l.node().childNodes.forEach(function(p){p.setAttribute("x",(d-p.getBBox().width)/2)}),a.width=d,a.height=h.height+u.length*r.textHeight+r.padding+.5*r.dividerMargin,a},"drawNote"),Ahe=o(function(t,e,r,n){let{displayText:i,cssStyle:a}=e.getDisplayDetails(),s=t.append("tspan").attr("x",n.padding).text(i);a!==""&&s.attr("style",e.cssStyle),r||s.attr("dy",n.textHeight)},"addTspan"),SE={getClassTitleString:_he,drawClass:F$e,drawEdge:B$e,drawNote:z$e}});var _E,AE,kx,G$e,$$e,Dhe,Rhe=R(()=>{"use strict";Zt();Vd();ya();ut();Lhe();Yn();_t();_E={},AE=20,kx=o(function(t){let e=Object.entries(_E).find(r=>r[1].label===t);if(e)return e[0]},"getGraphId"),G$e=o(function(t){t.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),t.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),$$e=o(function(t,e,r,n){let i=de().class;_E={},V.info("Rendering diagram "+t);let a=de().securityLevel,s;a==="sandbox"&&(s=$e("#i"+e));let l=a==="sandbox"?$e(s.nodes()[0].contentDocument.body):$e("body"),u=l.select(`[id='${e}']`);G$e(u);let h=new lr({multigraph:!0});h.setGraph({isMultiGraph:!0}),h.setDefaultEdgeLabel(function(){return{}});let f=n.db.getClasses(),d=[...f.keys()];for(let b of d){let w=f.get(b),S=SE.drawClass(u,w,i,n);_E[S.id]=S,h.setNode(S.id,S),V.info("Org height: "+S.height)}n.db.getRelations().forEach(function(b){V.info("tjoho"+kx(b.id1)+kx(b.id2)+JSON.stringify(b)),h.setEdge(kx(b.id1),kx(b.id2),{relation:b},b.title||"DEFAULT")}),n.db.getNotes().forEach(function(b){V.debug(`Adding note: ${JSON.stringify(b)}`);let w=SE.drawNote(u,b,i,n);_E[w.id]=w,h.setNode(w.id,w),b.class&&f.has(b.class)&&h.setEdge(b.id,kx(b.class),{relation:{id1:b.id,id2:b.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),lo(h),h.nodes().forEach(function(b){b!==void 0&&h.node(b)!==void 0&&(V.debug("Node "+b+": "+JSON.stringify(h.node(b))),l.select("#"+(n.db.lookUpDomId(b)||b)).attr("transform","translate("+(h.node(b).x-h.node(b).width/2)+","+(h.node(b).y-h.node(b).height/2)+" )"))}),h.edges().forEach(function(b){b!==void 0&&h.edge(b)!==void 0&&(V.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(h.edge(b))),SE.drawEdge(u,h.edge(b),h.edge(b).relation,i,n))});let g=u.node().getBBox(),y=g.width+AE*2,v=g.height+AE*2;Sr(u,v,y,i.useMaxWidth);let x=`${g.x-AE} ${g.y-AE} ${y} ${v}`;V.debug(`viewBox ${x}`),u.attr("viewBox",x)},"draw"),Dhe={draw:$$e}});var Nhe={};hr(Nhe,{diagram:()=>V$e});var V$e,Mhe=R(()=>{"use strict";TO();AO();_O();Rhe();V$e={parser:wE,db:Bg,renderer:Dhe,styles:CE,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Bg.clear()},"init")}});var W$e,q$e,X$e,j$e,K$e,Q$e,Z$e,J$e,eVe,tVe,rVe,LE,LO=R(()=>{"use strict";ut();W$e=o((t,e,r,n)=>{e.forEach(i=>{rVe[i](t,r,n)})},"insertMarkers"),q$e=o((t,e,r)=>{V.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),X$e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),j$e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),K$e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),Q$e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),Z$e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),J$e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),eVe=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),tVe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),rVe={extension:q$e,composition:X$e,aggregation:j$e,dependency:K$e,lollipop:Q$e,point:Z$e,circle:J$e,cross:eVe,barb:tVe},LE=W$e});var tr,zl,Phe,Bhe,RE,nVe,Fhe,zhe,Fg,DE,Ghe,$he,Vhe,Uhe,Hhe=R(()=>{"use strict";ut();Pv();ya();tr={},zl={},Phe={},Bhe=o(()=>{zl={},Phe={},tr={}},"clear"),RE=o((t,e)=>(V.trace("In isDescendant",e," ",t," = ",zl[e].includes(t)),!!zl[e].includes(t)),"isDescendant"),nVe=o((t,e)=>(V.info("Descendants of ",e," is ",zl[e]),V.info("Edge is ",t),t.v===e||t.w===e?!1:zl[e]?zl[e].includes(t.v)||RE(t.v,e)||RE(t.w,e)||zl[e].includes(t.w):(V.debug("Tilt, ",e,",not in descendants"),!1)),"edgeInCluster"),Fhe=o((t,e,r,n)=>{V.warn("Copying children of ",t,"root",n,"data",e.node(t),n);let i=e.children(t)||[];t!==n&&i.push(t),V.warn("Copying (nodes) clusterId",t,"nodes",i),i.forEach(a=>{if(e.children(a).length>0)Fhe(a,e,r,n);else{let s=e.node(a);V.info("cp ",a," to ",n," with parent ",t),r.setNode(a,s),n!==e.parent(a)&&(V.warn("Setting parent",a,e.parent(a)),r.setParent(a,e.parent(a))),t!==n&&a!==t?(V.debug("Setting parent",a,t),r.setParent(a,t)):(V.info("In copy ",t,"root",n,"data",e.node(t),n),V.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==n,"node!==clusterId",a!==t));let l=e.edges(a);V.debug("Copying Edges",l),l.forEach(u=>{V.info("Edge",u);let h=e.edge(u.v,u.w,u.name);V.info("Edge data",h,n);try{nVe(u,n)?(V.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),V.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):V.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",t)}catch(f){V.error(f)}})}V.debug("Removing node",a),e.removeNode(a)})},"copy"),zhe=o((t,e)=>{let r=e.children(t),n=[...r];for(let i of r)Phe[i]=t,n=[...n,...zhe(i,e)];return n},"extractDescendants"),Fg=o((t,e)=>{V.trace("Searching",t);let r=e.children(t);if(V.trace("Searching children of id ",t,r),r.length<1)return V.trace("This is a valid node",t),t;for(let n of r){let i=Fg(n,e);if(i)return V.trace("Found replacement for",t," => ",i),i}},"findNonClusterChild"),DE=o(t=>!tr[t]||!tr[t].externalConnections?t:tr[t]?tr[t].id:t,"getAnchorId"),Ghe=o((t,e)=>{if(!t||e>10){V.debug("Opting out, no graph ");return}else V.debug("Opting in, graph ");t.nodes().forEach(function(r){t.children(r).length>0&&(V.warn("Cluster identified",r," Replacement id in edges: ",Fg(r,t)),zl[r]=zhe(r,t),tr[r]={id:Fg(r,t),clusterData:t.node(r)})}),t.nodes().forEach(function(r){let n=t.children(r),i=t.edges();n.length>0?(V.debug("Cluster identified",r,zl),i.forEach(a=>{if(a.v!==r&&a.w!==r){let s=RE(a.v,r),l=RE(a.w,r);s^l&&(V.warn("Edge: ",a," leaves cluster ",r),V.warn("Descendants of XXX ",r,": ",zl[r]),tr[r].externalConnections=!0)}})):V.debug("Not a cluster ",r,zl)});for(let r of Object.keys(tr)){let n=tr[r].id,i=t.parent(n);i!==r&&tr[i]&&!tr[i].externalConnections&&(tr[r].id=i)}t.edges().forEach(function(r){let n=t.edge(r);V.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),V.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(t.edge(r)));let i=r.v,a=r.w;if(V.warn("Fix XXX",tr,"ids:",r.v,r.w,"Translating: ",tr[r.v]," --- ",tr[r.w]),tr[r.v]&&tr[r.w]&&tr[r.v]===tr[r.w]){V.warn("Fixing and trixing link to self - removing XXX",r.v,r.w,r.name),V.warn("Fixing and trixing - removing XXX",r.v,r.w,r.name),i=DE(r.v),a=DE(r.w),t.removeEdge(r.v,r.w,r.name);let s=r.w+"---"+r.v;t.setNode(s,{domId:s,id:s,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});let l=structuredClone(n),u=structuredClone(n);l.label="",l.arrowTypeEnd="none",u.label="",l.fromCluster=r.v,u.toCluster=r.v,t.setEdge(i,s,l,r.name+"-cyclic-special"),t.setEdge(s,a,u,r.name+"-cyclic-special")}else if(tr[r.v]||tr[r.w]){if(V.warn("Fixing and trixing - removing XXX",r.v,r.w,r.name),i=DE(r.v),a=DE(r.w),t.removeEdge(r.v,r.w,r.name),i!==r.v){let s=t.parent(i);tr[s].externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=t.parent(a);tr[s].externalConnections=!0,n.toCluster=r.w}V.warn("Fix Replacing with XXX",i,a,r.name),t.setEdge(i,a,n,r.name)}}),V.warn("Adjusted Graph",zn(t)),$he(t,0),V.trace(tr)},"adjustClustersAndEdges"),$he=o((t,e)=>{if(V.warn("extractor - ",e,zn(t),t.children("D")),e>10){V.error("Bailing out");return}let r=t.nodes(),n=!1;for(let i of r){let a=t.children(i);n=n||a.length>0}if(!n){V.debug("Done, no node has children",t.nodes());return}V.debug("Nodes = ",r,e);for(let i of r)if(V.debug("Extracting node",i,tr,tr[i]&&!tr[i].externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),!tr[i])V.debug("Not a cluster",i,e);else if(!tr[i].externalConnections&&t.children(i)&&t.children(i).length>0){V.warn("Cluster without external connections, without a parent and with children",i,e);let s=t.graph().rankdir==="TB"?"LR":"TB";tr[i]?.clusterData?.dir&&(s=tr[i].clusterData.dir,V.warn("Fixing dir",tr[i].clusterData.dir,s));let l=new lr({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});V.warn("Old graph before copy",zn(t)),Fhe(i,t,l,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:tr[i].clusterData,labelText:tr[i].labelText,graph:l}),V.warn("New graph after copy node: (",i,")",zn(l)),V.debug("Old graph after copy",zn(t))}else V.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!tr[i].externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),V.debug(tr);r=t.nodes(),V.warn("New list of nodes",r);for(let i of r){let a=t.node(i);V.warn(" Now next level",i,a),a.clusterNode&&$he(a.graph,e+1)}},"extractor"),Vhe=o((t,e)=>{if(e.length===0)return[];let r=Object.assign(e);return e.forEach(n=>{let i=t.children(n),a=Vhe(t,i);r=[...r,...a]}),r},"sorter"),Uhe=o(t=>Vhe(t,t.children()),"sortNodesByHierarchy")});var iVe,aVe,sVe,oVe,lVe,Yhe,Whe,qhe,Xhe=R(()=>{"use strict";S9();ut();bv();Al();Zt();_t();rr();_d();iVe=o((t,e)=>{V.info("Creating subgraph rect for ",e.id,e);let r=de(),n=t.insert("g").attr("class","cluster"+(e.class?" "+e.class:"")).attr("id",e.id),i=n.insert("rect",":first-child"),a=yr(r.flowchart.htmlLabels),s=n.insert("g").attr("class","cluster-label"),l=e.labelType==="markdown"?ta(s,e.labelText,{style:e.labelStyle,useHtmlLabels:a},r):s.node().appendChild(ra(e.labelText,e.labelStyle,void 0,!0)),u=l.getBBox();if(yr(r.flowchart.htmlLabels)){let g=l.children[0],y=$e(l);u=g.getBoundingClientRect(),y.attr("width",u.width),y.attr("height",u.height)}let h=0*e.padding,f=h/2,d=e.width<=u.width+h?u.width+h:e.width;e.width<=u.width+h?e.diff=(u.width-e.width)/2-e.padding/2:e.diff=-e.padding/2,V.trace("Data ",e,JSON.stringify(e)),i.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-d/2).attr("y",e.y-e.height/2-f).attr("width",d).attr("height",e.height+h);let{subGraphTitleTopMargin:p}=io(r);a?s.attr("transform",`translate(${e.x-u.width/2}, ${e.y-e.height/2+p})`):s.attr("transform",`translate(${e.x}, ${e.y-e.height/2+p})`);let m=i.node().getBBox();return e.width=m.width,e.height=m.height,e.intersect=function(g){return Ad(e,g)},n},"rect"),aVe=o((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),i=0*e.padding,a=i/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.intersect=function(l){return Ad(e,l)},r},"noteGroup"),sVe=o((t,e)=>{let r=de(),n=t.insert("g").attr("class",e.classes).attr("id",e.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),s=n.append("rect"),l=a.node().appendChild(ra(e.labelText,e.labelStyle,void 0,!0)),u=l.getBBox();if(yr(r.flowchart.htmlLabels)){let g=l.children[0],y=$e(l);u=g.getBoundingClientRect(),y.attr("width",u.width),y.attr("height",u.height)}u=l.getBBox();let h=0*e.padding,f=h/2,d=e.width<=u.width+e.padding?u.width+e.padding:e.width;e.width<=u.width+e.padding?e.diff=(u.width+e.padding*0-e.width)/2:e.diff=-e.padding/2,i.attr("class","outer").attr("x",e.x-d/2-f).attr("y",e.y-e.height/2-f).attr("width",d+h).attr("height",e.height+h),s.attr("class","inner").attr("x",e.x-d/2-f).attr("y",e.y-e.height/2-f+u.height-1).attr("width",d+h).attr("height",e.height+h-u.height-3);let{subGraphTitleTopMargin:p}=io(r);a.attr("transform",`translate(${e.x-u.width/2}, ${e.y-e.height/2-e.padding/3+(yr(r.flowchart.htmlLabels)?5:3)+p})`);let m=i.node().getBBox();return e.height=m.height,e.intersect=function(g){return Ad(e,g)},n},"roundedWithTitle"),oVe=o((t,e)=>{let r=t.insert("g").attr("class",e.classes).attr("id",e.id),n=r.insert("rect",":first-child"),i=0*e.padding,a=i/2;n.attr("class","divider").attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2).attr("width",e.width+i).attr("height",e.height+i);let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.diff=-e.padding/2,e.intersect=function(l){return Ad(e,l)},r},"divider"),lVe={rect:iVe,roundedWithTitle:sVe,noteGroup:aVe,divider:oVe},Yhe={},Whe=o((t,e)=>{V.trace("Inserting cluster");let r=e.shape||"rect";Yhe[e.id]=lVe[r](t,e)},"insertCluster"),qhe=o(()=>{Yhe={}},"clear")});var Khe,cVe,jhe,Qhe=R(()=>{"use strict";ut();Khe=o((t,e,r,n,i)=>{e.arrowTypeStart&&jhe(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&jhe(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),cVe={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},jhe=o((t,e,r,n,i,a)=>{let s=cVe[r];if(!s){V.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function NE(t,e){de().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}var ME,Ta,Jhe,IE,OE,uVe,hVe,Zhe,PE,DO=R(()=>{"use strict";ut();bv();Al();Zt();_t();xr();rr();j9();_d();Qhe();ME={},Ta={},Jhe=o(()=>{ME={},Ta={}},"clear"),IE=o((t,e)=>{let r=de(),n=yr(r.flowchart.htmlLabels),i=e.labelType==="markdown"?ta(t,e.label,{style:e.labelStyle,useHtmlLabels:n,addSvgBackground:!0},r):ra(e.label,e.labelStyle),a=t.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label");s.node().appendChild(i);let l=i.getBBox();if(n){let h=i.children[0],f=$e(i);l=h.getBoundingClientRect(),f.attr("width",l.width),f.attr("height",l.height)}s.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),ME[e.id]=a,e.width=l.width,e.height=l.height;let u;if(e.startLabelLeft){let h=ra(e.startLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Ta[e.id]||(Ta[e.id]={}),Ta[e.id].startLeft=f,NE(u,e.startLabelLeft)}if(e.startLabelRight){let h=ra(e.startLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=f.node().appendChild(h),d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Ta[e.id]||(Ta[e.id]={}),Ta[e.id].startRight=f,NE(u,e.startLabelRight)}if(e.endLabelLeft){let h=ra(e.endLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),Ta[e.id]||(Ta[e.id]={}),Ta[e.id].endLeft=f,NE(u,e.endLabelLeft)}if(e.endLabelRight){let h=ra(e.endLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),Ta[e.id]||(Ta[e.id]={}),Ta[e.id].endRight=f,NE(u,e.endLabelRight)}return i},"insertEdgeLabel");o(NE,"setTerminalWidth");OE=o((t,e)=>{V.debug("Moving label abc88 ",t.id,t.label,ME[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=de(),{subGraphTitleTotalMargin:i}=io(n);if(t.label){let a=ME[t.id],s=t.x,l=t.y;if(r){let u=Lt.calcLabelPosition(r);V.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=Ta[t.id].startLeft,s=t.x,l=t.y;if(r){let u=Lt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=Ta[t.id].startRight,s=t.x,l=t.y;if(r){let u=Lt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=Ta[t.id].endLeft,s=t.x,l=t.y;if(r){let u=Lt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=Ta[t.id].endRight,s=t.x,l=t.y;if(r){let u=Lt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),uVe=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),hVe=o((t,e,r)=>{V.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{V.debug("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(!uVe(e,a)&&!i){let s=hVe(e,n,a),l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)||r.push(s),i=!0}else n=a,i||r.push(a)}),r},"cutPathAtIntersect"),PE=o(function(t,e,r,n,i,a,s){let l=r.points;V.debug("abc88 InsertEdge: edge=",r,"e=",e);let u=!1,h=a.node(e.v);var f=a.node(e.w);f?.intersect&&h?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(h.intersect(l[0])),l.push(f.intersect(l[l.length-1]))),r.toCluster&&(V.debug("to cluster abc88",n[r.toCluster]),l=Zhe(r.points,n[r.toCluster].node),u=!0),r.fromCluster&&(V.debug("from cluster abc88",n[r.fromCluster]),l=Zhe(l.reverse(),n[r.fromCluster].node).reverse(),u=!0);let d=l.filter(S=>!Number.isNaN(S.y)),p=vs;r.curve&&(i==="graph"||i==="flowchart")&&(p=r.curve);let{x:m,y:g}=X5(r),y=ha().x(m).y(g).curve(p),v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}let x=t.append("path").attr("d",y(d)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";(de().flowchart.arrowMarkerAbsolute||de().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),Khe(x,r,b,s,i);let w={};return u&&(w.updatedPath=l),w.originalPath=r.points,w},"insertEdge")});var efe,tfe,rfe=R(()=>{"use strict";Vd();Pv();LO();N5();Hhe();M5();Xhe();DO();ut();_d();_t();efe=o(async(t,e,r,n,i,a)=>{V.info("Graph in recursive render: XXX",zn(e),i);let s=e.graph().rankdir;V.trace("Dir in recursive render - dir:",s);let l=t.insert("g").attr("class","root");e.nodes()?V.info("Recursive render XXX",e.nodes()):V.info("No nodes found for",e),e.edges().length>0&&V.trace("Recursive edges",e.edge(e.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(e.nodes().map(async function(g){let y=e.node(g);if(i!==void 0){let v=JSON.parse(JSON.stringify(i.clusterData));V.info("Setting data for cluster XXX (",g,") ",v,i),e.setNode(i.id,v),e.parent(g)||(V.trace("Setting parent",g,i.id),e.setParent(g,i.id,v))}if(V.info("(Insert) Node XXX"+g+": "+JSON.stringify(e.node(g))),y?.clusterNode){V.info("Cluster identified",g,y.width,e.node(g));let{ranksep:v,nodesep:x}=e.graph();y.graph.setGraph({...y.graph.graph(),ranksep:v,nodesep:x});let b=await efe(d,y.graph,r,n,e.node(g),a),w=b.elem;kn(y,w),y.diff=b.diff||0,V.info("Node bounds (abc123)",g,y,y.width,y.x,y.y),Bj(w,y),V.warn("Recursive render complete ",w,y)}else e.children(g).length>0?(V.info("Cluster - the non recursive path XXX",g,y.id,y,e),V.info(Fg(y.id,e)),tr[y.id]={id:Fg(y.id,e),node:y}):(V.info("Node - the non recursive path",g,y.id,y),await pm(d,e.node(g),s))})),e.edges().forEach(async function(g){let y=e.edge(g.v,g.w,g.name);V.info("Edge "+g.v+" -> "+g.w+": "+JSON.stringify(g)),V.info("Edge "+g.v+" -> "+g.w+": ",g," ",JSON.stringify(e.edge(g))),V.info("Fix",tr,"ids:",g.v,g.w,"Translating: ",tr[g.v],tr[g.w]),await IE(f,y)}),e.edges().forEach(function(g){V.info("Edge "+g.v+" -> "+g.w+": "+JSON.stringify(g))}),V.info("Graph before layout:",JSON.stringify(zn(e))),V.info("#############################################"),V.info("### Layout ###"),V.info("#############################################"),V.info(e),lo(e),V.info("Graph after layout:",JSON.stringify(zn(e)));let p=0,{subGraphTitleTotalMargin:m}=io(a);return Uhe(e).forEach(function(g){let y=e.node(g);V.info("Position "+g+": "+JSON.stringify(e.node(g))),V.info("Position "+g+": ("+y.x,","+y.y,") width: ",y.width," height: ",y.height),y?.clusterNode?(y.y+=m,wv(y)):e.children(g).length>0?(y.height+=m,Whe(u,y),tr[y.id].node=y):(y.y+=m/2,wv(y))}),e.edges().forEach(function(g){let y=e.edge(g);V.info("Edge "+g.v+" -> "+g.w+": "+JSON.stringify(y),y),y.points.forEach(x=>x.y+=m/2);let v=PE(h,g,y,tr,r,e,n);OE(y,v)}),e.nodes().forEach(function(g){let y=e.node(g);V.info(g,y.type,y.diff),y.type==="group"&&(p=y.diff)}),{elem:l,diff:p}},"recursiveRender"),tfe=o(async(t,e,r,n,i)=>{LE(t,r,n,i),Fj(),Jhe(),qhe(),Bhe(),V.warn("Graph at first:",JSON.stringify(zn(e))),Ghe(e),V.warn("Graph after:",JSON.stringify(zn(e)));let a=de();await efe(t,e,n,i,void 0,a)},"render")});function nfe(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}var NO,RO,fVe,ife,dVe,pVe,mVe,gVe,afe,sfe=R(()=>{"use strict";Zt();ya();ut();_t();rfe();xr();xr();Yn();rr();NO=o(t=>We.sanitizeText(t,de()),"sanitizeText"),RO={dividerMargin:10,padding:5,textHeight:10,curve:void 0},fVe=o(function(t,e,r,n){V.info("keys:",[...t.keys()]),V.info(t),t.forEach(function(i){let s={shape:"rect",id:i.id,domId:i.domId,labelText:NO(i.id),labelStyle:"",style:"fill: none; stroke: black",padding:de().flowchart?.padding??de().class?.padding};e.setNode(i.id,s),ife(i.classes,e,r,n,i.id),V.info("setNode",s)})},"addNamespaces"),ife=o(function(t,e,r,n,i){V.info("keys:",[...t.keys()]),V.info(t),[...t.values()].filter(a=>a.parent===i).forEach(function(a){let s=a.cssClasses.join(" "),l=lm(a.styles),u=a.label??a.id,h=0,d={labelStyle:l.labelStyle,shape:"class_box",labelText:NO(u),classData:a,rx:h,ry:h,class:s,style:l.style,id:a.id,domId:a.domId,tooltip:n.db.getTooltip(a.id,i)||"",haveCallback:a.haveCallback,link:a.link,width:a.type==="group"?500:void 0,type:a.type,padding:de().flowchart?.padding??de().class?.padding};e.setNode(a.id,d),i&&e.setParent(a.id,i),V.info("setNode",d)})},"addClasses"),dVe=o(function(t,e,r,n){V.info(t),t.forEach(function(i,a){let s=i,l="",u={labelStyle:"",style:""},h=s.text,f=0,p={labelStyle:u.labelStyle,shape:"note",labelText:NO(h),noteData:s,rx:f,ry:f,class:l,style:u.style,id:s.id,domId:s.id,tooltip:"",type:"note",padding:de().flowchart?.padding??de().class?.padding};if(e.setNode(s.id,p),V.info("setNode",p),!s.class||!n.has(s.class))return;let m=r+a,g={id:`edgeNote${m}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:om(RO.curve,xu)};e.setEdge(s.id,s.class,g,m)})},"addNotes"),pVe=o(function(t,e){let r=de().flowchart,n=0;t.forEach(function(i){n++;let a={classes:"relation",pattern:i.relation.lineType==1?"dashed":"solid",id:y5(i.id1,i.id2,{prefix:"id",counter:n}),arrowhead:i.type==="arrow_open"?"none":"normal",startLabelRight:i.relationTitle1==="none"?"":i.relationTitle1,endLabelLeft:i.relationTitle2==="none"?"":i.relationTitle2,arrowTypeStart:nfe(i.relation.type1),arrowTypeEnd:nfe(i.relation.type2),style:"fill:none",labelStyle:"",curve:om(r?.curve,xu)};if(V.info(a,i),i.style!==void 0){let s=lm(i.style);a.style=s.style,a.labelStyle=s.labelStyle}i.text=i.title,i.text===void 0?i.style!==void 0&&(a.arrowheadStyle="fill: #333"):(a.arrowheadStyle="fill: #333",a.labelpos="c",de().flowchart?.htmlLabels??de().htmlLabels?(a.labelType="html",a.label=''+i.text+""):(a.labelType="text",a.label=i.text.replace(We.lineBreakRegex,` +`),i.style===void 0&&(a.style=a.style||"stroke: #333; stroke-width: 1.5px;fill:none"),a.labelStyle=a.labelStyle.replace("color:","fill:"))),e.setEdge(i.id1,i.id2,a,n)})},"addRelations"),mVe=o(function(t){RO={...RO,...t}},"setConf"),gVe=o(async function(t,e,r,n){V.info("Drawing class - ",e);let i=de().flowchart??de().class,a=de().securityLevel;V.info("config:",i);let s=i?.nodeSpacing??50,l=i?.rankSpacing??50,u=new lr({multigraph:!0,compound:!0}).setGraph({rankdir:n.db.getDirection(),nodesep:s,ranksep:l,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),h=n.db.getNamespaces(),f=n.db.getClasses(),d=n.db.getRelations(),p=n.db.getNotes();V.info(d),fVe(h,u,e,n),ife(f,u,e,n),pVe(d,u),dVe(p,u,d.length+1,f);let m;a==="sandbox"&&(m=$e("#i"+e));let g=a==="sandbox"?$e(m.nodes()[0].contentDocument.body):$e("body"),y=g.select(`[id="${e}"]`),v=g.select("#"+e+" g");if(await tfe(v,u,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",e),Lt.insertTitle(y,"classTitleText",i?.titleTopMargin??5,n.db.getDiagramTitle()),Lo(u,y,i?.diagramPadding,i?.useMaxWidth),!i?.htmlLabels){let x=a==="sandbox"?m.nodes()[0].contentDocument:document,b=x.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(let w of b){let S=w.getBBox(),T=x.createElementNS("http://www.w3.org/2000/svg","rect");T.setAttribute("rx",0),T.setAttribute("ry",0),T.setAttribute("width",S.width),T.setAttribute("height",S.height),w.insertBefore(T,w.firstChild)}}},"draw");o(nfe,"getArrowMarker");afe={setConf:mVe,draw:gVe}});var ofe={};hr(ofe,{diagram:()=>yVe});var yVe,lfe=R(()=>{"use strict";TO();AO();_O();sfe();yVe={parser:wE,db:Bg,renderer:afe,styles:CE,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Bg.clear()},"init")}});var MO,BE,IO=R(()=>{"use strict";MO=function(){var t=o(function(F,B,$,z){for($=$||{},z=F.length;z--;$[F[z]]=B);return $},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,16],u=[1,17],h=[1,18],f=[1,19],d=[1,32],p=[1,20],m=[1,21],g=[1,22],y=[1,23],v=[1,24],x=[1,26],b=[1,27],w=[1,28],S=[1,29],T=[1,30],E=[1,31],_=[1,34],A=[1,35],L=[1,36],M=[1,37],N=[1,33],k=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],I=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],C=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],O={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:o(function(B,$,z,Y,Q,X,ie){var j=X.length-1;switch(Q){case 3:return Y.setRootDoc(X[j]),X[j];break;case 4:this.$=[];break;case 5:X[j]!="nl"&&(X[j-1].push(X[j]),this.$=X[j-1]);break;case 6:case 7:this.$=X[j];break;case 8:this.$="nl";break;case 12:this.$=X[j];break;case 13:let q=X[j-1];q.description=Y.trimColon(X[j]),this.$=q;break;case 14:this.$={stmt:"relation",state1:X[j-2],state2:X[j]};break;case 15:let K=Y.trimColon(X[j]);this.$={stmt:"relation",state1:X[j-3],state2:X[j-1],description:K};break;case 19:this.$={stmt:"state",id:X[j-3],type:"default",description:"",doc:X[j-1]};break;case 20:var J=X[j],Z=X[j-2].trim();if(X[j].match(":")){var H=X[j].split(":");J=H[0],Z=[Z,H[1]]}this.$={stmt:"state",id:J,type:"default",description:Z};break;case 21:this.$={stmt:"state",id:X[j-3],type:"default",description:X[j-5],doc:X[j-1]};break;case 22:this.$={stmt:"state",id:X[j],type:"fork"};break;case 23:this.$={stmt:"state",id:X[j],type:"join"};break;case 24:this.$={stmt:"state",id:X[j],type:"choice"};break;case 25:this.$={stmt:"state",id:Y.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:X[j-1].trim(),note:{position:X[j-2].trim(),text:X[j].trim()}};break;case 29:this.$=X[j].trim(),Y.setAccTitle(this.$);break;case 30:case 31:this.$=X[j].trim(),Y.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:X[j-1].trim(),classes:X[j].trim()};break;case 34:this.$={stmt:"style",id:X[j-1].trim(),styleClass:X[j].trim()};break;case 35:this.$={stmt:"applyClass",id:X[j-1].trim(),styleClass:X[j].trim()};break;case 36:Y.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:Y.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:Y.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:Y.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:X[j].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:X[j-2].trim(),classes:[X[j].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:X[j-2].trim(),classes:[X[j].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:S,42:T,45:E,48:_,49:A,50:L,51:M,54:N},t(k,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:S,42:T,45:E,48:_,49:A,50:L,51:M,54:N},t(k,[2,7]),t(k,[2,8]),t(k,[2,9]),t(k,[2,10]),t(k,[2,11]),t(k,[2,12],{14:[1,39],15:[1,40]}),t(k,[2,16]),{18:[1,41]},t(k,[2,18],{20:[1,42]}),{23:[1,43]},t(k,[2,22]),t(k,[2,23]),t(k,[2,24]),t(k,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},t(k,[2,28]),{34:[1,48]},{36:[1,49]},t(k,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},t(I,[2,42],{55:[1,54]}),t(I,[2,43],{55:[1,55]}),t(k,[2,36]),t(k,[2,37]),t(k,[2,38]),t(k,[2,39]),t(k,[2,6]),t(k,[2,13]),{13:56,24:d,54:N},t(k,[2,17]),t(C,i,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},t(k,[2,29]),t(k,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},t(k,[2,14],{14:[1,67]}),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,68],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:S,42:T,45:E,48:_,49:A,50:L,51:M,54:N},t(k,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},t(k,[2,32]),t(k,[2,33]),t(k,[2,34]),t(k,[2,35]),t(I,[2,44]),t(I,[2,45]),t(k,[2,15]),t(k,[2,19]),t(C,i,{7:72}),t(k,[2,26]),t(k,[2,27]),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,73],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:S,42:T,45:E,48:_,49:A,50:L,51:M,54:N},t(k,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:o(function(B,$){if($.recoverable)this.trace(B);else{var z=new Error(B);throw z.hash=$,z}},"parseError"),parse:o(function(B){var $=this,z=[0],Y=[],Q=[null],X=[],ie=this.table,j="",J=0,Z=0,H=0,q=2,K=1,se=X.slice.call(arguments,1),ce=Object.create(this.lexer),ue={yy:{}};for(var te in this.yy)Object.prototype.hasOwnProperty.call(this.yy,te)&&(ue.yy[te]=this.yy[te]);ce.setInput(B,ue.yy),ue.yy.lexer=ce,ue.yy.parser=this,typeof ce.yylloc>"u"&&(ce.yylloc={});var De=ce.yylloc;X.push(De);var oe=ce.options&&ce.options.ranges;typeof ue.yy.parseError=="function"?this.parseError=ue.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ke(we){z.length=z.length-2*we,Q.length=Q.length-we,X.length=X.length-we}o(ke,"popStack");function Ie(){var we;return we=Y.pop()||ce.lex()||K,typeof we!="number"&&(we instanceof Array&&(Y=we,we=Y.pop()),we=$.symbols_[we]||we),we}o(Ie,"lex");for(var Se,Ue,Pe,_e,me,W,fe={},ge,re,he,ne;;){if(Pe=z[z.length-1],this.defaultActions[Pe]?_e=this.defaultActions[Pe]:((Se===null||typeof Se>"u")&&(Se=Ie()),_e=ie[Pe]&&ie[Pe][Se]),typeof _e>"u"||!_e.length||!_e[0]){var ae="";ne=[];for(ge in ie[Pe])this.terminals_[ge]&&ge>q&&ne.push("'"+this.terminals_[ge]+"'");ce.showPosition?ae="Parse error on line "+(J+1)+`: +`+ce.showPosition()+` +Expecting `+ne.join(", ")+", got '"+(this.terminals_[Se]||Se)+"'":ae="Parse error on line "+(J+1)+": Unexpected "+(Se==K?"end of input":"'"+(this.terminals_[Se]||Se)+"'"),this.parseError(ae,{text:ce.match,token:this.terminals_[Se]||Se,line:ce.yylineno,loc:De,expected:ne})}if(_e[0]instanceof Array&&_e.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Pe+", token: "+Se);switch(_e[0]){case 1:z.push(Se),Q.push(ce.yytext),X.push(ce.yylloc),z.push(_e[1]),Se=null,Ue?(Se=Ue,Ue=null):(Z=ce.yyleng,j=ce.yytext,J=ce.yylineno,De=ce.yylloc,H>0&&H--);break;case 2:if(re=this.productions_[_e[1]][1],fe.$=Q[Q.length-re],fe._$={first_line:X[X.length-(re||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(re||1)].first_column,last_column:X[X.length-1].last_column},oe&&(fe._$.range=[X[X.length-(re||1)].range[0],X[X.length-1].range[1]]),W=this.performAction.apply(fe,[j,Z,J,ue.yy,_e[1],Q,X].concat(se)),typeof W<"u")return W;re&&(z=z.slice(0,-1*re*2),Q=Q.slice(0,-1*re),X=X.slice(0,-1*re)),z.push(this.productions_[_e[1]][0]),Q.push(fe.$),X.push(fe._$),he=ie[z[z.length-2]][z[z.length-1]],z.push(he);break;case 3:return!0}}return!0},"parse")},D=function(){var F={EOF:1,parseError:o(function($,z){if(this.yy.parser)this.yy.parser.parseError($,z);else throw new Error($)},"parseError"),setInput:o(function(B,$){return this.yy=$||this.yy||{},this._input=B,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var B=this._input[0];this.yytext+=B,this.yyleng++,this.offset++,this.match+=B,this.matched+=B;var $=B.match(/(?:\r\n?|\n).*/g);return $?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),B},"input"),unput:o(function(B){var $=B.length,z=B.split(/(?:\r\n?|\n)/g);this._input=B+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-$),this.offset-=$;var Y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),z.length-1&&(this.yylineno-=z.length-1);var Q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:z?(z.length===Y.length?this.yylloc.first_column:0)+Y[Y.length-z.length].length-z[0].length:this.yylloc.first_column-$},this.options.ranges&&(this.yylloc.range=[Q[0],Q[0]+this.yyleng-$]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(B){this.unput(this.match.slice(B))},"less"),pastInput:o(function(){var B=this.matched.substr(0,this.matched.length-this.match.length);return(B.length>20?"...":"")+B.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var B=this.match;return B.length<20&&(B+=this._input.substr(0,20-B.length)),(B.substr(0,20)+(B.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var B=this.pastInput(),$=new Array(B.length+1).join("-");return B+this.upcomingInput()+` +`+$+"^"},"showPosition"),test_match:o(function(B,$){var z,Y,Q;if(this.options.backtrack_lexer&&(Q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Q.yylloc.range=this.yylloc.range.slice(0))),Y=B[0].match(/(?:\r\n?|\n).*/g),Y&&(this.yylineno+=Y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Y?Y[Y.length-1].length-Y[Y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+B[0].length},this.yytext+=B[0],this.match+=B[0],this.matches=B,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(B[0].length),this.matched+=B[0],z=this.performAction.call(this,this.yy,this,$,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),z)return z;if(this._backtrack){for(var X in Q)this[X]=Q[X];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var B,$,z,Y;this._more||(this.yytext="",this.match="");for(var Q=this._currentRules(),X=0;X$[0].length)){if($=z,Y=X,this.options.backtrack_lexer){if(B=this.test_match(z,Q[X]),B!==!1)return B;if(this._backtrack){$=!1;continue}else return!1}else if(!this.options.flex)break}return $?(B=this.test_match($,Q[Y]),B!==!1?B:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var $=this.next();return $||this.lex()},"lex"),begin:o(function($){this.conditionStack.push($)},"begin"),popState:o(function(){var $=this.conditionStack.length-1;return $>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function($){return $=this.conditionStack.length-1-Math.abs($||0),$>=0?this.conditionStack[$]:"INITIAL"},"topState"),pushState:o(function($){this.begin($)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function($,z,Y,Q){var X=Q;switch(Y){case 0:return 41;case 1:return 48;case 2:return 49;case 3:return 50;case 4:return 51;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),17;break;case 13:return 18;case 14:this.popState();break;case 15:return this.begin("acc_title"),33;break;case 16:return this.popState(),"acc_title_value";break;case 17:return this.begin("acc_descr"),35;break;case 18:return this.popState(),"acc_descr_value";break;case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),38;break;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 24:return this.popState(),this.pushState("CLASSDEFID"),39;break;case 25:return this.popState(),40;break;case 26:return this.pushState("CLASS"),45;break;case 27:return this.popState(),this.pushState("CLASS_STYLE"),46;break;case 28:return this.popState(),47;break;case 29:return this.pushState("STYLE"),42;break;case 30:return this.popState(),this.pushState("STYLEDEF_STYLES"),43;break;case 31:return this.popState(),44;break;case 32:return this.pushState("SCALE"),17;break;case 33:return 18;case 34:this.popState();break;case 35:this.pushState("STATE");break;case 36:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),25;break;case 37:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),26;break;case 38:return this.popState(),z.yytext=z.yytext.slice(0,-10).trim(),27;break;case 39:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),z.yytext=z.yytext.slice(0,-10).trim(),27;break;case 42:return 48;case 43:return 49;case 44:return 50;case 45:return 51;case 46:this.pushState("STATE_STRING");break;case 47:return this.pushState("STATE_ID"),"AS";break;case 48:return this.popState(),"ID";break;case 49:this.popState();break;case 50:return"STATE_DESCR";case 51:return 19;case 52:this.popState();break;case 53:return this.popState(),this.pushState("struct"),20;break;case 54:break;case 55:return this.popState(),21;break;case 56:break;case 57:return this.begin("NOTE"),29;break;case 58:return this.popState(),this.pushState("NOTE_ID"),56;break;case 59:return this.popState(),this.pushState("NOTE_ID"),57;break;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 62:break;case 63:return"NOTE_TEXT";case 64:return this.popState(),"ID";break;case 65:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 66:return this.popState(),z.yytext=z.yytext.substr(2).trim(),31;break;case 67:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),31;break;case 68:return 6;case 69:return 6;case 70:return 16;case 71:return 54;case 72:return 24;case 73:return z.yytext=z.yytext.trim(),14;break;case 74:return 15;case 75:return 28;case 76:return 55;case 77:return 5;case 78:return"INVALID"}},"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};return F}();O.lexer=D;function P(){this.yy={}}return o(P,"Parser"),P.prototype=O,O.Parser=P,new P}();MO.parser=MO;BE=MO});var hfe,FE,zg,Ex,ffe,dfe,pfe,N0,zE,OO,PO,BO,FO,zO,GE,$E,mfe,gfe,GO,$O,yfe,vfe,Gg,wVe,xfe,VO,TVe,kVe,bfe,wfe,EVe,Tfe,CVe,kfe,UO,HO,Efe,VE,Cfe,YO,UE=R(()=>{"use strict";hfe="LR",FE="TB",zg="state",Ex="relation",ffe="classDef",dfe="style",pfe="applyClass",N0="default",zE="divider",OO="fill:none",PO="fill: #333",BO="c",FO="text",zO="normal",GE="rect",$E="rectWithTitle",mfe="stateStart",gfe="stateEnd",GO="divider",$O="roundedWithTitle",yfe="note",vfe="noteGroup",Gg="statediagram",wVe="state",xfe=`${Gg}-${wVe}`,VO="transition",TVe="note",kVe="note-edge",bfe=`${VO} ${kVe}`,wfe=`${Gg}-${TVe}`,EVe="cluster",Tfe=`${Gg}-${EVe}`,CVe="cluster-alt",kfe=`${Gg}-${CVe}`,UO="parent",HO="note",Efe="state",VE="----",Cfe=`${VE}${HO}`,YO=`${VE}${UO}`});function WO(t="",e=0,r="",n=VE){let i=r!==null&&r.length>0?`${n}${r}`:"";return`${Efe}-${t}${i}-${e}`}function HE(t,e,r){if(!e.id||e.id===""||e.id==="")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(i=>{if(r.get(i)){let a=r.get(i);e.cssCompiledStyles=[...e.cssCompiledStyles,...a.styles]}}));let n=t.find(i=>i.id===e.id);n?Object.assign(n,e):t.push(e)}function AVe(t){return t?.classes?.join(" ")??""}function _Ve(t){return t?.styles??[]}var YE,yf,SVe,Sfe,$g,Afe,_fe=R(()=>{"use strict";_t();ut();rr();UE();YE=new Map,yf=0;o(WO,"stateDomId");SVe=o((t,e,r,n,i,a,s,l)=>{V.trace("items",e),e.forEach(u=>{switch(u.stmt){case zg:$g(t,u,r,n,i,a,s,l);break;case N0:$g(t,u,r,n,i,a,s,l);break;case Ex:{$g(t,u.state1,r,n,i,a,s,l),$g(t,u.state2,r,n,i,a,s,l);let h={id:"edge"+yf,start:u.state1.id,end:u.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:OO,labelStyle:"",label:We.sanitizeText(u.description,de()),arrowheadStyle:PO,labelpos:BO,labelType:FO,thickness:zO,classes:VO,look:s};i.push(h),yf++}break}})},"setupDoc"),Sfe=o((t,e=FE)=>{let r=e;if(t.doc)for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir");o(HE,"insertOrUpdateNode");o(AVe,"getClassesFromDbInfo");o(_Ve,"getStylesFromDbInfo");$g=o((t,e,r,n,i,a,s,l)=>{let u=e.id,h=r.get(u),f=AVe(h),d=_Ve(h);if(V.info("dataFetcher parsedItem",e,h,d),u!=="root"){let p=GE;e.start===!0?p=mfe:e.start===!1&&(p=gfe),e.type!==N0&&(p=e.type),YE.get(u)||YE.set(u,{id:u,shape:p,description:We.sanitizeText(u,de()),cssClasses:`${f} ${xfe}`,cssStyles:d});let m=YE.get(u);e.description&&(Array.isArray(m.description)?(m.shape=$E,m.description.push(e.description)):m.description?.length>0?(m.shape=$E,m.description===u?m.description=[e.description]:m.description=[m.description,e.description]):(m.shape=GE,m.description=e.description),m.description=We.sanitizeTextOrArray(m.description,de())),m.description?.length===1&&m.shape===$E&&(m.type==="group"?m.shape=$O:m.shape=GE),!m.type&&e.doc&&(V.info("Setting cluster for XCX",u,Sfe(e)),m.type="group",m.isGroup=!0,m.dir=Sfe(e),m.shape=e.type===zE?GO:$O,m.cssClasses=`${m.cssClasses} ${Tfe} ${a?kfe:""}`);let g={labelStyle:"",shape:m.shape,label:m.description,cssClasses:m.cssClasses,cssCompiledStyles:[],cssStyles:m.cssStyles,id:u,dir:m.dir,domId:WO(u,yf),type:m.type,isGroup:m.type==="group",padding:8,rx:10,ry:10,look:s};if(g.shape===GO&&(g.label=""),t&&t.id!=="root"&&(V.trace("Setting node ",u," to be child of its parent ",t.id),g.parentId=t.id),g.centerLabel=!0,e.note){let y={labelStyle:"",shape:yfe,label:e.note.text,cssClasses:wfe,cssStyles:[],cssCompilesStyles:[],id:u+Cfe+"-"+yf,domId:WO(u,yf,HO),type:m.type,isGroup:m.type==="group",padding:de().flowchart.padding,look:s,position:e.note.position},v=u+YO,x={labelStyle:"",shape:vfe,label:e.note.text,cssClasses:m.cssClasses,cssStyles:[],id:u+YO,domId:WO(u,yf,UO),type:"group",isGroup:!0,padding:16,look:s,position:e.note.position};yf++,x.id=v,y.parentId=v,HE(n,x,l),HE(n,y,l),HE(n,g,l);let b=u,w=y.id;e.note.position==="left of"&&(b=y.id,w=u),i.push({id:b+"-"+w,start:b,end:w,arrowhead:"none",arrowTypeEnd:"",style:OO,labelStyle:"",classes:bfe,arrowheadStyle:PO,labelpos:BO,labelType:FO,thickness:zO,look:s})}else HE(n,g,l)}e.doc&&(V.trace("Adding nodes children "),SVe(e,e.doc,r,n,i,!a,s,l))},"dataFetcher"),Afe=o(()=>{YE.clear(),yf=0},"reset")});var qO,LVe,DVe,Lfe,XO=R(()=>{"use strict";_t();ut();L9();oT();yD();xr();UE();qO=o((t,e=FE)=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),LVe=o(function(t,e){return e.db.extract(e.db.getRootDocV2()),e.db.getClasses()},"getClasses"),DVe=o(async function(t,e,r,n){V.info("REF0:"),V.info("Drawing state diagram (v2)",e);let{securityLevel:i,state:a,layout:s}=de();n.db.extract(n.db.getRootDocV2());let l=n.db.getData(),u=I5(e,i);l.type=n.type,l.layoutAlgorithm=s,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["barb"],l.diagramId=e,await sT(l,u);let h=8;Lt.insertTitle(u,"statediagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),lT(u,h,Gg,a?.useMaxWidth??!0)},"draw"),Lfe={getClasses:LVe,draw:DVe,getDir:qO}});function Pfe(){return new Map}function jO(t=""){let e=t;return t===ZO&&(Cx++,e=`${Mfe}${Cx}`),e}function KO(t="",e=N0){return t===ZO?Mfe:e}function GVe(t=""){let e=t;return t===Ife&&(Cx++,e=`${Ofe}${Cx}`),e}function $Ve(t="",e=N0){return t===Ife?Ofe:e}function VVe(t,e,r){let n=jO(t.id.trim()),i=KO(t.id.trim(),t.type),a=jO(e.id.trim()),s=KO(e.id.trim(),e.type);vf(n,i,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),vf(a,s,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),Fs.relations.push({id1:n,id2:a,relationTitle:We.sanitizeText(r,de())})}var ZO,Mfe,Ife,Ofe,Dfe,Rfe,RVe,NVe,XE,JO,Bfe,jE,Vg,Ffe,KE,Fs,Cx,Nfe,MVe,IVe,WE,OVe,PVe,qE,eP,BVe,vf,zfe,M0,Gfe,FVe,zVe,$fe,QO,UVe,HVe,Vfe,YVe,tP,WVe,qVe,XVe,jVe,KVe,QVe,Qo,QE=R(()=>{"use strict";ut();xr();rr();_t();bi();_fe();XO();UE();ZO="[*]",Mfe="start",Ife=ZO,Ofe="end",Dfe="color",Rfe="fill",RVe="bgFill",NVe=",";o(Pfe,"newClassesList");XE=[],JO=[],Bfe=hfe,jE=[],Vg=Pfe(),Ffe=o(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),KE={root:Ffe()},Fs=KE.root,Cx=0,Nfe=0,MVe={LINE:0,DOTTED_LINE:1},IVe={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},WE=o(t=>JSON.parse(JSON.stringify(t)),"clone"),OVe=o(t=>{V.info("Setting root doc",t),jE=t},"setRootDoc"),PVe=o(()=>jE,"getRootDoc"),qE=o((t,e,r)=>{if(e.stmt===Ex)qE(t,e.state1,!0),qE(t,e.state2,!1);else if(e.stmt===zg&&(e.id==="[*]"?(e.id=r?t.id+"_start":t.id+"_end",e.start=r):e.id=e.id.trim()),e.doc){let n=[],i=[],a;for(a=0;a0&&i.length>0){let s={stmt:zg,id:Z_(),type:"divider",doc:WE(i)};n.push(WE(s)),e.doc=n}e.doc.forEach(s=>qE(e,s,!0))}},"docTranslator"),eP=o(()=>(qE({id:"root"},{id:"root",doc:jE},!0),{id:"root",doc:jE}),"getRootDocV2"),BVe=o(t=>{let e;t.doc?e=t.doc:e=t,V.info(e),zfe(!0),V.info("Extract initial document:",e),e.forEach(a=>{switch(V.warn("Statement",a.stmt),a.stmt){case zg:vf(a.id.trim(),a.type,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles);break;case Ex:$fe(a.state1,a.state2,a.description);break;case ffe:Vfe(a.id.trim(),a.classes);break;case dfe:{let s=a.id.trim().split(","),l=a.styleClass.split(",");s.forEach(u=>{let h=M0(u);if(h===void 0){let f=u.trim();vf(f),h=M0(f)}h.styles=l.map(f=>f.replace(/;/g,"")?.trim())})}break;case pfe:tP(a.id.trim(),a.styleClass);break}});let r=Gfe(),i=de().look;Afe(),$g(void 0,eP(),r,XE,JO,!0,i,Vg),XE.forEach(a=>{if(Array.isArray(a.label)){if(a.description=a.label.slice(1),a.isGroup&&a.description.length>0)throw new Error("Group nodes can only have label. Remove the additional description for node ["+a.id+"]");a.label=a.label[0]}})},"extract"),vf=o(function(t,e=N0,r=null,n=null,i=null,a=null,s=null,l=null){let u=t?.trim();if(Fs.states.has(u)?(Fs.states.get(u).doc||(Fs.states.get(u).doc=r),Fs.states.get(u).type||(Fs.states.get(u).type=e)):(V.info("Adding state ",u,n),Fs.states.set(u,{id:u,descriptions:[],type:e,doc:r,note:i,classes:[],styles:[],textStyles:[]})),n&&(V.info("Setting state description",u,n),typeof n=="string"&&QO(u,n.trim()),typeof n=="object"&&n.forEach(h=>QO(u,h.trim()))),i){let h=Fs.states.get(u);h.note=i,h.note.text=We.sanitizeText(h.note.text,de())}a&&(V.info("Setting state classes",u,a),(typeof a=="string"?[a]:a).forEach(f=>tP(u,f.trim()))),s&&(V.info("Setting state styles",u,s),(typeof s=="string"?[s]:s).forEach(f=>WVe(u,f.trim()))),l&&(V.info("Setting state styles",u,s),(typeof l=="string"?[l]:l).forEach(f=>qVe(u,f.trim())))},"addState"),zfe=o(function(t){XE=[],JO=[],KE={root:Ffe()},Fs=KE.root,Cx=0,Vg=Pfe(),t||vr()},"clear"),M0=o(function(t){return Fs.states.get(t)},"getState"),Gfe=o(function(){return Fs.states},"getStates"),FVe=o(function(){V.info("Documents = ",KE)},"logDocuments"),zVe=o(function(){return Fs.relations},"getRelations");o(jO,"startIdIfNeeded");o(KO,"startTypeIfNeeded");o(GVe,"endIdIfNeeded");o($Ve,"endTypeIfNeeded");o(VVe,"addRelationObjs");$fe=o(function(t,e,r){if(typeof t=="object")VVe(t,e,r);else{let n=jO(t.trim()),i=KO(t),a=GVe(e.trim()),s=$Ve(e);vf(n,i),vf(a,s),Fs.relations.push({id1:n,id2:a,title:We.sanitizeText(r,de())})}},"addRelation"),QO=o(function(t,e){let r=Fs.states.get(t),n=e.startsWith(":")?e.replace(":","").trim():e;r.descriptions.push(We.sanitizeText(n,de()))},"addDescription"),UVe=o(function(t){return t.substring(0,1)===":"?t.substr(2).trim():t.trim()},"cleanupLabel"),HVe=o(()=>(Nfe++,"divider-id-"+Nfe),"getDividerId"),Vfe=o(function(t,e=""){Vg.has(t)||Vg.set(t,{id:t,styles:[],textStyles:[]});let r=Vg.get(t);e?.split(NVe).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(Dfe).exec(n)){let s=i.replace(Rfe,RVe).replace(Dfe,Rfe);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),YVe=o(function(){return Vg},"getClasses"),tP=o(function(t,e){t.split(",").forEach(function(r){let n=M0(r);if(n===void 0){let i=r.trim();vf(i),n=M0(i)}n.classes.push(e)})},"setCssClass"),WVe=o(function(t,e){let r=M0(t);r!==void 0&&r.styles.push(e)},"setStyle"),qVe=o(function(t,e){let r=M0(t);r!==void 0&&r.textStyles.push(e)},"setTextStyle"),XVe=o(()=>Bfe,"getDirection"),jVe=o(t=>{Bfe=t},"setDirection"),KVe=o(t=>t&&t[0]===":"?t.substr(1).trim():t.trim(),"trimColon"),QVe=o(()=>{let t=de();return{nodes:XE,edges:JO,other:{},config:t,direction:qO(eP())}},"getData"),Qo={getConfig:o(()=>de().state,"getConfig"),getData:QVe,addState:vf,clear:zfe,getState:M0,getStates:Gfe,getRelations:zVe,getClasses:YVe,getDirection:XVe,addRelation:$fe,getDividerId:HVe,setDirection:jVe,cleanupLabel:UVe,lineType:MVe,relationType:IVe,logDocuments:FVe,getRootDoc:PVe,setRootDoc:OVe,getRootDocV2:eP,extract:BVe,trimColon:KVe,getAccTitle:Ar,setAccTitle:kr,getAccDescription:Lr,setAccDescription:_r,addStyleClass:Vfe,setCssClass:tP,addDescription:QO,setDiagramTitle:nn,getDiagramTitle:Xr}});var ZVe,ZE,rP=R(()=>{"use strict";ZVe=o(t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),ZE=ZVe});var nP,JVe,eUe,Ufe,tUe,Hfe,Yfe=R(()=>{"use strict";nP={},JVe=o((t,e)=>{nP[t]=e},"set"),eUe=o(t=>nP[t],"get"),Ufe=o(()=>Object.keys(nP),"keys"),tUe=o(()=>Ufe().length,"size"),Hfe={get:eUe,set:JVe,keys:Ufe,size:tUe}});var rUe,nUe,iUe,aUe,qfe,sUe,oUe,lUe,cUe,iP,Wfe,Xfe,jfe=R(()=>{"use strict";Zt();Yfe();QE();xr();rr();_t();ut();rUe=o(t=>t.append("circle").attr("class","start-state").attr("r",de().state.sizeUnit).attr("cx",de().state.padding+de().state.sizeUnit).attr("cy",de().state.padding+de().state.sizeUnit),"drawStartState"),nUe=o(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",de().state.textHeight).attr("class","divider").attr("x2",de().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),iUe=o((t,e)=>{let r=t.append("text").attr("x",2*de().state.padding).attr("y",de().state.textHeight+2*de().state.padding).attr("font-size",de().state.fontSize).attr("class","state-title").text(e.id),n=r.node().getBBox();return t.insert("rect",":first-child").attr("x",de().state.padding).attr("y",de().state.padding).attr("width",n.width+2*de().state.padding).attr("height",n.height+2*de().state.padding).attr("rx",de().state.radius),r},"drawSimpleState"),aUe=o((t,e)=>{let r=o(function(p,m,g){let y=p.append("tspan").attr("x",2*de().state.padding).text(m);g||y.attr("dy",de().state.textHeight)},"addTspan"),i=t.append("text").attr("x",2*de().state.padding).attr("y",de().state.textHeight+1.3*de().state.padding).attr("font-size",de().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),a=i.height,s=t.append("text").attr("x",de().state.padding).attr("y",a+de().state.padding*.4+de().state.dividerMargin+de().state.textHeight).attr("class","state-description"),l=!0,u=!0;e.descriptions.forEach(function(p){l||(r(s,p,u),u=!1),l=!1});let h=t.append("line").attr("x1",de().state.padding).attr("y1",de().state.padding+a+de().state.dividerMargin/2).attr("y2",de().state.padding+a+de().state.dividerMargin/2).attr("class","descr-divider"),f=s.node().getBBox(),d=Math.max(f.width,i.width);return h.attr("x2",d+3*de().state.padding),t.insert("rect",":first-child").attr("x",de().state.padding).attr("y",de().state.padding).attr("width",d+2*de().state.padding).attr("height",f.height+a+2*de().state.padding).attr("rx",de().state.radius),t},"drawDescrState"),qfe=o((t,e,r)=>{let n=de().state.padding,i=2*de().state.padding,a=t.node().getBBox(),s=a.width,l=a.x,u=t.append("text").attr("x",0).attr("y",de().state.titleShift).attr("font-size",de().state.fontSize).attr("class","state-title").text(e.id),f=u.node().getBBox().width+i,d=Math.max(f,s);d===s&&(d=d+i);let p,m=t.node().getBBox();e.doc,p=l-n,f>s&&(p=(s-d)/2+n),Math.abs(l-m.x)s&&(p=l-(f-s)/2);let g=1-de().state.textHeight;return t.insert("rect",":first-child").attr("x",p).attr("y",g).attr("class",r?"alt-composit":"composit").attr("width",d).attr("height",m.height+de().state.textHeight+de().state.titleShift+1).attr("rx","0"),u.attr("x",p+n),f<=s&&u.attr("x",l+(d-i)/2-f/2+n),t.insert("rect",":first-child").attr("x",p).attr("y",de().state.titleShift-de().state.textHeight-de().state.padding).attr("width",d).attr("height",de().state.textHeight*3).attr("rx",de().state.radius),t.insert("rect",":first-child").attr("x",p).attr("y",de().state.titleShift-de().state.textHeight-de().state.padding).attr("width",d).attr("height",m.height+3+2*de().state.textHeight).attr("rx",de().state.radius),t},"addTitleAndBox"),sUe=o(t=>(t.append("circle").attr("class","end-state-outer").attr("r",de().state.sizeUnit+de().state.miniPadding).attr("cx",de().state.padding+de().state.sizeUnit+de().state.miniPadding).attr("cy",de().state.padding+de().state.sizeUnit+de().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",de().state.sizeUnit).attr("cx",de().state.padding+de().state.sizeUnit+2).attr("cy",de().state.padding+de().state.sizeUnit+2)),"drawEndState"),oUe=o((t,e)=>{let r=de().state.forkWidth,n=de().state.forkHeight;if(e.parentId){let i=r;r=n,n=i}return t.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",n).attr("x",de().state.padding).attr("y",de().state.padding)},"drawForkJoinState"),lUe=o((t,e,r,n)=>{let i=0,a=n.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let s=t.replace(/\r\n/g,"
    ");s=s.replace(/\n/g,"
    ");let l=s.split(We.lineBreakRegex),u=1.25*de().state.noteMargin;for(let h of l){let f=h.trim();if(f.length>0){let d=a.append("tspan");if(d.text(f),u===0){let p=d.node().getBBox();u+=p.height}i+=u,d.attr("x",e+de().state.noteMargin),d.attr("y",r+i+1.25*de().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:i}},"_drawLongText"),cUe=o((t,e)=>{e.attr("class","state-note");let r=e.append("rect").attr("x",0).attr("y",de().state.padding),n=e.append("g"),{textWidth:i,textHeight:a}=lUe(t,0,0,n);return r.attr("height",a+2*de().state.noteMargin),r.attr("width",i+de().state.noteMargin*2),r},"drawNote"),iP=o(function(t,e){let r=e.id,n={id:r,label:e.id,width:0,height:0},i=t.append("g").attr("id",r).attr("class","stateGroup");e.type==="start"&&rUe(i),e.type==="end"&&sUe(i),(e.type==="fork"||e.type==="join")&&oUe(i,e),e.type==="note"&&cUe(e.note.text,i),e.type==="divider"&&nUe(i),e.type==="default"&&e.descriptions.length===0&&iUe(i,e),e.type==="default"&&e.descriptions.length>0&&aUe(i,e);let a=i.node().getBBox();return n.width=a.width+2*de().state.padding,n.height=a.height+2*de().state.padding,Hfe.set(r,n),n},"drawState"),Wfe=0,Xfe=o(function(t,e,r){let n=o(function(u){switch(u){case Qo.relationType.AGGREGATION:return"aggregation";case Qo.relationType.EXTENSION:return"extension";case Qo.relationType.COMPOSITION:return"composition";case Qo.relationType.DEPENDENCY:return"dependency"}},"getRelationType");e.points=e.points.filter(u=>!Number.isNaN(u.y));let i=e.points,a=ha().x(function(u){return u.x}).y(function(u){return u.y}).curve(vs),s=t.append("path").attr("d",a(i)).attr("id","edge"+Wfe).attr("class","transition"),l="";if(de().state.arrowMarkerAbsolute&&(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,l=l.replace(/\(/g,"\\("),l=l.replace(/\)/g,"\\)")),s.attr("marker-end","url("+l+"#"+n(Qo.relationType.DEPENDENCY)+"End)"),r.title!==void 0){let u=t.append("g").attr("class","stateLabel"),{x:h,y:f}=Lt.calcLabelPosition(e.points),d=We.getRows(r.title),p=0,m=[],g=0,y=0;for(let b=0;b<=d.length;b++){let w=u.append("text").attr("text-anchor","middle").text(d[b]).attr("x",h).attr("y",f+p),S=w.node().getBBox();g=Math.max(g,S.width),y=Math.min(y,S.x),V.info(S.x,h,f+p),p===0&&(p=w.node().getBBox().height,V.info("Title height",p,f)),m.push(w)}let v=p*d.length;if(d.length>1){let b=(d.length-1)*p*.5;m.forEach((w,S)=>w.attr("y",f+S*p-b)),v=p*d.length}let x=u.node().getBBox();u.insert("rect",":first-child").attr("class","box").attr("x",h-g/2-de().state.padding/2).attr("y",f-v/2-de().state.padding/2-3.5).attr("width",g+de().state.padding).attr("height",v+de().state.padding),V.info(x)}Wfe++},"drawEdge")});var vo,aP,uUe,hUe,fUe,dUe,Kfe,Qfe,Zfe=R(()=>{"use strict";Zt();Vd();ya();ut();rr();jfe();_t();Yn();aP={},uUe=o(function(){},"setConf"),hUe=o(function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),fUe=o(function(t,e,r,n){vo=de().state;let i=de().securityLevel,a;i==="sandbox"&&(a=$e("#i"+e));let s=i==="sandbox"?$e(a.nodes()[0].contentDocument.body):$e("body"),l=i==="sandbox"?a.nodes()[0].contentDocument:document;V.debug("Rendering diagram "+t);let u=s.select(`[id='${e}']`);hUe(u);let h=n.db.getRootDoc();Kfe(h,u,void 0,!1,s,l,n);let f=vo.padding,d=u.node().getBBox(),p=d.width+f*2,m=d.height+f*2,g=p*1.75;Sr(u,m,g,vo.useMaxWidth),u.attr("viewBox",`${d.x-vo.padding} ${d.y-vo.padding} `+p+" "+m)},"draw"),dUe=o(t=>t?t.length*vo.fontSizeFactor:1,"getLabelWidth"),Kfe=o((t,e,r,n,i,a,s)=>{let l=new lr({compound:!0,multigraph:!0}),u,h=!0;for(u=0;u{let T=S.parentElement,E=0,_=0;T&&(T.parentElement&&(E=T.parentElement.getBBox().width),_=parseInt(T.getAttribute("data-x-shift"),10),Number.isNaN(_)&&(_=0)),S.setAttribute("x1",0-_+8),S.setAttribute("x2",E-_-8)})):V.debug("No Node "+b+": "+JSON.stringify(l.node(b)))});let v=y.getBBox();l.edges().forEach(function(b){b!==void 0&&l.edge(b)!==void 0&&(V.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(l.edge(b))),Xfe(e,l.edge(b),l.edge(b).relation))}),v=y.getBBox();let x={id:r||"root",label:r||"root",width:0,height:0};return x.width=v.width+2*vo.padding,x.height=v.height+2*vo.padding,V.debug("Doc rendered",x,l),x},"renderDoc"),Qfe={setConf:uUe,draw:fUe}});var Jfe={};hr(Jfe,{diagram:()=>pUe});var pUe,ede=R(()=>{"use strict";IO();QE();rP();Zfe();pUe={parser:BE,db:Qo,renderer:Qfe,styles:ZE,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Qo.clear()},"init")}});var nde={};hr(nde,{diagram:()=>vUe});var vUe,ide=R(()=>{"use strict";IO();QE();rP();XO();vUe={parser:BE,db:Qo,renderer:Lfe,styles:ZE,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Qo.clear()},"init")}});var sP,ode,lde=R(()=>{"use strict";sP=function(){var t=o(function(d,p,m,g){for(m=m||{},g=d.length;g--;m[d[g]]=p);return m},"o"),e=[6,8,10,11,12,14,16,17,18],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,14],u={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:o(function(p,m,g,y,v,x,b){var w=x.length-1;switch(v){case 1:return x[w-1];case 2:this.$=[];break;case 3:x[w-1].push(x[w]),this.$=x[w-1];break;case 4:case 5:this.$=x[w];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(x[w].substr(6)),this.$=x[w].substr(6);break;case 9:this.$=x[w].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=x[w].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(x[w].substr(8)),this.$=x[w].substr(8);break;case 13:y.addTask(x[w-1],x[w]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:o(function(p,m){if(m.recoverable)this.trace(p);else{var g=new Error(p);throw g.hash=m,g}},"parseError"),parse:o(function(p){var m=this,g=[0],y=[],v=[null],x=[],b=this.table,w="",S=0,T=0,E=0,_=2,A=1,L=x.slice.call(arguments,1),M=Object.create(this.lexer),N={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(N.yy[k]=this.yy[k]);M.setInput(p,N.yy),N.yy.lexer=M,N.yy.parser=this,typeof M.yylloc>"u"&&(M.yylloc={});var I=M.yylloc;x.push(I);var C=M.options&&M.options.ranges;typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function O(H){g.length=g.length-2*H,v.length=v.length-H,x.length=x.length-H}o(O,"popStack");function D(){var H;return H=y.pop()||M.lex()||A,typeof H!="number"&&(H instanceof Array&&(y=H,H=y.pop()),H=m.symbols_[H]||H),H}o(D,"lex");for(var P,F,B,$,z,Y,Q={},X,ie,j,J;;){if(B=g[g.length-1],this.defaultActions[B]?$=this.defaultActions[B]:((P===null||typeof P>"u")&&(P=D()),$=b[B]&&b[B][P]),typeof $>"u"||!$.length||!$[0]){var Z="";J=[];for(X in b[B])this.terminals_[X]&&X>_&&J.push("'"+this.terminals_[X]+"'");M.showPosition?Z="Parse error on line "+(S+1)+`: +`+M.showPosition()+` +Expecting `+J.join(", ")+", got '"+(this.terminals_[P]||P)+"'":Z="Parse error on line "+(S+1)+": Unexpected "+(P==A?"end of input":"'"+(this.terminals_[P]||P)+"'"),this.parseError(Z,{text:M.match,token:this.terminals_[P]||P,line:M.yylineno,loc:I,expected:J})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+B+", token: "+P);switch($[0]){case 1:g.push(P),v.push(M.yytext),x.push(M.yylloc),g.push($[1]),P=null,F?(P=F,F=null):(T=M.yyleng,w=M.yytext,S=M.yylineno,I=M.yylloc,E>0&&E--);break;case 2:if(ie=this.productions_[$[1]][1],Q.$=v[v.length-ie],Q._$={first_line:x[x.length-(ie||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(ie||1)].first_column,last_column:x[x.length-1].last_column},C&&(Q._$.range=[x[x.length-(ie||1)].range[0],x[x.length-1].range[1]]),Y=this.performAction.apply(Q,[w,T,S,N.yy,$[1],v,x].concat(L)),typeof Y<"u")return Y;ie&&(g=g.slice(0,-1*ie*2),v=v.slice(0,-1*ie),x=x.slice(0,-1*ie)),g.push(this.productions_[$[1]][0]),v.push(Q.$),x.push(Q._$),j=b[g[g.length-2]][g[g.length-1]],g.push(j);break;case 3:return!0}}return!0},"parse")},h=function(){var d={EOF:1,parseError:o(function(m,g){if(this.yy.parser)this.yy.parser.parseError(m,g);else throw new Error(m)},"parseError"),setInput:o(function(p,m){return this.yy=m||this.yy||{},this._input=p,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var p=this._input[0];this.yytext+=p,this.yyleng++,this.offset++,this.match+=p,this.matched+=p;var m=p.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),p},"input"),unput:o(function(p){var m=p.length,g=p.split(/(?:\r\n?|\n)/g);this._input=p+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===y.length?this.yylloc.first_column:0)+y[y.length-g.length].length-g[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(p){this.unput(this.match.slice(p))},"less"),pastInput:o(function(){var p=this.matched.substr(0,this.matched.length-this.match.length);return(p.length>20?"...":"")+p.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var p=this.match;return p.length<20&&(p+=this._input.substr(0,20-p.length)),(p.substr(0,20)+(p.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var p=this.pastInput(),m=new Array(p.length+1).join("-");return p+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:o(function(p,m){var g,y,v;if(this.options.backtrack_lexer&&(v={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(v.yylloc.range=this.yylloc.range.slice(0))),y=p[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+p[0].length},this.yytext+=p[0],this.match+=p[0],this.matches=p,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(p[0].length),this.matched+=p[0],g=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var x in v)this[x]=v[x];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var p,m,g,y;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),x=0;xm[0].length)){if(m=g,y=x,this.options.backtrack_lexer){if(p=this.test_match(g,v[x]),p!==!1)return p;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(p=this.test_match(m,v[y]),p!==!1?p:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var m=this.next();return m||this.lex()},"lex"),begin:o(function(m){this.conditionStack.push(m)},"begin"),popState:o(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:o(function(m){this.begin(m)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(m,g,y,v){var x=v;switch(y){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return d}();u.lexer=h;function f(){this.yy={}}return o(f,"Parser"),f.prototype=u,u.Parser=f,new f}();sP.parser=sP;ode=sP});var Ug,oP,Sx,Ax,TUe,kUe,EUe,CUe,SUe,AUe,_Ue,cde,LUe,lP,ude=R(()=>{"use strict";_t();bi();Ug="",oP=[],Sx=[],Ax=[],TUe=o(function(){oP.length=0,Sx.length=0,Ug="",Ax.length=0,vr()},"clear"),kUe=o(function(t){Ug=t,oP.push(t)},"addSection"),EUe=o(function(){return oP},"getSections"),CUe=o(function(){let t=cde(),e=100,r=0;for(;!t&&r{r.people&&t.push(...r.people)}),[...new Set(t)].sort()},"updateActors"),AUe=o(function(t,e){let r=e.substr(1).split(":"),n=0,i=[];r.length===1?(n=Number(r[0]),i=[]):(n=Number(r[0]),i=r[1].split(","));let a=i.map(l=>l.trim()),s={section:Ug,type:Ug,people:a,task:t,score:n};Ax.push(s)},"addTask"),_Ue=o(function(t){let e={section:Ug,type:Ug,description:t,task:t,classes:[]};Sx.push(e)},"addTaskOrg"),cde=o(function(){let t=o(function(r){return Ax[r].processed},"compileTask"),e=!0;for(let[r,n]of Ax.entries())t(r),e=e&&n.processed;return e},"compileTasks"),LUe=o(function(){return SUe()},"getActors"),lP={getConfig:o(()=>de().journey,"getConfig"),clear:TUe,setDiagramTitle:nn,getDiagramTitle:Xr,setAccTitle:kr,getAccTitle:Ar,setAccDescription:_r,getAccDescription:Lr,addSection:kUe,getSections:EUe,getTasks:CUe,addTask:AUe,addTaskOrg:_Ue,getActors:LUe}});var DUe,hde,fde=R(()=>{"use strict";DUe=o(t=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } +`,"getStyles"),hde=DUe});var cP,RUe,pde,mde,NUe,MUe,dde,IUe,OUe,gde,PUe,Hg,yde=R(()=>{"use strict";Zt();Qy();cP=o(function(t,e){return yd(t,e)},"drawRect"),RUe=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=bl().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=bl().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),pde=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),mde=o(function(t,e){return TW(t,e)},"drawText"),NUe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,mde(t,e)},"drawLabel"),MUe=o(function(t,e,r){let n=t.append("g"),i=wl();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width*e.taskCount+r.diagramMarginX*(e.taskCount-1),i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,cP(n,i),gde(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),dde=-1,IUe=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");dde++;let a=300+5*30;i.append("line").attr("id","task"+dde).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),RUe(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=wl();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,cP(i,s);let l=e.x+14;e.people.forEach(u=>{let h=e.actors[u].color,f={cx:l,cy:e.y,r:7,fill:h,stroke:"#000",title:u,pos:e.actors[u].position};pde(i,f),l+=10}),gde(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),OUe=o(function(t,e){j3(t,e)},"drawBackgroundRect"),gde=function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{let i=Xu[n].color,a={cx:20,cy:r,r:7,fill:i,stroke:"#000",pos:Xu[n].position};Hg.drawCircle(t,a);let s={x:40,y:r+7,fill:"#666",text:n,textMargin:e.boxTextMargin|5};Hg.drawText(t,s),r+=20})}var BUe,Xu,JE,I0,zUe,Zo,uP,vde,GUe,hP,xde=R(()=>{"use strict";Zt();yde();_t();Yn();BUe=o(function(t){Object.keys(t).forEach(function(r){JE[r]=t[r]})},"setConf"),Xu={};o(FUe,"drawActorLegend");JE=de().journey,I0=JE.leftMargin,zUe=o(function(t,e,r,n){let i=de().journey,a=de().securityLevel,s;a==="sandbox"&&(s=$e("#i"+e));let l=a==="sandbox"?$e(s.nodes()[0].contentDocument.body):$e("body");Zo.init();let u=l.select("#"+e);Hg.initGraphics(u);let h=n.db.getTasks(),f=n.db.getDiagramTitle(),d=n.db.getActors();for(let x in Xu)delete Xu[x];let p=0;d.forEach(x=>{Xu[x]={color:i.actorColours[p%i.actorColours.length],position:p},p++}),FUe(u),Zo.insert(0,0,I0,Object.keys(Xu).length*50),GUe(u,h,0);let m=Zo.getBounds();f&&u.append("text").text(f).attr("x",I0).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);let g=m.stopy-m.starty+2*i.diagramMarginY,y=I0+m.stopx+2*i.diagramMarginX;Sr(u,g,y,i.useMaxWidth),u.append("line").attr("x1",I0).attr("y1",i.height*4).attr("x2",y-I0-4).attr("y2",i.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let v=f?70:0;u.attr("viewBox",`${m.startx} -25 ${y} ${g+v}`),u.attr("preserveAspectRatio","xMinYMin meet"),u.attr("height",g+v+25)},"draw"),Zo={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:o(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=de().journey,a=this,s=0;function l(u){return o(function(f){s++;let d=a.sequenceItems.length-s+1;a.updateVal(f,"starty",e-d*i.boxMargin,Math.min),a.updateVal(f,"stopy",n+d*i.boxMargin,Math.max),a.updateVal(Zo.data,"startx",t-d*i.boxMargin,Math.min),a.updateVal(Zo.data,"stopx",r+d*i.boxMargin,Math.max),u!=="activation"&&(a.updateVal(f,"startx",t-d*i.boxMargin,Math.min),a.updateVal(f,"stopx",r+d*i.boxMargin,Math.max),a.updateVal(Zo.data,"starty",e-d*i.boxMargin,Math.min),a.updateVal(Zo.data,"stopy",n+d*i.boxMargin,Math.max))},"updateItemBounds")}o(l,"updateFn"),this.sequenceItems.forEach(l())},"updateBounds"),insert:o(function(t,e,r,n){let i=Math.min(t,r),a=Math.max(t,r),s=Math.min(e,n),l=Math.max(e,n);this.updateVal(Zo.data,"startx",i,Math.min),this.updateVal(Zo.data,"starty",s,Math.min),this.updateVal(Zo.data,"stopx",a,Math.max),this.updateVal(Zo.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return this.data},"getBounds")},uP=JE.sectionFills,vde=JE.sectionColours,GUe=o(function(t,e,r){let n=de().journey,i="",a=n.height*2+n.diagramMarginY,s=r+a,l=0,u="#CCC",h="black",f=0;for(let[d,p]of e.entries()){if(i!==p.section){u=uP[l%uP.length],f=l%uP.length,h=vde[l%vde.length];let g=0,y=p.section;for(let x=d;x(Xu[y]&&(g[y]=Xu[y]),g),{});p.x=d*n.taskMargin+d*n.width+I0,p.y=s,p.width=n.diagramMarginX,p.height=n.diagramMarginY,p.colour=h,p.fill=u,p.num=f,p.actors=m,Hg.drawTask(t,p,n),Zo.insert(p.x,p.y,p.x+p.width+n.taskMargin,300+5*30)}},"drawTasks"),hP={setConf:BUe,draw:zUe}});var bde={};hr(bde,{diagram:()=>$Ue});var $Ue,wde=R(()=>{"use strict";lde();ude();fde();xde();$Ue={parser:ode,db:lP,renderer:hP,styles:hde,init:o(t=>{hP.setConf(t.journey),lP.clear()},"init")}});var dP,_de,Lde=R(()=>{"use strict";dP=function(){var t=o(function(p,m,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=m);return g},"o"),e=[6,8,10,11,12,14,16,17,20,21],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,16],u=[1,17],h={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:o(function(m,g,y,v,x,b,w){var S=b.length-1;switch(x){case 1:return b[S-1];case 2:this.$=[];break;case 3:b[S-1].push(b[S]),this.$=b[S-1];break;case 4:case 5:this.$=b[S];break;case 6:case 7:this.$=[];break;case 8:v.getCommonDb().setDiagramTitle(b[S].substr(6)),this.$=b[S].substr(6);break;case 9:this.$=b[S].trim(),v.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=b[S].trim(),v.getCommonDb().setAccDescription(this.$);break;case 12:v.addSection(b[S].substr(8)),this.$=b[S].substr(8);break;case 15:v.addTask(b[S],0,""),this.$=b[S];break;case 16:v.addEvent(b[S].substr(2)),this.$=b[S];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:o(function(m,g){if(g.recoverable)this.trace(m);else{var y=new Error(m);throw y.hash=g,y}},"parseError"),parse:o(function(m){var g=this,y=[0],v=[],x=[null],b=[],w=this.table,S="",T=0,E=0,_=0,A=2,L=1,M=b.slice.call(arguments,1),N=Object.create(this.lexer),k={yy:{}};for(var I in this.yy)Object.prototype.hasOwnProperty.call(this.yy,I)&&(k.yy[I]=this.yy[I]);N.setInput(m,k.yy),k.yy.lexer=N,k.yy.parser=this,typeof N.yylloc>"u"&&(N.yylloc={});var C=N.yylloc;b.push(C);var O=N.options&&N.options.ranges;typeof k.yy.parseError=="function"?this.parseError=k.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function D(q){y.length=y.length-2*q,x.length=x.length-q,b.length=b.length-q}o(D,"popStack");function P(){var q;return q=v.pop()||N.lex()||L,typeof q!="number"&&(q instanceof Array&&(v=q,q=v.pop()),q=g.symbols_[q]||q),q}o(P,"lex");for(var F,B,$,z,Y,Q,X={},ie,j,J,Z;;){if($=y[y.length-1],this.defaultActions[$]?z=this.defaultActions[$]:((F===null||typeof F>"u")&&(F=P()),z=w[$]&&w[$][F]),typeof z>"u"||!z.length||!z[0]){var H="";Z=[];for(ie in w[$])this.terminals_[ie]&&ie>A&&Z.push("'"+this.terminals_[ie]+"'");N.showPosition?H="Parse error on line "+(T+1)+`: +`+N.showPosition()+` +Expecting `+Z.join(", ")+", got '"+(this.terminals_[F]||F)+"'":H="Parse error on line "+(T+1)+": Unexpected "+(F==L?"end of input":"'"+(this.terminals_[F]||F)+"'"),this.parseError(H,{text:N.match,token:this.terminals_[F]||F,line:N.yylineno,loc:C,expected:Z})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+F);switch(z[0]){case 1:y.push(F),x.push(N.yytext),b.push(N.yylloc),y.push(z[1]),F=null,B?(F=B,B=null):(E=N.yyleng,S=N.yytext,T=N.yylineno,C=N.yylloc,_>0&&_--);break;case 2:if(j=this.productions_[z[1]][1],X.$=x[x.length-j],X._$={first_line:b[b.length-(j||1)].first_line,last_line:b[b.length-1].last_line,first_column:b[b.length-(j||1)].first_column,last_column:b[b.length-1].last_column},O&&(X._$.range=[b[b.length-(j||1)].range[0],b[b.length-1].range[1]]),Q=this.performAction.apply(X,[S,E,T,k.yy,z[1],x,b].concat(M)),typeof Q<"u")return Q;j&&(y=y.slice(0,-1*j*2),x=x.slice(0,-1*j),b=b.slice(0,-1*j)),y.push(this.productions_[z[1]][0]),x.push(X.$),b.push(X._$),J=w[y[y.length-2]][y[y.length-1]],y.push(J);break;case 3:return!0}}return!0},"parse")},f=function(){var p={EOF:1,parseError:o(function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},"parseError"),setInput:o(function(m,g){return this.yy=g||this.yy||{},this._input=m,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var g=m.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:o(function(m){var g=m.length,y=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var v=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),y.length-1&&(this.yylineno-=y.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:y?(y.length===v.length?this.yylloc.first_column:0)+v[v.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(m){this.unput(this.match.slice(m))},"less"),pastInput:o(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var m=this.pastInput(),g=new Array(m.length+1).join("-");return m+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:o(function(m,g){var y,v,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),v=m[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var b in x)this[b]=x[b];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,g,y,v;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),b=0;bg[0].length)){if(g=y,v=b,this.options.backtrack_lexer){if(m=this.test_match(y,x[b]),m!==!1)return m;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(m=this.test_match(g,x[v]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var g=this.next();return g||this.lex()},"lex"),begin:o(function(g){this.conditionStack.push(g)},"begin"),popState:o(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:o(function(g){this.begin(g)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(g,y,v,x){var b=x;switch(v){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s[^:\n]+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return p}();h.lexer=f;function d(){this.yy={}}return o(d,"Parser"),d.prototype=h,h.Parser=d,new d}();dP.parser=dP;_de=dP});var mP={};hr(mP,{addEvent:()=>Fde,addSection:()=>Ide,addTask:()=>Bde,addTaskOrg:()=>zde,clear:()=>Mde,default:()=>KUe,getCommonDb:()=>Nde,getSections:()=>Ode,getTasks:()=>Pde});var Yg,Rde,pP,e6,Wg,Nde,Mde,Ide,Ode,Pde,Bde,Fde,zde,Dde,KUe,Gde=R(()=>{"use strict";bi();Yg="",Rde=0,pP=[],e6=[],Wg=[],Nde=o(()=>ly,"getCommonDb"),Mde=o(function(){pP.length=0,e6.length=0,Yg="",Wg.length=0,vr()},"clear"),Ide=o(function(t){Yg=t,pP.push(t)},"addSection"),Ode=o(function(){return pP},"getSections"),Pde=o(function(){let t=Dde(),e=100,r=0;for(;!t&&rr.id===Rde-1).events.push(t)},"addEvent"),zde=o(function(t){let e={section:Yg,type:Yg,description:t,task:t,classes:[]};e6.push(e)},"addTaskOrg"),Dde=o(function(){let t=o(function(r){return Wg[r].processed},"compileTask"),e=!0;for(let[r,n]of Wg.entries())t(r),e=e&&n.processed;return e},"compileTasks"),KUe={clear:Mde,getCommonDb:Nde,addSection:Ide,getSections:Ode,getTasks:Pde,addTask:Bde,addTaskOrg:zde,addEvent:Fde}});function Hde(t,e){t.each(function(){var r=$e(this),n=r.text().split(/(\s+|
    )/).reverse(),i,a=[],s=1.1,l=r.attr("y"),u=parseFloat(r.attr("dy")),h=r.text(null).append("tspan").attr("x",0).attr("y",l).attr("dy",u+"em");for(let f=0;fe||i==="
    ")&&(a.pop(),h.text(a.join(" ").trim()),i==="
    "?a=[""]:a=[i],h=r.append("tspan").attr("x",0).attr("y",l).attr("dy",s+"em").text(i))})}var QUe,t6,ZUe,JUe,Vde,eHe,tHe,$de,rHe,nHe,iHe,gP,Ude,aHe,sHe,oHe,lHe,xf,Yde=R(()=>{"use strict";Zt();QUe=12,t6=o(function(t,e){let r=t.append("rect");return r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),r.attr("rx",e.rx),r.attr("ry",e.ry),e.class!==void 0&&r.attr("class",e.class),r},"drawRect"),ZUe=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=bl().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=bl().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),JUe=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),Vde=o(function(t,e){let r=e.text.replace(//gi," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class!==void 0&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),eHe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,Vde(t,e)},"drawLabel"),tHe=o(function(t,e,r){let n=t.append("g"),i=gP();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width,i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,t6(n,i),Ude(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),$de=-1,rHe=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");$de++;let a=300+5*30;i.append("line").attr("id","task"+$de).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),ZUe(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=gP();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,t6(i,s),Ude(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),nHe=o(function(t,e){t6(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},"drawBackgroundRect"),iHe=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),gP=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),Ude=function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{"use strict";Zt();Yde();ut();_t();Yn();cHe=o(function(t,e,r,n){let i=de(),a=i.leftMargin??50;V.debug("timeline",n.db);let s=i.securityLevel,l;s==="sandbox"&&(l=$e("#i"+e));let h=(s==="sandbox"?$e(l.nodes()[0].contentDocument.body):$e("body")).select("#"+e);h.append("g");let f=n.db.getTasks(),d=n.db.getCommonDb().getDiagramTitle();V.debug("task",f),xf.initGraphics(h);let p=n.db.getSections();V.debug("sections",p);let m=0,g=0,y=0,v=0,x=50+a,b=50;v=50;let w=0,S=!0;p.forEach(function(L){let M={number:w,descr:L,section:w,width:150,padding:20,maxHeight:m},N=xf.getVirtualNodeHeight(h,M,i);V.debug("sectionHeight before draw",N),m=Math.max(m,N+20)});let T=0,E=0;V.debug("tasks.length",f.length);for(let[L,M]of f.entries()){let N={number:L,descr:M,section:M.section,width:150,padding:20,maxHeight:g},k=xf.getVirtualNodeHeight(h,N,i);V.debug("taskHeight before draw",k),g=Math.max(g,k+20),T=Math.max(T,M.events.length);let I=0;for(let C of M.events){let O={descr:C,section:M.section,number:M.section,width:150,padding:20,maxHeight:50};I+=xf.getVirtualNodeHeight(h,O,i)}E=Math.max(E,I)}V.debug("maxSectionHeight before draw",m),V.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach(L=>{let M=f.filter(C=>C.section===L),N={number:w,descr:L,section:w,width:200*Math.max(M.length,1)-50,padding:20,maxHeight:m};V.debug("sectionNode",N);let k=h.append("g"),I=xf.drawNode(k,N,w,i);V.debug("sectionNode output",I),k.attr("transform",`translate(${x}, ${v})`),b+=m+50,M.length>0&&Wde(h,M,w,x,b,g,i,T,E,m,!1),x+=200*Math.max(M.length,1),b=v,w++}):(S=!1,Wde(h,f,w,x,b,g,i,T,E,m,!0));let _=h.node().getBBox();V.debug("bounds",_),d&&h.append("text").text(d).attr("x",_.width/2-a).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),y=S?m+g+150:g+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",a).attr("y1",y).attr("x2",_.width+3*a).attr("y2",y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),Lo(void 0,h,i.timeline?.padding??50,i.timeline?.useMaxWidth??!1)},"draw"),Wde=o(function(t,e,r,n,i,a,s,l,u,h,f){for(let d of e){let p={descr:d.task,section:r,number:r,width:150,padding:20,maxHeight:a};V.debug("taskNode",p);let m=t.append("g").attr("class","taskWrapper"),y=xf.drawNode(m,p,r,s).height;if(V.debug("taskHeight after draw",y),m.attr("transform",`translate(${n}, ${i})`),a=Math.max(a,y),d.events){let v=t.append("g").attr("class","lineWrapper"),x=a;i+=100,x=x+uHe(t,d.events,r,n,i,s),i-=100,v.append("line").attr("x1",n+190/2).attr("y1",i+a).attr("x2",n+190/2).attr("y2",i+a+(f?a:h)+u+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}n=n+200,f&&!s.timeline?.disableMulticolor&&r++}i=i-10},"drawTasks"),uHe=o(function(t,e,r,n,i,a){let s=0,l=i;i=i+100;for(let u of e){let h={descr:u,section:r,number:r,width:150,padding:20,maxHeight:50};V.debug("eventNode",h);let f=t.append("g").attr("class","eventWrapper"),p=xf.drawNode(f,h,r,a).height;s=s+p,f.attr("transform",`translate(${n}, ${i})`),i=i+10+p}return i=l,s},"drawEvents"),qde={setConf:o(()=>{},"setConf"),draw:cHe}});var hHe,fHe,jde,Kde=R(()=>{"use strict";al();hHe=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${hHe(t)} + .section-root rect, .section-root path, .section-root circle { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles"),jde=fHe});var Qde={};hr(Qde,{diagram:()=>dHe});var dHe,Zde=R(()=>{"use strict";Lde();Gde();Xde();Kde();dHe={db:mP,renderer:qde,parser:_de,styles:jde}});var yP,t0e,r0e=R(()=>{"use strict";yP=function(){var t=o(function(S,T,E,_){for(E=E||{},_=S.length;_--;E[S[_]]=T);return E},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],g=[1,33],y=[1,34],v=[1,6,7,11,13,15,16,19,22],x={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:o(function(T,E,_,A,L,M,N){var k=M.length-1;switch(L){case 6:case 7:return A;case 8:A.getLogger().trace("Stop NL ");break;case 9:A.getLogger().trace("Stop EOF ");break;case 11:A.getLogger().trace("Stop NL2 ");break;case 12:A.getLogger().trace("Stop EOF2 ");break;case 15:A.getLogger().info("Node: ",M[k].id),A.addNode(M[k-1].length,M[k].id,M[k].descr,M[k].type);break;case 16:A.getLogger().trace("Icon: ",M[k]),A.decorateNode({icon:M[k]});break;case 17:case 21:A.decorateNode({class:M[k]});break;case 18:A.getLogger().trace("SPACELIST");break;case 19:A.getLogger().trace("Node: ",M[k].id),A.addNode(0,M[k].id,M[k].descr,M[k].type);break;case 20:A.decorateNode({icon:M[k]});break;case 25:A.getLogger().trace("node found ..",M[k-2]),this.$={id:M[k-1],descr:M[k-1],type:A.getType(M[k-2],M[k])};break;case 26:this.$={id:M[k],descr:M[k],type:A.nodeType.DEFAULT};break;case 27:A.getLogger().trace("node found ..",M[k-3]),this.$={id:M[k-3],descr:M[k-1],type:A.getType(M[k-2],M[k])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:r,9:22,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:h,7:f,10:23,11:d},t(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:l}),t(p,[2,18]),t(p,[2,19]),t(p,[2,20]),t(p,[2,21]),t(p,[2,23]),t(p,[2,24]),t(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:f,10:32,11:d},{1:[2,7],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(m,[2,14],{7:g,11:y}),t(v,[2,8]),t(v,[2,9]),t(v,[2,10]),t(p,[2,15]),t(p,[2,16]),t(p,[2,17]),{20:[1,35]},{21:[1,36]},t(m,[2,13],{7:g,11:y}),t(v,[2,11]),t(v,[2,12]),{21:[1,37]},t(p,[2,25]),t(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(T,E){if(E.recoverable)this.trace(T);else{var _=new Error(T);throw _.hash=E,_}},"parseError"),parse:o(function(T){var E=this,_=[0],A=[],L=[null],M=[],N=this.table,k="",I=0,C=0,O=0,D=2,P=1,F=M.slice.call(arguments,1),B=Object.create(this.lexer),$={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&($.yy[z]=this.yy[z]);B.setInput(T,$.yy),$.yy.lexer=B,$.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var Y=B.yylloc;M.push(Y);var Q=B.options&&B.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function X(ke){_.length=_.length-2*ke,L.length=L.length-ke,M.length=M.length-ke}o(X,"popStack");function ie(){var ke;return ke=A.pop()||B.lex()||P,typeof ke!="number"&&(ke instanceof Array&&(A=ke,ke=A.pop()),ke=E.symbols_[ke]||ke),ke}o(ie,"lex");for(var j,J,Z,H,q,K,se={},ce,ue,te,De;;){if(Z=_[_.length-1],this.defaultActions[Z]?H=this.defaultActions[Z]:((j===null||typeof j>"u")&&(j=ie()),H=N[Z]&&N[Z][j]),typeof H>"u"||!H.length||!H[0]){var oe="";De=[];for(ce in N[Z])this.terminals_[ce]&&ce>D&&De.push("'"+this.terminals_[ce]+"'");B.showPosition?oe="Parse error on line "+(I+1)+`: +`+B.showPosition()+` +Expecting `+De.join(", ")+", got '"+(this.terminals_[j]||j)+"'":oe="Parse error on line "+(I+1)+": Unexpected "+(j==P?"end of input":"'"+(this.terminals_[j]||j)+"'"),this.parseError(oe,{text:B.match,token:this.terminals_[j]||j,line:B.yylineno,loc:Y,expected:De})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+j);switch(H[0]){case 1:_.push(j),L.push(B.yytext),M.push(B.yylloc),_.push(H[1]),j=null,J?(j=J,J=null):(C=B.yyleng,k=B.yytext,I=B.yylineno,Y=B.yylloc,O>0&&O--);break;case 2:if(ue=this.productions_[H[1]][1],se.$=L[L.length-ue],se._$={first_line:M[M.length-(ue||1)].first_line,last_line:M[M.length-1].last_line,first_column:M[M.length-(ue||1)].first_column,last_column:M[M.length-1].last_column},Q&&(se._$.range=[M[M.length-(ue||1)].range[0],M[M.length-1].range[1]]),K=this.performAction.apply(se,[k,C,I,$.yy,H[1],L,M].concat(F)),typeof K<"u")return K;ue&&(_=_.slice(0,-1*ue*2),L=L.slice(0,-1*ue),M=M.slice(0,-1*ue)),_.push(this.productions_[H[1]][0]),L.push(se.$),M.push(se._$),te=N[_[_.length-2]][_[_.length-1]],_.push(te);break;case 3:return!0}}return!0},"parse")},b=function(){var S={EOF:1,parseError:o(function(E,_){if(this.yy.parser)this.yy.parser.parseError(E,_);else throw new Error(E)},"parseError"),setInput:o(function(T,E){return this.yy=E||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var E=T.match(/(?:\r\n?|\n).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},"input"),unput:o(function(T){var E=T.length,_=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var A=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),_.length-1&&(this.yylineno-=_.length-1);var L=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:_?(_.length===A.length?this.yylloc.first_column:0)+A[A.length-_.length].length-_[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[L[0],L[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(T){this.unput(this.match.slice(T))},"less"),pastInput:o(function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var T=this.pastInput(),E=new Array(T.length+1).join("-");return T+this.upcomingInput()+` +`+E+"^"},"showPosition"),test_match:o(function(T,E){var _,A,L;if(this.options.backtrack_lexer&&(L={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(L.yylloc.range=this.yylloc.range.slice(0))),A=T[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],_=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),_)return _;if(this._backtrack){for(var M in L)this[M]=L[M];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,E,_,A;this._more||(this.yytext="",this.match="");for(var L=this._currentRules(),M=0;ME[0].length)){if(E=_,A=M,this.options.backtrack_lexer){if(T=this.test_match(_,L[M]),T!==!1)return T;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(T=this.test_match(E,L[A]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var E=this.next();return E||this.lex()},"lex"),begin:o(function(E){this.conditionStack.push(E)},"begin"),popState:o(function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},"topState"),pushState:o(function(E){this.begin(E)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(E,_,A,L){var M=L;switch(A){case 0:return E.getLogger().trace("Found comment",_.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:E.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return E.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:E.getLogger().trace("end icon"),this.popState();break;case 10:return E.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return E.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return E.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return E.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:E.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return E.getLogger().trace("description:",_.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),E.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),E.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),E.getLogger().trace("node end ...",_.yytext),"NODE_DEND";break;case 30:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return E.getLogger().trace("Long description:",_.yytext),20;break;case 36:return E.getLogger().trace("Long description:",_.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return S}();x.lexer=b;function w(){this.yy={}}return o(w,"Parser"),w.prototype=x,x.Parser=w,new w}();yP.parser=yP;t0e=yP});var Gl,n0e,vP,yHe,vHe,xHe,bHe,$i,wHe,THe,kHe,EHe,CHe,SHe,AHe,i0e,a0e=R(()=>{"use strict";_t();rr();ut();sl();Gl=[],n0e=0,vP={},yHe=o(()=>{Gl=[],n0e=0,vP={}},"clear"),vHe=o(function(t){for(let e=Gl.length-1;e>=0;e--)if(Gl[e].levelGl.length>0?Gl[0]:null,"getMindmap"),bHe=o((t,e,r,n)=>{V.info("addNode",t,e,r,n);let i=de(),a=i.mindmap?.padding??mr.mindmap.padding;switch(n){case $i.ROUNDED_RECT:case $i.RECT:case $i.HEXAGON:a*=2}let s={id:n0e++,nodeId:qr(e,i),level:t,descr:qr(r,i),type:n,children:[],width:i.mindmap?.maxNodeWidth??mr.mindmap.maxNodeWidth,padding:a},l=vHe(t);if(l)l.children.push(s),Gl.push(s);else if(Gl.length===0)Gl.push(s);else throw new Error('There can be only one root. No parent could be found for ("'+s.descr+'")')},"addNode"),$i={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},wHe=o((t,e)=>{switch(V.debug("In get type",t,e),t){case"[":return $i.RECT;case"(":return e===")"?$i.ROUNDED_RECT:$i.CLOUD;case"((":return $i.CIRCLE;case")":return $i.CLOUD;case"))":return $i.BANG;case"{{":return $i.HEXAGON;default:return $i.DEFAULT}},"getType"),THe=o((t,e)=>{vP[t]=e},"setElementForId"),kHe=o(t=>{if(!t)return;let e=de(),r=Gl[Gl.length-1];t.icon&&(r.icon=qr(t.icon,e)),t.class&&(r.class=qr(t.class,e))},"decorateNode"),EHe=o(t=>{switch(t){case $i.DEFAULT:return"no-border";case $i.RECT:return"rect";case $i.ROUNDED_RECT:return"rounded-rect";case $i.CIRCLE:return"circle";case $i.CLOUD:return"cloud";case $i.BANG:return"bang";case $i.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),CHe=o(()=>V,"getLogger"),SHe=o(t=>vP[t],"getElementById"),AHe={clear:yHe,addNode:bHe,getMindmap:xHe,nodeType:$i,getType:wHe,setElementForId:THe,decorateNode:kHe,type2Str:EHe,getLogger:CHe,getElementById:SHe},i0e=AHe});function Hi(t){"@babel/helpers - typeof";return Hi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Hi(t)}function XP(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s0e(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},"n"),e:o(function(u){throw u},"e"),f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,s=!1,l;return{s:o(function(){r=r.call(t)},"s"),n:o(function(){var u=r.next();return a=u.done,u},"n"),e:o(function(u){s=!0,l=u},"e"),f:o(function(){try{!a&&r.return!=null&&r.return()}finally{if(s)throw l}},"f")}}function eYe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}function tYe(t,e){return e={exports:{}},t(e,e.exports),e.exports}function lYe(t){for(var e=t.length;e--&&oYe.test(t.charAt(e)););return e}function hYe(t){return t&&t.slice(0,cYe(t)+1).replace(uYe,"")}function gYe(t){var e=pYe.call(t,_x),r=t[_x];try{t[_x]=void 0;var n=!0}catch{}var i=mYe.call(t);return n&&(e?t[_x]=r:delete t[_x]),i}function bYe(t){return xYe.call(t)}function EYe(t){return t==null?t===void 0?kYe:TYe:u0e&&u0e in Object(t)?yYe(t):wYe(t)}function CYe(t){return t!=null&&typeof t=="object"}function _Ye(t){return typeof t=="symbol"||SYe(t)&&Rpe(t)==AYe}function MYe(t){if(typeof t=="number")return t;if(Jx(t))return h0e;if(V0(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=V0(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=fYe(t);var r=DYe.test(t);return r||RYe.test(t)?NYe(t.slice(2),r?2:8):LYe.test(t)?h0e:+t}function BYe(t,e,r){var n,i,a,s,l,u,h=0,f=!1,d=!1,p=!0;if(typeof t!="function")throw new TypeError(IYe);e=f0e(e)||0,V0(r)&&(f=!!r.leading,d="maxWait"in r,a=d?OYe(f0e(r.maxWait)||0,e):a,p="trailing"in r?!!r.trailing:p);function m(E){var _=n,A=i;return n=i=void 0,h=E,s=t.apply(A,_),s}o(m,"invokeFunc");function g(E){return h=E,l=setTimeout(x,e),f?m(E):s}o(g,"leadingEdge");function y(E){var _=E-u,A=E-h,L=e-_;return d?PYe(L,a-A):L}o(y,"remainingWait");function v(E){var _=E-u,A=E-h;return u===void 0||_>=e||_<0||d&&A>=a}o(v,"shouldInvoke");function x(){var E=xP();if(v(E))return b(E);l=setTimeout(x,y(E))}o(x,"timerExpired");function b(E){return l=void 0,p&&n?m(E):(n=i=void 0,s)}o(b,"trailingEdge");function w(){l!==void 0&&clearTimeout(l),h=0,n=u=i=l=void 0}o(w,"cancel");function S(){return l===void 0?s:b(xP())}o(S,"flush");function T(){var E=xP(),_=v(E);if(n=arguments,i=this,u=E,_){if(l===void 0)return g(u);if(d)return clearTimeout(l),l=setTimeout(x,e),m(u)}return l===void 0&&(l=setTimeout(x,e)),s}return o(T,"debounced"),T.cancel=w,T.flush=S,T}function z6(t,e,r,n,i,a){var s;return jn(t)?s=t:s=o1[t]||o1.euclidean,e===0&&jn(t)?s(i,a):s(e,r,n,i,a)}function Lqe(t,e){if(G6(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||Jx(t)?!0:_qe.test(t)||!Aqe.test(t)||e!=null&&t in Object(e)}function Oqe(t){if(!V0(t))return!1;var e=Rpe(t);return e==Nqe||e==Mqe||e==Rqe||e==Iqe}function Fqe(t){return!!N0e&&N0e in t}function Vqe(t){if(t!=null){try{return $qe.call(t)}catch{}try{return t+""}catch{}}return""}function Qqe(t){if(!V0(t)||zqe(t))return!1;var e=Pqe(t)?Kqe:Yqe;return e.test(Uqe(t))}function Jqe(t,e){return t?.[e]}function tXe(t,e){var r=eXe(t,e);return Zqe(r)?r:void 0}function nXe(){this.__data__=Wx?Wx(null):{},this.size=0}function aXe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function uXe(t){var e=this.__data__;if(Wx){var r=e[t];return r===oXe?void 0:r}return cXe.call(e,t)?e[t]:void 0}function pXe(t){var e=this.__data__;return Wx?e[t]!==void 0:dXe.call(e,t)}function yXe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Wx&&e===void 0?gXe:e,this}function h1(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}function RXe(t,e){var r=this.__data__,n=$6(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}function f1(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t0;){var f=i.shift();e(f),a.add(f.id()),l&&n(i,a,f)}return t}function ume(t,e,r){if(r.isParent())for(var n=r._private.children,i=0;i0&&arguments[0]!==void 0?arguments[0]:mKe,e=arguments.length>1?arguments[1]:void 0,r=0;r0?k=C:N=C;while(Math.abs(I)>s&&++O=a?b(M,O):D===0?O:S(M,N,N+h)}o(T,"getTForX");var E=!1;function _(){E=!0,(t!==e||r!==n)&&w()}o(_,"precompute");var A=o(function(N){return E||_(),t===e&&r===n?N:N===0?0:N===1?1:v(T(N),e,n)},"f");A.getControlPoints=function(){return[{x:t,y:e},{x:r,y:n}]};var L="generateBezier("+[t,e,r,n]+")";return A.toString=function(){return L},A}function Q0e(t,e,r,n,i){if(n===1||e===r)return r;var a=i(e,r,n);return t==null||((t.roundValue||t.color)&&(a=Math.round(a)),t.min!==void 0&&(a=Math.max(a,t.min)),t.max!==void 0&&(a=Math.min(a,t.max))),a}function Z0e(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function jg(t,e,r,n,i){var a=i!=null?i.type:null;r<0?r=0:r>1&&(r=1);var s=Z0e(t,i),l=Z0e(e,i);if(ft(s)&&ft(l))return Q0e(a,s,l,r,n);if(vn(s)&&vn(l)){for(var u=[],h=0;h0?(m==="spring"&&g.push(s.duration),s.easingImpl=v6[m].apply(null,g)):s.easingImpl=v6[m]}var y=s.easingImpl,v;if(s.duration===0?v=1:v=(r-u)/s.duration,s.applying&&(v=s.progress),v<0?v=0:v>1&&(v=1),s.delay==null){var x=s.startPosition,b=s.position;if(b&&i&&!t.locked()){var w={};Nx(x.x,b.x)&&(w.x=jg(x.x,b.x,v,y)),Nx(x.y,b.y)&&(w.y=jg(x.y,b.y,v,y)),t.position(w)}var S=s.startPan,T=s.pan,E=a.pan,_=T!=null&&n;_&&(Nx(S.x,T.x)&&(E.x=jg(S.x,T.x,v,y)),Nx(S.y,T.y)&&(E.y=jg(S.y,T.y,v,y)),t.emit("pan"));var A=s.startZoom,L=s.zoom,M=L!=null&&n;M&&(Nx(A,L)&&(a.zoom=Hx(a.minZoom,jg(A,L,v,y),a.maxZoom)),t.emit("zoom")),(_||M)&&t.emit("viewport");var N=s.style;if(N&&N.length>0&&i){for(var k=0;k=0;_--){var A=E[_];A()}E.splice(0,E.length)},"callbacks"),b=m.length-1;b>=0;b--){var w=m[b],S=w._private;if(S.stopped){m.splice(b,1),S.hooked=!1,S.playing=!1,S.started=!1,x(S.frames);continue}!S.playing&&!S.applying||(S.playing&&S.applying&&(S.applying=!1),S.started||LKe(f,w,t),_Ke(f,w,t,d),S.applying&&(S.applying=!1),x(S.frames),S.step!=null&&S.step(t),w.completed()&&(m.splice(b,1),S.hooked=!1,S.playing=!1,S.started=!1,x(S.completes)),y=!0)}return!d&&m.length===0&&g.length===0&&n.push(f),y}o(i,"stepOne");for(var a=!1,s=0;s0?e.notify("draw",r):e.notify("draw")),r.unmerge(n),e.emit("step")}function Ame(t){this.options=Wt({},BKe,FKe,t)}function _me(t){this.options=Wt({},zKe,t)}function Lme(t){this.options=Wt({},GKe,t)}function j6(t){this.options=Wt({},$Ke,t),this.options.layout=this;var e=this.options.eles.nodes(),r=this.options.eles.edges(),n=r.filter(function(i){var a=i.source().data("id"),s=i.target().data("id"),l=e.some(function(h){return h.data("id")===a}),u=e.some(function(h){return h.data("id")===s});return!l||!u});this.options.eles=this.options.eles.not(n)}function Rme(t){this.options=Wt({},iQe,t)}function dB(t){this.options=Wt({},aQe,t)}function Nme(t){this.options=Wt({},sQe,t)}function Mme(t){this.options=Wt({},oQe,t)}function Ime(t){this.options=t,this.notifications=0}function Bme(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function mB(t,e,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return n===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(uQe(t,e,r,n,i),{cx:GP,cy:$P,radius:z0,startX:Ome,startY:Pme,stopX:VP,stopY:UP,startAngle:Gc.ang+Math.PI/2*G0,endAngle:Jo.ang-Math.PI/2*G0,counterClockwise:w6})}function Fme(t){var e=[];if(t!=null){for(var r=0;r5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;t.beginPath(),t.moveTo(e+a,r),t.lineTo(e+n-a,r),t.quadraticCurveTo(e+n,r,e+n,r+a),t.lineTo(e+n,r+i-a),t.quadraticCurveTo(e+n,r+i,e+n-a,r+i),t.lineTo(e+a,r+i),t.quadraticCurveTo(e,r+i,e,r+i-a),t.lineTo(e,r+a),t.quadraticCurveTo(e,r,e+a,r),t.closePath(),s?t.stroke():t.fill()}function ZQe(t,e){for(var r=atob(t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a{"use strict";o(Hi,"_typeof");o(XP,"_classCallCheck");o(s0e,"_defineProperties");o(jP,"_createClass");o(bpe,"_defineProperty$1");o($l,"_slicedToArray");o(_He,"_arrayWithHoles");o(LHe,"_iterableToArrayLimit");o(wpe,"_unsupportedIterableToArray");o(o0e,"_arrayLikeToArray");o(DHe,"_nonIterableRest");o(Tpe,"_createForOfIteratorHelper");Vi=typeof window>"u"?null:window,l0e=Vi?Vi.navigator:null;Vi&&Vi.document;RHe=Hi(""),kpe=Hi({}),NHe=Hi(function(){}),MHe=typeof HTMLElement>"u"?"undefined":Hi(HTMLElement),Qx=o(function(e){return e&&e.instanceString&&jn(e.instanceString)?e.instanceString():null},"instanceStr"),zt=o(function(e){return e!=null&&Hi(e)==RHe},"string"),jn=o(function(e){return e!=null&&Hi(e)===NHe},"fn"),vn=o(function(e){return!xo(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},"array"),Mr=o(function(e){return e!=null&&Hi(e)===kpe&&!vn(e)&&e.constructor===Object},"plainObject"),IHe=o(function(e){return e!=null&&Hi(e)===kpe},"object"),ft=o(function(e){return e!=null&&Hi(e)===Hi(1)&&!isNaN(e)},"number"),OHe=o(function(e){return ft(e)&&Math.floor(e)===e},"integer"),k6=o(function(e){if(MHe!=="undefined")return e!=null&&e instanceof HTMLElement},"htmlElement"),xo=o(function(e){return Zx(e)||Epe(e)},"elementOrCollection"),Zx=o(function(e){return Qx(e)==="collection"&&e._private.single},"element"),Epe=o(function(e){return Qx(e)==="collection"&&!e._private.single},"collection"),KP=o(function(e){return Qx(e)==="core"},"core"),Cpe=o(function(e){return Qx(e)==="stylesheet"},"stylesheet"),PHe=o(function(e){return Qx(e)==="event"},"event"),Sf=o(function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},"emptyString"),BHe=o(function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},"domElement"),FHe=o(function(e){return Mr(e)&&ft(e.x1)&&ft(e.x2)&&ft(e.y1)&&ft(e.y2)},"boundingBox"),zHe=o(function(e){return IHe(e)&&jn(e.then)},"promise"),GHe=o(function(){return l0e&&l0e.userAgent.match(/msie|trident|edge/i)},"ms"),Gx=o(function(e,r){r||(r=o(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var a=[],s=0;sr?1:0},"ascending"),qHe=o(function(e,r){return-1*Ape(e,r)},"descending"),Wt=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(v-=1),v<1/6?g+(y-g)*6*v:v<1/2?y:v<2/3?g+(y-g)*(2/3-v)*6:g}o(f,"hue2rgb");var d=new RegExp("^"+UHe+"$").exec(e);if(d){if(n=parseInt(d[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,i=parseFloat(d[2]),i<0||i>100||(i=i/100,a=parseFloat(d[3]),a<0||a>100)||(a=a/100,s=d[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(i===0)l=u=h=Math.round(a*255);else{var p=a<.5?a*(1+i):a+i-a*i,m=2*a-p;l=Math.round(255*f(m,p,n+1/3)),u=Math.round(255*f(m,p,n)),h=Math.round(255*f(m,p,n-1/3))}r=[l,u,h,s]}return r},"hsl2tuple"),KHe=o(function(e){var r,n=new RegExp("^"+$He+"$").exec(e);if(n){r=[];for(var i=[],a=1;a<=3;a++){var s=n[a];if(s[s.length-1]==="%"&&(i[a]=!0),s=parseFloat(s),i[a]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var l=i[1]||i[2]||i[3],u=i[1]&&i[2]&&i[3];if(l&&!u)return;var h=n[4];if(h!==void 0){if(h=parseFloat(h),h<0||h>1)return;r.push(h)}}return r},"rgb2tuple"),QHe=o(function(e){return JHe[e.toLowerCase()]},"colorname2tuple"),ZHe=o(function(e){return(vn(e)?e:null)||QHe(e)||XHe(e)||KHe(e)||jHe(e)},"color2tuple"),JHe={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},_pe=o(function(e){for(var r=e.map,n=e.keys,i=n.length,a=0;a1&&arguments[1]!==void 0?arguments[1]:Zg,n=r,i;i=e.next(),!i.done;)n=n*Mpe+i.value|0;return n},"hashIterableInts"),$x=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Zg;return r*Mpe+e|0},"hashInt"),Vx=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ix;return(r<<5)+r+e|0},"hashIntAlt"),zYe=o(function(e,r){return e*2097152+r},"combineHashes"),bf=o(function(e){return e[0]*2097152+e[1]},"combineHashesArray"),r6=o(function(e,r){return[$x(e[0],r[0]),Vx(e[1],r[1])]},"hashArrays"),GYe=o(function(e,r){var n={value:0,done:!1},i=0,a=e.length,s={next:o(function(){return i=0&&!(e[i]===r&&(e.splice(i,1),n));i--);},"removeFromArray"),eB=o(function(e){e.splice(0,e.length)},"clearArray"),qYe=o(function(e,r){for(var n=0;n"u"?"undefined":Hi(Set))!==jYe?Set:KYe,B6=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!KP(e)){oi("An element must have a core reference and parameters set");return}var i=r.group;if(i==null&&(r.data&&r.data.source!=null&&r.data.target!=null?i="edges":i="nodes"),i!=="nodes"&&i!=="edges"){oi("An element must be of type `nodes` or `edges`; you specified `"+i+"`");return}this.length=1,this[0]=this;var a=this._private={cy:e,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:i,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?i==="edges":!!r.pannable,active:!1,classes:new c1,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),r.renderedPosition){var s=r.renderedPosition,l=e.pan(),u=e.zoom();a.position={x:(s.x-l.x)/u,y:(s.y-l.y)/u}}var h=[];vn(r.classes)?h=r.classes:zt(r.classes)&&(h=r.classes.split(/\s+/));for(var f=0,d=h.length;fb?1:0},"defaultCmp"),f=o(function(x,b,w,S,T){var E;if(w==null&&(w=0),T==null&&(T=n),w<0)throw new Error("lo must be non-negative");for(S==null&&(S=x.length);wM;0<=M?L++:L--)A.push(L);return A}.apply(this).reverse(),_=[],S=0,T=E.length;SN;0<=N?++A:--A)k.push(s(x,w));return k},"nsmallest"),y=o(function(x,b,w,S){var T,E,_;for(S==null&&(S=n),T=x[w];w>b;){if(_=w-1>>1,E=x[_],S(T,E)<0){x[w]=E,w=_;continue}break}return x[w]=T},"_siftdown"),v=o(function(x,b,w){var S,T,E,_,A;for(w==null&&(w=n),T=x.length,A=b,E=x[b],S=2*b+1;S0;){var E=b.pop(),_=v(E),A=E.id();if(p[A]=_,_!==1/0)for(var L=E.neighborhood().intersect(g),M=0;M0)for(F.unshift(P);d[$];){var z=d[$];F.unshift(z.edge),F.unshift(z.node),B=z.node,$=B.id()}return l.spawn(F)},"pathTo")}},"dijkstra")},eWe={kruskal:o(function(e){e=e||function(w){return 1};for(var r=this.byGroup(),n=r.nodes,i=r.edges,a=n.length,s=new Array(a),l=n,u=o(function(S){for(var T=0;T0;){if(T(),_++,S===f){for(var A=[],L=a,M=f,N=x[M];A.unshift(L),N!=null&&A.unshift(N),L=v[M],L!=null;)M=L.id(),N=x[M];return{found:!0,distance:d[S],path:this.spawn(A),steps:_}}m[S]=!0;for(var k=w._private.edges,I=0;IN&&(g[M]=N,b[M]=L,w[M]=T),!a){var k=L*f+A;!a&&g[k]>N&&(g[k]=N,b[k]=A,w[k]=T)}}}for(var I=0;I1&&arguments[1]!==void 0?arguments[1]:s,Se=w(ke),Ue=[],Pe=Se;;){if(Pe==null)return r.spawn();var _e=b(Pe),me=_e.edge,W=_e.pred;if(Ue.unshift(Pe[0]),Pe.same(Ie)&&Ue.length>0)break;me!=null&&Ue.unshift(me),Pe=W}return u.spawn(Ue)},"pathTo"),E=0;E=0;f--){var d=h[f],p=d[1],m=d[2];(r[p]===l&&r[m]===u||r[p]===u&&r[m]===l)&&h.splice(f,1)}for(var g=0;gi;){var a=Math.floor(Math.random()*r.length);r=lWe(a,e,r),n--}return r},"contractUntil"),cWe={kargerStein:o(function(){var e=this,r=this.byGroup(),n=r.nodes,i=r.edges;i.unmergeBy(function(F){return F.isLoop()});var a=n.length,s=i.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/oWe);if(a<2){oi("At least 2 nodes are required for Karger-Stein algorithm");return}for(var h=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=-1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=0,a=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;i?e=e.slice(r,n):(n0&&e.splice(0,r));for(var l=0,u=e.length-1;u>=0;u--){var h=e[u];s?isFinite(h)||(e[u]=-1/0,l++):e.splice(u,1)}a&&e.sort(function(p,m){return p-m});var f=e.length,d=Math.floor(f/2);return f%2!==0?e[d+1+l]:(e[d-1+l]+e[d+l])/2},"median"),mWe=o(function(e){return Math.PI*e/180},"deg2rad"),n6=o(function(e,r){return Math.atan2(r,e)-Math.PI/2},"getAngleFromDisp"),tB=Math.log2||function(t){return Math.log(t)/Math.log(2)},$pe=o(function(e){return e>0?1:e<0?-1:0},"signum"),H0=o(function(e,r){return Math.sqrt(B0(e,r))},"dist"),B0=o(function(e,r){var n=r.x-e.x,i=r.y-e.y;return n*n+i*i},"sqdist"),gWe=o(function(e){for(var r=e.length,n=0,i=0;i=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},"makeBoundingBox"),vWe=o(function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},"copyBoundingBox"),xWe=o(function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},"clearBoundingBox"),bWe=o(function(e,r,n){return{x1:e.x1+r,x2:e.x2+r,y1:e.y1+n,y2:e.y2+n,w:e.w,h:e.h}},"shiftBoundingBox"),Vpe=o(function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},"updateBoundingBox"),wWe=o(function(e,r,n){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},"expandBoundingBoxByPoint"),p6=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBox"),m6=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,i,a,s;if(r.length===1)n=i=a=s=r[0];else if(r.length===2)n=a=r[0],s=i=r[1];else if(r.length===4){var l=$l(r,4);n=l[0],i=l[1],a=l[2],s=l[3]}return e.x1-=s,e.x2+=i,e.y1-=n,e.y2+=a,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBoxSides"),g0e=o(function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},"assignBoundingBox"),rB=o(function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},"boundingBoxesIntersect"),s1=o(function(e,r,n){return e.x1<=r&&r<=e.x2&&e.y1<=n&&n<=e.y2},"inBoundingBox"),TWe=o(function(e,r){return s1(e,r.x,r.y)},"pointInBoundingBox"),Upe=o(function(e,r){return s1(e,r.x1,r.y1)&&s1(e,r.x2,r.y2)},"boundingBoxInBoundingBox"),Hpe=o(function(e,r,n,i,a,s,l){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",h=u==="auto"?Y0(a,s):u,f=a/2,d=s/2;h=Math.min(h,f,d);var p=h!==f,m=h!==d,g;if(p){var y=n-f+h-l,v=i-d-l,x=n+f-h+l,b=v;if(g=kf(e,r,n,i,y,v,x,b,!1),g.length>0)return g}if(m){var w=n+f+l,S=i-d+h-l,T=w,E=i+d-h+l;if(g=kf(e,r,n,i,w,S,T,E,!1),g.length>0)return g}if(p){var _=n-f+h-l,A=i+d+l,L=n+f-h+l,M=A;if(g=kf(e,r,n,i,_,A,L,M,!1),g.length>0)return g}if(m){var N=n-f-l,k=i-d+h-l,I=N,C=i+d-h+l;if(g=kf(e,r,n,i,N,k,I,C,!1),g.length>0)return g}var O;{var D=n-f+h,P=i-d+h;if(O=Ox(e,r,n,i,D,P,h+l),O.length>0&&O[0]<=D&&O[1]<=P)return[O[0],O[1]]}{var F=n+f-h,B=i-d+h;if(O=Ox(e,r,n,i,F,B,h+l),O.length>0&&O[0]>=F&&O[1]<=B)return[O[0],O[1]]}{var $=n+f-h,z=i+d-h;if(O=Ox(e,r,n,i,$,z,h+l),O.length>0&&O[0]>=$&&O[1]>=z)return[O[0],O[1]]}{var Y=n-f+h,Q=i+d-h;if(O=Ox(e,r,n,i,Y,Q,h+l),O.length>0&&O[0]<=Y&&O[1]>=Q)return[O[0],O[1]]}return[]},"roundRectangleIntersectLine"),kWe=o(function(e,r,n,i,a,s,l){var u=l,h=Math.min(n,a),f=Math.max(n,a),d=Math.min(i,s),p=Math.max(i,s);return h-u<=e&&e<=f+u&&d-u<=r&&r<=p+u},"inLineVicinity"),EWe=o(function(e,r,n,i,a,s,l,u,h){var f={x1:Math.min(n,l,a)-h,x2:Math.max(n,l,a)+h,y1:Math.min(i,u,s)-h,y2:Math.max(i,u,s)+h};return!(ef.x2||rf.y2)},"inBezierVicinity"),CWe=o(function(e,r,n,i){n-=i;var a=r*r-4*e*n;if(a<0)return[];var s=Math.sqrt(a),l=2*e,u=(-r+s)/l,h=(-r-s)/l;return[u,h]},"solveQuadratic"),SWe=o(function(e,r,n,i,a){var s=1e-5;e===0&&(e=s),r/=e,n/=e,i/=e;var l,u,h,f,d,p,m,g;if(u=(3*n-r*r)/9,h=-(27*i)+r*(9*n-2*(r*r)),h/=54,l=u*u*u+h*h,a[1]=0,m=r/3,l>0){d=h+Math.sqrt(l),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),p=h-Math.sqrt(l),p=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),a[0]=-m+d+p,m+=(d+p)/2,a[4]=a[2]=-m,m=Math.sqrt(3)*(-p+d)/2,a[3]=m,a[5]=-m;return}if(a[5]=a[3]=0,l===0){g=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-m+2*g,a[4]=a[2]=-(g+m);return}u=-u,f=u*u*u,f=Math.acos(h/Math.sqrt(f)),g=2*Math.sqrt(u),a[0]=-m+g*Math.cos(f/3),a[2]=-m+g*Math.cos((f+2*Math.PI)/3),a[4]=-m+g*Math.cos((f+4*Math.PI)/3)},"solveCubic"),AWe=o(function(e,r,n,i,a,s,l,u){var h=1*n*n-4*n*a+2*n*l+4*a*a-4*a*l+l*l+i*i-4*i*s+2*i*u+4*s*s-4*s*u+u*u,f=1*9*n*a-3*n*n-3*n*l-6*a*a+3*a*l+9*i*s-3*i*i-3*i*u-6*s*s+3*s*u,d=1*3*n*n-6*n*a+n*l-n*e+2*a*a+2*a*e-l*e+3*i*i-6*i*s+i*u-i*r+2*s*s+2*s*r-u*r,p=1*n*a-n*n+n*e-a*e+i*s-i*i+i*r-s*r,m=[];SWe(h,f,d,p,m);for(var g=1e-7,y=[],v=0;v<6;v+=2)Math.abs(m[v+1])=0&&m[v]<=1&&y.push(m[v]);y.push(1),y.push(0);for(var x=-1,b,w,S,T=0;T=0?Sh?(e-a)*(e-a)+(r-s)*(r-s):f-p},"sqdistToFiniteLine"),zs=o(function(e,r,n){for(var i,a,s,l,u,h=0,f=0;f=e&&e>=s||i<=e&&e<=s)u=(e-i)/(s-i)*(l-a)+a,u>r&&h++;else continue;return h%2!==0},"pointInsidePolygonPoints"),Qu=o(function(e,r,n,i,a,s,l,u,h){var f=new Array(n.length),d;u[0]!=null?(d=Math.atan(u[1]/u[0]),u[0]<0?d=d+Math.PI/2:d=-d-Math.PI/2):d=u;for(var p=Math.cos(-d),m=Math.sin(-d),g=0;g0){var v=A6(f,-h);y=S6(v)}else y=f;return zs(e,r,y)},"pointInsidePolygon"),LWe=o(function(e,r,n,i,a,s,l,u){for(var h=new Array(n.length*2),f=0;f=0&&v<=1&&b.push(v),x>=0&&x<=1&&b.push(x),b.length===0)return[];var w=b[0]*u[0]+e,S=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[w,S];var T=b[1]*u[0]+e,E=b[1]*u[1]+r;return[w,S,T,E]}else return[w,S]},"intersectLineCircle"),TP=o(function(e,r,n){return r<=e&&e<=n||n<=e&&e<=r?e:e<=r&&r<=n||n<=r&&r<=e?r:n},"midOfThree"),kf=o(function(e,r,n,i,a,s,l,u,h){var f=e-a,d=n-e,p=l-a,m=r-s,g=i-r,y=u-s,v=p*m-y*f,x=d*m-g*f,b=y*d-p*g;if(b!==0){var w=v/b,S=x/b,T=.001,E=0-T,_=1+T;return E<=w&&w<=_&&E<=S&&S<=_?[e+w*d,r+w*g]:h?[e+w*d,r+w*g]:[]}else return v===0||x===0?TP(e,n,l)===l?[l,u]:TP(e,n,a)===a?[a,s]:TP(a,l,n)===n?[n,i]:[]:[]},"finiteLinesIntersect"),Yx=o(function(e,r,n,i,a,s,l,u){var h=[],f,d=new Array(n.length),p=!0;s==null&&(p=!1);var m;if(p){for(var g=0;g0){var y=A6(d,-u);m=S6(y)}else m=d}else m=n;for(var v,x,b,w,S=0;S2){for(var g=[f[0],f[1]],y=Math.pow(g[0]-e,2)+Math.pow(g[1]-r,2),v=1;vf&&(f=S)},"set"),get:o(function(w){return h[w]},"get")},p=0;p0?D=O.edgesTo(C)[0]:D=C.edgesTo(O)[0];var P=i(D);C=C.id(),A[C]>A[k]+P&&(A[C]=A[k]+P,L.nodes.indexOf(C)<0?L.push(C):L.updateItem(C),_[C]=0,E[C]=[]),A[C]==A[k]+P&&(_[C]=_[C]+_[k],E[C].push(k))}else for(var F=0;F0;){for(var Y=T.pop(),Q=0;Q0&&l.push(n[u]);l.length!==0&&a.push(i.collection(l))}return a},"assign"),YWe=o(function(e,r){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:XWe,l=i,u,h,f=0;f=2?Lx(e,r,n,0,w0e,jWe):Lx(e,r,n,0,b0e)},"euclidean"),squaredEuclidean:o(function(e,r,n){return Lx(e,r,n,0,w0e)},"squaredEuclidean"),manhattan:o(function(e,r,n){return Lx(e,r,n,0,b0e)},"manhattan"),max:o(function(e,r,n){return Lx(e,r,n,-1/0,KWe)},"max")};o1["squared-euclidean"]=o1.squaredEuclidean;o1.squaredeuclidean=o1.squaredEuclidean;o(z6,"clusteringDistance");QWe=Sa({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),iB=o(function(e){return QWe(e)},"setOptions"),_6=o(function(e,r,n,i,a){var s=a!=="kMedoids",l=s?function(d){return n[d]}:function(d){return i[d](n)},u=o(function(p){return i[p](r)},"getQ"),h=n,f=r;return z6(e,i.length,l,u,h,f)},"getDist"),kP=o(function(e,r,n){for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(r),u=null,h=0;hn)return!1}return!0},"haveMatricesConverged"),eqe=o(function(e,r,n){for(var i=0;il&&(l=r[h][f],u=f);a[u].push(e[h])}for(var d=0;d=a.threshold||a.mode==="dendrogram"&&e.length===1)return!1;var g=r[s],y=r[i[s]],v;a.mode==="dendrogram"?v={left:g,right:y,key:g.key}:v={value:g.value.concat(y.value),key:g.key},e[g.index]=v,e.splice(y.index,1),r[g.key]=v;for(var x=0;xn[y.key][b.key]&&(u=n[y.key][b.key])):a.linkage==="max"?(u=n[g.key][b.key],n[g.key][b.key]0&&i.push(a);return i},"findExemplars"),A0e=o(function(e,r,n){for(var i=[],a=0;al&&(s=h,l=r[a*e+h])}s>0&&i.push(s)}for(var f=0;fh&&(u=f,h=d)}n[a]=s[u]}return i=A0e(e,r,n),i},"assign"),_0e=o(function(e){for(var r=this.cy(),n=this.nodes(),i=pqe(e),a={},s=0;s=N?(k=N,N=C,I=O):C>k&&(k=C);for(var D=0;D0?1:0;_[L%i.minIterations*l+Y]=Q,z+=Q}if(z>0&&(L>=i.minIterations-1||L==i.maxIterations-1)){for(var X=0,ie=0;ie1||E>1)&&(l=!0),d[w]=[],b.outgoers().forEach(function(A){A.isEdge()&&d[w].push(A.id())})}else p[w]=[void 0,b.target().id()]}):s.forEach(function(b){var w=b.id();if(b.isNode()){var S=b.degree(!0);S%2&&(u?h?l=!0:h=w:u=w),d[w]=[],b.connectedEdges().forEach(function(T){return d[w].push(T.id())})}else p[w]=[b.source().id(),b.target().id()]});var m={found:!1,trail:void 0};if(l)return m;if(h&&u)if(a){if(f&&h!=f)return m;f=h}else{if(f&&h!=f&&u!=f)return m;f||(f=h)}else f||(f=s[0].id());var g=o(function(w){for(var S=w,T=[w],E,_,A;d[S].length;)E=d[S].shift(),_=p[E][0],A=p[E][1],S!=A?(d[A]=d[A].filter(function(L){return L!=E}),S=A):!a&&S!=_&&(d[_]=d[_].filter(function(L){return L!=E}),S=_),T.unshift(E),T.unshift(S);return T},"walk"),y=[],v=[];for(v=g(f);v.length!=1;)d[v[0]].length==0?(y.unshift(s.getElementById(v.shift())),y.unshift(s.getElementById(v.shift()))):v=g(v.shift()).concat(v);y.unshift(s.getElementById(v.shift()));for(var x in d)if(d[x].length)return m;return m.found=!0,m.trail=this.spawn(y,!0),m},"hierholzer")},s6=o(function(){var e=this,r={},n=0,i=0,a=[],s=[],l={},u=o(function(p,m){for(var g=s.length-1,y=[],v=e.spawn();s[g].x!=p||s[g].y!=m;)y.push(s.pop().edge),g--;y.push(s.pop().edge),y.forEach(function(x){var b=x.connectedNodes().intersection(e);v.merge(x),b.forEach(function(w){var S=w.id(),T=w.connectedEdges().intersection(e);v.merge(w),r[S].cutVertex?v.merge(T.filter(function(E){return E.isLoop()})):v.merge(T)})}),a.push(v)},"buildComponent"),h=o(function d(p,m,g){p===g&&(i+=1),r[m]={id:n,low:n++,cutVertex:!1};var y=e.getElementById(m).connectedEdges().intersection(e);if(y.size()===0)a.push(e.spawn(e.getElementById(m)));else{var v,x,b,w;y.forEach(function(S){v=S.source().id(),x=S.target().id(),b=v===m?x:v,b!==g&&(w=S.id(),l[w]||(l[w]=!0,s.push({x:m,y:b,edge:S})),b in r?r[m].low=Math.min(r[m].low,r[b].id):(d(p,b,m),r[m].low=Math.min(r[m].low,r[b].low),r[m].id<=r[b].low&&(r[m].cutVertex=!0,u(m,b))))})}},"biconnectedSearch");e.forEach(function(d){if(d.isNode()){var p=d.id();p in r||(i=0,h(p,p),r[p].cutVertex=i>1)}});var f=Object.keys(r).filter(function(d){return r[d].cutVertex}).map(function(d){return e.getElementById(d)});return{cut:e.spawn(f),components:a}},"hopcroftTarjanBiconnected"),Tqe={hopcroftTarjanBiconnected:s6,htbc:s6,htb:s6,hopcroftTarjanBiconnectedComponents:s6},o6=o(function(){var e=this,r={},n=0,i=[],a=[],s=e.spawn(e),l=o(function u(h){a.push(h),r[h]={index:n,low:n++,explored:!1};var f=e.getElementById(h).connectedEdges().intersection(e);if(f.forEach(function(y){var v=y.target().id();v!==h&&(v in r||u(v),r[v].explored||(r[h].low=Math.min(r[h].low,r[v].low)))}),r[h].index===r[h].low){for(var d=e.spawn();;){var p=a.pop();if(d.merge(e.getElementById(p)),r[p].low=r[h].index,r[p].explored=!0,p===h)break}var m=d.edgesWith(d),g=d.merge(m);i.push(g),s=s.difference(g)}},"stronglyConnectedSearch");return e.forEach(function(u){if(u.isNode()){var h=u.id();h in r||l(h)}}),{cut:s,components:i}},"tarjanStronglyConnected"),kqe={tarjanStronglyConnected:o6,tsc:o6,tscc:o6,tarjanStronglyConnectedComponents:o6},Qpe={};[Ux,JYe,eWe,rWe,iWe,sWe,cWe,IWe,r1,n1,IP,qWe,sqe,fqe,xqe,wqe,Tqe,kqe].forEach(function(t){Wt(Qpe,t)});Zpe=0,Jpe=1,eme=2,Zu=o(function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Zpe,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");Zu.prototype={fulfill:o(function(e){return L0e(this,Jpe,"fulfillValue",e)},"fulfill"),reject:o(function(e){return L0e(this,eme,"rejectReason",e)},"reject"),then:o(function(e,r){var n=this,i=new Zu;return n.onFulfilled.push(R0e(e,i,"fulfill")),n.onRejected.push(R0e(r,i,"reject")),tme(n),i.proxy},"then")};L0e=o(function(e,r,n,i){return e.state===Zpe&&(e.state=r,e[n]=i,tme(e)),e},"deliver"),tme=o(function(e){e.state===Jpe?D0e(e,"onFulfilled",e.fulfillValue):e.state===eme&&D0e(e,"onRejected",e.rejectReason)},"execute"),D0e=o(function(e,r,n){if(e[r].length!==0){var i=e[r];e[r]=[];var a=o(function(){for(var l=0;l0},"animatedImpl")},"animated"),clearQueue:o(function(){return o(function(){var r=this,n=r.length!==void 0,i=n?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var s=0;s0&&this.spawn(i).updateStyle().emit("class"),r},"classes"),addClass:o(function(e){return this.toggleClass(e,!0)},"addClass"),hasClass:o(function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},"hasClass"),toggleClass:o(function(e,r){vn(e)||(e=e.match(/\S+/g)||[]);for(var n=this,i=r===void 0,a=[],s=0,l=n.length;s0&&this.spawn(a).updateStyle().emit("class"),n},"toggleClass"),removeClass:o(function(e){return this.toggleClass(e,!1)},"removeClass"),flashClass:o(function(e,r){var n=this;if(r==null)r=250;else if(r===0)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},r),n},"flashClass")};g6.className=g6.classNames=g6.classes;Nr={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Ui,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Nr.variable="(?:[\\w-.]|(?:\\\\"+Nr.metaChar+"))+";Nr.className="(?:[\\w-]|(?:\\\\"+Nr.metaChar+"))+";Nr.value=Nr.string+"|"+Nr.number;Nr.id=Nr.variable;(function(){var t,e,r;for(t=Nr.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&(Nr.comparatorOp+="|\\!"+e)})();un=o(function(){return{checks:[]}},"newQuery"),Ct={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},PP=[{selector:":selected",matches:o(function(e){return e.selected()},"matches")},{selector:":unselected",matches:o(function(e){return!e.selected()},"matches")},{selector:":selectable",matches:o(function(e){return e.selectable()},"matches")},{selector:":unselectable",matches:o(function(e){return!e.selectable()},"matches")},{selector:":locked",matches:o(function(e){return e.locked()},"matches")},{selector:":unlocked",matches:o(function(e){return!e.locked()},"matches")},{selector:":visible",matches:o(function(e){return e.visible()},"matches")},{selector:":hidden",matches:o(function(e){return!e.visible()},"matches")},{selector:":transparent",matches:o(function(e){return e.transparent()},"matches")},{selector:":grabbed",matches:o(function(e){return e.grabbed()},"matches")},{selector:":free",matches:o(function(e){return!e.grabbed()},"matches")},{selector:":removed",matches:o(function(e){return e.removed()},"matches")},{selector:":inside",matches:o(function(e){return!e.removed()},"matches")},{selector:":grabbable",matches:o(function(e){return e.grabbable()},"matches")},{selector:":ungrabbable",matches:o(function(e){return!e.grabbable()},"matches")},{selector:":animated",matches:o(function(e){return e.animated()},"matches")},{selector:":unanimated",matches:o(function(e){return!e.animated()},"matches")},{selector:":parent",matches:o(function(e){return e.isParent()},"matches")},{selector:":childless",matches:o(function(e){return e.isChildless()},"matches")},{selector:":child",matches:o(function(e){return e.isChild()},"matches")},{selector:":orphan",matches:o(function(e){return e.isOrphan()},"matches")},{selector:":nonorphan",matches:o(function(e){return e.isChild()},"matches")},{selector:":compound",matches:o(function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()},"matches")},{selector:":loop",matches:o(function(e){return e.isLoop()},"matches")},{selector:":simple",matches:o(function(e){return e.isSimple()},"matches")},{selector:":active",matches:o(function(e){return e.active()},"matches")},{selector:":inactive",matches:o(function(e){return!e.active()},"matches")},{selector:":backgrounding",matches:o(function(e){return e.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:o(function(e){return!e.backgrounding()},"matches")}].sort(function(t,e){return qHe(t.selector,e.selector)}),Pje=function(){for(var t={},e,r=0;r0&&f.edgeCount>0)return tn("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return tn("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&tn("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),Vje=o(function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=o(function(f){return f??""},"clean"),r=o(function(f){return zt(f)?'"'+f+'"':e(f)},"cleanVal"),n=o(function(f){return" "+f+" "},"space"),i=o(function(f,d){var p=f.type,m=f.value;switch(p){case Ct.GROUP:{var g=e(m);return g.substring(0,g.length-1)}case Ct.DATA_COMPARE:{var y=f.field,v=f.operator;return"["+y+n(e(v))+r(m)+"]"}case Ct.DATA_BOOL:{var x=f.operator,b=f.field;return"["+e(x)+b+"]"}case Ct.DATA_EXIST:{var w=f.field;return"["+w+"]"}case Ct.META_COMPARE:{var S=f.operator,T=f.field;return"[["+T+n(e(S))+r(m)+"]]"}case Ct.STATE:return m;case Ct.ID:return"#"+m;case Ct.CLASS:return"."+m;case Ct.PARENT:case Ct.CHILD:return a(f.parent,d)+n(">")+a(f.child,d);case Ct.ANCESTOR:case Ct.DESCENDANT:return a(f.ancestor,d)+" "+a(f.descendant,d);case Ct.COMPOUND_SPLIT:{var E=a(f.left,d),_=a(f.subject,d),A=a(f.right,d);return E+(E.length>0?" ":"")+_+A}case Ct.TRUE:return""}},"checkToString"),a=o(function(f,d){return f.checks.reduce(function(p,m,g){return p+(d===f&&g===0?"$":"")+i(m,d)},"")},"queryToString"),s="",l=0;l1&&l=0&&(r=r.replace("!",""),d=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(a||l||f)&&(u=!a&&!s?"":""+e,h=""+n),f&&(e=u=u.toLowerCase(),n=h=h.toLowerCase()),r){case"*=":i=u.indexOf(h)>=0;break;case"$=":i=u.indexOf(h,u.length-h.length)>=0;break;case"^=":i=u.indexOf(h)===0;break;case"=":i=e===n;break;case">":p=!0,i=e>n;break;case">=":p=!0,i=e>=n;break;case"<":p=!0,i=e1&&arguments[1]!==void 0?arguments[1]:!0;return cB(this,t,e,ume)};o(hme,"addParent");l1.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return cB(this,t,e,hme)};o(Kje,"addParentAndChildren");l1.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return cB(this,t,e,Kje)};l1.ancestors=l1.parents;qx=fme={data:en.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:en.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:en.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:en.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:en.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:en.removeData({field:"rscratch",triggerEvent:!1}),id:o(function(){var e=this[0];if(e)return e._private.data.id},"id")};qx.attr=qx.data;qx.removeAttr=qx.removeData;Qje=fme,U6={};o(CP,"defineDegreeFunction");Wt(U6,{degree:CP(function(t,e){return e.source().same(e.target())?2:1}),indegree:CP(function(t,e){return e.target().same(t)?1:0}),outdegree:CP(function(t,e){return e.source().same(t)?1:0})});o(Xg,"defineDegreeBoundsFunction");Wt(U6,{minDegree:Xg("degree",function(t,e){return te}),minIndegree:Xg("indegree",function(t,e){return te}),minOutdegree:Xg("outdegree",function(t,e){return te})});Wt(U6,{totalDegree:o(function(e){for(var r=0,n=this.nodes(),i=0;i0,p=d;d&&(f=f[0]);var m=p?f.position():{x:0,y:0};r!==void 0?h.position(e,r+m[e]):a!==void 0&&h.position({x:a.x+m.x,y:a.y+m.y})}else{var g=n.position(),y=l?n.parent():null,v=y&&y.length>0,x=v;v&&(y=y[0]);var b=x?y.position():{x:0,y:0};return a={x:g.x-b.x,y:g.y-b.y},e===void 0?a:a[e]}else if(!s)return;return this},"relativePosition")};Hl.modelPosition=Hl.point=Hl.position;Hl.modelPositions=Hl.points=Hl.positions;Hl.renderedPoint=Hl.renderedPosition;Hl.relativePoint=Hl.relativePosition;Zje=dme;i1=Rf={};Rf.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),n=r.zoom(),i=r.pan(),a=e.x1*n+i.x,s=e.x2*n+i.x,l=e.y1*n+i.y,u=e.y2*n+i.y;return{x1:a,x2:s,y1:l,y2:u,w:s-a,h:u-l}};Rf.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var n=r._private;n.compoundBoundsClean=!1,n.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};Rf.updateCompoundBounds=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function r(s){if(!s.isParent())return;var l=s._private,u=s.children(),h=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},d=u.boundingBox({includeLabels:h,includeOverlays:!1,useCache:!1}),p=l.position;(d.w===0||d.h===0)&&(d={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},d.x1=p.x-d.w/2,d.x2=p.x+d.w/2,d.y1=p.y-d.h/2,d.y2=p.y+d.h/2);function m(L,M,N){var k=0,I=0,C=M+N;return L>0&&C>0&&(k=M/C*L,I=N/C*L),{biasDiff:k,biasComplementDiff:I}}o(m,"computeBiasValues");function g(L,M,N,k){if(N.units==="%")switch(k){case"width":return L>0?N.pfValue*L:0;case"height":return M>0?N.pfValue*M:0;case"average":return L>0&&M>0?N.pfValue*(L+M)/2:0;case"min":return L>0&&M>0?L>M?N.pfValue*M:N.pfValue*L:0;case"max":return L>0&&M>0?L>M?N.pfValue*L:N.pfValue*M:0;default:return 0}else return N.units==="px"?N.pfValue:0}o(g,"computePaddingValues");var y=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(y=y*100/f.width.val);var v=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(v=v*100/f.width.val);var x=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(x=x*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var w=m(f.width.val-d.w,y,v),S=w.biasDiff,T=w.biasComplementDiff,E=m(f.height.val-d.h,x,b),_=E.biasDiff,A=E.biasComplementDiff;l.autoPadding=g(d.w,d.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),l.autoWidth=Math.max(d.w,f.width.val),p.x=(-S+d.x1+d.x2+T)/2,l.autoHeight=Math.max(d.h,f.height.val),p.y=(-_+d.y1+d.y2+A)/2}o(r,"update");for(var n=0;ne.x2?i:e.x2,e.y1=ne.y2?a:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},"updateBounds"),F0=o(function(e,r){return r==null?e:Vl(e,r.x1,r.y1,r.x2,r.y2)},"updateBoundsFromBox"),Dx=o(function(e,r,n){return Ul(e,r,n)},"prefixedProperty"),l6=o(function(e,r,n){if(!r.cy().headless()){var i=r._private,a=i.rstyle,s=a.arrowWidth/2,l=r.pstyle(n+"-arrow-shape").value,u,h;if(l!=="none"){n==="source"?(u=a.srcX,h=a.srcY):n==="target"?(u=a.tgtX,h=a.tgtY):(u=a.midX,h=a.midY);var f=i.arrowBounds=i.arrowBounds||{},d=f[n]=f[n]||{};d.x1=u-s,d.y1=h-s,d.x2=u+s,d.y2=h+s,d.w=d.x2-d.x1,d.h=d.y2-d.y1,p6(d,1),Vl(e,d.x1,d.y1,d.x2,d.y2)}}},"updateBoundsFromArrow"),SP=o(function(e,r,n){if(!r.cy().headless()){var i;n?i=n+"-":i="";var a=r._private,s=a.rstyle,l=r.pstyle(i+"label").strValue;if(l){var u=r.pstyle("text-halign"),h=r.pstyle("text-valign"),f=Dx(s,"labelWidth",n),d=Dx(s,"labelHeight",n),p=Dx(s,"labelX",n),m=Dx(s,"labelY",n),g=r.pstyle(i+"text-margin-x").pfValue,y=r.pstyle(i+"text-margin-y").pfValue,v=r.isEdge(),x=r.pstyle(i+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,w=r.pstyle("text-border-width").pfValue,S=w/2,T=r.pstyle("text-background-padding").pfValue,E=2,_=d,A=f,L=A/2,M=_/2,N,k,I,C;if(v)N=p-L,k=p+L,I=m-M,C=m+M;else{switch(u.value){case"left":N=p-A,k=p;break;case"center":N=p-L,k=p+L;break;case"right":N=p,k=p+A;break}switch(h.value){case"top":I=m-_,C=m;break;case"center":I=m-M,C=m+M;break;case"bottom":I=m,C=m+_;break}}N+=g-Math.max(b,S)-T-E,k+=g+Math.max(b,S)+T+E,I+=y-Math.max(b,S)-T-E,C+=y+Math.max(b,S)+T+E;var O=n||"main",D=a.labelBounds,P=D[O]=D[O]||{};P.x1=N,P.y1=I,P.x2=k,P.y2=C,P.w=k-N,P.h=C-I;var F=v&&x.strValue==="autorotate",B=x.pfValue!=null&&x.pfValue!==0;if(F||B){var $=F?Dx(a.rstyle,"labelAngle",n):x.pfValue,z=Math.cos($),Y=Math.sin($),Q=(N+k)/2,X=(I+C)/2;if(!v){switch(u.value){case"left":Q=k;break;case"right":Q=N;break}switch(h.value){case"top":X=C;break;case"bottom":X=I;break}}var ie=o(function(ce,ue){return ce=ce-Q,ue=ue-X,{x:ce*z-ue*Y+Q,y:ce*Y+ue*z+X}},"rotate"),j=ie(N,I),J=ie(N,C),Z=ie(k,I),H=ie(k,C);N=Math.min(j.x,J.x,Z.x,H.x),k=Math.max(j.x,J.x,Z.x,H.x),I=Math.min(j.y,J.y,Z.y,H.y),C=Math.max(j.y,J.y,Z.y,H.y)}var q=O+"Rot",K=D[q]=D[q]||{};K.x1=N,K.y1=I,K.x2=k,K.y2=C,K.w=k-N,K.h=C-I,Vl(e,N,I,k,C),Vl(a.labelBounds.all,N,I,k,C)}return e}},"updateBoundsFromLabel"),Jje=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("outline-opacity").value,i=r.pstyle("outline-width").value;if(n>0&&i>0){var a=r.pstyle("outline-offset").value,s=r.pstyle("shape").value,l=i+a,u=(e.w+l*2)/e.w,h=(e.h+l*2)/e.h,f=0,d=0;["diamond","pentagon","round-triangle"].includes(s)?(u=(e.w+l*2.4)/e.w,d=-l/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?u=(e.w+l*2.4)/e.w:s==="star"?(u=(e.w+l*2.8)/e.w,h=(e.h+l*2.6)/e.h,d=-l/3.8):s==="triangle"?(u=(e.w+l*2.8)/e.w,h=(e.h+l*2.4)/e.h,d=-l/1.4):s==="vee"&&(u=(e.w+l*4.4)/e.w,h=(e.h+l*3.8)/e.h,d=-l*.5);var p=e.h*h-e.h,m=e.w*u-e.w;if(m6(e,[Math.ceil(p/2),Math.ceil(m/2)]),f!=0||d!==0){var g=bWe(e,f,d);Vpe(e,g)}}}},"updateBoundsFromOutline"),eKe=o(function(e,r){var n=e._private.cy,i=n.styleEnabled(),a=n.headless(),s=Gs(),l=e._private,u=e.isNode(),h=e.isEdge(),f,d,p,m,g,y,v=l.rstyle,x=u&&i?e.pstyle("bounds-expansion").pfValue:[0],b=o(function(De){return De.pstyle("display").value!=="none"},"isDisplayed"),w=!i||b(e)&&(!h||b(e.source())&&b(e.target()));if(w){var S=0,T=0;i&&r.includeOverlays&&(S=e.pstyle("overlay-opacity").value,S!==0&&(T=e.pstyle("overlay-padding").value));var E=0,_=0;i&&r.includeUnderlays&&(E=e.pstyle("underlay-opacity").value,E!==0&&(_=e.pstyle("underlay-padding").value));var A=Math.max(T,_),L=0,M=0;if(i&&(L=e.pstyle("width").pfValue,M=L/2),u&&r.includeNodes){var N=e.position();g=N.x,y=N.y;var k=e.outerWidth(),I=k/2,C=e.outerHeight(),O=C/2;f=g-I,d=g+I,p=y-O,m=y+O,Vl(s,f,p,d,m),i&&r.includeOutlines&&Jje(s,e)}else if(h&&r.includeEdges)if(i&&!a){var D=e.pstyle("curve-style").strValue;if(f=Math.min(v.srcX,v.midX,v.tgtX),d=Math.max(v.srcX,v.midX,v.tgtX),p=Math.min(v.srcY,v.midY,v.tgtY),m=Math.max(v.srcY,v.midY,v.tgtY),f-=M,d+=M,p-=M,m+=M,Vl(s,f,p,d,m),D==="haystack"){var P=v.haystackPts;if(P&&P.length===2){if(f=P[0].x,p=P[0].y,d=P[1].x,m=P[1].y,f>d){var F=f;f=d,d=F}if(p>m){var B=p;p=m,m=B}Vl(s,f-M,p-M,d+M,m+M)}}else if(D==="bezier"||D==="unbundled-bezier"||D.endsWith("segments")||D.endsWith("taxi")){var $;switch(D){case"bezier":case"unbundled-bezier":$=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":$=v.linePts;break}if($!=null)for(var z=0;z<$.length;z++){var Y=$[z];f=Y.x-M,d=Y.x+M,p=Y.y-M,m=Y.y+M,Vl(s,f,p,d,m)}}}else{var Q=e.source(),X=Q.position(),ie=e.target(),j=ie.position();if(f=X.x,d=j.x,p=X.y,m=j.y,f>d){var J=f;f=d,d=J}if(p>m){var Z=p;p=m,m=Z}f-=M,d+=M,p-=M,m+=M,Vl(s,f,p,d,m)}if(i&&r.includeEdges&&h&&(l6(s,e,"mid-source"),l6(s,e,"mid-target"),l6(s,e,"source"),l6(s,e,"target")),i){var H=e.pstyle("ghost").value==="yes";if(H){var q=e.pstyle("ghost-offset-x").pfValue,K=e.pstyle("ghost-offset-y").pfValue;Vl(s,s.x1+q,s.y1+K,s.x2+q,s.y2+K)}}var se=l.bodyBounds=l.bodyBounds||{};g0e(se,s),m6(se,x),p6(se,1),i&&(f=s.x1,d=s.x2,p=s.y1,m=s.y2,Vl(s,f-A,p-A,d+A,m+A));var ce=l.overlayBounds=l.overlayBounds||{};g0e(ce,s),m6(ce,x),p6(ce,1);var ue=l.labelBounds=l.labelBounds||{};ue.all!=null?xWe(ue.all):ue.all=Gs(),i&&r.includeLabels&&(r.includeMainLabels&&SP(s,e,null),h&&(r.includeSourceLabels&&SP(s,e,"source"),r.includeTargetLabels&&SP(s,e,"target")))}return s.x1=el(s.x1),s.y1=el(s.y1),s.x2=el(s.x2),s.y2=el(s.y2),s.w=el(s.x2-s.x1),s.h=el(s.y2-s.y1),s.w>0&&s.h>0&&w&&(m6(s,x),p6(s,1)),s},"boundingBoxImpl"),mme=o(function(e){var r=0,n=o(function(s){return(s?1:0)<=0;l--)s(l);return this};Df.removeAllListeners=function(){return this.removeListener("*")};Df.emit=Df.trigger=function(t,e,r){var n=this.listeners,i=n.length;return this.emitting++,vn(e)||(e=[e]),gKe(this,function(a,s){r!=null&&(n=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],i=n.length);for(var l=o(function(f){var d=n[f];if(d.type===s.type&&(!d.namespace||d.namespace===s.namespace||d.namespace===pKe)&&a.eventMatches(a.context,d,s)){var p=[s];e!=null&&qYe(p,e),a.beforeEmit(a.context,d,s),d.conf&&d.conf.one&&(a.listeners=a.listeners.filter(function(y){return y!==d}));var m=a.callbackContext(a.context,d,s),g=d.callback.apply(m,p);a.afterEmit(a.context,d,s),g===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),u=0;u1&&!s){var l=this.length-1,u=this[l],h=u._private.data.id;this[l]=void 0,this[e]=u,a.set(h,{ele:u,index:e})}return this.length--,this},"unmergeAt"),unmergeOne:o(function(e){e=e[0];var r=this._private,n=e._private.data.id,i=r.map,a=i.get(n);if(!a)return this;var s=a.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:o(function(e){var r=this._private.cy;if(!e)return this;if(e&&zt(e)){var n=e;e=r.mutableElements().filter(n)}for(var i=0;i=0;r--){var n=this[r];e(n)&&this.unmergeAt(r)}return this},"unmergeBy"),map:o(function(e,r){for(var n=[],i=this,a=0;an&&(n=u,i=l)}return{value:n,ele:i}},"max"),min:o(function(e,r){for(var n=1/0,i,a=this,s=0;s=0&&a"u"?"undefined":Hi(Symbol))!=e&&Hi(Symbol.iterator)!=e;r&&(L6[Symbol.iterator]=function(){var n=this,i={value:void 0,done:!1},a=0,s=this.length;return bpe({next:o(function(){return a1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],i=n.cy();if(i.styleEnabled()&&n){this.cleanStyle();var a=n._private.style[e];return a??(r?i.style().getDefaultProperty(e):null)}},"parsedStyle"),numericStyle:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var n=r.pstyle(e);return n.pfValue!==void 0?n.pfValue:n.value}},"numericStyle"),numericStyleUnits:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},"numericStyleUnits"),renderedStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=this[0];if(n)return r.style().getRenderedStyle(n,e)},"renderedStyle"),style:o(function(e,r){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(Mr(e)){var s=e;a.applyBypass(this,s,i),this.emitAndNotify("style")}else if(zt(e))if(r===void 0){var l=this[0];return l?a.getStylePropertyValue(l,e):void 0}else a.applyBypass(this,e,r,i),this.emitAndNotify("style");else if(e===void 0){var u=this[0];return u?a.getRawStyle(u):void 0}return this},"style"),removeStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=!1,i=r.style(),a=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(l[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:o(function(e){return this.neighborhood().add(this).filter(e)},"closedNeighborhood"),openNeighborhood:o(function(e){return this.neighborhood(e)},"openNeighborhood")});Fa.neighbourhood=Fa.neighborhood;Fa.closedNeighbourhood=Fa.closedNeighborhood;Fa.openNeighbourhood=Fa.openNeighborhood;Wt(Fa,{source:tl(o(function(e){var r=this[0],n;return r&&(n=r._private.source||r.cy().collection()),n&&e?n.filter(e):n},"sourceImpl"),"source"),target:tl(o(function(e){var r=this[0],n;return r&&(n=r._private.target||r.cy().collection()),n&&e?n.filter(e):n},"targetImpl"),"target"),sources:X0e({attr:"source"}),targets:X0e({attr:"target"})});o(X0e,"defineSourceFunction");Wt(Fa,{edgesWith:tl(j0e(),"edgesWith"),edgesTo:tl(j0e({thisIsSrc:!0}),"edgesTo")});o(j0e,"defineEdgesWithFunction");Wt(Fa,{connectedEdges:tl(function(t){for(var e=[],r=this,n=0;n0);return s},"components"),component:o(function(){var e=this[0];return e.cy().mutableElements().components(e)[0]},"component")});Fa.componentsOf=Fa.components;Ca=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){oi("A collection must have a reference to the core");return}var a=new Vc,s=!1;if(!r)r=[];else if(r.length>0&&Mr(r[0])&&!Zx(r[0])){s=!0;for(var l=[],u=new c1,h=0,f=r.length;h0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=r.cy(),i=n._private,a=[],s=[],l,u=0,h=r.length;u0){for(var B=l.length===r.length?r:new Ca(n,l),$=0;$0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=[],i={},a=r._private.cy;function s(C){for(var O=C._private.edges,D=0;D0&&(t?N.emitAndNotify("remove"):e&&N.emit("remove"));for(var k=0;kf&&Math.abs(g.v)>f;);return p?function(y){return u[y*(u.length-1)|0]}:h},"springRK4Factory")}(),Ln=o(function(e,r,n,i){var a=SKe(e,r,n,i);return function(s,l,u){return s+(l-s)*a(u)}},"cubicBezier"),v6={linear:o(function(e,r,n){return e+(r-e)*n},"linear"),ease:Ln(.25,.1,.25,1),"ease-in":Ln(.42,0,1,1),"ease-out":Ln(0,0,.58,1),"ease-in-out":Ln(.42,0,.58,1),"ease-in-sine":Ln(.47,0,.745,.715),"ease-out-sine":Ln(.39,.575,.565,1),"ease-in-out-sine":Ln(.445,.05,.55,.95),"ease-in-quad":Ln(.55,.085,.68,.53),"ease-out-quad":Ln(.25,.46,.45,.94),"ease-in-out-quad":Ln(.455,.03,.515,.955),"ease-in-cubic":Ln(.55,.055,.675,.19),"ease-out-cubic":Ln(.215,.61,.355,1),"ease-in-out-cubic":Ln(.645,.045,.355,1),"ease-in-quart":Ln(.895,.03,.685,.22),"ease-out-quart":Ln(.165,.84,.44,1),"ease-in-out-quart":Ln(.77,0,.175,1),"ease-in-quint":Ln(.755,.05,.855,.06),"ease-out-quint":Ln(.23,1,.32,1),"ease-in-out-quint":Ln(.86,0,.07,1),"ease-in-expo":Ln(.95,.05,.795,.035),"ease-out-expo":Ln(.19,1,.22,1),"ease-in-out-expo":Ln(1,0,0,1),"ease-in-circ":Ln(.6,.04,.98,.335),"ease-out-circ":Ln(.075,.82,.165,1),"ease-in-out-circ":Ln(.785,.135,.15,.86),spring:o(function(e,r,n){if(n===0)return v6.linear;var i=AKe(e,r,n);return function(a,s,l){return a+(s-a)*i(l)}},"spring"),"cubic-bezier":Ln};o(Q0e,"getEasedValue");o(Z0e,"getValue");o(jg,"ease");o(_Ke,"step$1");o(Nx,"valid");o(LKe,"startAnimation");o(J0e,"stepAll");DKe={animate:en.animate(),animation:en.animation(),animated:en.animated(),clearQueue:en.clearQueue(),delay:en.delay(),delayAnimation:en.delayAnimation(),stop:en.stop(),addToAnimationPool:o(function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},"addToAnimationPool"),stopAnimationLoop:o(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:o(function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&E6(o(function(a){J0e(a,e),r()},"animationStep"))}o(r,"headlessStep");var n=e.renderer();n&&n.beforeRender?n.beforeRender(o(function(a,s){J0e(s,e)},"rendererAnimationStep"),n.beforeRenderPriorities.animations):r()},"startAnimationLoop")},RKe={qualifierCompare:o(function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},"qualifierCompare"),eventMatches:o(function(e,r,n){var i=r.qualifier;return i!=null?e!==n.target&&Zx(n.target)&&i.matches(n.target):!0},"eventMatches"),addEventFields:o(function(e,r){r.cy=e,r.target=e},"addEventFields"),callbackContext:o(function(e,r,n){return r.qualifier!=null?n.target:e},"callbackContext")},h6=o(function(e){return zt(e)?new _f(e):e},"argSelector"),Sme={createEmitter:o(function(){var e=this._private;return e.emitter||(e.emitter=new H6(RKe,this)),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(e,r,n){return this.emitter().on(e,h6(r),n),this},"on"),removeListener:o(function(e,r,n){return this.emitter().removeListener(e,h6(r),n),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:o(function(e,r,n){return this.emitter().one(e,h6(r),n),this},"one"),once:o(function(e,r,n){return this.emitter().one(e,h6(r),n),this},"once"),emit:o(function(e,r){return this.emitter().emit(e,r),this},"emit"),emitAndNotify:o(function(e,r){return this.emit(e),this.notify(e,r),this},"emitAndNotify")};en.eventAliasesOn(Sme);FP={png:o(function(e){var r=this._private.renderer;return e=e||{},r.png(e)},"png"),jpg:o(function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)},"jpg")};FP.jpeg=FP.jpg;x6={layout:o(function(e){var r=this;if(e==null){oi("Layout options must be specified to make a layout");return}if(e.name==null){oi("A `name` must be specified to make a layout");return}var n=e.name,i=r.extension("layout",n);if(i==null){oi("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;zt(e.eles)?a=r.$(e.eles):a=e.eles!=null?e.eles:r.$();var s=new i(Wt({},e,{cy:r,eles:a}));return s},"layout")};x6.createLayout=x6.makeLayout=x6.layout;NKe={notify:o(function(e,r){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();r!=null&&i.merge(r);return}if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(e,r)}},"notify"),notifications:o(function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},"notifications"),noNotifications:o(function(e){this.notifications(!1),e(),this.notifications(!0)},"noNotifications"),batching:o(function(){return this._private.batchCount>0},"batching"),startBatch:o(function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},"startBatch"),endBatch:o(function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var i=e.batchNotifications[n];i.empty()?r.notify(n):r.notify(n,i)})}return this},"endBatch"),batch:o(function(e){return this.startBatch(),e(),this.endBatch(),this},"batch"),batchData:o(function(e){var r=this;return this.batch(function(){for(var n=Object.keys(e),i=0;i0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(n){var i=n._private;i.rscratch={},i.rstyle={},i.animation.current=[],i.animation.queue=[]})},"destroyRenderer"),onRender:o(function(e){return this.on("render",e)},"onRender"),offRender:o(function(e){return this.off("render",e)},"offRender")};zP.invalidateDimensions=zP.resize;b6={collection:o(function(e,r){return zt(e)?this.$(e):xo(e)?e.collection():vn(e)?(r||(r={}),new Ca(this,e,r.unique,r.removed)):new Ca(this)},"collection"),nodes:o(function(e){var r=this.$(function(n){return n.isNode()});return e?r.filter(e):r},"nodes"),edges:o(function(e){var r=this.$(function(n){return n.isEdge()});return e?r.filter(e):r},"edges"),$:o(function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},"$"),mutableElements:o(function(){return this._private.elements},"mutableElements")};b6.elements=b6.filter=b6.$;Ga={},Fx="t",IKe="f";Ga.apply=function(t){for(var e=this,r=e._private,n=r.cy,i=n.collection(),a=0;a0;if(p||d&&m){var g=void 0;p&&m||p?g=h.properties:m&&(g=h.mappedProperties);for(var y=0;y1&&(S=1),l.color){var E=n.valueMin[0],_=n.valueMax[0],A=n.valueMin[1],L=n.valueMax[1],M=n.valueMin[2],N=n.valueMax[2],k=n.valueMin[3]==null?1:n.valueMin[3],I=n.valueMax[3]==null?1:n.valueMax[3],C=[Math.round(E+(_-E)*S),Math.round(A+(L-A)*S),Math.round(M+(N-M)*S),Math.round(k+(I-k)*S)];a={bypass:n.bypass,name:n.name,value:C,strValue:"rgb("+C[0]+", "+C[1]+", "+C[2]+")"}}else if(l.number){var O=n.valueMin+(n.valueMax-n.valueMin)*S;a=this.parse(n.name,O,n.bypass,p)}else return!1;if(!a)return y(),!1;a.mapping=n,n=a;break}case s.data:{for(var D=n.field.split("."),P=d.data,F=0;F0&&a>0){for(var l={},u=!1,h=0;h0?t.delayAnimation(s).play().promise().then(w):w()}).then(function(){return t.animation({style:l,duration:a,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1})}else n.transitioning&&(this.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1)};Ga.checkTrigger=function(t,e,r,n,i,a){var s=this.properties[e],l=i(s);l!=null&&l(r,n)&&a(s)};Ga.checkZOrderTrigger=function(t,e,r,n){var i=this;this.checkTrigger(t,e,r,n,function(a){return a.triggersZOrder},function(){i._private.cy.notify("zorder",t)})};Ga.checkBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBounds},function(i){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),i.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(r==="bezier"||n==="bezier")&&t.parallelEdges().forEach(function(a){a.isBundledBezier()&&a.dirtyBoundingBoxCache()}),i.triggersBoundsOfConnectedEdges&&e==="display"&&(r==="none"||n==="none")&&t.connectedEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};Ga.checkTriggers=function(t,e,r,n){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,n),this.checkBoundsTrigger(t,e,r,n)};rb={};rb.applyBypass=function(t,e,r,n){var i=this,a=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var l=0;li.length?n=n.substr(i.length):n=""}o(l,"removeSelAndBlockFromRemaining");function u(){a.length>s.length?a=a.substr(s.length):a=""}for(o(u,"removePropAndValFromRem");;){var h=n.match(/^\s*$/);if(h)break;var f=n.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){tn("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+n);break}i=f[0];var d=f[1];if(d!=="core"){var p=new _f(d);if(p.invalid){tn("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),l();continue}}var m=f[2],g=!1;a=m;for(var y=[];;){var v=a.match(/^\s*$/);if(v)break;var x=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!x){tn("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+m),g=!0;break}s=x[0];var b=x[1],w=x[2],S=e.properties[b];if(!S){tn("Skipping property: Invalid property name in: "+s),u();continue}var T=r.parse(b,w);if(!T){tn("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:b,val:w}),u()}if(g){l();break}r.selector(d);for(var E=0;E=7&&e[0]==="d"&&(f=new RegExp(l.data.regex).exec(e))){if(r)return!1;var p=l.data;return{name:t,value:f,strValue:""+e,mapped:p,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(d=new RegExp(l.mapData.regex).exec(e))){if(r||h.multiple)return!1;var m=l.mapData;if(!(h.color||h.number))return!1;var g=this.parse(t,d[4]);if(!g||g.mapped)return!1;var y=this.parse(t,d[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return tn("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+g.strValue+"`"),this.parse(t,g.strValue);if(h.color){var v=g.value,x=y.value,b=v[0]===x[0]&&v[1]===x[1]&&v[2]===x[2]&&(v[3]===x[3]||(v[3]==null||v[3]===1)&&(x[3]==null||x[3]===1));if(b)return!1}return{name:t,value:d,strValue:""+e,mapped:m,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:g.value,valueMax:y.value,bypass:r}}}if(h.multiple&&n!=="multiple"){var w;if(u?w=e.split(/\s+/):vn(e)?w=e:w=[e],h.evenMultiple&&w.length%2!==0)return null;for(var S=[],T=[],E=[],_="",A=!1,L=0;L0?" ":"")+M.strValue}return h.validate&&!h.validate(S,T)?null:h.singleEnum&&A?S.length===1&&zt(S[0])?{name:t,value:S[0],strValue:S[0],bypass:r}:null:{name:t,value:S,pfValue:E,strValue:_,bypass:r,units:T}}var N=o(function(){for(var H=0;Hh.max||h.strictMax&&e===h.max))return null;var D={name:t,value:e,strValue:""+e+(k||""),units:k,bypass:r};return h.unitless||k!=="px"&&k!=="em"?D.pfValue=e:D.pfValue=k==="px"||!k?e:this.getEmSizeInPixels()*e,(k==="ms"||k==="s")&&(D.pfValue=k==="ms"?e:1e3*e),(k==="deg"||k==="rad")&&(D.pfValue=k==="rad"?e:mWe(e)),k==="%"&&(D.pfValue=e/100),D}else if(h.propList){var P=[],F=""+e;if(F!=="none"){for(var B=F.split(/\s*,\s*|\s+/),$=0;$0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){u=Math.min((s-2*r)/n.w,(l-2*r)/n.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=n.minZoom&&(n.maxZoom=r),this},"zoomRange"),minZoom:o(function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},"minZoom"),maxZoom:o(function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},"maxZoom"),getZoomedViewport:o(function(e){var r=this._private,n=r.pan,i=r.zoom,a,s,l=!1;if(r.zoomingEnabled||(l=!0),ft(e)?s=e:Mr(e)&&(s=e.level,e.position!=null?a=F6(e.position,i,n):e.renderedPosition!=null&&(a=e.renderedPosition),a!=null&&!r.panningEnabled&&(l=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,a.push("zoom"))}if(i&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var h=e.pan;ft(h.x)&&(r.pan.x=h.x,l=!1),ft(h.y)&&(r.pan.y=h.y,l=!1),l||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:o(function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:o(function(e,r){if(this._private.panningEnabled){if(zt(e)){var n=e;e=this.mutableElements().filter(n)}else xo(e)||(e=this.mutableElements());if(e.length!==0){var i=e.boundingBox(),a=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var l={x:(a-r*(i.x1+i.x2))/2,y:(s-r*(i.y1+i.y2))/2};return l}}},"getCenterPan"),reset:o(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:o(function(){this._private.sizeCache=null},"invalidateSize"),size:o(function(){var e=this._private,r=e.container,n=this;return e.sizeCache=e.sizeCache||(r?function(){var i=n.window().getComputedStyle(r),a=o(function(l){return parseFloat(i.getPropertyValue(l))},"val");return{width:r.clientWidth-a("padding-left")-a("padding-right"),height:r.clientHeight-a("padding-top")-a("padding-bottom")}}():{width:1,height:1})},"size"),width:o(function(){return this.size().width},"width"),height:o(function(){return this.size().height},"height"),extent:o(function(){var e=this._private.pan,r=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-e.x)/r,x2:(n.x2-e.x)/r,y1:(n.y1-e.y)/r,y2:(n.y2-e.y)/r};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},"extent"),renderedExtent:o(function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},"renderedExtent"),multiClickDebounceTime:o(function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};q0.centre=q0.center;q0.autolockNodes=q0.autolock;q0.autoungrabifyNodes=q0.autoungrabify;jx={data:en.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:en.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:en.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:en.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};jx.attr=jx.data;jx.removeAttr=jx.removeData;Kx=o(function(e){var r=this;e=Wt({},e);var n=e.container;n&&!k6(n)&&k6(n[0])&&(n=n[0]);var i=n?n._cyreg:null;i=i||{},i&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=r;var s=Vi!==void 0&&n!==void 0&&!e.headless,l=e;l.layout=Wt({name:s?"grid":"null"},l.layout),l.renderer=Wt({name:s?"canvas":"null"},l.renderer);var u=o(function(g,y,v){return y!==void 0?y:v!==void 0?v:g},"defVal"),h=this._private={container:n,ready:!1,options:l,elements:new Ca(this),listeners:[],aniEles:new Ca(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,l.zoomingEnabled),userZoomingEnabled:u(!0,l.userZoomingEnabled),panningEnabled:u(!0,l.panningEnabled),userPanningEnabled:u(!0,l.userPanningEnabled),boxSelectionEnabled:u(!0,l.boxSelectionEnabled),autolock:u(!1,l.autolock,l.autolockNodes),autoungrabify:u(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:u(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:ft(l.zoom)?l.zoom:1,pan:{x:Mr(l.pan)&&ft(l.pan.x)?l.pan.x:0,y:Mr(l.pan)&&ft(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var f=o(function(g,y){var v=g.some(zHe);if(v)return u1.all(g).then(y);y(g)},"loadExtData");h.styleEnabled&&r.setStyle([]);var d=Wt({},l,l.renderer);r.initRenderer(d);var p=o(function(g,y,v){r.notifications(!1);var x=r.mutableElements();x.length>0&&x.remove(),g!=null&&(Mr(g)||vn(g))&&r.add(g),r.one("layoutready",function(w){r.notifications(!0),r.emit(w),r.one("load",y),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",v),r.emit("done")});var b=Wt({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()},"setElesAndLayout");f([l.style,l.elements],function(m){var g=m[0],y=m[1];h.styleEnabled&&r.style().append(g),p(y,function(){r.startAnimationLoop(),h.ready=!0,jn(l.ready)&&r.on("ready",l.ready);for(var v=0;v0,u=Gs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),h;if(xo(e.roots))h=e.roots;else if(vn(e.roots)){for(var f=[],d=0;d0;){var O=C(),D=M(O,k);if(D)O.outgoers().filter(function(ue){return ue.isNode()&&n.has(ue)}).forEach(I);else if(D===null){tn("Detected double maximal shift for node `"+O.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}L();var P=0;if(e.avoidOverlap)for(var F=0;F0&&x[0].length<=3?Pe/2:0),W=2*Math.PI/x[oe].length*ke;return oe===0&&x[0].length===1&&(me=1),{x:K.x+me*Math.cos(W),y:K.y+me*Math.sin(W)}}else{var _e={x:K.x+(ke+1-(Ie+1)/2)*Se,y:(oe+1)*Ue};return _e}},"getPosition");return n.nodes().layoutPositions(this,e,ce),this};zKe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(_me,"CircleLayout");_me.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=n.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));for(var s=Gs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/a.length:e.sweep,h=u/Math.max(1,a.length-1),f,d=0,p=0;p1&&e.avoidOverlap){d*=1.75;var x=Math.cos(h)-Math.cos(0),b=Math.sin(h)-Math.sin(0),w=Math.sqrt(d*d/(x*x+b*b));f=Math.max(w,f)}var S=o(function(E,_){var A=e.startAngle+_*h*(i?1:-1),L=f*Math.cos(A),M=f*Math.sin(A),N={x:l.x+L,y:l.y+M};return N},"getPos");return n.nodes().layoutPositions(this,e,S),this};GKe={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:o(function(e){return e.degree()},"concentric"),levelWidth:o(function(e){return e.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Lme,"ConcentricLayout");Lme.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,n=t.cy,i=e.eles,a=i.nodes().not(":parent"),s=Gs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],h=0,f=0;f0){var T=Math.abs(b[0].value-S.value);T>=v&&(b=[],x.push(b))}b.push(S)}var E=h+e.minNodeSpacing;if(!e.avoidOverlap){var _=x.length>0&&x[0].length>1,A=Math.min(s.w,s.h)/2-E,L=A/(x.length+_?1:0);E=Math.min(E,L)}for(var M=0,N=0;N1&&e.avoidOverlap){var O=Math.cos(C)-Math.cos(0),D=Math.sin(C)-Math.sin(0),P=Math.sqrt(E*E/(O*O+D*D));M=Math.max(P,M)}k.r=M,M+=E}if(e.equidistant){for(var F=0,B=0,$=0;$=t.numIter||(XKe(n,t),n.temperature=n.temperature*t.coolingFactor,n.temperature=t.animationThreshold&&a(),E6(d)}},"frame");f()}else{for(;h;)h=s(u),u++;rpe(n,t),l()}return this};j6.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};j6.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};VKe=o(function(e,r,n){for(var i=n.eles.edges(),a=n.eles.nodes(),s=Gs(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),l={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=n.eles.components(),h={},f=0;f0){l.graphSet.push(A);for(var f=0;fi.count?0:i.graph},"findLCA"),HKe=o(function t(e,r,n,i){var a=i.graphSet[n];if(-10)var d=i.nodeOverlap*f,p=Math.sqrt(l*l+u*u),m=d*l/p,g=d*u/p;else var y=R6(e,l,u),v=R6(r,-1*l,-1*u),x=v.x-y.x,b=v.y-y.y,w=x*x+b*b,p=Math.sqrt(w),d=(e.nodeRepulsion+r.nodeRepulsion)/w,m=d*x/p,g=d*b/p;e.isLocked||(e.offsetX-=m,e.offsetY-=g),r.isLocked||(r.offsetX+=m,r.offsetY+=g)}},"nodeRepulsion"),QKe=o(function(e,r,n,i){if(n>0)var a=e.maxX-r.minX;else var a=r.maxX-e.minX;if(i>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return a>=0&&s>=0?Math.sqrt(a*a+s*s):0},"nodesOverlap"),R6=o(function(e,r,n){var i=e.positionX,a=e.positionY,s=e.height||1,l=e.width||1,u=n/r,h=s/l,f={};return r===0&&0n?(f.x=i,f.y=a+s/2,f):0r&&-1*h<=u&&u<=h?(f.x=i-l/2,f.y=a-l*n/2/r,f):0=h)?(f.x=i+s*r/2/n,f.y=a+s/2,f):(0>n&&(u<=-1*h||u>=h)&&(f.x=i-s*r/2/n,f.y=a-s/2),f)},"findClippingPoint"),ZKe=o(function(e,r){for(var n=0;nn){var v=r.gravity*m/y,x=r.gravity*g/y;p.offsetX+=v,p.offsetY+=x}}}}},"calculateGravityForces"),eQe=o(function(e,r){var n=[],i=0,a=-1;for(n.push.apply(n,e.graphSet[0]),a+=e.graphSet[0].length;i<=a;){var s=n[i++],l=e.idToIndex[s],u=e.layoutNodes[l],h=u.children;if(0n)var a={x:n*e/i,y:n*r/i};else var a={x:e,y:r};return a},"limitForce"),nQe=o(function t(e,r){var n=e.parentId;if(n!=null){var i=r.layoutNodes[r.idToIndex[n]],a=!1;if((i.maxX==null||e.maxX+i.padRight>i.maxX)&&(i.maxX=e.maxX+i.padRight,a=!0),(i.minX==null||e.minX-i.padLefti.maxY)&&(i.maxY=e.maxY+i.padBottom,a=!0),(i.minY==null||e.minY-i.padTopx&&(g+=v+r.componentSpacing,m=0,y=0,v=0)}}},"separateComponents"),iQe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:o(function(e){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Rme,"GridLayout");Rme.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=n.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));var a=Gs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(a.h===0||a.w===0)n.nodes().layoutPositions(this,e,function(Q){return{x:a.x1,y:a.y1}});else{var s=i.size(),l=Math.sqrt(s*a.h/a.w),u=Math.round(l),h=Math.round(a.w/a.h*l),f=o(function(X){if(X==null)return Math.min(u,h);var ie=Math.min(u,h);ie==u?u=X:h=X},"small"),d=o(function(X){if(X==null)return Math.max(u,h);var ie=Math.max(u,h);ie==u?u=X:h=X},"large"),p=e.rows,m=e.cols!=null?e.cols:e.columns;if(p!=null&&m!=null)u=p,h=m;else if(p!=null&&m==null)u=p,h=Math.ceil(s/u);else if(p==null&&m!=null)h=m,u=Math.ceil(s/h);else if(h*u>s){var g=f(),y=d();(g-1)*y>=s?f(g-1):(y-1)*g>=s&&d(y-1)}else for(;h*u=s?d(x+1):f(v+1)}var b=a.w/h,w=a.h/u;if(e.condense&&(b=0,w=0),e.avoidOverlap)for(var S=0;S=h&&(O=0,C++)},"moveToNextCell"),P={},F=0;F(O=_We(t,e,D[P],D[P+1],D[P+2],D[P+3])))return v(_,O),!0}else if(L.edgeType==="bezier"||L.edgeType==="multibezier"||L.edgeType==="self"||L.edgeType==="compound"){for(var D=L.allpts,P=0;P+5(O=AWe(t,e,D[P],D[P+1],D[P+2],D[P+3],D[P+4],D[P+5])))return v(_,O),!0}for(var F=F||A.source,B=B||A.target,$=i.getArrowWidth(M,N),z=[{name:"source",x:L.arrowStartX,y:L.arrowStartY,angle:L.srcArrowAngle},{name:"target",x:L.arrowEndX,y:L.arrowEndY,angle:L.tgtArrowAngle},{name:"mid-source",x:L.midX,y:L.midY,angle:L.midsrcArrowAngle},{name:"mid-target",x:L.midX,y:L.midY,angle:L.midtgtArrowAngle}],P=0;P0&&(x(F),x(B))}o(b,"checkEdge");function w(_,A,L){return Ul(_,A,L)}o(w,"preprop");function S(_,A){var L=_._private,M=p,N;A?N=A+"-":N="",_.boundingBox();var k=L.labelBounds[A||"main"],I=_.pstyle(N+"label").value,C=_.pstyle("text-events").strValue==="yes";if(!(!C||!I)){var O=w(L.rscratch,"labelX",A),D=w(L.rscratch,"labelY",A),P=w(L.rscratch,"labelAngle",A),F=_.pstyle(N+"text-margin-x").pfValue,B=_.pstyle(N+"text-margin-y").pfValue,$=k.x1-M-F,z=k.x2+M-F,Y=k.y1-M-B,Q=k.y2+M-B;if(P){var X=Math.cos(P),ie=Math.sin(P),j=o(function(ce,ue){return ce=ce-O,ue=ue-D,{x:ce*X-ue*ie+O,y:ce*ie+ue*X+D}},"rotate"),J=j($,Y),Z=j($,Q),H=j(z,Y),q=j(z,Q),K=[J.x+F,J.y+B,H.x+F,H.y+B,q.x+F,q.y+B,Z.x+F,Z.y+B];if(zs(t,e,K))return v(_),!0}else if(s1(k,t,e))return v(_),!0}}o(S,"checkLabel");for(var T=s.length-1;T>=0;T--){var E=s[T];E.isNode()?x(E)||S(E):b(E)||S(E)||S(E,"source")||S(E,"target")}return l};j0.getAllInBox=function(t,e,r,n){var i=this.getCachedZSortedEles().interactive,a=[],s=Math.min(t,r),l=Math.max(t,r),u=Math.min(e,n),h=Math.max(e,n);t=s,r=l,e=u,n=h;for(var f=Gs({x1:t,y1:e,x2:r,y2:n}),d=0;d0?-(Math.PI-e.ang):Math.PI+e.ang},"invertVec"),uQe=o(function(e,r,n,i,a){if(e!==ope?lpe(r,e,Gc):cQe(Jo,Gc),lpe(r,n,Jo),ape=Gc.nx*Jo.ny-Gc.ny*Jo.nx,spe=Gc.nx*Jo.nx-Gc.ny*-Jo.ny,ju=Math.asin(Math.max(-1,Math.min(1,ape))),Math.abs(ju)<1e-6){GP=r.x,$P=r.y,z0=Qg=0;return}G0=1,w6=!1,spe<0?ju<0?ju=Math.PI+ju:(ju=Math.PI-ju,G0=-1,w6=!0):ju>0&&(G0=-1,w6=!0),r.radius!==void 0?Qg=r.radius:Qg=i,O0=ju/2,f6=Math.min(Gc.len/2,Jo.len/2),a?(zc=Math.abs(Math.cos(O0)*Qg/Math.sin(O0)),zc>f6?(zc=f6,z0=Math.abs(zc*Math.sin(O0)/Math.cos(O0))):z0=Qg):(zc=Math.min(f6,Qg),z0=Math.abs(zc*Math.sin(O0)/Math.cos(O0))),VP=r.x+Jo.nx*zc,UP=r.y+Jo.ny*zc,GP=VP-Jo.ny*z0*G0,$P=UP+Jo.nx*z0*G0,Ome=r.x+Gc.nx*zc,Pme=r.y+Gc.ny*zc,ope=r},"calcCornerArc");o(Bme,"drawPreparedRoundCorner");o(mB,"getRoundCorner");$a={};$a.findMidptPtsEtc=function(t,e){var r=e.posPts,n=e.intersectionPts,i=e.vectorNormInverse,a,s=t.pstyle("source-endpoint"),l=t.pstyle("target-endpoint"),u=s.units!=null&&l.units!=null,h=o(function(T,E,_,A){var L=A-E,M=_-T,N=Math.sqrt(M*M+L*L);return{x:-L/N,y:M/N}},"recalcVectorNormInverse"),f=t.pstyle("edge-distances").value;switch(f){case"node-position":a=r;break;case"intersection":a=n;break;case"endpoints":{if(u){var d=this.manualEndptToPx(t.source()[0],s),p=$l(d,2),m=p[0],g=p[1],y=this.manualEndptToPx(t.target()[0],l),v=$l(y,2),x=v[0],b=v[1],w={x1:m,y1:g,x2:x,y2:b};i=h(m,g,x,b),a=w}else tn("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),a=n;break}}return{midptPts:a,vectorNormInverse:i}};$a.findHaystackPoints=function(t){for(var e=0;e0?Math.max(Te-Ce,0):Math.min(Te+Ce,0)},"subDWH"),I=k(M,A),C=k(N,L),O=!1;b===h?x=Math.abs(I)>Math.abs(C)?i:n:b===u||b===l?(x=n,O=!0):(b===a||b===s)&&(x=i,O=!0);var D=x===n,P=D?C:I,F=D?N:M,B=$pe(F),$=!1;!(O&&(S||E))&&(b===l&&F<0||b===u&&F>0||b===a&&F>0||b===s&&F<0)&&(B*=-1,P=B*Math.abs(P),$=!0);var z;if(S){var Y=T<0?1+T:T;z=Y*P}else{var Q=T<0?P:0;z=Q+T*B}var X=o(function(Te){return Math.abs(Te)<_||Math.abs(Te)>=Math.abs(P)},"getIsTooClose"),ie=X(z),j=X(Math.abs(P)-Math.abs(z)),J=ie||j;if(J&&!$)if(D){var Z=Math.abs(F)<=p/2,H=Math.abs(M)<=m/2;if(Z){var q=(f.x1+f.x2)/2,K=f.y1,se=f.y2;r.segpts=[q,K,q,se]}else if(H){var ce=(f.y1+f.y2)/2,ue=f.x1,te=f.x2;r.segpts=[ue,ce,te,ce]}else r.segpts=[f.x1,f.y2]}else{var De=Math.abs(F)<=d/2,oe=Math.abs(N)<=g/2;if(De){var ke=(f.y1+f.y2)/2,Ie=f.x1,Se=f.x2;r.segpts=[Ie,ke,Se,ke]}else if(oe){var Ue=(f.x1+f.x2)/2,Pe=f.y1,_e=f.y2;r.segpts=[Ue,Pe,Ue,_e]}else r.segpts=[f.x2,f.y1]}else if(D){var me=f.y1+z+(v?p/2*B:0),W=f.x1,fe=f.x2;r.segpts=[W,me,fe,me]}else{var ge=f.x1+z+(v?d/2*B:0),re=f.y1,he=f.y2;r.segpts=[ge,re,ge,he]}if(r.isRound){var ne=t.pstyle("taxi-radius").value,ae=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(ne),r.isArcRadius=new Array(r.segpts.length/2).fill(ae)}};$a.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var n=e.srcPos,i=e.tgtPos,a=e.srcW,s=e.srcH,l=e.tgtW,u=e.tgtH,h=e.srcShape,f=e.tgtShape,d=e.srcCornerRadius,p=e.tgtCornerRadius,m=e.srcRs,g=e.tgtRs,y=!ft(r.startX)||!ft(r.startY),v=!ft(r.arrowStartX)||!ft(r.arrowStartY),x=!ft(r.endX)||!ft(r.endY),b=!ft(r.arrowEndX)||!ft(r.arrowEndY),w=3,S=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,T=w*S,E=H0({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),_=EC.poolIndex()){var O=I;I=C,C=O}var D=L.srcPos=I.position(),P=L.tgtPos=C.position(),F=L.srcW=I.outerWidth(),B=L.srcH=I.outerHeight(),$=L.tgtW=C.outerWidth(),z=L.tgtH=C.outerHeight(),Y=L.srcShape=r.nodeShapes[e.getNodeShape(I)],Q=L.tgtShape=r.nodeShapes[e.getNodeShape(C)],X=L.srcCornerRadius=I.pstyle("corner-radius").value==="auto"?"auto":I.pstyle("corner-radius").pfValue,ie=L.tgtCornerRadius=C.pstyle("corner-radius").value==="auto"?"auto":C.pstyle("corner-radius").pfValue,j=L.tgtRs=C._private.rscratch,J=L.srcRs=I._private.rscratch;L.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var Z=0;Z0){var se=a,ce=B0(se,Jg(r)),ue=B0(se,Jg(K)),te=ce;if(ue2){var De=B0(se,{x:K[2],y:K[3]});De0){var he=s,ne=B0(he,Jg(r)),ae=B0(he,Jg(re)),we=ne;if(ae2){var Te=B0(he,{x:re[2],y:re[3]});Te=g||_){v={cp:S,segment:E};break}}if(v)break}var A=v.cp,L=v.segment,M=(g-x)/L.length,N=L.t1-L.t0,k=m?L.t0+N*M:L.t1-N*M;k=Hx(0,k,1),e=t1(A.p0,A.p1,A.p2,k),p=fQe(A.p0,A.p1,A.p2,k);break}case"straight":case"segments":case"haystack":{for(var I=0,C,O,D,P,F=n.allpts.length,B=0;B+3=g));B+=2);var $=g-O,z=$/C;z=Hx(0,z,1),e=yWe(D,P,z),p=Gme(D,P);break}}s("labelX",d,e.x),s("labelY",d,e.y),s("labelAutoAngle",d,p)}},"calculateEndProjection");h("source"),h("target"),this.applyLabelDimensions(t)}};Hc.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};Hc.applyPrefixedLabelDimensions=function(t,e){var r=t._private,n=this.getLabelText(t,e),i=this.calculateLabelDimensions(t,n),a=t.pstyle("line-height").pfValue,s=t.pstyle("text-wrap").strValue,l=Ul(r.rscratch,"labelWrapCachedLines",e)||[],u=s!=="wrap"?1:Math.max(l.length,1),h=i.height/u,f=h*a,d=i.width,p=i.height+(u-1)*(a-1)*h;Tf(r.rstyle,"labelWidth",e,d),Tf(r.rscratch,"labelWidth",e,d),Tf(r.rstyle,"labelHeight",e,p),Tf(r.rscratch,"labelHeight",e,p),Tf(r.rscratch,"labelLineHeight",e,f)};Hc.getLabelText=function(t,e){var r=t._private,n=e?e+"-":"",i=t.pstyle(n+"label").strValue,a=t.pstyle("text-transform").value,s=o(function(Q,X){return X?(Tf(r.rscratch,Q,e,X),X):Ul(r.rscratch,Q,e)},"rscratch");if(!i)return"";a=="none"||(a=="uppercase"?i=i.toUpperCase():a=="lowercase"&&(i=i.toLowerCase()));var l=t.pstyle("text-wrap").value;if(l==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var h="\u200B",f=i.split(` +`),d=t.pstyle("text-max-width").pfValue,p=t.pstyle("text-overflow-wrap").value,m=p==="anywhere",g=[],y=/[\s\u200b]+|$/g,v=0;vd){var T=x.matchAll(y),E="",_=0,A=Tpe(T),L;try{for(A.s();!(L=A.n()).done;){var M=L.value,N=M[0],k=x.substring(_,M.index);_=M.index+N.length;var I=E.length===0?k:E+k+N,C=this.calculateLabelDimensions(t,I),O=C.width;O<=d?E+=k+N:(E&&g.push(E),E=k+N)}}catch(Y){A.e(Y)}finally{A.f()}E.match(/^[\s\u200b]+$/)||g.push(E)}else g.push(x)}s("labelWrapCachedLines",g),i=s("labelWrapCachedText",g.join(` +`)),s("labelWrapKey",u)}else if(l==="ellipsis"){var D=t.pstyle("text-max-width").pfValue,P="",F="\u2026",B=!1;if(this.calculateLabelDimensions(t,i).widthD)break;P+=i[$],$===i.length-1&&(B=!0)}return B||(P+=F),P}return i};Hc.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};Hc.calculateLabelDimensions=function(t,e){var r=this,n=r.cy.window(),i=n.document,a=U0(e,t._private.labelDimsKey),s=r.labelDimCache||(r.labelDimCache=[]),l=s[a];if(l!=null)return l;var u=0,h=t.pstyle("font-style").strValue,f=t.pstyle("font-size").pfValue,d=t.pstyle("font-family").strValue,p=t.pstyle("font-weight").strValue,m=this.labelCalcCanvas,g=this.labelCalcCanvasContext;if(!m){m=this.labelCalcCanvas=i.createElement("canvas"),g=this.labelCalcCanvasContext=m.getContext("2d");var y=m.style;y.position="absolute",y.left="-9999px",y.top="-9999px",y.zIndex="-1",y.visibility="hidden",y.pointerEvents="none"}g.font="".concat(h," ").concat(p," ").concat(f,"px ").concat(d);for(var v=0,x=0,b=e.split(` +`),w=0;w1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),l)for(var u=0;u=t.desktopTapThreshold2}var Je=i(W);ze&&(t.hoverData.tapholdCancelled=!0);var Ve=o(function(){var St=t.hoverData.dragDelta=t.hoverData.dragDelta||[];St.length===0?(St.push(ye[0]),St.push(ye[1])):(St[0]+=ye[0],St[1]+=ye[1])},"updateDragDelta");ge=!0,n(Ae,["mousemove","vmousemove","tapdrag"],W,{x:ae[0],y:ae[1]});var je=o(function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||re.emit({originalEvent:W,type:"boxstart",position:{x:ae[0],y:ae[1]}}),Ce[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()},"goIntoBoxMode");if(t.hoverData.which===3){if(ze){var kt={originalEvent:W,type:"cxtdrag",position:{x:ae[0],y:ae[1]}};Me?Me.emit(kt):re.emit(kt),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||Ae!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:W,type:"cxtdragout",position:{x:ae[0],y:ae[1]}}),t.hoverData.cxtOver=Ae,Ae&&Ae.emit({originalEvent:W,type:"cxtdragover",position:{x:ae[0],y:ae[1]}}))}}else if(t.hoverData.dragging){if(ge=!0,re.panningEnabled()&&re.userPanningEnabled()){var at;if(t.hoverData.justStartedPan){var xt=t.hoverData.mdownPos;at={x:(ae[0]-xt[0])*he,y:(ae[1]-xt[1])*he},t.hoverData.justStartedPan=!1}else at={x:ye[0]*he,y:ye[1]*he};re.panBy(at),re.emit("dragpan"),t.hoverData.dragged=!0}ae=t.projectIntoViewport(W.clientX,W.clientY)}else if(Ce[4]==1&&(Me==null||Me.pannable())){if(ze){if(!t.hoverData.dragging&&re.boxSelectionEnabled()&&(Je||!re.panningEnabled()||!re.userPanningEnabled()))je();else if(!t.hoverData.selecting&&re.panningEnabled()&&re.userPanningEnabled()){var it=a(Me,t.hoverData.downs);it&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,Ce[4]=0,t.data.bgActivePosistion=Jg(we),t.redrawHint("select",!0),t.redraw())}Me&&Me.pannable()&&Me.active()&&Me.unactivate()}}else{if(Me&&Me.pannable()&&Me.active()&&Me.unactivate(),(!Me||!Me.grabbed())&&Ae!=Ge&&(Ge&&n(Ge,["mouseout","tapdragout"],W,{x:ae[0],y:ae[1]}),Ae&&n(Ae,["mouseover","tapdragover"],W,{x:ae[0],y:ae[1]}),t.hoverData.last=Ae),Me)if(ze){if(re.boxSelectionEnabled()&&Je)Me&&Me.grabbed()&&(v(He),Me.emit("freeon"),He.emit("free"),t.dragData.didDrag&&(Me.emit("dragfreeon"),He.emit("dragfree"))),je();else if(Me&&Me.grabbed()&&t.nodeIsDraggable(Me)){var dt=!t.dragData.didDrag;dt&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||g(He,{inDragLayer:!0});var lt={x:0,y:0};if(ft(ye[0])&&ft(ye[1])&&(lt.x+=ye[0],lt.y+=ye[1],dt)){var It=t.hoverData.dragDelta;It&&ft(It[0])&&ft(It[1])&&(lt.x+=It[0],lt.y+=It[1])}t.hoverData.draggingEles=!0,He.silentShift(lt).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else Ve();ge=!0}if(Ce[2]=ae[0],Ce[3]=ae[1],ge)return W.stopPropagation&&W.stopPropagation(),W.preventDefault&&W.preventDefault(),!1}},"mousemoveHandler"),!1);var M,N,k;t.registerBinding(e,"mouseup",o(function(W){if(!(t.hoverData.which===1&&W.which!==1&&t.hoverData.capture)){var fe=t.hoverData.capture;if(fe){t.hoverData.capture=!1;var ge=t.cy,re=t.projectIntoViewport(W.clientX,W.clientY),he=t.selection,ne=t.findNearestElement(re[0],re[1],!0,!1),ae=t.dragData.possibleDragElements,we=t.hoverData.down,Te=i(W);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,we&&we.unactivate(),t.hoverData.which===3){var Ce={originalEvent:W,type:"cxttapend",position:{x:re[0],y:re[1]}};if(we?we.emit(Ce):ge.emit(Ce),!t.hoverData.cxtDragged){var Ae={originalEvent:W,type:"cxttap",position:{x:re[0],y:re[1]}};we?we.emit(Ae):ge.emit(Ae)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(n(ne,["mouseup","tapend","vmouseup"],W,{x:re[0],y:re[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(n(we,["click","tap","vclick"],W,{x:re[0],y:re[1]}),N=!1,W.timeStamp-k<=ge.multiClickDebounceTime()?(M&&clearTimeout(M),N=!0,k=null,n(we,["dblclick","dbltap","vdblclick"],W,{x:re[0],y:re[1]})):(M=setTimeout(function(){N||n(we,["oneclick","onetap","voneclick"],W,{x:re[0],y:re[1]})},ge.multiClickDebounceTime()),k=W.timeStamp)),we==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!i(W)&&(ge.$(r).unselect(["tapunselect"]),ae.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=ae=ge.collection()),ne==we&&!t.dragData.didDrag&&!t.hoverData.selecting&&ne!=null&&ne._private.selectable&&(t.hoverData.dragging||(ge.selectionType()==="additive"||Te?ne.selected()?ne.unselect(["tapunselect"]):ne.select(["tapselect"]):Te||(ge.$(r).unmerge(ne).unselect(["tapunselect"]),ne.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var Ge=ge.collection(t.getAllInBox(he[0],he[1],he[2],he[3]));t.redrawHint("select",!0),Ge.length>0&&t.redrawHint("eles",!0),ge.emit({type:"boxend",originalEvent:W,position:{x:re[0],y:re[1]}});var Me=o(function(ze){return ze.selectable()&&!ze.selected()},"eleWouldBeSelected");ge.selectionType()==="additive"||Te||ge.$(r).unmerge(Ge).unselect(),Ge.emit("box").stdFilter(Me).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!he[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var ye=we&&we.grabbed();v(ae),ye&&(we.emit("freeon"),ae.emit("free"),t.dragData.didDrag&&(we.emit("dragfreeon"),ae.emit("dragfree")))}}he[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null}}},"mouseupHandler"),!1);var I=o(function(W){if(!t.scrollingPage){var fe=t.cy,ge=fe.zoom(),re=fe.pan(),he=t.projectIntoViewport(W.clientX,W.clientY),ne=[he[0]*ge+re.x,he[1]*ge+re.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||A()){W.preventDefault();return}if(fe.panningEnabled()&&fe.userPanningEnabled()&&fe.zoomingEnabled()&&fe.userZoomingEnabled()){W.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var ae;W.deltaY!=null?ae=W.deltaY/-250:W.wheelDeltaY!=null?ae=W.wheelDeltaY/1e3:ae=W.wheelDelta/1e3,ae=ae*t.wheelSensitivity;var we=W.deltaMode===1;we&&(ae*=33);var Te=fe.zoom()*Math.pow(10,ae);W.type==="gesturechange"&&(Te=t.gestureStartZoom*W.scale),fe.zoom({level:Te,renderedPosition:{x:ne[0],y:ne[1]}}),fe.emit(W.type==="gesturechange"?"pinchzoom":"scrollzoom")}}},"wheelHandler");t.registerBinding(t.container,"wheel",I,!0),t.registerBinding(e,"scroll",o(function(W){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},"scrollHandler"),!0),t.registerBinding(t.container,"gesturestart",o(function(W){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||W.preventDefault()},"gestureStartHandler"),!0),t.registerBinding(t.container,"gesturechange",function(me){t.hasTouchStarted||I(me)},!0),t.registerBinding(t.container,"mouseout",o(function(W){var fe=t.projectIntoViewport(W.clientX,W.clientY);t.cy.emit({originalEvent:W,type:"mouseout",position:{x:fe[0],y:fe[1]}})},"mouseOutHandler"),!1),t.registerBinding(t.container,"mouseover",o(function(W){var fe=t.projectIntoViewport(W.clientX,W.clientY);t.cy.emit({originalEvent:W,type:"mouseover",position:{x:fe[0],y:fe[1]}})},"mouseOverHandler"),!1);var C,O,D,P,F,B,$,z,Y,Q,X,ie,j,J=o(function(W,fe,ge,re){return Math.sqrt((ge-W)*(ge-W)+(re-fe)*(re-fe))},"distance"),Z=o(function(W,fe,ge,re){return(ge-W)*(ge-W)+(re-fe)*(re-fe)},"distanceSq"),H;t.registerBinding(t.container,"touchstart",H=o(function(W){if(t.hasTouchStarted=!0,!!L(W)){b(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var fe=t.cy,ge=t.touchData.now,re=t.touchData.earlier;if(W.touches[0]){var he=t.projectIntoViewport(W.touches[0].clientX,W.touches[0].clientY);ge[0]=he[0],ge[1]=he[1]}if(W.touches[1]){var he=t.projectIntoViewport(W.touches[1].clientX,W.touches[1].clientY);ge[2]=he[0],ge[3]=he[1]}if(W.touches[2]){var he=t.projectIntoViewport(W.touches[2].clientX,W.touches[2].clientY);ge[4]=he[0],ge[5]=he[1]}if(W.touches[1]){t.touchData.singleTouchMoved=!0,v(t.dragData.touchDragEles);var ne=t.findContainerClientCoords();Y=ne[0],Q=ne[1],X=ne[2],ie=ne[3],C=W.touches[0].clientX-Y,O=W.touches[0].clientY-Q,D=W.touches[1].clientX-Y,P=W.touches[1].clientY-Q,j=0<=C&&C<=X&&0<=D&&D<=X&&0<=O&&O<=ie&&0<=P&&P<=ie;var ae=fe.pan(),we=fe.zoom();F=J(C,O,D,P),B=Z(C,O,D,P),$=[(C+D)/2,(O+P)/2],z=[($[0]-ae.x)/we,($[1]-ae.y)/we];var Te=200,Ce=Te*Te;if(B=1){for(var gt=t.touchData.startPosition=[null,null,null,null,null,null],yt=0;yt=t.touchTapThreshold2}if(fe&&t.touchData.cxt){W.preventDefault();var gt=W.touches[0].clientX-Y,yt=W.touches[0].clientY-Q,tt=W.touches[1].clientX-Y,Ye=W.touches[1].clientY-Q,Je=Z(gt,yt,tt,Ye),Ve=Je/B,je=150,kt=je*je,at=1.5,xt=at*at;if(Ve>=xt||Je>=kt){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var it={originalEvent:W,type:"cxttapend",position:{x:he[0],y:he[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(it),t.touchData.start=null):re.emit(it)}}if(fe&&t.touchData.cxt){var it={originalEvent:W,type:"cxtdrag",position:{x:he[0],y:he[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(it):re.emit(it),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var dt=t.findNearestElement(he[0],he[1],!0,!0);(!t.touchData.cxtOver||dt!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:W,type:"cxtdragout",position:{x:he[0],y:he[1]}}),t.touchData.cxtOver=dt,dt&&dt.emit({originalEvent:W,type:"cxtdragover",position:{x:he[0],y:he[1]}}))}else if(fe&&W.touches[2]&&re.boxSelectionEnabled())W.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||re.emit({originalEvent:W,type:"boxstart",position:{x:he[0],y:he[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,ge[4]=1,!ge||ge.length===0||ge[0]===void 0?(ge[0]=(he[0]+he[2]+he[4])/3,ge[1]=(he[1]+he[3]+he[5])/3,ge[2]=(he[0]+he[2]+he[4])/3+1,ge[3]=(he[1]+he[3]+he[5])/3+1):(ge[2]=(he[0]+he[2]+he[4])/3,ge[3]=(he[1]+he[3]+he[5])/3),t.redrawHint("select",!0),t.redraw();else if(fe&&W.touches[1]&&!t.touchData.didSelect&&re.zoomingEnabled()&&re.panningEnabled()&&re.userZoomingEnabled()&&re.userPanningEnabled()){W.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var lt=t.dragData.touchDragEles;if(lt){t.redrawHint("drag",!0);for(var It=0;It0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},"touchmoveHandler"),!1);var K;t.registerBinding(e,"touchcancel",K=o(function(W){var fe=t.touchData.start;t.touchData.capture=!1,fe&&fe.unactivate()},"touchcancelHandler"));var se,ce,ue,te;if(t.registerBinding(e,"touchend",se=o(function(W){var fe=t.touchData.start,ge=t.touchData.capture;if(ge)W.touches.length===0&&(t.touchData.capture=!1),W.preventDefault();else return;var re=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var he=t.cy,ne=he.zoom(),ae=t.touchData.now,we=t.touchData.earlier;if(W.touches[0]){var Te=t.projectIntoViewport(W.touches[0].clientX,W.touches[0].clientY);ae[0]=Te[0],ae[1]=Te[1]}if(W.touches[1]){var Te=t.projectIntoViewport(W.touches[1].clientX,W.touches[1].clientY);ae[2]=Te[0],ae[3]=Te[1]}if(W.touches[2]){var Te=t.projectIntoViewport(W.touches[2].clientX,W.touches[2].clientY);ae[4]=Te[0],ae[5]=Te[1]}fe&&fe.unactivate();var Ce;if(t.touchData.cxt){if(Ce={originalEvent:W,type:"cxttapend",position:{x:ae[0],y:ae[1]}},fe?fe.emit(Ce):he.emit(Ce),!t.touchData.cxtDragged){var Ae={originalEvent:W,type:"cxttap",position:{x:ae[0],y:ae[1]}};fe?fe.emit(Ae):he.emit(Ae)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!W.touches[2]&&he.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var Ge=he.collection(t.getAllInBox(re[0],re[1],re[2],re[3]));re[0]=void 0,re[1]=void 0,re[2]=void 0,re[3]=void 0,re[4]=0,t.redrawHint("select",!0),he.emit({type:"boxend",originalEvent:W,position:{x:ae[0],y:ae[1]}});var Me=o(function(kt){return kt.selectable()&&!kt.selected()},"eleWouldBeSelected");Ge.emit("box").stdFilter(Me).select().emit("boxselect"),Ge.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(fe?.unactivate(),W.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!W.touches[1]){if(!W.touches[0]){if(!W.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var ye=t.dragData.touchDragEles;if(fe!=null){var He=fe._private.grabbed;v(ye),t.redrawHint("drag",!0),t.redrawHint("eles",!0),He&&(fe.emit("freeon"),ye.emit("free"),t.dragData.didDrag&&(fe.emit("dragfreeon"),ye.emit("dragfree"))),n(fe,["touchend","tapend","vmouseup","tapdragout"],W,{x:ae[0],y:ae[1]}),fe.unactivate(),t.touchData.start=null}else{var ze=t.findNearestElement(ae[0],ae[1],!0,!0);n(ze,["touchend","tapend","vmouseup","tapdragout"],W,{x:ae[0],y:ae[1]})}var Ze=t.touchData.startPosition[0]-ae[0],gt=Ze*Ze,yt=t.touchData.startPosition[1]-ae[1],tt=yt*yt,Ye=gt+tt,Je=Ye*ne*ne;t.touchData.singleTouchMoved||(fe||he.$(":selected").unselect(["tapunselect"]),n(fe,["tap","vclick"],W,{x:ae[0],y:ae[1]}),ce=!1,W.timeStamp-te<=he.multiClickDebounceTime()?(ue&&clearTimeout(ue),ce=!0,te=null,n(fe,["dbltap","vdblclick"],W,{x:ae[0],y:ae[1]})):(ue=setTimeout(function(){ce||n(fe,["onetap","voneclick"],W,{x:ae[0],y:ae[1]})},he.multiClickDebounceTime()),te=W.timeStamp)),fe!=null&&!t.dragData.didDrag&&fe._private.selectable&&Je"u"){var De=[],oe=o(function(W){return{clientX:W.clientX,clientY:W.clientY,force:1,identifier:W.pointerId,pageX:W.pageX,pageY:W.pageY,radiusX:W.width/2,radiusY:W.height/2,screenX:W.screenX,screenY:W.screenY,target:W.target}},"makeTouch"),ke=o(function(W){return{event:W,touch:oe(W)}},"makePointer"),Ie=o(function(W){De.push(ke(W))},"addPointer"),Se=o(function(W){for(var fe=0;fe0)return Y[0]}return null},"getCurveT"),g=Object.keys(p),y=0;y0?m:Hpe(a,s,e,r,n,i,l,u)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){u=u==="auto"?Y0(i,a):u;var h=2*u;if(Qu(e,r,this.points,s,l,i,a-h,[0,-1],n)||Qu(e,r,this.points,s,l,i-h,a,[0,-1],n))return!0;var f=i/2+2*n,d=a/2+2*n,p=[s-f,l-d,s-f,l,s+f,l,s+f,l-d];return!!(zs(e,r,p)||$0(e,r,h,h,s+i/2-u,l+a/2-u,n)||$0(e,r,h,h,s-i/2+u,l+a/2-u,n))},"checkPoint")}};Ju.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",ls(3,0)),this.generateRoundPolygon("round-triangle",ls(3,0)),this.generatePolygon("rectangle",ls(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",ls(5,0)),this.generateRoundPolygon("round-pentagon",ls(5,0)),this.generatePolygon("hexagon",ls(6,0)),this.generateRoundPolygon("round-hexagon",ls(6,0)),this.generatePolygon("heptagon",ls(7,0)),this.generateRoundPolygon("round-heptagon",ls(7,0)),this.generatePolygon("octagon",ls(8,0)),this.generateRoundPolygon("round-octagon",ls(8,0));var n=new Array(20);{var i=NP(5,0),a=NP(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l=e.deqFastCost*S)break}else if(h){if(b>=e.deqCost*m||b>=e.deqAvgCost*p)break}else if(w>=e.deqNoDrawCost*LP)break;var T=e.deq(n,v,y);if(T.length>0)for(var E=0;E0&&(e.onDeqd(n,g),!h&&e.shouldRedraw(n,g,v,y)&&a())},"dequeue"),l=e.priority||JP;i.beforeRender(s,l(n))}},"setupDequeueingImpl")},"setupDequeueing")},pQe=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:C6;XP(this,t),this.idsByKey=new Vc,this.keyForId=new Vc,this.cachesByLvl=new Vc,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return o(t,"ElementTextureCacheLookup"),jP(t,[{key:"getIdsFor",value:o(function(r){r==null&&oi("Can not get id list for null key");var n=this.idsByKey,i=this.idsByKey.get(r);return i||(i=new c1,n.set(r,i)),i},"getIdsFor")},{key:"addIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).add(n)},"addIdForKey")},{key:"deleteIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).delete(n)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:o(function(r){return r==null?0:this.getIdsFor(r).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);this.deleteIdForKey(i,n),this.addIdForKey(a,n),this.keyForId.set(n,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteIdForKey(i,n),this.keyForId.delete(n)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);return i!==a},"keyHasChangedFor")},{key:"isInvalid",value:o(function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)},"isInvalid")},{key:"getCachesAt",value:o(function(r){var n=this.cachesByLvl,i=this.lvls,a=n.get(r);return a||(a=new Vc,n.set(r,a),i.push(r)),a},"getCachesAt")},{key:"getCache",value:o(function(r,n){return this.getCachesAt(n).get(r)},"getCache")},{key:"get",value:o(function(r,n){var i=this.getKey(r),a=this.getCache(i,n);return a!=null&&this.updateKeyMappingFor(r),a},"get")},{key:"getForCachedKey",value:o(function(r,n){var i=this.keyForId.get(r.id()),a=this.getCache(i,n);return a},"getForCachedKey")},{key:"hasCache",value:o(function(r,n){return this.getCachesAt(n).has(r)},"hasCache")},{key:"has",value:o(function(r,n){var i=this.getKey(r);return this.hasCache(i,n)},"has")},{key:"setCache",value:o(function(r,n,i){i.key=r,this.getCachesAt(n).set(r,i)},"setCache")},{key:"set",value:o(function(r,n,i){var a=this.getKey(r);this.setCache(a,n,i),this.updateKeyMappingFor(r)},"set")},{key:"deleteCache",value:o(function(r,n){this.getCachesAt(n).delete(r)},"deleteCache")},{key:"delete",value:o(function(r,n){var i=this.getKey(r);this.deleteCache(i,n)},"_delete")},{key:"invalidateKey",value:o(function(r){var n=this;this.lvls.forEach(function(i){return n.deleteCache(r,i)})},"invalidateKey")},{key:"invalidate",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteKeyMappingFor(r);var a=this.doesEleInvalidateKey(r);return a&&this.invalidateKey(i),a||this.getNumberOfIdsForKey(i)===0},"invalidate")}]),t}(),fpe=25,d6=50,T6=-4,HP=3,mQe=7.99,gQe=8,yQe=1024,vQe=1024,xQe=1024,bQe=.2,wQe=.8,TQe=10,kQe=.15,EQe=.1,CQe=.9,SQe=.9,AQe=100,_Qe=1,e1={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},LQe=Sa({getKey:null,doesEleInvalidateKey:C6,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Ppe,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Bx=o(function(e,r){var n=this;n.renderer=e,n.onDequeues=[];var i=LQe(r);Wt(n,i),n.lookup=new pQe(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},"ElementTextureCache"),Yi=Bx.prototype;Yi.reasons=e1;Yi.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};Yi.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},n=r[t]=r[t]||[];return n};Yi.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new eb(function(r,n){return n.reqs-r.reqs});return e};Yi.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};Yi.getElement=function(t,e,r,n,i){var a=this,s=this.renderer,l=s.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!a.allowEdgeTxrCaching&&t.isEdge()||!a.allowParentTxrCaching&&t.isParent())return null;if(n==null&&(n=Math.ceil(tB(l*r))),n=mQe||n>HP)return null;var h=Math.pow(2,n),f=e.h*h,d=e.w*h,p=s.eleTextBiggerThanMin(t,h);if(!this.isVisible(t,p))return null;var m=u.get(t,n);if(m&&m.invalidated&&(m.invalidated=!1,m.texture.invalidatedWidth-=m.width),m)return m;var g;if(f<=fpe?g=fpe:f<=d6?g=d6:g=Math.ceil(f/d6)*d6,f>xQe||d>vQe)return null;var y=a.getTextureQueue(g),v=y[y.length-2],x=o(function(){return a.recycleTexture(g,d)||a.addTexture(g,d)},"addNewTxr");v||(v=y[y.length-1]),v||(v=x()),v.width-v.usedWidthn;N--)L=a.getElement(t,e,r,N,e1.downscale);M()}else return a.queueElement(t,E.level-1),E;else{var k;if(!w&&!S&&!T)for(var I=n-1;I>=T6;I--){var C=u.get(t,I);if(C){k=C;break}}if(b(k))return a.queueElement(t,n),k;v.context.translate(v.usedWidth,0),v.context.scale(h,h),this.drawElement(v.context,t,e,p,!1),v.context.scale(1/h,1/h),v.context.translate(-v.usedWidth,0)}return m={x:v.usedWidth,texture:v,level:n,scale:h,width:d,height:f,scaledLabelShown:p},v.usedWidth+=Math.ceil(d+gQe),v.eleCaches.push(m),u.set(t,n,m),a.checkTextureFullness(v),m};Yi.invalidateElements=function(t){for(var e=0;e=bQe*t.width&&this.retireTexture(t)};Yi.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>wQe&&t.fullnessChecks>=TQe?Af(r,t):t.fullnessChecks++};Yi.retireTexture=function(t){var e=this,r=t.height,n=e.getTextureQueue(r),i=this.lookup;Af(n,t),t.retired=!0;for(var a=t.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,eB(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),Af(i,s),n.push(s),s}};Yi.queueElement=function(t,e){var r=this,n=r.getElementQueue(),i=r.getElementKeyToQueue(),a=this.getKey(t),s=i[a];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,n.updateItem(s);else{var l={eles:t.spawn().merge(t),level:e,reqs:1,key:a};n.push(l),i[a]=l}};Yi.dequeue=function(t){for(var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=[],a=e.lookup,s=0;s<_Qe&&r.size()>0;s++){var l=r.pop(),u=l.key,h=l.eles[0],f=a.hasCache(h,l.level);if(n[u]=null,f)continue;i.push(l);var d=e.getBoundingBox(h);e.getElement(h,d,t,l.level,e1.dequeue)}return i};Yi.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=this.getKey(t),a=n[i];a!=null&&(a.eles.length===1?(a.reqs=ZP,r.updateItem(a),r.pop(),n[i]=null):a.eles.unmerge(t))};Yi.onDequeue=function(t){this.onDequeues.push(t)};Yi.offDequeue=function(t){Af(this.onDequeues,t)};Yi.setupDequeueing=Yme.setupDequeueing({deqRedrawThreshold:AQe,deqCost:kQe,deqAvgCost:EQe,deqNoDrawCost:CQe,deqFastCost:SQe,deq:o(function(e,r,n){return e.dequeue(r,n)},"deq"),onDeqd:o(function(e,r){for(var n=0;n=RQe||r>M6)return null}n.validateLayersElesOrdering(r,t);var u=n.layersByLevel,h=Math.pow(2,r),f=u[r]=u[r]||[],d,p=n.levelIsComplete(r,t),m,g=o(function(){var M=o(function(O){if(n.validateLayersElesOrdering(O,t),n.levelIsComplete(O,t))return m=u[O],!0},"canUseAsTmpLvl"),N=o(function(O){if(!m)for(var D=r+O;zx<=D&&D<=M6&&!M(D);D+=O);},"checkLvls");N(1),N(-1);for(var k=f.length-1;k>=0;k--){var I=f[k];I.invalid&&Af(f,I)}},"checkTempLevels");if(!p)g();else return f;var y=o(function(){if(!d){d=Gs();for(var M=0;MzQe)return null;var I=n.makeLayer(d,r);if(N!=null){var C=f.indexOf(N)+1;f.splice(C,0,I)}else(M.insert===void 0||M.insert)&&f.unshift(I);return I},"makeLayer");if(n.skipping&&!l)return null;for(var x=null,b=t.length/DQe,w=!l,S=0;S=b||!Upe(x.bb,T.boundingBox()))&&(x=v({insert:!0,after:x}),!x))return null;m||w?n.queueLayer(x,T):n.drawEleInLayer(x,T,r,e),x.eles.push(T),_[r]=x}return m||(w?null:f)};Aa.getEleLevelForLayerLevel=function(t,e){return t};Aa.drawEleInLayer=function(t,e,r,n){var i=this,a=this.renderer,s=t.context,l=e.boundingBox();l.w===0||l.h===0||!e.visible()||(r=i.getEleLevelForLayerLevel(r,n),a.setImgSmoothing(s,!1),a.drawCachedElement(s,e,null,null,r,GQe),a.setImgSmoothing(s,!0))};Aa.levelIsComplete=function(t,e){var r=this,n=r.layersByLevel[t];if(!n||n.length===0)return!1;for(var i=0,a=0;a0||s.invalid)return!1;i+=s.eles.length}return i===e.length};Aa.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var n=0;n0){e=!0;break}}return e};Aa.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Ku(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,o(function(n,i,a){e.invalidateLayer(n)},"invalAssocLayers")))};Aa.invalidateLayer=function(t){if(this.lastInvalidationTime=Ku(),!t.invalid){var e=t.level,r=t.eles,n=this.layersByLevel[e];Af(n,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var i=0;i3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=e._private.rscratch;if(!(a&&!e.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var u;r&&(u=r,t.translate(-u.x1,-u.y1));var h=a?e.pstyle("opacity").value:1,f=a?e.pstyle("line-opacity").value:1,d=e.pstyle("curve-style").value,p=e.pstyle("line-style").value,m=e.pstyle("width").pfValue,g=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,v=e.pstyle("line-outline-color").value,x=h*f,b=h*f,w=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;d==="straight-triangle"?(s.eleStrokeStyle(t,e,O),s.drawEdgeTrianglePath(e,t,l.allpts)):(t.lineWidth=m,t.lineCap=g,s.eleStrokeStyle(t,e,O),s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLine"),S=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;if(t.lineWidth=m+y,t.lineCap=g,y>0)s.colorStrokeStyle(t,v[0],v[1],v[2],O);else{t.lineCap="butt";return}d==="straight-triangle"?s.drawEdgeTrianglePath(e,t,l.allpts):(s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLineOutline"),T=o(function(){i&&s.drawEdgeOverlay(t,e)},"drawOverlay"),E=o(function(){i&&s.drawEdgeUnderlay(t,e)},"drawUnderlay"),_=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,O)},"drawArrows"),A=o(function(){s.drawElementText(t,e,null,n)},"drawText");t.lineJoin="round";var L=e.pstyle("ghost").value==="yes";if(L){var M=e.pstyle("ghost-offset-x").pfValue,N=e.pstyle("ghost-offset-y").pfValue,k=e.pstyle("ghost-opacity").value,I=x*k;t.translate(M,N),w(I),_(I),t.translate(-M,-N)}else S();E(),w(),_(),T(),A(),r&&t.translate(u.x1,u.y1)}};Xme=o(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,n){if(n.visible()){var i=n.pstyle("".concat(e,"-opacity")).value;if(i!==0){var a=this,s=a.usePaths(),l=n._private.rscratch,u=n.pstyle("".concat(e,"-padding")).pfValue,h=2*u,f=n.pstyle("".concat(e,"-color")).value;r.lineWidth=h,l.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",a.colorStrokeStyle(r,f[0],f[1],f[2],i),a.drawEdgePath(n,r,l.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");eh.drawEdgeOverlay=Xme("overlay");eh.drawEdgeUnderlay=Xme("underlay");eh.drawEdgePath=function(t,e,r,n){var i=t._private.rscratch,a=e,s,l=!1,u=this.usePaths(),h=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(u){var d=r.join("$"),p=i.pathCacheKey&&i.pathCacheKey===d;p?(s=e=i.pathCache,l=!0):(s=e=new Path2D,i.pathCacheKey=d,i.pathCache=s)}if(a.setLineDash)switch(n){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(h),a.lineDashOffset=f;break;case"solid":a.setLineDash([]);break}if(!l&&!i.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var m=2;m+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(n==null){if(a&&!s.eleTextBiggerThanMin(e))return}else if(n===!1)return;if(e.isNode()){var l=e.pstyle("label");if(!l||!l.value)return;var u=s.getLabelJustification(e);t.textAlign=u,t.textBaseline="bottom"}else{var h=e.element()._private.rscratch.badLine,f=e.pstyle("label"),d=e.pstyle("source-label"),p=e.pstyle("target-label");if(h||(!f||!f.value)&&(!d||!d.value)&&(!p||!p.value))return;t.textAlign="center",t.textBaseline="bottom"}var m=!r,g;r&&(g=r,t.translate(-g.x1,-g.y1)),i==null?(s.drawText(t,e,null,m,a),e.isEdge()&&(s.drawText(t,e,"source",m,a),s.drawText(t,e,"target",m,a))):s.drawText(t,e,i,m,a),r&&t.translate(g.x1,g.y1)};K0.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,n=e.pstyle("font-style").strValue,i=e.pstyle("font-size").pfValue+"px",a=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,l=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*l,h=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=n+" "+s+" "+i+" "+a,t.lineJoin="round",this.colorFillStyle(t,h[0],h[1],h[2],l),this.colorStrokeStyle(t,f[0],f[1],f[2],u)};o(RP,"roundRect");K0.getTextAngle=function(t,e){var r,n=t._private,i=n.rscratch,a=e?e+"-":"",s=t.pstyle(a+"text-rotation"),l=Ul(i,"labelAngle",e);return s.strValue==="autorotate"?r=t.isEdge()?l:0:s.strValue==="none"?r=0:r=s.pfValue,r};K0.drawText=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=e._private,s=a.rscratch,l=i?e.effectiveOpacity():1;if(!(i&&(l===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=Ul(s,"labelX",r),h=Ul(s,"labelY",r),f,d,p=this.getLabelText(e,r);if(p!=null&&p!==""&&!isNaN(u)&&!isNaN(h)){this.setupTextStyle(t,e,i);var m=r?r+"-":"",g=Ul(s,"labelWidth",r),y=Ul(s,"labelHeight",r),v=e.pstyle(m+"text-margin-x").pfValue,x=e.pstyle(m+"text-margin-y").pfValue,b=e.isEdge(),w=e.pstyle("text-halign").value,S=e.pstyle("text-valign").value;b&&(w="center",S="center"),u+=v,h+=x;var T;switch(n?T=this.getTextAngle(e,r):T=0,T!==0&&(f=u,d=h,t.translate(f,d),t.rotate(T),u=0,h=0),S){case"top":break;case"center":h+=y/2;break;case"bottom":h+=y;break}var E=e.pstyle("text-background-opacity").value,_=e.pstyle("text-border-opacity").value,A=e.pstyle("text-border-width").pfValue,L=e.pstyle("text-background-padding").pfValue,M=e.pstyle("text-background-shape").strValue,N=M.indexOf("round")===0,k=2;if(E>0||A>0&&_>0){var I=u-L;switch(w){case"left":I-=g;break;case"center":I-=g/2;break}var C=h-y-L,O=g+2*L,D=y+2*L;if(E>0){var P=t.fillStyle,F=e.pstyle("text-background-color").value;t.fillStyle="rgba("+F[0]+","+F[1]+","+F[2]+","+E*l+")",N?RP(t,I,C,O,D,k):t.fillRect(I,C,O,D),t.fillStyle=P}if(A>0&&_>0){var B=t.strokeStyle,$=t.lineWidth,z=e.pstyle("text-border-color").value,Y=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+z[0]+","+z[1]+","+z[2]+","+_*l+")",t.lineWidth=A,t.setLineDash)switch(Y){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=A/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(N?RP(t,I,C,O,D,k,"stroke"):t.strokeRect(I,C,O,D),Y==="double"){var Q=A/2;N?RP(t,I+Q,C+Q,O-Q*2,D-Q*2,k,"stroke"):t.strokeRect(I+Q,C+Q,O-Q*2,D-Q*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=$,t.strokeStyle=B}}var X=2*e.pstyle("text-outline-width").pfValue;if(X>0&&(t.lineWidth=X),e.pstyle("text-wrap").value==="wrap"){var ie=Ul(s,"labelWrapCachedLines",r),j=Ul(s,"labelLineHeight",r),J=g/2,Z=this.getLabelJustification(e);switch(Z==="auto"||(w==="left"?Z==="left"?u+=-g:Z==="center"&&(u+=-J):w==="center"?Z==="left"?u+=-J:Z==="right"&&(u+=J):w==="right"&&(Z==="center"?u+=J:Z==="right"&&(u+=g))),S){case"top":h-=(ie.length-1)*j;break;case"center":case"bottom":h-=(ie.length-1)*j;break}for(var H=0;H0&&t.strokeText(ie[H],u,h),t.fillText(ie[H],u,h),h+=j}else X>0&&t.strokeText(p,u,h),t.fillText(p,u,h);T!==0&&(t.rotate(-T),t.translate(-f,-d))}}};v1={};v1.drawNode=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,u,h=e._private,f=h.rscratch,d=e.position();if(!(!ft(d.x)||!ft(d.y))&&!(a&&!e.visible())){var p=a?e.effectiveOpacity():1,m=s.usePaths(),g,y=!1,v=e.padding();l=e.width()+2*v,u=e.height()+2*v;var x;r&&(x=r,t.translate(-x.x1,-x.y1));for(var b=e.pstyle("background-image"),w=b.value,S=new Array(w.length),T=new Array(w.length),E=0,_=0;_0&&arguments[0]!==void 0?arguments[0]:I;s.eleFillStyle(t,e,ne)},"setupShapeColor"),H=o(function(){var ne=arguments.length>0&&arguments[0]!==void 0?arguments[0]:z;s.colorStrokeStyle(t,C[0],C[1],C[2],ne)},"setupBorderColor"),q=o(function(){var ne=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ie;s.colorStrokeStyle(t,Q[0],Q[1],Q[2],ne)},"setupOutlineColor"),K=o(function(ne,ae,we,Te){var Ce=s.nodePathCache=s.nodePathCache||[],Ae=Ope(we==="polygon"?we+","+Te.join(","):we,""+ae,""+ne,""+J),Ge=Ce[Ae],Me,ye=!1;return Ge!=null?(Me=Ge,ye=!0,f.pathCache=Me):(Me=new Path2D,Ce[Ae]=f.pathCache=Me),{path:Me,cacheHit:ye}},"getPath"),se=e.pstyle("shape").strValue,ce=e.pstyle("shape-polygon-points").pfValue;if(m){t.translate(d.x,d.y);var ue=K(l,u,se,ce);g=ue.path,y=ue.cacheHit}var te=o(function(){if(!y){var ne=d;m&&(ne={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(g||t,ne.x,ne.y,l,u,J,f)}m?t.fill(g):t.fill()},"drawShape"),De=o(function(){for(var ne=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,ae=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,we=h.backgrounding,Te=0,Ce=0;Ce0&&arguments[0]!==void 0?arguments[0]:!1,ae=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(e)&&(s.drawPie(t,e,ae),ne&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,J,f)))},"drawPie"),ke=o(function(){var ne=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,ae=(N>0?N:-N)*ne,we=N>0?0:255;N!==0&&(s.colorFillStyle(t,we,we,we,ae),m?t.fill(g):t.fill())},"darken"),Ie=o(function(){if(k>0){if(t.lineWidth=k,t.lineCap=P,t.lineJoin=D,t.setLineDash)switch(O){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(B),t.lineDashOffset=$;break;case"solid":case"double":t.setLineDash([]);break}if(F!=="center"){if(t.save(),t.lineWidth*=2,F==="inside")m?t.clip(g):t.clip();else{var ne=new Path2D;ne.rect(-l/2-k,-u/2-k,l+2*k,u+2*k),ne.addPath(g),t.clip(ne,"evenodd")}m?t.stroke(g):t.stroke(),t.restore()}else m?t.stroke(g):t.stroke();if(O==="double"){t.lineWidth=k/3;var ae=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",m?t.stroke(g):t.stroke(),t.globalCompositeOperation=ae}t.setLineDash&&t.setLineDash([])}},"drawBorder"),Se=o(function(){if(Y>0){if(t.lineWidth=Y,t.lineCap="butt",t.setLineDash)switch(X){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var ne=d;m&&(ne={x:0,y:0});var ae=s.getNodeShape(e),we=k;F==="inside"&&(we=0),F==="outside"&&(we*=2);var Te=(l+we+(Y+j))/l,Ce=(u+we+(Y+j))/u,Ae=l*Te,Ge=u*Ce,Me=s.nodeShapes[ae].points,ye;if(m){var He=K(Ae,Ge,ae,Me);ye=He.path}if(ae==="ellipse")s.drawEllipsePath(ye||t,ne.x,ne.y,Ae,Ge);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(ae)){var ze=0,Ze=0,gt=0;ae==="round-diamond"?ze=(we+j+Y)*1.4:ae==="round-heptagon"?(ze=(we+j+Y)*1.075,gt=-(we/2+j+Y)/35):ae==="round-hexagon"?ze=(we+j+Y)*1.12:ae==="round-pentagon"?(ze=(we+j+Y)*1.13,gt=-(we/2+j+Y)/15):ae==="round-tag"?(ze=(we+j+Y)*1.12,Ze=(we/2+Y+j)*.07):ae==="round-triangle"&&(ze=(we+j+Y)*(Math.PI/2),gt=-(we+j/2+Y)/Math.PI),ze!==0&&(Te=(l+ze)/l,Ae=l*Te,["round-hexagon","round-tag"].includes(ae)||(Ce=(u+ze)/u,Ge=u*Ce)),J=J==="auto"?Wpe(Ae,Ge):J;for(var yt=Ae/2,tt=Ge/2,Ye=J+(we+Y+j)/2,Je=new Array(Me.length/2),Ve=new Array(Me.length/2),je=0;je0){if(i=i||n.position(),a==null||s==null){var m=n.padding();a=n.width()+2*m,s=n.height()+2*m}l.colorFillStyle(r,f[0],f[1],f[2],h),l.nodeShapes[d].draw(r,i.x,i.y,a+u*2,s+u*2,p),r.fill()}}}},"drawNodeOverlayUnderlay");v1.drawNodeOverlay=jme("overlay");v1.drawNodeUnderlay=jme("underlay");v1.hasPie=function(t){return t=t[0],t._private.hasPie};v1.drawPie=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=e.pstyle("pie-size"),s=n.x,l=n.y,u=e.width(),h=e.height(),f=Math.min(u,h)/2,d=0,p=this.usePaths();p&&(s=0,l=0),a.units==="%"?f=f*a.pfValue:a.pfValue!==void 0&&(f=a.pfValue/2);for(var m=1;m<=i.pieBackgroundN;m++){var g=e.pstyle("pie-"+m+"-background-size").value,y=e.pstyle("pie-"+m+"-background-color").value,v=e.pstyle("pie-"+m+"-background-opacity").value*r,x=g/100;x+d>1&&(x=1-d);var b=1.5*Math.PI+2*Math.PI*d,w=2*Math.PI*x,S=b+w;g===0||d>=1||d+x>1||(t.beginPath(),t.moveTo(s,l),t.arc(s,l,f,b,S),t.closePath(),this.colorFillStyle(t,y[0],y[1],y[2],v),t.fill(),d+=x)}};bo={},QQe=100;bo.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/r};bo.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,n,i=0;is.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!d&&(f[s.NODE]=!0,f[s.SELECT_BOX]=!0);var b=u.style(),w=u.zoom(),S=i!==void 0?i:w,T=u.pan(),E={x:T.x,y:T.y},_={zoom:w,pan:{x:T.x,y:T.y}},A=s.prevViewport,L=A===void 0||_.zoom!==A.zoom||_.pan.x!==A.pan.x||_.pan.y!==A.pan.y;!L&&!(y&&!g)&&(s.motionBlurPxRatio=1),a&&(E=a),S*=l,E.x*=l,E.y*=l;var M=s.getCachedZSortedEles();function N(ue,te,De,oe,ke){var Ie=ue.globalCompositeOperation;ue.globalCompositeOperation="destination-out",s.colorFillStyle(ue,255,255,255,s.motionBlurTransparency),ue.fillRect(te,De,oe,ke),ue.globalCompositeOperation=Ie}o(N,"mbclear");function k(ue,te){var De,oe,ke,Ie;!s.clearingMotionBlur&&(ue===h.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||ue===h.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(De={x:T.x*m,y:T.y*m},oe=w*m,ke=s.canvasWidth*m,Ie=s.canvasHeight*m):(De=E,oe=S,ke=s.canvasWidth,Ie=s.canvasHeight),ue.setTransform(1,0,0,1,0,0),te==="motionBlur"?N(ue,0,0,ke,Ie):!e&&(te===void 0||te)&&ue.clearRect(0,0,ke,Ie),r||(ue.translate(De.x,De.y),ue.scale(oe,oe)),a&&ue.translate(a.x,a.y),i&&ue.scale(i,i)}if(o(k,"setContextTransform"),d||(s.textureDrawLastFrame=!1),d){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=u.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var I=s.data.bufferContexts[s.TEXTURE_BUFFER];I.setTransform(1,0,0,1,0,0),I.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:I,drawOnlyNodeLayer:!0,forcedPxRatio:l*s.textureMult});var _=s.textureCache.viewport={zoom:u.zoom(),pan:u.pan(),width:s.canvasWidth,height:s.canvasHeight};_.mpan={x:(0-_.pan.x)/_.zoom,y:(0-_.pan.y)/_.zoom}}f[s.DRAG]=!1,f[s.NODE]=!1;var C=h.contexts[s.NODE],O=s.textureCache.texture,_=s.textureCache.viewport;C.setTransform(1,0,0,1,0,0),p?N(C,0,0,_.width,_.height):C.clearRect(0,0,_.width,_.height);var D=b.core("outside-texture-bg-color").value,P=b.core("outside-texture-bg-opacity").value;s.colorFillStyle(C,D[0],D[1],D[2],P),C.fillRect(0,0,_.width,_.height);var w=u.zoom();k(C,!1),C.clearRect(_.mpan.x,_.mpan.y,_.width/_.zoom/l,_.height/_.zoom/l),C.drawImage(O,_.mpan.x,_.mpan.y,_.width/_.zoom/l,_.height/_.zoom/l)}else s.textureOnViewport&&!e&&(s.textureCache=null);var F=u.extent(),B=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),$=s.hideEdgesOnViewport&&B,z=[];if(z[s.NODE]=!f[s.NODE]&&p&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,z[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),z[s.DRAG]=!f[s.DRAG]&&p&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,z[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),f[s.NODE]||r||n||z[s.NODE]){var Y=p&&!z[s.NODE]&&m!==1,C=e||(Y?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:h.contexts[s.NODE]),Q=p&&!Y?"motionBlur":void 0;k(C,Q),$?s.drawCachedNodes(C,M.nondrag,l,F):s.drawLayeredElements(C,M.nondrag,l,F),s.debug&&s.drawDebugPoints(C,M.nondrag),!r&&!p&&(f[s.NODE]=!1)}if(!n&&(f[s.DRAG]||r||z[s.DRAG])){var Y=p&&!z[s.DRAG]&&m!==1,C=e||(Y?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:h.contexts[s.DRAG]);k(C,p&&!Y?"motionBlur":void 0),$?s.drawCachedNodes(C,M.drag,l,F):s.drawCachedElements(C,M.drag,l,F),s.debug&&s.drawDebugPoints(C,M.drag),!r&&!p&&(f[s.DRAG]=!1)}if(s.showFps||!n&&f[s.SELECT_BOX]&&!r){var C=e||h.contexts[s.SELECT_BOX];if(k(C),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var w=s.cy.zoom(),X=b.core("selection-box-border-width").value/w;C.lineWidth=X,C.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",C.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),X>0&&(C.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",C.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(h.bgActivePosistion&&!s.hoverData.selecting){var w=s.cy.zoom(),ie=h.bgActivePosistion;C.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",C.beginPath(),C.arc(ie.x,ie.y,b.core("active-bg-size").pfValue/w,0,2*Math.PI),C.fill()}var j=s.lastRedrawTime;if(s.showFps&&j){j=Math.round(j);var J=Math.round(1e3/j);C.setTransform(1,0,0,1,0,0),C.fillStyle="rgba(255, 0, 0, 0.75)",C.strokeStyle="rgba(255, 0, 0, 0.75)",C.lineWidth=1,C.fillText("1 frame = "+j+" ms = "+J+" fps",0,20);var Z=60;C.strokeRect(0,30,250,20),C.fillRect(0,30,250*Math.min(J/Z,1),20)}r||(f[s.SELECT_BOX]=!1)}if(p&&m!==1){var H=h.contexts[s.NODE],q=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],K=h.contexts[s.DRAG],se=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],ce=o(function(te,De,oe){te.setTransform(1,0,0,1,0,0),oe||!x?te.clearRect(0,0,s.canvasWidth,s.canvasHeight):N(te,0,0,s.canvasWidth,s.canvasHeight);var ke=m;te.drawImage(De,0,0,s.canvasWidth*ke,s.canvasHeight*ke,0,0,s.canvasWidth,s.canvasHeight)},"drawMotionBlur");(f[s.NODE]||z[s.NODE])&&(ce(H,q,z[s.NODE]),f[s.NODE]=!1),(f[s.DRAG]||z[s.DRAG])&&(ce(K,se,z[s.DRAG]),f[s.DRAG]=!1)}s.prevViewport=_,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),p&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!d,s.mbFrames=0,f[s.NODE]=!0,f[s.DRAG]=!0,s.redraw()},QQe)),e||u.emit("render")};Nf={};Nf.drawPolygonPath=function(t,e,r,n,i,a){var s=n/2,l=i/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*a[0],r+l*a[1]);for(var u=1;u0&&s>0){m.clearRect(0,0,a,s),m.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(t.full)m.translate(-n.x1*h,-n.y1*h),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(n.x1*h,n.y1*h);else{var y=e.pan(),v={x:y.x*h,y:y.y*h};h*=e.zoom(),m.translate(v.x,v.y),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(-v.x,-v.y)}t.bg&&(m.globalCompositeOperation="destination-over",m.fillStyle=t.bg,m.rect(0,0,a,s),m.fill())}return p};o(ZQe,"b64ToBlob");o(xpe,"b64UriToB64");o(Qme,"output");ab.png=function(t){return Qme(t,this.bufferCanvasImage(t),"image/png")};ab.jpg=function(t){return Qme(t,this.bufferCanvasImage(t),"image/jpeg")};Zme={};Zme.nodeShapeImpl=function(t,e,r,n,i,a,s,l){switch(t){case"ellipse":return this.drawEllipsePath(e,r,n,i,a);case"polygon":return this.drawPolygonPath(e,r,n,i,a,s);case"round-polygon":return this.drawRoundPolygonPath(e,r,n,i,a,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,r,n,i,a,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,r,n,i,a,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,r,n,i,a,l);case"barrel":return this.drawBarrelPath(e,r,n,i,a)}};JQe=Jme,Yr=Jme.prototype;Yr.CANVAS_LAYERS=3;Yr.SELECT_BOX=0;Yr.DRAG=1;Yr.NODE=2;Yr.BUFFER_COUNT=3;Yr.TEXTURE_BUFFER=0;Yr.MOTIONBLUR_BUFFER_NODE=1;Yr.MOTIONBLUR_BUFFER_DRAG=2;o(Jme,"CanvasRenderer");Yr.redrawHint=function(t,e){var r=this;switch(t){case"eles":r.data.canvasNeedsRedraw[Yr.NODE]=e;break;case"drag":r.data.canvasNeedsRedraw[Yr.DRAG]=e;break;case"select":r.data.canvasNeedsRedraw[Yr.SELECT_BOX]=e;break}};eZe=typeof Path2D<"u";Yr.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t};Yr.usePaths=function(){return eZe&&this.pathsEnabled};Yr.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)};Yr.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled};Yr.makeOffscreenCanvas=function(t,e){var r;if((typeof OffscreenCanvas>"u"?"undefined":Hi(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var n=this.cy.window(),i=n.document;r=i.createElement("canvas"),r.width=t,r.height=e}return r};[qme,Yc,eh,yB,K0,v1,bo,Nf,ab,Zme].forEach(function(t){Wt(Yr,t)});tZe=[{name:"null",impl:Ime},{name:"base",impl:Hme},{name:"canvas",impl:JQe}],rZe=[{type:"layout",extensions:lQe},{type:"renderer",extensions:tZe}],ege={},tge={};o(rge,"setExtension");o(nge,"getExtension");o(nZe,"setModule");o(iZe,"getModule");qP=o(function(){if(arguments.length===2)return nge.apply(null,arguments);if(arguments.length===3)return rge.apply(null,arguments);if(arguments.length===4)return iZe.apply(null,arguments);if(arguments.length===5)return nZe.apply(null,arguments);oi("Invalid extension access syntax")},"extension");Kx.prototype.extension=qP;rZe.forEach(function(t){t.extensions.forEach(function(e){rge(t.type,e.name,e.impl)})});ige=o(function t(){if(!(this instanceof t))return new t;this.length=0},"Stylesheet"),X0=ige.prototype;X0.instanceString=function(){return"stylesheet"};X0.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this};X0.css=function(t,e){var r=this.length-1;if(zt(t))this[r].properties.push({name:t,value:e});else if(Mr(t))for(var n=t,i=Object.keys(n),a=0;a{"use strict";o(function(e,r){typeof sb=="object"&&typeof xB=="object"?xB.exports=r():typeof define=="function"&&define.amd?define([],r):typeof sb=="object"?sb.layoutBase=r():e.layoutBase=r()},"webpackUniversalModuleDefinition")(sb,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=26)}([function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(4);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp&&(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)),this.labelHeight>m&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-m)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-m),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h},function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(6),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var S=x.source.owner.getEdges().indexOf(x);if(S==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(S,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),S=w.length,T=0;Tv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,S,T,E,_,A=this.nodes,L=A.length,M=0;Mw&&(y=w),vT&&(x=T),bw&&(y=w),vT&&(x=T),b=this.nodes.length){var L=0;v.forEach(function(M){M.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},t.exports=p},function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(5),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):C===D&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===D?f>u?(l[2]=_,l[3]=A,I=!0):(l[2]=E,l[3]=T,I=!0):O===D&&(f>u?(l[2]=S,l[3]=T,I=!0):(l[2]=L,l[3]=A,I=!0)),k&&I)return!1;if(u>f?h>d?(P=this.getCardinalDirection(C,D,4),F=this.getCardinalDirection(O,D,2)):(P=this.getCardinalDirection(-C,D,3),F=this.getCardinalDirection(-O,D,1)):h>d?(P=this.getCardinalDirection(-C,D,1),F=this.getCardinalDirection(-O,D,3)):(P=this.getCardinalDirection(C,D,2),F=this.getCardinalDirection(O,D,4)),!k)switch(P){case 1:$=m,B=u+-w/D,l[0]=B,l[1]=$;break;case 2:B=x,$=h+b*D,l[0]=B,l[1]=$;break;case 3:$=v,B=u+w/D,l[0]=B,l[1]=$;break;case 4:B=y,$=h+-b*D,l[0]=B,l[1]=$;break}if(!I)switch(F){case 1:Y=T,z=f+-N/D,l[2]=z,l[3]=Y;break;case 2:z=L,Y=d+M*D,l[2]=z,l[3]=Y;break;case 3:Y=A,z=f+N/D,l[2]=z,l[3]=Y;break;case 4:z=_,Y=d+-M*D,l[2]=z,l[3]=Y;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,S=void 0,T=void 0,E=void 0,_=void 0,A=void 0,L=void 0;return w=p-f,T=h-d,_=d*f-h*p,S=v-g,E=m-y,A=y*g-m*v,L=w*E-S*T,L===0?null:(x=(T*A-E*_)/L,b=(S*_-w*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n},function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,r){"use strict";var n=function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i},function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var _=E.getEdges(),x=0;x<_.length;x++){var A=_[x].getOtherEnd(E);if(S.get(E)!=A)if(!b.has(A))w.push(A),S.set(A,E);else{g=!1;break}}}if(!g)m=[];else{var L=[].concat(n(b));m.push(L);for(var x=0;x-1&&T.splice(N,1)}b=new Set,S=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=S.getNeighborsList();L.forEach(function(k){if(y.indexOf(k)<0){var I=v.get(k),C=I-1;C==1&&E.push(k),v.set(k,C)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p},function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n},function(t,e,r){"use strict";var n=r(4);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i},function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mw||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||w>=x[0].length)){for(var S=0;Sh},"_defaultCompareFunction")}]),l}();t.exports=s},function(t,e,r){"use strict";var n=function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o(function(e,r){typeof ob=="object"&&typeof wB=="object"?wB.exports=r(bB()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof ob=="object"?ob.coseBase=r(bB()):e.coseBase=r(e.layoutBase)},"webpackUniversalModuleDefinition")(ob,function(t){return function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=7)}([function(e,r){e.exports=t},function(e,r,n){"use strict";var i=n(0).FDLayoutConstants;function a(){}o(a,"CoSEConstants");for(var s in i)a[s]=i[s];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=a},function(e,r,n){"use strict";var i=n(0).FDLayoutEdge;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEEdge"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).LGraph;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEGraph"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).LGraphManager;function a(l){i.call(this,l)}o(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).FDLayoutNode,a=n(0).IMath;function s(u,h,f,d){i.call(this,u,h,f,d)}o(s,"CoSENode"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.move=function(){var u=this.graphManager.getLayout();this.displacementX=u.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=u.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementX=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementY=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),u.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},s.prototype.propogateDisplacementToChildren=function(u,h){for(var f=this.getChild().getNodes(),d,p=0;p0)this.positionNodesRadially(T);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),_=this.nodesWithGravity.filter(function(A){return E.has(A)});this.graphManager.setAllNodesToApplyGravitation(_),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},w.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%f.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var T=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(L){return T.has(L)});this.graphManager.setAllNodesToApplyGravitation(E),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var _=!this.isTreeGrowing&&!this.isGrowthFinished,A=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(_,A),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},w.prototype.getPositionsData=function(){for(var T=this.graphManager.getAllNodes(),E={},_=0;_1){var k;for(k=0;kA&&(A=Math.floor(N.y)),M=Math.floor(N.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new m(d.WORLD_CENTER_X-N.x/2,d.WORLD_CENTER_Y-N.y/2))},w.radialLayout=function(T,E,_){var A=Math.max(this.maxDiagonalInTree(T),h.DEFAULT_RADIAL_SEPARATION);w.branchRadialLayout(E,null,0,359,0,A);var L=x.calculateBounds(T),M=new b;M.setDeviceOrgX(L.getMinX()),M.setDeviceOrgY(L.getMinY()),M.setWorldOrgX(_.x),M.setWorldOrgY(_.y);for(var N=0;N1;){var Q=Y[0];Y.splice(0,1);var X=P.indexOf(Q);X>=0&&P.splice(X,1),$--,F--}E!=null?z=(P.indexOf(Y[0])+1)%$:z=0;for(var ie=Math.abs(A-_)/F,j=z;B!=F;j=++j%$){var J=P[j].getOtherEnd(T);if(J!=E){var Z=(_+B*ie)%360,H=(Z+ie)%360;w.branchRadialLayout(J,T,Z,H,L+M,M),B++}}},w.maxDiagonalInTree=function(T){for(var E=y.MIN_VALUE,_=0;_E&&(E=L)}return E},w.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},w.prototype.groupZeroDegreeMembers=function(){var T=this,E={};this.memberGroups={},this.idToDummyNode={};for(var _=[],A=this.graphManager.getAllNodes(),L=0;L"u"&&(E[k]=[]),E[k]=E[k].concat(M)}Object.keys(E).forEach(function(I){if(E[I].length>1){var C="DummyCompound_"+I;T.memberGroups[C]=E[I];var O=E[I][0].getParent(),D=new l(T.graphManager);D.id=C,D.paddingLeft=O.paddingLeft||0,D.paddingRight=O.paddingRight||0,D.paddingBottom=O.paddingBottom||0,D.paddingTop=O.paddingTop||0,T.idToDummyNode[C]=D;var P=T.getGraphManager().add(T.newGraph(),D),F=O.getChild();F.add(D);for(var B=0;B=0;T--){var E=this.compoundOrder[T],_=E.id,A=E.paddingLeft,L=E.paddingTop;this.adjustLocations(this.tiledMemberPack[_],E.rect.x,E.rect.y,A,L)}},w.prototype.repopulateZeroDegreeMembers=function(){var T=this,E=this.tiledZeroDegreePack;Object.keys(E).forEach(function(_){var A=T.idToDummyNode[_],L=A.paddingLeft,M=A.paddingTop;T.adjustLocations(E[_],A.rect.x,A.rect.y,L,M)})},w.prototype.getToBeTiled=function(T){var E=T.id;if(this.toBeTiled[E]!=null)return this.toBeTiled[E];var _=T.getChild();if(_==null)return this.toBeTiled[E]=!1,!1;for(var A=_.getNodes(),L=0;L0)return this.toBeTiled[E]=!1,!1;if(M.getChild()==null){this.toBeTiled[M.id]=!1;continue}if(!this.getToBeTiled(M))return this.toBeTiled[E]=!1,!1}return this.toBeTiled[E]=!0,!0},w.prototype.getNodeDegree=function(T){for(var E=T.id,_=T.getEdges(),A=0,L=0;L<_.length;L++){var M=_[L];M.getSource().id!==M.getTarget().id&&(A=A+1)}return A},w.prototype.getNodeDegreeWithChildren=function(T){var E=this.getNodeDegree(T);if(T.getChild()==null)return E;for(var _=T.getChild().getNodes(),A=0;A<_.length;A++){var L=_[A];E+=this.getNodeDegreeWithChildren(L)}return E},w.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},w.prototype.fillCompexOrderByDFS=function(T){for(var E=0;EI&&(I=O.rect.height)}_+=I+T.verticalPadding}},w.prototype.tileCompoundMembers=function(T,E){var _=this;this.tiledMemberPack=[],Object.keys(T).forEach(function(A){var L=E[A];_.tiledMemberPack[A]=_.tileNodes(T[A],L.paddingLeft+L.paddingRight),L.rect.width=_.tiledMemberPack[A].width,L.rect.height=_.tiledMemberPack[A].height})},w.prototype.tileNodes=function(T,E){var _=h.TILING_PADDING_VERTICAL,A=h.TILING_PADDING_HORIZONTAL,L={rows:[],rowWidth:[],rowHeight:[],width:0,height:E,verticalPadding:_,horizontalPadding:A};T.sort(function(k,I){return k.rect.width*k.rect.height>I.rect.width*I.rect.height?-1:k.rect.width*k.rect.height0&&(N+=T.horizontalPadding),T.rowWidth[_]=N,T.width0&&(k+=T.verticalPadding);var I=0;k>T.rowHeight[_]&&(I=T.rowHeight[_],T.rowHeight[_]=k,I=T.rowHeight[_]-I),T.height+=I,T.rows[_].push(E)},w.prototype.getShortestRowIndex=function(T){for(var E=-1,_=Number.MAX_VALUE,A=0;A_&&(E=A,_=T.rowWidth[A]);return E},w.prototype.canAddHorizontal=function(T,E,_){var A=this.getShortestRowIndex(T);if(A<0)return!0;var L=T.rowWidth[A];if(L+T.horizontalPadding+E<=T.width)return!0;var M=0;T.rowHeight[A]<_&&A>0&&(M=_+T.verticalPadding-T.rowHeight[A]);var N;T.width-L>=E+T.horizontalPadding?N=(T.height+M)/(L+E+T.horizontalPadding):N=(T.height+M)/T.width,M=_+T.verticalPadding;var k;return T.widthM&&E!=_){A.splice(-1,1),T.rows[_].push(L),T.rowWidth[E]=T.rowWidth[E]-M,T.rowWidth[_]=T.rowWidth[_]+M,T.width=T.rowWidth[instance.getLongestRowIndex(T)];for(var N=Number.MIN_VALUE,k=0;kN&&(N=A[k].height);E>0&&(N+=T.verticalPadding);var I=T.rowHeight[E]+T.rowHeight[_];T.rowHeight[E]=N,T.rowHeight[_]0)for(var F=L;F<=M;F++)P[0]+=this.grid[F][N-1].length+this.grid[F][N].length-1;if(M0)for(var F=N;F<=k;F++)P[3]+=this.grid[L-1][F].length+this.grid[L][F].length-1;for(var B=y.MAX_VALUE,$,z,Y=0;Y{"use strict";o(function(e,r){typeof lb=="object"&&typeof kB=="object"?kB.exports=r(TB()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof lb=="object"?lb.cytoscapeCoseBilkent=r(TB()):e.cytoscapeCoseBilkent=r(e.coseBase)},"webpackUniversalModuleDefinition")(lb,function(t){return function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=1)}([function(e,r){e.exports=t},function(e,r,n){"use strict";var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,s=n(0).CoSEConstants,l=n(0).CoSELayout,u=n(0).CoSENode,h=n(0).layoutBase.PointD,f=n(0).layoutBase.DimensionD,d={ready:o(function(){},"ready"),stop:o(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function p(v,x){var b={};for(var w in v)b[w]=v[w];for(var w in x)b[w]=x[w];return b}o(p,"extend");function m(v){this.options=p(d,v),g(this.options)}o(m,"_CoSELayout");var g=o(function(x){x.nodeRepulsion!=null&&(s.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=x.nodeRepulsion),x.idealEdgeLength!=null&&(s.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=x.idealEdgeLength),x.edgeElasticity!=null&&(s.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=x.edgeElasticity),x.nestingFactor!=null&&(s.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=x.nestingFactor),x.gravity!=null&&(s.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=x.gravity),x.numIter!=null&&(s.MAX_ITERATIONS=a.MAX_ITERATIONS=x.numIter),x.gravityRange!=null&&(s.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=x.gravityRange),x.gravityCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=x.gravityCompound),x.gravityRangeCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=x.gravityRangeCompound),x.initialEnergyOnIncremental!=null&&(s.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=x.initialEnergyOnIncremental),x.quality=="draft"?i.QUALITY=0:x.quality=="proof"?i.QUALITY=2:i.QUALITY=1,s.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=x.nodeDimensionsIncludeLabels,s.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!x.randomize,s.ANIMATE=a.ANIMATE=i.ANIMATE=x.animate,s.TILE=x.tile,s.TILING_PADDING_VERTICAL=typeof x.tilingPaddingVertical=="function"?x.tilingPaddingVertical.call():x.tilingPaddingVertical,s.TILING_PADDING_HORIZONTAL=typeof x.tilingPaddingHorizontal=="function"?x.tilingPaddingHorizontal.call():x.tilingPaddingHorizontal},"getUserOptions");m.prototype.run=function(){var v,x,b=this.options,w=this.idToLNode={},S=this.layout=new l,T=this;T.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var E=S.newGraphManager();this.gm=E;var _=this.options.eles.nodes(),A=this.options.eles.edges();this.root=E.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(_),S);for(var L=0;L0){var k;k=b.getGraphManager().add(b.newGraph(),_),this.processChildrenList(k,E,b)}}},m.prototype.stop=function(){return this.stopped=!0,this};var y=o(function(x){x("layout","cose-bilkent",m)},"register");typeof cytoscape<"u"&&y(cytoscape),e.exports=y}])})});function fZe(t,e,r,n,i){return t.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+(i.width-e)/2+", "+r+")")}var sZe,oZe,lZe,cZe,uZe,hZe,dZe,pZe,sge,oge,lge=R(()=>{"use strict";Al();xr();sZe=12,oZe=o(function(t,e,r,n){e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 ${r.height-5} v${-r.height+2*5} q0,-5 5,-5 h${r.width-2*5} q5,0 5,5 v${r.height-5} H0 Z`),e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)},"defaultBkg"),lZe=o(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("width",r.width)},"rectBkg"),cZe=o(function(t,e,r){let n=r.width,i=r.height,a=.15*n,s=.25*n,l=.35*n,u=.2*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 0 0,1 ${n*.25},${-1*n*.1} + a${l},${l} 1 0,1 ${n*.4},${-1*n*.1} + a${s},${s} 1 0,1 ${n*.35},${1*n*.2} + + a${a},${a} 1 0,1 ${n*.15},${1*i*.35} + a${u},${u} 1 0,1 ${-1*n*.15},${1*i*.65} + + a${s},${a} 1 0,1 ${-1*n*.25},${n*.15} + a${l},${l} 1 0,1 ${-1*n*.5},0 + a${a},${a} 1 0,1 ${-1*n*.25},${-1*n*.15} + + a${a},${a} 1 0,1 ${-1*n*.1},${-1*i*.35} + a${u},${u} 1 0,1 ${n*.1},${-1*i*.65} + + H0 V0 Z`)},"cloudBkg"),uZe=o(function(t,e,r){let n=r.width,i=r.height,a=.15*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 1 0,0 ${n*.25},${-1*i*.1} + a${a},${a} 1 0,0 ${n*.25},0 + a${a},${a} 1 0,0 ${n*.25},0 + a${a},${a} 1 0,0 ${n*.25},${1*i*.1} + + a${a},${a} 1 0,0 ${n*.15},${1*i*.33} + a${a*.8},${a*.8} 1 0,0 0,${1*i*.34} + a${a},${a} 1 0,0 ${-1*n*.15},${1*i*.33} + + a${a},${a} 1 0,0 ${-1*n*.25},${i*.15} + a${a},${a} 1 0,0 ${-1*n*.25},0 + a${a},${a} 1 0,0 ${-1*n*.25},0 + a${a},${a} 1 0,0 ${-1*n*.25},${-1*i*.15} + + a${a},${a} 1 0,0 ${-1*n*.1},${-1*i*.33} + a${a*.8},${a*.8} 1 0,0 0,${-1*i*.34} + a${a},${a} 1 0,0 ${n*.1},${-1*i*.33} + + H0 V0 Z`)},"bangBkg"),hZe=o(function(t,e,r){e.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("r",r.width/2)},"circleBkg");o(fZe,"insertPolygonShape");dZe=o(function(t,e,r){let n=r.height,a=n/4,s=r.width-r.padding+2*a,l=[{x:a,y:0},{x:s-a,y:0},{x:s,y:-n/2},{x:s-a,y:-n},{x:a,y:-n},{x:0,y:-n/2}];fZe(e,s,n,l,r)},"hexagonBkg"),pZe=o(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)},"roundedRectBkg"),sge=o(async function(t,e,r,n,i){let a=i.htmlLabels,s=n%(sZe-1),l=e.append("g");r.section=s;let u="section-"+s;s<0&&(u+=" section-root"),l.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+u);let h=l.append("g"),f=l.append("g"),d=r.descr.replace(/()/g,` +`);await ta(f,d,{useHtmlLabels:a,width:r.width,classes:"mindmap-node-label"},i),a||f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");let p=f.node().getBBox(),[m]=mc(i.fontSize);if(r.height=p.height+m*1.1*.5+r.padding,r.width=p.width+2*r.padding,r.icon)if(r.type===t.nodeType.CIRCLE)r.height+=50,r.width+=50,l.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")");else{r.width+=50;let g=r.height;r.height=Math.max(g,60);let y=Math.abs(r.height-g);l.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+y/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+(25+r.width/2)+", "+(y/2+r.padding/2)+")")}else if(a){let g=(r.width-p.width)/2,y=(r.height-p.height)/2;f.attr("transform","translate("+g+", "+y+")")}else{let g=r.width/2,y=r.padding/2;f.attr("transform","translate("+g+", "+y+")")}switch(r.type){case t.nodeType.DEFAULT:oZe(t,h,r,s);break;case t.nodeType.ROUNDED_RECT:pZe(t,h,r,s);break;case t.nodeType.RECT:lZe(t,h,r,s);break;case t.nodeType.CIRCLE:h.attr("transform","translate("+r.width/2+", "+ +r.height/2+")"),hZe(t,h,r,s);break;case t.nodeType.CLOUD:cZe(t,h,r,s);break;case t.nodeType.BANG:uZe(t,h,r,s);break;case t.nodeType.HEXAGON:dZe(t,h,r,s);break}return t.setElementForId(r.id,l),r.height},"drawNode"),oge=o(function(t,e){let r=t.getElementById(e.id),n=e.x||0,i=e.y||0;r.attr("transform","translate("+n+","+i+")")},"positionNode")});async function uge(t,e,r,n,i){await sge(t,e,r,n,i),r.children&&await Promise.all(r.children.map((a,s)=>uge(t,e,a,n<0?s:n,i)))}function mZe(t,e){e.edges().map((r,n)=>{let i=r.data();if(r[0]._private.bodyBounds){let a=r[0]._private.rscratch;V.trace("Edge: ",n,i),t.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}})}function hge(t,e,r,n){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:n,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(i=>{hge(i,e,r,n+1),e.add({group:"edges",data:{id:`${t.id}_${i.id}`,source:t.id,target:i.id,depth:n,section:i.section}})})}function gZe(t,e){return new Promise(r=>{let n=$e("body").append("div").attr("id","cy").attr("style","display:none"),i=rl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});n.remove(),hge(t,i,e,0),i.nodes().forEach(function(a){a.layoutDimensions=()=>{let s=a.data();return{w:s.width,h:s.height}}}),i.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),i.ready(a=>{V.info("Ready",a),r(i)})})}function yZe(t,e){e.nodes().map((r,n)=>{let i=r.data();i.x=r.position().x,i.y=r.position().y,oge(t,i);let a=t.getElementById(i.nodeId);V.info("Id:",n,"Position: (",r.position().x,", ",r.position().y,")",i),a.attr("transform",`translate(${r.position().x-i.width/2}, ${r.position().y-i.height/2})`),a.attr("attr",`apa-${n})`)})}var cge,vZe,fge,dge=R(()=>{"use strict";vB();cge=Xi(age(),1);Zt();_t();ut();pf();Yn();lge();sl();rl.use(cge.default);o(uge,"drawNodes");o(mZe,"drawEdges");o(hge,"addNodes");o(gZe,"layoutMindmap");o(yZe,"positionNodes");vZe=o(async(t,e,r,n)=>{V.debug(`Rendering mindmap diagram +`+t);let i=n.db,a=i.getMindmap();if(!a)return;let s=de();s.htmlLabels=!1;let l=Ps(e),u=l.append("g");u.attr("class","mindmap-edges");let h=l.append("g");h.attr("class","mindmap-nodes"),await uge(i,h,a,-1,s);let f=await gZe(a,s);mZe(u,f),yZe(i,f),Lo(void 0,l,s.mindmap?.padding??mr.mindmap.padding,s.mindmap?.useMaxWidth??mr.mindmap.useMaxWidth)},"draw"),fge={draw:vZe}});var xZe,bZe,pge,mge=R(()=>{"use strict";al();xZe=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${xZe(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),pge=bZe});var gge={};hr(gge,{diagram:()=>wZe});var wZe,yge=R(()=>{"use strict";r0e();a0e();dge();mge();wZe={db:i0e,renderer:fge,parser:t0e,styles:pge}});var EB,cb,bge=R(()=>{"use strict";EB=function(){var t=o(function(l,u,h,f){for(h=h||{},f=l.length;f--;h[l[f]]=u);return h},"o"),e=[1,9],r=[1,10],n=[1,5,10,12],i={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:o(function(u,h,f,d,p,m,g){var y=m.length-1;switch(p){case 7:let v=d.findOrCreateNode(m[y-4].trim().replaceAll('""','"')),x=d.findOrCreateNode(m[y-2].trim().replaceAll('""','"')),b=parseFloat(m[y].trim());d.addLink(v,x,b);break;case 8:case 9:case 11:this.$=m[y];break;case 10:this.$=m[y-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:r},{1:[2,6],7:11,10:[1,12]},t(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(n,[2,8]),t(n,[2,9]),{19:[1,16]},t(n,[2,11]),{1:[2,1]},{1:[2,5]},t(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:r},{15:18,16:7,17:8,18:e,20:r},{18:[1,19]},t(r,[2,3]),{12:[1,20]},t(n,[2,10]),{15:21,16:7,17:8,18:e,20:r},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:o(function(u,h){if(h.recoverable)this.trace(u);else{var f=new Error(u);throw f.hash=h,f}},"parseError"),parse:o(function(u){var h=this,f=[0],d=[],p=[null],m=[],g=this.table,y="",v=0,x=0,b=0,w=2,S=1,T=m.slice.call(arguments,1),E=Object.create(this.lexer),_={yy:{}};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(_.yy[A]=this.yy[A]);E.setInput(u,_.yy),_.yy.lexer=E,_.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var L=E.yylloc;m.push(L);var M=E.options&&E.options.ranges;typeof _.yy.parseError=="function"?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(ie){f.length=f.length-2*ie,p.length=p.length-ie,m.length=m.length-ie}o(N,"popStack");function k(){var ie;return ie=d.pop()||E.lex()||S,typeof ie!="number"&&(ie instanceof Array&&(d=ie,ie=d.pop()),ie=h.symbols_[ie]||ie),ie}o(k,"lex");for(var I,C,O,D,P,F,B={},$,z,Y,Q;;){if(O=f[f.length-1],this.defaultActions[O]?D=this.defaultActions[O]:((I===null||typeof I>"u")&&(I=k()),D=g[O]&&g[O][I]),typeof D>"u"||!D.length||!D[0]){var X="";Q=[];for($ in g[O])this.terminals_[$]&&$>w&&Q.push("'"+this.terminals_[$]+"'");E.showPosition?X="Parse error on line "+(v+1)+`: +`+E.showPosition()+` +Expecting `+Q.join(", ")+", got '"+(this.terminals_[I]||I)+"'":X="Parse error on line "+(v+1)+": Unexpected "+(I==S?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(X,{text:E.match,token:this.terminals_[I]||I,line:E.yylineno,loc:L,expected:Q})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+I);switch(D[0]){case 1:f.push(I),p.push(E.yytext),m.push(E.yylloc),f.push(D[1]),I=null,C?(I=C,C=null):(x=E.yyleng,y=E.yytext,v=E.yylineno,L=E.yylloc,b>0&&b--);break;case 2:if(z=this.productions_[D[1]][1],B.$=p[p.length-z],B._$={first_line:m[m.length-(z||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(z||1)].first_column,last_column:m[m.length-1].last_column},M&&(B._$.range=[m[m.length-(z||1)].range[0],m[m.length-1].range[1]]),F=this.performAction.apply(B,[y,x,v,_.yy,D[1],p,m].concat(T)),typeof F<"u")return F;z&&(f=f.slice(0,-1*z*2),p=p.slice(0,-1*z),m=m.slice(0,-1*z)),f.push(this.productions_[D[1]][0]),p.push(B.$),m.push(B._$),Y=g[f[f.length-2]][f[f.length-1]],f.push(Y);break;case 3:return!0}}return!0},"parse")},a=function(){var l={EOF:1,parseError:o(function(h,f){if(this.yy.parser)this.yy.parser.parseError(h,f);else throw new Error(h)},"parseError"),setInput:o(function(u,h){return this.yy=h||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var h=u.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},"input"),unput:o(function(u){var h=u.length,f=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===d.length?this.yylloc.first_column:0)+d[d.length-f.length].length-f[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(u){this.unput(this.match.slice(u))},"less"),pastInput:o(function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var u=this.pastInput(),h=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:o(function(u,h){var f,d,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),d=u[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],f=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var m in p)this[m]=p[m];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,h,f,d;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),m=0;mh[0].length)){if(h=f,d=m,this.options.backtrack_lexer){if(u=this.test_match(f,p[m]),u!==!1)return u;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(u=this.test_match(h,p[d]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var h=this.next();return h||this.lex()},"lex"),begin:o(function(h){this.conditionStack.push(h)},"begin"),popState:o(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:o(function(h){this.begin(h)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(h,f,d,p){var m=p;switch(d){case 0:return this.pushState("csv"),4;break;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;break;case 5:return 20;case 6:return this.popState("escaped_text"),18;break;case 7:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return l}();i.lexer=a;function s(){this.yy={}}return o(s,"Parser"),s.prototype=i,i.Parser=s,new s}();EB.parser=EB;cb=EB});var J6,eC,Z6,CZe,CB,SZe,SB,AZe,_Ze,LZe,DZe,wge,Tge=R(()=>{"use strict";_t();rr();bi();J6=[],eC=[],Z6=new Map,CZe=o(()=>{J6=[],eC=[],Z6=new Map,vr()},"clear"),CB=class{constructor(e,r,n=0){this.source=e;this.target=r;this.value=n}static{o(this,"SankeyLink")}},SZe=o((t,e,r)=>{J6.push(new CB(t,e,r))},"addLink"),SB=class{constructor(e){this.ID=e}static{o(this,"SankeyNode")}},AZe=o(t=>{t=We.sanitizeText(t,de());let e=Z6.get(t);return e===void 0&&(e=new SB(t),Z6.set(t,e),eC.push(e)),e},"findOrCreateNode"),_Ze=o(()=>eC,"getNodes"),LZe=o(()=>J6,"getLinks"),DZe=o(()=>({nodes:eC.map(t=>({id:t.ID})),links:J6.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),wge={nodesMap:Z6,getConfig:o(()=>de().sankey,"getConfig"),getNodes:_Ze,getLinks:LZe,getGraph:DZe,addLink:SZe,findOrCreateNode:AZe,getAccTitle:Ar,setAccTitle:kr,getAccDescription:Lr,setAccDescription:_r,getDiagramTitle:Xr,setDiagramTitle:nn,clear:CZe}});function ub(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var kge=R(()=>{"use strict";o(ub,"max")});function x1(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var Ege=R(()=>{"use strict";o(x1,"min")});function b1(t,e){let r=0;if(e===void 0)for(let n of t)(n=+n)&&(r+=n);else{let n=-1;for(let i of t)(i=+e(i,++n,t))&&(r+=i)}return r}var Cge=R(()=>{"use strict";o(b1,"sum")});var AB=R(()=>{"use strict";kge();Ege();Cge()});function RZe(t){return t.target.depth}function _B(t){return t.depth}function LB(t,e){return e-1-t.height}function hb(t,e){return t.sourceLinks.length?t.depth:e-1}function DB(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?x1(t.sourceLinks,RZe)-1:0}var RB=R(()=>{"use strict";AB();o(RZe,"targetDepth");o(_B,"left");o(LB,"right");o(hb,"justify");o(DB,"center")});function w1(t){return function(){return t}}var Sge=R(()=>{"use strict";o(w1,"constant")});function Age(t,e){return tC(t.source,e.source)||t.index-e.index}function _ge(t,e){return tC(t.target,e.target)||t.index-e.index}function tC(t,e){return t.y0-e.y0}function NB(t){return t.value}function NZe(t){return t.index}function MZe(t){return t.nodes}function IZe(t){return t.links}function Lge(t,e){let r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function Dge({nodes:t}){for(let e of t){let r=e.y0,n=r;for(let i of e.sourceLinks)i.y0=r+i.width/2,r+=i.width;for(let i of e.targetLinks)i.y1=n+i.width/2,n+=i.width}}function rC(){let t=0,e=0,r=1,n=1,i=24,a=8,s,l=NZe,u=hb,h,f,d=MZe,p=IZe,m=6;function g(){let O={nodes:d.apply(null,arguments),links:p.apply(null,arguments)};return y(O),v(O),x(O),b(O),T(O),Dge(O),O}o(g,"sankey"),g.update=function(O){return Dge(O),O},g.nodeId=function(O){return arguments.length?(l=typeof O=="function"?O:w1(O),g):l},g.nodeAlign=function(O){return arguments.length?(u=typeof O=="function"?O:w1(O),g):u},g.nodeSort=function(O){return arguments.length?(h=O,g):h},g.nodeWidth=function(O){return arguments.length?(i=+O,g):i},g.nodePadding=function(O){return arguments.length?(a=s=+O,g):a},g.nodes=function(O){return arguments.length?(d=typeof O=="function"?O:w1(O),g):d},g.links=function(O){return arguments.length?(p=typeof O=="function"?O:w1(O),g):p},g.linkSort=function(O){return arguments.length?(f=O,g):f},g.size=function(O){return arguments.length?(t=e=0,r=+O[0],n=+O[1],g):[r-t,n-e]},g.extent=function(O){return arguments.length?(t=+O[0][0],r=+O[1][0],e=+O[0][1],n=+O[1][1],g):[[t,e],[r,n]]},g.iterations=function(O){return arguments.length?(m=+O,g):m};function y({nodes:O,links:D}){for(let[F,B]of O.entries())B.index=F,B.sourceLinks=[],B.targetLinks=[];let P=new Map(O.map((F,B)=>[l(F,B,O),F]));for(let[F,B]of D.entries()){B.index=F;let{source:$,target:z}=B;typeof $!="object"&&($=B.source=Lge(P,$)),typeof z!="object"&&(z=B.target=Lge(P,z)),$.sourceLinks.push(B),z.targetLinks.push(B)}if(f!=null)for(let{sourceLinks:F,targetLinks:B}of O)F.sort(f),B.sort(f)}o(y,"computeNodeLinks");function v({nodes:O}){for(let D of O)D.value=D.fixedValue===void 0?Math.max(b1(D.sourceLinks,NB),b1(D.targetLinks,NB)):D.fixedValue}o(v,"computeNodeValues");function x({nodes:O}){let D=O.length,P=new Set(O),F=new Set,B=0;for(;P.size;){for(let $ of P){$.depth=B;for(let{target:z}of $.sourceLinks)F.add(z)}if(++B>D)throw new Error("circular link");P=F,F=new Set}}o(x,"computeNodeDepths");function b({nodes:O}){let D=O.length,P=new Set(O),F=new Set,B=0;for(;P.size;){for(let $ of P){$.height=B;for(let{source:z}of $.targetLinks)F.add(z)}if(++B>D)throw new Error("circular link");P=F,F=new Set}}o(b,"computeNodeHeights");function w({nodes:O}){let D=ub(O,B=>B.depth)+1,P=(r-t-i)/(D-1),F=new Array(D);for(let B of O){let $=Math.max(0,Math.min(D-1,Math.floor(u.call(null,B,D))));B.layer=$,B.x0=t+$*P,B.x1=B.x0+i,F[$]?F[$].push(B):F[$]=[B]}if(h)for(let B of F)B.sort(h);return F}o(w,"computeNodeLayers");function S(O){let D=x1(O,P=>(n-e-(P.length-1)*s)/b1(P,NB));for(let P of O){let F=e;for(let B of P){B.y0=F,B.y1=F+B.value*D,F=B.y1+s;for(let $ of B.sourceLinks)$.width=$.value*D}F=(n-F+s)/(P.length+1);for(let B=0;BP.length)-1)),S(D);for(let P=0;P0))continue;let X=(Y/Q-z.y0)*D;z.y0+=X,z.y1+=X,N(z)}h===void 0&&$.sort(tC),A($,P)}}o(E,"relaxLeftToRight");function _(O,D,P){for(let F=O.length,B=F-2;B>=0;--B){let $=O[B];for(let z of $){let Y=0,Q=0;for(let{target:ie,value:j}of z.sourceLinks){let J=j*(ie.layer-z.layer);Y+=C(z,ie)*J,Q+=J}if(!(Q>0))continue;let X=(Y/Q-z.y0)*D;z.y0+=X,z.y1+=X,N(z)}h===void 0&&$.sort(tC),A($,P)}}o(_,"relaxRightToLeft");function A(O,D){let P=O.length>>1,F=O[P];M(O,F.y0-s,P-1,D),L(O,F.y1+s,P+1,D),M(O,n,O.length-1,D),L(O,e,0,D)}o(A,"resolveCollisions");function L(O,D,P,F){for(;P1e-6&&(B.y0+=$,B.y1+=$),D=B.y1+s}}o(L,"resolveCollisionsTopToBottom");function M(O,D,P,F){for(;P>=0;--P){let B=O[P],$=(B.y1-D)*F;$>1e-6&&(B.y0-=$,B.y1-=$),D=B.y0-s}}o(M,"resolveCollisionsBottomToTop");function N({sourceLinks:O,targetLinks:D}){if(f===void 0){for(let{source:{sourceLinks:P}}of D)P.sort(_ge);for(let{target:{targetLinks:P}}of O)P.sort(Age)}}o(N,"reorderNodeLinks");function k(O){if(f===void 0)for(let{sourceLinks:D,targetLinks:P}of O)D.sort(_ge),P.sort(Age)}o(k,"reorderLinks");function I(O,D){let P=O.y0-(O.sourceLinks.length-1)*s/2;for(let{target:F,width:B}of O.sourceLinks){if(F===D)break;P+=B+s}for(let{source:F,width:B}of D.targetLinks){if(F===O)break;P-=B}return P}o(I,"targetTop");function C(O,D){let P=D.y0-(D.targetLinks.length-1)*s/2;for(let{source:F,width:B}of D.targetLinks){if(F===O)break;P+=B+s}for(let{target:F,width:B}of O.sourceLinks){if(F===D)break;P-=B}return P}return o(C,"sourceTop"),g}var Rge=R(()=>{"use strict";AB();RB();Sge();o(Age,"ascendingSourceBreadth");o(_ge,"ascendingTargetBreadth");o(tC,"ascendingBreadth");o(NB,"value");o(NZe,"defaultId");o(MZe,"defaultNodes");o(IZe,"defaultLinks");o(Lge,"find");o(Dge,"computeLinkBreadths");o(rC,"Sankey")});function OB(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Nge(){return new OB}var MB,IB,Q0,OZe,PB,Mge=R(()=>{"use strict";MB=Math.PI,IB=2*MB,Q0=1e-6,OZe=IB-Q0;o(OB,"Path");o(Nge,"path");OB.prototype=Nge.prototype={constructor:OB,moveTo:o(function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},"moveTo"),closePath:o(function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:o(function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},"lineTo"),quadraticCurveTo:o(function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},"quadraticCurveTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:o(function(t,e,r,n,i){t=+t,e=+e,r=+r,n=+n,i=+i;var a=this._x1,s=this._y1,l=r-t,u=n-e,h=a-t,f=s-e,d=h*h+f*f;if(i<0)throw new Error("negative radius: "+i);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(d>Q0)if(!(Math.abs(f*l-u*h)>Q0)||!i)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var p=r-a,m=n-s,g=l*l+u*u,y=p*p+m*m,v=Math.sqrt(g),x=Math.sqrt(d),b=i*Math.tan((MB-Math.acos((g+d-y)/(2*v*x)))/2),w=b/x,S=b/v;Math.abs(w-1)>Q0&&(this._+="L"+(t+w*h)+","+(e+w*f)),this._+="A"+i+","+i+",0,0,"+ +(f*p>h*m)+","+(this._x1=t+S*l)+","+(this._y1=e+S*u)}},"arcTo"),arc:o(function(t,e,r,n,i,a){t=+t,e=+e,r=+r,a=!!a;var s=r*Math.cos(n),l=r*Math.sin(n),u=t+s,h=e+l,f=1^a,d=a?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+u+","+h:(Math.abs(this._x1-u)>Q0||Math.abs(this._y1-h)>Q0)&&(this._+="L"+u+","+h),r&&(d<0&&(d=d%IB+IB),d>OZe?this._+="A"+r+","+r+",0,1,"+f+","+(t-s)+","+(e-l)+"A"+r+","+r+",0,1,"+f+","+(this._x1=u)+","+(this._y1=h):d>Q0&&(this._+="A"+r+","+r+",0,"+ +(d>=MB)+","+f+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},"arc"),rect:o(function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},"rect"),toString:o(function(){return this._},"toString")};PB=Nge});var Ige=R(()=>{"use strict";Mge()});function nC(t){return o(function(){return t},"constant")}var Oge=R(()=>{"use strict";o(nC,"default")});function Pge(t){return t[0]}function Bge(t){return t[1]}var Fge=R(()=>{"use strict";o(Pge,"x");o(Bge,"y")});var zge,Gge=R(()=>{"use strict";zge=Array.prototype.slice});function PZe(t){return t.source}function BZe(t){return t.target}function FZe(t){var e=PZe,r=BZe,n=Pge,i=Bge,a=null;function s(){var l,u=zge.call(arguments),h=e.apply(this,u),f=r.apply(this,u);if(a||(a=l=PB()),t(a,+n.apply(this,(u[0]=h,u)),+i.apply(this,u),+n.apply(this,(u[0]=f,u)),+i.apply(this,u)),l)return a=null,l+""||null}return o(s,"link"),s.source=function(l){return arguments.length?(e=l,s):e},s.target=function(l){return arguments.length?(r=l,s):r},s.x=function(l){return arguments.length?(n=typeof l=="function"?l:nC(+l),s):n},s.y=function(l){return arguments.length?(i=typeof l=="function"?l:nC(+l),s):i},s.context=function(l){return arguments.length?(a=l??null,s):a},s}function zZe(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function BB(){return FZe(zZe)}var $ge=R(()=>{"use strict";Ige();Gge();Oge();Fge();o(PZe,"linkSource");o(BZe,"linkTarget");o(FZe,"link");o(zZe,"curveHorizontal");o(BB,"linkHorizontal")});var Vge=R(()=>{"use strict";$ge()});function GZe(t){return[t.source.x1,t.y0]}function $Ze(t){return[t.target.x0,t.y1]}function iC(){return BB().source(GZe).target($Ze)}var Uge=R(()=>{"use strict";Vge();o(GZe,"horizontalSource");o($Ze,"horizontalTarget");o(iC,"default")});var Hge=R(()=>{"use strict";Rge();RB();Uge()});var fb,Yge=R(()=>{"use strict";fb=class t{static{o(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return"url("+this.href+")"}}});var VZe,UZe,Wge,qge=R(()=>{"use strict";_t();Zt();Hge();Yn();Yge();VZe={left:_B,right:LB,center:DB,justify:hb},UZe=o(function(t,e,r,n){let{securityLevel:i,sankey:a}=de(),s=_4.sankey,l;i==="sandbox"&&(l=$e("#i"+e));let u=i==="sandbox"?$e(l.nodes()[0].contentDocument.body):$e("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):$e(`[id="${e}"]`),f=a?.width??s.width,d=a?.height??s.width,p=a?.useMaxWidth??s.useMaxWidth,m=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,y=a?.suffix??s.suffix,v=a?.showValues??s.showValues,x=n.db.getGraph(),b=VZe[m];rC().nodeId(M=>M.id).nodeWidth(10).nodePadding(10+(v?15:0)).nodeAlign(b).extent([[0,0],[f,d]])(x);let T=pu(Z8);h.append("g").attr("class","nodes").selectAll(".node").data(x.nodes).join("g").attr("class","node").attr("id",M=>(M.uid=fb.next("node-")).id).attr("transform",function(M){return"translate("+M.x0+","+M.y0+")"}).attr("x",M=>M.x0).attr("y",M=>M.y0).append("rect").attr("height",M=>M.y1-M.y0).attr("width",M=>M.x1-M.x0).attr("fill",M=>T(M.id));let E=o(({id:M,value:N})=>v?`${M} +${g}${Math.round(N*100)/100}${y}`:M,"getText");h.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(x.nodes).join("text").attr("x",M=>M.x0(M.y1+M.y0)/2).attr("dy",`${v?"0":"0.35"}em`).attr("text-anchor",M=>M.x0(N.uid=fb.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",N=>N.source.x1).attr("x2",N=>N.target.x0);M.append("stop").attr("offset","0%").attr("stop-color",N=>T(N.source.id)),M.append("stop").attr("offset","100%").attr("stop-color",N=>T(N.target.id))}let L;switch(A){case"gradient":L=o(M=>M.uid,"coloring");break;case"source":L=o(M=>T(M.source.id),"coloring");break;case"target":L=o(M=>T(M.target.id),"coloring");break;default:L=A}_.append("path").attr("d",iC()).attr("stroke",L).attr("stroke-width",M=>Math.max(1,M.width)),Lo(void 0,h,0,p)},"draw"),Wge={draw:UZe}});var Xge,jge=R(()=>{"use strict";Xge=o(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing")});var Kge={};hr(Kge,{diagram:()=>YZe});var HZe,YZe,Qge=R(()=>{"use strict";bge();Tge();qge();jge();HZe=cb.parse.bind(cb);cb.parse=t=>HZe(Xge(t));YZe={parser:cb,db:wge,renderer:Wge}});var e1e,FB,jZe,KZe,QZe,ZZe,JZe,Mf,zB=R(()=>{"use strict";qs();sl();xr();bi();e1e={packet:[]},FB=structuredClone(e1e),jZe=mr.packet,KZe=o(()=>{let t=Ts({...jZe,...Or().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),QZe=o(()=>FB.packet,"getPacket"),ZZe=o(t=>{t.length>0&&FB.packet.push(t)},"pushWord"),JZe=o(()=>{vr(),FB=structuredClone(e1e)},"clear"),Mf={pushWord:ZZe,getPacket:QZe,getConfig:KZe,clear:JZe,setAccTitle:kr,getAccTitle:Ar,setDiagramTitle:nn,getDiagramTitle:Xr,getAccDescription:Lr,setAccDescription:_r}});var eJe,tJe,rJe,t1e,r1e=R(()=>{"use strict";Lg();ut();sx();zB();eJe=1e4,tJe=o(t=>{cf(t,Mf);let e=-1,r=[],n=1,{bitsPerRow:i}=Mf.getConfig();for(let{start:a,end:s,label:l}of t.blocks){if(s&&s{if(t.end===void 0&&(t.end=t.start),t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*r?[t,void 0]:[{start:t.start,end:e*r-1,label:t.label},{start:e*r,end:t.end,label:t.label}]},"getNextFittingBlock"),t1e={parse:o(async t=>{let e=await Fl("packet",t);V.debug(e),tJe(e)},"parse")}});var nJe,iJe,n1e,i1e=R(()=>{"use strict";pf();Yn();nJe=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),{rowHeight:s,paddingY:l,bitWidth:u,bitsPerRow:h}=a,f=i.getPacket(),d=i.getDiagramTitle(),p=s+l,m=p*(f.length+1)-(d?0:s),g=u*h+2,y=Ps(e);y.attr("viewbox",`0 0 ${g} ${m}`),Sr(y,m,g,a.useMaxWidth);for(let[v,x]of f.entries())iJe(y,x,v,a);y.append("text").text(d).attr("x",g/2).attr("y",m-p/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),iJe=o((t,e,r,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:s,bitsPerRow:l,showBits:u})=>{let h=t.append("g"),f=r*(n+a)+a;for(let d of e){let p=d.start%l*s+1,m=(d.end-d.start+1)*s-i;if(h.append("rect").attr("x",p).attr("y",f).attr("width",m).attr("height",n).attr("class","packetBlock"),h.append("text").attr("x",p+m/2).attr("y",f+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(d.label),!u)continue;let g=d.end===d.start,y=f-2;h.append("text").attr("x",p+(g?m/2:0)).attr("y",y).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",g?"middle":"start").text(d.start),g||h.append("text").attr("x",p+m).attr("y",y).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(d.end)}},"drawWord"),n1e={draw:nJe}});var aJe,a1e,s1e=R(()=>{"use strict";xr();aJe={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},a1e=o(({packet:t}={})=>{let e=Ts(aJe,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles")});var o1e={};hr(o1e,{diagram:()=>sJe});var sJe,l1e=R(()=>{"use strict";zB();r1e();i1e();s1e();sJe={parser:t1e,db:Mf,renderer:n1e,styles:a1e}});var GB,h1e,f1e=R(()=>{"use strict";GB=function(){var t=o(function(w,S,T,E){for(T=T||{},E=w.length;E--;T[w[E]]=S);return T},"o"),e=[1,7],r=[1,13],n=[1,14],i=[1,15],a=[1,19],s=[1,16],l=[1,17],u=[1,18],h=[8,30],f=[8,21,28,29,30,31,32,40,44,47],d=[1,23],p=[1,24],m=[8,15,16,21,28,29,30,31,32,40,44,47],g=[8,15,16,21,27,28,29,30,31,32,40,44,47],y=[1,49],v={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:o(function(S,T,E,_,A,L,M){var N=L.length-1;switch(A){case 4:_.getLogger().debug("Rule: separator (NL) ");break;case 5:_.getLogger().debug("Rule: separator (Space) ");break;case 6:_.getLogger().debug("Rule: separator (EOF) ");break;case 7:_.getLogger().debug("Rule: hierarchy: ",L[N-1]),_.setHierarchy(L[N-1]);break;case 8:_.getLogger().debug("Stop NL ");break;case 9:_.getLogger().debug("Stop EOF ");break;case 10:_.getLogger().debug("Stop NL2 ");break;case 11:_.getLogger().debug("Stop EOF2 ");break;case 12:_.getLogger().debug("Rule: statement: ",L[N]),typeof L[N].length=="number"?this.$=L[N]:this.$=[L[N]];break;case 13:_.getLogger().debug("Rule: statement #2: ",L[N-1]),this.$=[L[N-1]].concat(L[N]);break;case 14:_.getLogger().debug("Rule: link: ",L[N],S),this.$={edgeTypeStr:L[N],label:""};break;case 15:_.getLogger().debug("Rule: LABEL link: ",L[N-3],L[N-1],L[N]),this.$={edgeTypeStr:L[N],label:L[N-1]};break;case 18:let k=parseInt(L[N]),I=_.generateId();this.$={id:I,type:"space",label:"",width:k,children:[]};break;case 23:_.getLogger().debug("Rule: (nodeStatement link node) ",L[N-2],L[N-1],L[N]," typestr: ",L[N-1].edgeTypeStr);let C=_.edgeStrToEdgeData(L[N-1].edgeTypeStr);this.$=[{id:L[N-2].id,label:L[N-2].label,type:L[N-2].type,directions:L[N-2].directions},{id:L[N-2].id+"-"+L[N].id,start:L[N-2].id,end:L[N].id,label:L[N-1].label,type:"edge",directions:L[N].directions,arrowTypeEnd:C,arrowTypeStart:"arrow_open"},{id:L[N].id,label:L[N].label,type:_.typeStr2Type(L[N].typeStr),directions:L[N].directions}];break;case 24:_.getLogger().debug("Rule: nodeStatement (abc88 node size) ",L[N-1],L[N]),this.$={id:L[N-1].id,label:L[N-1].label,type:_.typeStr2Type(L[N-1].typeStr),directions:L[N-1].directions,widthInColumns:parseInt(L[N],10)};break;case 25:_.getLogger().debug("Rule: nodeStatement (node) ",L[N]),this.$={id:L[N].id,label:L[N].label,type:_.typeStr2Type(L[N].typeStr),directions:L[N].directions,widthInColumns:1};break;case 26:_.getLogger().debug("APA123",this?this:"na"),_.getLogger().debug("COLUMNS: ",L[N]),this.$={type:"column-setting",columns:L[N]==="auto"?-1:parseInt(L[N])};break;case 27:_.getLogger().debug("Rule: id-block statement : ",L[N-2],L[N-1]);let O=_.generateId();this.$={...L[N-2],type:"composite",children:L[N-1]};break;case 28:_.getLogger().debug("Rule: blockStatement : ",L[N-2],L[N-1],L[N]);let D=_.generateId();this.$={id:D,type:"composite",label:"",children:L[N-1]};break;case 29:_.getLogger().debug("Rule: node (NODE_ID separator): ",L[N]),this.$={id:L[N]};break;case 30:_.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",L[N-1],L[N]),this.$={id:L[N-1],label:L[N].label,typeStr:L[N].typeStr,directions:L[N].directions};break;case 31:_.getLogger().debug("Rule: dirList: ",L[N]),this.$=[L[N]];break;case 32:_.getLogger().debug("Rule: dirList: ",L[N-1],L[N]),this.$=[L[N-1]].concat(L[N]);break;case 33:_.getLogger().debug("Rule: nodeShapeNLabel: ",L[N-2],L[N-1],L[N]),this.$={typeStr:L[N-2]+L[N],label:L[N-1]};break;case 34:_.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",L[N-3],L[N-2]," #3:",L[N-1],L[N]),this.$={typeStr:L[N-3]+L[N],label:L[N-2],directions:L[N-1]};break;case 35:case 36:this.$={type:"classDef",id:L[N-1].trim(),css:L[N].trim()};break;case 37:this.$={type:"applyClass",id:L[N-1].trim(),styleClass:L[N].trim()};break;case 38:this.$={type:"applyStyles",id:L[N-1].trim(),stylesStr:L[N].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{8:[1,20]},t(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:e,28:r,29:n,31:i,32:a,40:s,44:l,47:u}),t(f,[2,16],{14:22,15:d,16:p}),t(f,[2,17]),t(f,[2,18]),t(f,[2,19]),t(f,[2,20]),t(f,[2,21]),t(f,[2,22]),t(m,[2,25],{27:[1,25]}),t(f,[2,26]),{19:26,26:12,32:a},{11:27,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},t(g,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},t(h,[2,13]),{26:35,32:a},{32:[2,14]},{17:[1,36]},t(m,[2,24]),{11:37,13:4,14:22,15:d,16:p,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},t(g,[2,30]),{18:[1,43]},{18:[1,44]},t(m,[2,23]),{18:[1,45]},{30:[1,46]},t(f,[2,28]),t(f,[2,35]),t(f,[2,36]),t(f,[2,37]),t(f,[2,38]),{37:[1,47]},{34:48,35:y},{15:[1,50]},t(f,[2,27]),t(g,[2,33]),{39:[1,51]},{34:52,35:y,39:[2,31]},{32:[2,15]},t(g,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:o(function(S,T){if(T.recoverable)this.trace(S);else{var E=new Error(S);throw E.hash=T,E}},"parseError"),parse:o(function(S){var T=this,E=[0],_=[],A=[null],L=[],M=this.table,N="",k=0,I=0,C=0,O=2,D=1,P=L.slice.call(arguments,1),F=Object.create(this.lexer),B={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(B.yy[$]=this.yy[$]);F.setInput(S,B.yy),B.yy.lexer=F,B.yy.parser=this,typeof F.yylloc>"u"&&(F.yylloc={});var z=F.yylloc;L.push(z);var Y=F.options&&F.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Q(oe){E.length=E.length-2*oe,A.length=A.length-oe,L.length=L.length-oe}o(Q,"popStack");function X(){var oe;return oe=_.pop()||F.lex()||D,typeof oe!="number"&&(oe instanceof Array&&(_=oe,oe=_.pop()),oe=T.symbols_[oe]||oe),oe}o(X,"lex");for(var ie,j,J,Z,H,q,K={},se,ce,ue,te;;){if(J=E[E.length-1],this.defaultActions[J]?Z=this.defaultActions[J]:((ie===null||typeof ie>"u")&&(ie=X()),Z=M[J]&&M[J][ie]),typeof Z>"u"||!Z.length||!Z[0]){var De="";te=[];for(se in M[J])this.terminals_[se]&&se>O&&te.push("'"+this.terminals_[se]+"'");F.showPosition?De="Parse error on line "+(k+1)+`: +`+F.showPosition()+` +Expecting `+te.join(", ")+", got '"+(this.terminals_[ie]||ie)+"'":De="Parse error on line "+(k+1)+": Unexpected "+(ie==D?"end of input":"'"+(this.terminals_[ie]||ie)+"'"),this.parseError(De,{text:F.match,token:this.terminals_[ie]||ie,line:F.yylineno,loc:z,expected:te})}if(Z[0]instanceof Array&&Z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+ie);switch(Z[0]){case 1:E.push(ie),A.push(F.yytext),L.push(F.yylloc),E.push(Z[1]),ie=null,j?(ie=j,j=null):(I=F.yyleng,N=F.yytext,k=F.yylineno,z=F.yylloc,C>0&&C--);break;case 2:if(ce=this.productions_[Z[1]][1],K.$=A[A.length-ce],K._$={first_line:L[L.length-(ce||1)].first_line,last_line:L[L.length-1].last_line,first_column:L[L.length-(ce||1)].first_column,last_column:L[L.length-1].last_column},Y&&(K._$.range=[L[L.length-(ce||1)].range[0],L[L.length-1].range[1]]),q=this.performAction.apply(K,[N,I,k,B.yy,Z[1],A,L].concat(P)),typeof q<"u")return q;ce&&(E=E.slice(0,-1*ce*2),A=A.slice(0,-1*ce),L=L.slice(0,-1*ce)),E.push(this.productions_[Z[1]][0]),A.push(K.$),L.push(K._$),ue=M[E[E.length-2]][E[E.length-1]],E.push(ue);break;case 3:return!0}}return!0},"parse")},x=function(){var w={EOF:1,parseError:o(function(T,E){if(this.yy.parser)this.yy.parser.parseError(T,E);else throw new Error(T)},"parseError"),setInput:o(function(S,T){return this.yy=T||this.yy||{},this._input=S,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var S=this._input[0];this.yytext+=S,this.yyleng++,this.offset++,this.match+=S,this.matched+=S;var T=S.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),S},"input"),unput:o(function(S){var T=S.length,E=S.split(/(?:\r\n?|\n)/g);this._input=S+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var _=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===_.length?this.yylloc.first_column:0)+_[_.length-E.length].length-E[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-T]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(S){this.unput(this.match.slice(S))},"less"),pastInput:o(function(){var S=this.matched.substr(0,this.matched.length-this.match.length);return(S.length>20?"...":"")+S.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var S=this.match;return S.length<20&&(S+=this._input.substr(0,20-S.length)),(S.substr(0,20)+(S.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var S=this.pastInput(),T=new Array(S.length+1).join("-");return S+this.upcomingInput()+` +`+T+"^"},"showPosition"),test_match:o(function(S,T){var E,_,A;if(this.options.backtrack_lexer&&(A={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(A.yylloc.range=this.yylloc.range.slice(0))),_=S[0].match(/(?:\r\n?|\n).*/g),_&&(this.yylineno+=_.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:_?_[_.length-1].length-_[_.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+S[0].length},this.yytext+=S[0],this.match+=S[0],this.matches=S,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(S[0].length),this.matched+=S[0],E=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var L in A)this[L]=A[L];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var S,T,E,_;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),L=0;LT[0].length)){if(T=E,_=L,this.options.backtrack_lexer){if(S=this.test_match(E,A[L]),S!==!1)return S;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(S=this.test_match(T,A[_]),S!==!1?S:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var T=this.next();return T||this.lex()},"lex"),begin:o(function(T){this.conditionStack.push(T)},"begin"),popState:o(function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},"topState"),pushState:o(function(T){this.begin(T)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(T,E,_,A){var L=A;switch(_){case 0:return 10;case 1:return T.getLogger().debug("Found space-block"),31;break;case 2:return T.getLogger().debug("Found nl-block"),31;break;case 3:return T.getLogger().debug("Found space-block"),29;break;case 4:T.getLogger().debug(".",E.yytext);break;case 5:T.getLogger().debug("_",E.yytext);break;case 6:return 5;case 7:return E.yytext=-1,28;break;case 8:return E.yytext=E.yytext.replace(/columns\s+/,""),T.getLogger().debug("COLUMNS (LEX)",E.yytext),28;break;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:T.getLogger().debug("LEX: POPPING STR:",E.yytext),this.popState();break;case 14:return T.getLogger().debug("LEX: STR end:",E.yytext),"STR";break;case 15:return E.yytext=E.yytext.replace(/space\:/,""),T.getLogger().debug("SPACE NUM (LEX)",E.yytext),21;break;case 16:return E.yytext="1",T.getLogger().debug("COLUMNS (LEX)",E.yytext),21;break;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;break;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 22:return this.popState(),this.pushState("CLASSDEFID"),41;break;case 23:return this.popState(),42;break;case 24:return this.pushState("CLASS"),44;break;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;break;case 26:return this.popState(),46;break;case 27:return this.pushState("STYLE_STMNT"),47;break;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;break;case 29:return this.popState(),49;break;case 30:return this.pushState("acc_title"),"acc_title";break;case 31:return this.popState(),"acc_title_value";break;case 32:return this.pushState("acc_descr"),"acc_descr";break;case 33:return this.popState(),"acc_descr_value";break;case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 40:return this.popState(),T.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 41:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 43:return this.popState(),T.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 44:return this.popState(),T.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 45:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 46:return this.popState(),T.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 47:return this.popState(),T.getLogger().debug("Lex: ("),"NODE_DEND";break;case 48:return this.popState(),T.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 49:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 51:return this.popState(),T.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 52:return this.popState(),T.getLogger().debug("Lex: )"),"NODE_DEND";break;case 53:return this.popState(),T.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 54:return this.popState(),T.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 55:return T.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;break;case 56:return T.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;break;case 57:return T.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;break;case 58:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 59:return T.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;break;case 60:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 61:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 62:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 63:return T.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;break;case 64:return T.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;break;case 65:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 66:return this.pushState("NODE"),36;break;case 67:return this.pushState("NODE"),36;break;case 68:return this.pushState("NODE"),36;break;case 69:return this.pushState("NODE"),36;break;case 70:return this.pushState("NODE"),36;break;case 71:return this.pushState("NODE"),36;break;case 72:return this.pushState("NODE"),36;break;case 73:return T.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;break;case 74:return this.pushState("BLOCK_ARROW"),T.getLogger().debug("LEX ARR START"),38;break;case 75:return T.getLogger().debug("Lex: NODE_ID",E.yytext),32;break;case 76:return T.getLogger().debug("Lex: EOF",E.yytext),8;break;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:T.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:T.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return T.getLogger().debug("LEX: NODE_DESCR:",E.yytext),"NODE_DESCR";break;case 84:T.getLogger().debug("LEX POPPING"),this.popState();break;case 85:T.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (right): dir:",E.yytext),"DIR";break;case 87:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (left):",E.yytext),"DIR";break;case 88:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (x):",E.yytext),"DIR";break;case 89:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (y):",E.yytext),"DIR";break;case 90:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (up):",E.yytext),"DIR";break;case 91:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (down):",E.yytext),"DIR";break;case 92:return E.yytext="]>",T.getLogger().debug("Lex (ARROW_DIR end):",E.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 93:return T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 94:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 95:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 96:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 97:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 98:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 99:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 100:this.pushState("md_string");break;case 101:return T.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 102:return this.popState(),T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 103:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 104:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 105:return T.getLogger().debug("Lex: COLON",E.yytext),E.yytext=E.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return w}();v.lexer=x;function b(){this.yy={}}return o(b,"Parser"),b.prototype=v,v.Parser=b,new b}();GB.parser=GB;h1e=GB});function gJe(t){switch(V.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return V.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function yJe(t){switch(V.debug("typeStr2Type",t),t){case"==":return"thick";default:return"normal"}}function vJe(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}var Yl,VB,$B,d1e,p1e,cJe,g1e,uJe,aC,hJe,fJe,dJe,pJe,y1e,UB,db,mJe,m1e,xJe,bJe,wJe,TJe,kJe,EJe,CJe,SJe,AJe,_Je,LJe,v1e,x1e=R(()=>{"use strict";gL();qs();_t();ut();rr();bi();Yl=new Map,VB=[],$B=new Map,d1e="color",p1e="fill",cJe="bgFill",g1e=",",uJe=de(),aC=new Map,hJe=o(t=>We.sanitizeText(t,uJe),"sanitizeText"),fJe=o(function(t,e=""){let r=aC.get(t);r||(r={id:t,styles:[],textStyles:[]},aC.set(t,r)),e?.split(g1e).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(d1e).exec(n)){let s=i.replace(p1e,cJe).replace(d1e,p1e);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),dJe=o(function(t,e=""){let r=Yl.get(t);e!=null&&(r.styles=e.split(g1e))},"addStyle2Node"),pJe=o(function(t,e){t.split(",").forEach(function(r){let n=Yl.get(r);if(n===void 0){let i=r.trim();n={id:i,type:"na",children:[]},Yl.set(i,n)}n.classes||(n.classes=[]),n.classes.push(e)})},"setCssClass"),y1e=o((t,e)=>{let r=t.flat(),n=[];for(let i of r){if(i.label&&(i.label=hJe(i.label)),i.type==="classDef"){fJe(i.id,i.css);continue}if(i.type==="applyClass"){pJe(i.id,i?.styleClass??"");continue}if(i.type==="applyStyles"){i?.stylesStr&&dJe(i.id,i?.stylesStr);continue}if(i.type==="column-setting")e.columns=i.columns??-1;else if(i.type==="edge"){let a=($B.get(i.id)??0)+1;$B.set(i.id,a),i.id=a+"-"+i.id,VB.push(i)}else{i.label||(i.type==="composite"?i.label="":i.label=i.id);let a=Yl.get(i.id);if(a===void 0?Yl.set(i.id,i):(i.type!=="na"&&(a.type=i.type),i.label!==i.id&&(a.label=i.label)),i.children&&y1e(i.children,i),i.type==="space"){let s=i.width??1;for(let l=0;l{V.debug("Clear called"),vr(),db={id:"root",type:"composite",children:[],columns:-1},Yl=new Map([["root",db]]),UB=[],aC=new Map,VB=[],$B=new Map},"clear");o(gJe,"typeStr2Type");o(yJe,"edgeTypeStr2Type");o(vJe,"edgeStrToEdgeData");m1e=0,xJe=o(()=>(m1e++,"id-"+Math.random().toString(36).substr(2,12)+"-"+m1e),"generateId"),bJe=o(t=>{db.children=t,y1e(t,db),UB=db.children},"setHierarchy"),wJe=o(t=>{let e=Yl.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1},"getColumns"),TJe=o(()=>[...Yl.values()],"getBlocksFlat"),kJe=o(()=>UB||[],"getBlocks"),EJe=o(()=>VB,"getEdges"),CJe=o(t=>Yl.get(t),"getBlock"),SJe=o(t=>{Yl.set(t.id,t)},"setBlock"),AJe=o(()=>console,"getLogger"),_Je=o(function(){return aC},"getClasses"),LJe={getConfig:o(()=>Or().block,"getConfig"),typeStr2Type:gJe,edgeTypeStr2Type:yJe,edgeStrToEdgeData:vJe,getLogger:AJe,getBlocksFlat:TJe,getBlocks:kJe,getEdges:EJe,setHierarchy:bJe,getBlock:CJe,setBlock:SJe,getColumns:wJe,getClasses:_Je,clear:mJe,generateId:xJe},v1e=LJe});var sC,DJe,b1e,w1e=R(()=>{"use strict";al();sC=o((t,e)=>{let r=X1,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return Ws(n,i,a,e)},"fade"),DJe=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span,p { + color: ${t.titleColor}; + } + + + + .label text,span,p { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${sC(t.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${sC(t.mainBkg,.5)}; + fill: ${sC(t.clusterBkg,.5)}; + stroke: ${sC(t.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span,p { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),b1e=DJe});function RJe(t,e){if(t===0||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(t===1)return{px:0,py:e};let r=e%t,n=Math.floor(e/t);return{px:r,py:n}}function HB(t,e,r=0,n=0){V.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"sieblingWidth",r),t?.size?.width||(t.size={width:r,height:n,x:0,y:0});let i=0,a=0;if(t.children?.length>0){for(let m of t.children)HB(m,e);let s=NJe(t);i=s.width,a=s.height,V.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",i,a);for(let m of t.children)m.size&&(V.debug(`abc95 Setting size of children of ${t.id} id=${m.id} ${i} ${a} ${JSON.stringify(m.size)}`),m.size.width=i*(m.widthInColumns??1)+mi*((m.widthInColumns??1)-1),m.size.height=a,m.size.x=0,m.size.y=0,V.debug(`abc95 updating size of ${t.id} children child:${m.id} maxWidth:${i} maxHeight:${a}`));for(let m of t.children)HB(m,e,i,a);let l=t.columns??-1,u=0;for(let m of t.children)u+=m.widthInColumns??1;let h=t.children.length;l>0&&l0?Math.min(t.children.length,l):t.children.length;if(m>0){let g=(d-m*mi-mi)/m;V.debug("abc95 (growing to fit) width",t.id,d,t.size?.width,g);for(let y of t.children)y.size&&(y.size.width=g)}}t.size={width:d,height:p,x:0,y:0}}V.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}function T1e(t,e){V.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let r=t.columns??-1;if(V.debug("layoutBlocks columns abc95",t.id,"=>",r,t),t.children&&t.children.length>0){let n=t?.children[0]?.size?.width??0,i=t.children.length*n+(t.children.length-1)*mi;V.debug("widthOfChildren 88",i,"posX");let a=0;V.debug("abc91 block?.size?.x",t.id,t?.size?.x);let s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-mi,l=0;for(let u of t.children){let h=t;if(!u.size)continue;let{width:f,height:d}=u.size,{px:p,py:m}=RJe(r,a);if(m!=l&&(l=m,s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-mi,V.debug("New row in layout for block",t.id," and child ",u.id,l)),V.debug(`abc89 layout blocks (child) id: ${u.id} Pos: ${a} (px, py) ${p},${m} (${h?.size?.x},${h?.size?.y}) parent: ${h.id} width: ${f}${mi}`),h.size){let g=f/2;u.size.x=s+mi+g,V.debug(`abc91 layout blocks (calc) px, pyid:${u.id} startingPos=X${s} new startingPosX${u.size.x} ${g} padding=${mi} width=${f} halfWidth=${g} => x:${u.size.x} y:${u.size.y} ${u.widthInColumns} (width * (child?.w || 1)) / 2 ${f*(u?.widthInColumns??1)/2}`),s=u.size.x+g,u.size.y=h.size.y-h.size.height/2+m*(d+mi)+d/2+mi,V.debug(`abc88 layout blocks (calc) px, pyid:${u.id}startingPosX${s}${mi}${g}=>x:${u.size.x}y:${u.size.y}${u.widthInColumns}(width * (child?.w || 1)) / 2${f*(u?.widthInColumns??1)/2}`)}u.children&&T1e(u,e),a+=u?.widthInColumns??1,V.debug("abc88 columnsPos",u,a)}}V.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}function k1e(t,{minX:e,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){let{x:a,y:s,width:l,height:u}=t.size;a-l/2n&&(n=a+l/2),s+u/2>i&&(i=s+u/2)}if(t.children)for(let a of t.children)({minX:e,minY:r,maxX:n,maxY:i}=k1e(a,{minX:e,minY:r,maxX:n,maxY:i}));return{minX:e,minY:r,maxX:n,maxY:i}}function E1e(t){let e=t.getBlock("root");if(!e)return;HB(e,t,0,0),T1e(e,t),V.debug("getBlocks",JSON.stringify(e,null,2));let{minX:r,minY:n,maxX:i,maxY:a}=k1e(e),s=a-n,l=i-r;return{x:r,y:n,width:l,height:s}}var mi,NJe,C1e=R(()=>{"use strict";ut();_t();mi=de()?.block?.padding??8;o(RJe,"calculateBlockPosition");NJe=o(t=>{let e=0,r=0;for(let n of t.children){let{width:i,height:a,x:s,y:l}=n.size??{width:0,height:0,x:0,y:0};V.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",l,n.type),n.type!=="space"&&(i>e&&(e=i/(t.widthInColumns??1)),a>r&&(r=a))}return{width:e,height:r}},"getMaxChildSize");o(HB,"setBlockSizes");o(T1e,"layoutBlocks");o(k1e,"findBounds");o(E1e,"layout")});function S1e(t,e,r=!1){let n=t,i="default";(n?.classes?.length||0)>0&&(i=(n?.classes??[]).join(" ")),i=i+" flowchart-label";let a=0,s="",l;switch(n.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",l=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}let u=lm(n?.styles??[]),h=n.label,f=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:u.labelStyle,shape:s,labelText:h,rx:a,ry:a,class:i,style:u.style,id:n.id,directions:n.directions,width:f.width,height:f.height,x:f.x,y:f.y,positioned:r,intersect:void 0,type:n.type,padding:l??Or()?.block?.padding??0}}async function MJe(t,e,r){let n=S1e(e,r,!1);if(n.type==="group")return;let i=await pm(t,n),a=i.node().getBBox(),s=r.getBlock(n.id);s.size={width:a.width,height:a.height,x:0,y:0,node:i},r.setBlock(s),i.remove()}async function IJe(t,e,r){let n=S1e(e,r,!0);r.getBlock(n.id).type!=="space"&&(await pm(t,n),e.intersect=n?.intersect,wv(n))}async function YB(t,e,r,n){for(let i of e)await n(t,i,r),i.children&&await YB(t,i.children,r,n)}async function A1e(t,e,r){await YB(t,e,r,MJe)}async function _1e(t,e,r){await YB(t,e,r,IJe)}async function L1e(t,e,r,n,i){let a=new lr({multigraph:!0,compound:!0});a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let s of r)s.size&&a.setNode(s.id,{width:s.size.width,height:s.size.height,intersect:s.intersect});for(let s of e)if(s.start&&s.end){let l=n.getBlock(s.start),u=n.getBlock(s.end);if(l?.size&&u?.size){let h=l.size,f=u.size,d=[{x:h.x,y:h.y},{x:h.x+(f.x-h.x)/2,y:h.y+(f.y-h.y)/2},{x:f.x,y:f.y}];PE(t,{v:s.start,w:s.end,name:s.id},{...s,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",a,i),s.label&&(await IE(t,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),OE({...s,x:d[1].x,y:d[1].y},{originalPath:d}))}}}var D1e=R(()=>{"use strict";ya();qs();DO();M5();xr();o(S1e,"getNodeFromBlock");o(MJe,"calculateBlockSize");o(IJe,"insertBlockPositioned");o(YB,"performOperations");o(A1e,"calculateBlockSizes");o(_1e,"insertBlocks");o(L1e,"insertEdges")});var OJe,PJe,R1e,N1e=R(()=>{"use strict";Zt();qs();LO();ut();Yn();C1e();D1e();OJe=o(function(t,e){return e.db.getClasses()},"getClasses"),PJe=o(async function(t,e,r,n){let{securityLevel:i,block:a}=Or(),s=n.db,l;i==="sandbox"&&(l=$e("#i"+e));let u=i==="sandbox"?$e(l.nodes()[0].contentDocument.body):$e("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):$e(`[id="${e}"]`);LE(h,["point","circle","cross"],n.type,e);let d=s.getBlocks(),p=s.getBlocksFlat(),m=s.getEdges(),g=h.insert("g").attr("class","block");await A1e(g,d,s);let y=E1e(s);if(await _1e(g,d,s),await L1e(g,m,p,s,e),y){let v=y,x=Math.max(1,Math.round(.125*(v.width/v.height))),b=v.height+x+10,w=v.width+10,{useMaxWidth:S}=a;Sr(h,b,w,!!S),V.debug("Here Bounds",y,v),h.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),R1e={draw:PJe,getClasses:OJe}});var M1e={};hr(M1e,{diagram:()=>BJe});var BJe,I1e=R(()=>{"use strict";f1e();x1e();w1e();N1e();BJe={parser:h1e,db:v1e,renderer:R1e,styles:b1e}});var WB,qB,pb,B1e,XB,cs,Wc,oC,F1e,$Je,mb,z1e,G1e,$1e,V1e,lC,If,cC=R(()=>{"use strict";WB={L:"left",R:"right",T:"top",B:"bottom"},qB={L:o(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:o(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:o(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:o(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},pb={L:o((t,e)=>t-e+2,"L"),R:o((t,e)=>t-2,"R"),T:o((t,e)=>t-e+2,"T"),B:o((t,e)=>t-2,"B")},B1e=o(function(t){return cs(t)?t==="L"?"R":"L":t==="T"?"B":"T"},"getOppositeArchitectureDirection"),XB=o(function(t){let e=t;return e==="L"||e==="R"||e==="T"||e==="B"},"isArchitectureDirection"),cs=o(function(t){let e=t;return e==="L"||e==="R"},"isArchitectureDirectionX"),Wc=o(function(t){let e=t;return e==="T"||e==="B"},"isArchitectureDirectionY"),oC=o(function(t,e){let r=cs(t)&&Wc(e),n=Wc(t)&&cs(e);return r||n},"isArchitectureDirectionXY"),F1e=o(function(t){let e=t[0],r=t[1],n=cs(e)&&Wc(r),i=Wc(e)&&cs(r);return n||i},"isArchitecturePairXY"),$Je=o(function(t){return t!=="LL"&&t!=="RR"&&t!=="TT"&&t!=="BB"},"isValidArchitectureDirectionPair"),mb=o(function(t,e){let r=`${t}${e}`;return $Je(r)?r:void 0},"getArchitectureDirectionPair"),z1e=o(function([t,e],r){let n=r[0],i=r[1];return cs(n)?Wc(i)?[t+(n==="L"?-1:1),e+(i==="T"?1:-1)]:[t+(n==="L"?-1:1),e]:cs(i)?[t+(i==="L"?1:-1),e+(n==="T"?1:-1)]:[t,e+(n==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),G1e=o(function(t){return t==="LT"||t==="TL"?[1,1]:t==="BL"||t==="LB"?[1,-1]:t==="BR"||t==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),$1e=o(function(t){return t.type==="service"},"isArchitectureService"),V1e=o(function(t){return t.type==="junction"},"isArchitectureJunction"),lC=o(t=>t.data(),"edgeData"),If=o(t=>t.data(),"nodeData")});function Ci(t){let e=de().architecture;return e?.[t]?e[t]:U1e[t]}var U1e,nr,VJe,UJe,HJe,YJe,WJe,qJe,XJe,jJe,KJe,QJe,ZJe,JJe,eet,tet,Z0,gb=R(()=>{"use strict";sl();_t();Jk();bi();cC();U1e=mr.architecture,nr=new uf(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:U1e,dataStructures:void 0,elements:{}})),VJe=o(()=>{nr.reset(),vr()},"clear"),UJe=o(function({id:t,icon:e,in:r,title:n,iconText:i}){if(nr.records.registeredIds[t]!==void 0)throw new Error(`The service id [${t}] is already in use by another ${nr.records.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The service [${t}] cannot be placed within itself`);if(nr.records.registeredIds[r]===void 0)throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if(nr.records.registeredIds[r]==="node")throw new Error(`The service [${t}]'s parent is not a group`)}nr.records.registeredIds[t]="node",nr.records.nodes[t]={id:t,type:"service",icon:e,iconText:i,title:n,edges:[],in:r}},"addService"),HJe=o(()=>Object.values(nr.records.nodes).filter($1e),"getServices"),YJe=o(function({id:t,in:e}){nr.records.registeredIds[t]="node",nr.records.nodes[t]={id:t,type:"junction",edges:[],in:e}},"addJunction"),WJe=o(()=>Object.values(nr.records.nodes).filter(V1e),"getJunctions"),qJe=o(()=>Object.values(nr.records.nodes),"getNodes"),XJe=o(t=>nr.records.nodes[t],"getNode"),jJe=o(function({id:t,icon:e,in:r,title:n}){if(nr.records.registeredIds[t]!==void 0)throw new Error(`The group id [${t}] is already in use by another ${nr.records.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The group [${t}] cannot be placed within itself`);if(nr.records.registeredIds[r]===void 0)throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if(nr.records.registeredIds[r]==="node")throw new Error(`The group [${t}]'s parent is not a group`)}nr.records.registeredIds[t]="group",nr.records.groups[t]={id:t,icon:e,title:n,in:r}},"addGroup"),KJe=o(()=>Object.values(nr.records.groups),"getGroups"),QJe=o(function({lhsId:t,rhsId:e,lhsDir:r,rhsDir:n,lhsInto:i,rhsInto:a,lhsGroup:s,rhsGroup:l,title:u}){if(!XB(r))throw new Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${r}`);if(!XB(n))throw new Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${n}`);if(nr.records.nodes[t]===void 0&&nr.records.groups[t]===void 0)throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(nr.records.nodes[e]===void 0&&nr.records.groups[t]===void 0)throw new Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);let h=nr.records.nodes[t].in,f=nr.records.nodes[e].in;if(s&&h&&f&&h==f)throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(l&&h&&f&&h==f)throw new Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let d={lhsId:t,lhsDir:r,lhsInto:i,lhsGroup:s,rhsId:e,rhsDir:n,rhsInto:a,rhsGroup:l,title:u};nr.records.edges.push(d),nr.records.nodes[t]&&nr.records.nodes[e]&&(nr.records.nodes[t].edges.push(nr.records.edges[nr.records.edges.length-1]),nr.records.nodes[e].edges.push(nr.records.edges[nr.records.edges.length-1]))},"addEdge"),ZJe=o(()=>nr.records.edges,"getEdges"),JJe=o(()=>{if(nr.records.dataStructures===void 0){let t=Object.entries(nr.records.nodes).reduce((s,[l,u])=>(s[l]=u.edges.reduce((h,f)=>{if(f.lhsId===l){let d=mb(f.lhsDir,f.rhsDir);d&&(h[d]=f.rhsId)}else{let d=mb(f.rhsDir,f.lhsDir);d&&(h[d]=f.lhsId)}return h},{}),s),{}),e=Object.keys(t)[0],r={[e]:1},n=Object.keys(t).reduce((s,l)=>l===e?s:{...s,[l]:1},{}),i=o(s=>{let l={[s]:[0,0]},u=[s];for(;u.length>0;){let h=u.shift();if(h){r[h]=1,delete n[h];let f=t[h],[d,p]=l[h];Object.entries(f).forEach(([m,g])=>{r[g]||(l[g]=z1e([d,p],m),u.push(g))})}}return l},"BFS"),a=[i(e)];for(;Object.keys(n).length>0;)a.push(i(Object.keys(n)[0]));nr.records.dataStructures={adjList:t,spatialMaps:a}}return nr.records.dataStructures},"getDataStructures"),eet=o((t,e)=>{nr.records.elements[t]=e},"setElementForId"),tet=o(t=>nr.records.elements[t],"getElementById"),Z0={clear:VJe,setDiagramTitle:nn,getDiagramTitle:Xr,setAccTitle:kr,getAccTitle:Ar,setAccDescription:_r,getAccDescription:Lr,addService:UJe,getServices:HJe,addJunction:YJe,getJunctions:WJe,getNodes:qJe,getNode:XJe,addGroup:jJe,getGroups:KJe,addEdge:QJe,getEdges:ZJe,setElementForId:eet,getElementById:tet,getDataStructures:JJe};o(Ci,"getConfigField")});var ret,H1e,Y1e=R(()=>{"use strict";Lg();ut();sx();gb();ret=o((t,e)=>{cf(t,e),t.groups.map(e.addGroup),t.services.map(r=>e.addService({...r,type:"service"})),t.junctions.map(r=>e.addJunction({...r,type:"junction"})),t.edges.map(e.addEdge)},"populateDb"),H1e={parse:o(async t=>{let e=await Fl("architecture",t);V.debug(e),ret(e,Z0)},"parse")}});var net,W1e,q1e=R(()=>{"use strict";net=o(t=>` + .edge { + stroke-width: ${t.archEdgeWidth}; + stroke: ${t.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${t.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${t.archGroupBorderColor}; + stroke-width: ${t.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),W1e=net});var KB=gi((yb,jB)=>{"use strict";o(function(e,r){typeof yb=="object"&&typeof jB=="object"?jB.exports=r():typeof define=="function"&&define.amd?define([],r):typeof yb=="object"?yb.layoutBase=r():e.layoutBase=r()},"webpackUniversalModuleDefinition")(yb,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=28)}([function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(5);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp?(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(p+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(m+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>m?(this.rect.y-=(this.labelHeight-m)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(m+this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h},function(t,e,r){"use strict";var n=r(0);function i(){}o(i,"FDLayoutConstants");for(var a in n)i[a]=n[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=i.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=i},function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(7),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var S=x.source.owner.getEdges().indexOf(x);if(S==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(S,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),S=w.length,T=0;Tv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,S,T,E,_,A=this.nodes,L=A.length,M=0;Mw&&(y=w),vT&&(x=T),bw&&(y=w),vT&&(x=T),b=this.nodes.length){var L=0;v.forEach(function(M){M.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},t.exports=p},function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(6),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):C===D&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===D?f>u?(l[2]=_,l[3]=A,I=!0):(l[2]=E,l[3]=T,I=!0):O===D&&(f>u?(l[2]=S,l[3]=T,I=!0):(l[2]=L,l[3]=A,I=!0)),k&&I)return!1;if(u>f?h>d?(P=this.getCardinalDirection(C,D,4),F=this.getCardinalDirection(O,D,2)):(P=this.getCardinalDirection(-C,D,3),F=this.getCardinalDirection(-O,D,1)):h>d?(P=this.getCardinalDirection(-C,D,1),F=this.getCardinalDirection(-O,D,3)):(P=this.getCardinalDirection(C,D,2),F=this.getCardinalDirection(O,D,4)),!k)switch(P){case 1:$=m,B=u+-w/D,l[0]=B,l[1]=$;break;case 2:B=x,$=h+b*D,l[0]=B,l[1]=$;break;case 3:$=v,B=u+w/D,l[0]=B,l[1]=$;break;case 4:B=y,$=h+-b*D,l[0]=B,l[1]=$;break}if(!I)switch(F){case 1:Y=T,z=f+-N/D,l[2]=z,l[3]=Y;break;case 2:z=L,Y=d+M*D,l[2]=z,l[3]=Y;break;case 3:Y=A,z=f+N/D,l[2]=z,l[3]=Y;break;case 4:z=_,Y=d+-M*D,l[2]=z,l[3]=Y;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,S=void 0,T=void 0,E=void 0,_=void 0,A=void 0,L=void 0;return w=p-f,T=h-d,_=d*f-h*p,S=v-g,E=m-y,A=y*g-m*v,L=w*E-S*T,L===0?null:(x=(T*A-E*_)/L,b=(S*_-w*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l=0){var v=(-m+Math.sqrt(m*m-4*p*g))/(2*p),x=(-m-Math.sqrt(m*m-4*p*g))/(2*p),b=null;return v>=0&&v<=1?[v]:x>=0&&x<=1?[x]:b}else return null},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,t.exports=i},function(t,e,r){"use strict";function n(){}o(n,"IMath"),n.sign=function(i){return i>0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n},function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,r){"use strict";var n=function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i},function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var _=E.getEdges(),x=0;x<_.length;x++){var A=_[x].getOtherEnd(E);if(S.get(E)!=A)if(!b.has(A))w.push(A),S.set(A,E);else{g=!1;break}}}if(!g)m=[];else{var L=[].concat(n(b));m.push(L);for(var x=0;x-1&&T.splice(N,1)}b=new Set,S=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=S.getNeighborsList();L.forEach(function(k){if(y.indexOf(k)<0){var I=v.get(k),C=I-1;C==1&&E.push(k),v.set(k,C)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p},function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n},function(t,e,r){"use strict";var n=r(5);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i},function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mw||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||w>=x[0].length)){for(var S=0;Sh},"_defaultCompareFunction")}]),l}();t.exports=s},function(t,e,r){"use strict";function n(){}o(n,"SVD"),n.svd=function(i){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=i.length,this.n=i[0].length;var a=Math.min(this.m,this.n);this.s=function(it){for(var dt=[];it-- >0;)dt.push(0);return dt}(Math.min(this.m+1,this.n)),this.U=function(it){var dt=o(function lt(It){if(It.length==0)return 0;for(var mt=[],St=0;St0;)dt.push(0);return dt}(this.n),l=function(it){for(var dt=[];it-- >0;)dt.push(0);return dt}(this.m),u=!0,h=!0,f=Math.min(this.m-1,this.n),d=Math.max(0,Math.min(this.n-2,this.m)),p=0;p=0;D--)if(this.s[D]!==0){for(var P=D+1;P=0;X--){if(function(it,dt){return it&&dt}(X0;){var ue=void 0,te=void 0;for(ue=I-2;ue>=-1&&ue!==-1;ue--)if(Math.abs(s[ue])<=ce+se*(Math.abs(this.s[ue])+Math.abs(this.s[ue+1]))){s[ue]=0;break}if(ue===I-2)te=4;else{var De=void 0;for(De=I-1;De>=ue&&De!==ue;De--){var oe=(De!==I?Math.abs(s[De]):0)+(De!==ue+1?Math.abs(s[De-1]):0);if(Math.abs(this.s[De])<=ce+se*oe){this.s[De]=0;break}}De===ue?te=3:De===I-1?te=1:(te=2,ue=De)}switch(ue++,te){case 1:{var ke=s[I-2];s[I-2]=0;for(var Ie=I-2;Ie>=ue;Ie--){var Se=n.hypot(this.s[Ie],ke),Ue=this.s[Ie]/Se,Pe=ke/Se;if(this.s[Ie]=Se,Ie!==ue&&(ke=-Pe*s[Ie-1],s[Ie-1]=Ue*s[Ie-1]),h)for(var _e=0;_e=this.s[ue+1]);){var je=this.s[ue];if(this.s[ue]=this.s[ue+1],this.s[ue+1]=je,h&&ueMath.abs(a)?(s=a/i,s=Math.abs(i)*Math.sqrt(1+s*s)):a!=0?(s=i/a,s=Math.abs(a)*Math.sqrt(1+s*s)):s=0,s},t.exports=n},function(t,e,r){"use strict";var n=function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o(function(e,r){typeof vb=="object"&&typeof QB=="object"?QB.exports=r(KB()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof vb=="object"?vb.coseBase=r(KB()):e.coseBase=r(e.layoutBase)},"webpackUniversalModuleDefinition")(vb,function(t){return(()=>{"use strict";var e={45:(a,s,l)=>{var u={};u.layoutBase=l(551),u.CoSEConstants=l(806),u.CoSEEdge=l(767),u.CoSEGraph=l(880),u.CoSEGraphManager=l(578),u.CoSELayout=l(765),u.CoSENode=l(991),u.ConstraintHandler=l(902),a.exports=u},806:(a,s,l)=>{var u=l(551).FDLayoutConstants;function h(){}o(h,"CoSEConstants");for(var f in u)h[f]=u[f];h.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,h.DEFAULT_RADIAL_SEPARATION=u.DEFAULT_EDGE_LENGTH,h.DEFAULT_COMPONENT_SEPERATION=60,h.TILE=!0,h.TILING_PADDING_VERTICAL=10,h.TILING_PADDING_HORIZONTAL=10,h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0,h.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,h.TREE_REDUCTION_ON_INCREMENTAL=!0,h.PURE_INCREMENTAL=h.DEFAULT_INCREMENTAL,a.exports=h},767:(a,s,l)=>{var u=l(551).FDLayoutEdge;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEEdge"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},880:(a,s,l)=>{var u=l(551).LGraph;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEGraph"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},578:(a,s,l)=>{var u=l(551).LGraphManager;function h(d){u.call(this,d)}o(h,"CoSEGraphManager"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},765:(a,s,l)=>{var u=l(551).FDLayout,h=l(578),f=l(880),d=l(991),p=l(767),m=l(806),g=l(902),y=l(551).FDLayoutConstants,v=l(551).LayoutConstants,x=l(551).Point,b=l(551).PointD,w=l(551).DimensionD,S=l(551).Layout,T=l(551).Integer,E=l(551).IGeometry,_=l(551).LGraph,A=l(551).Transform,L=l(551).LinkedList;function M(){u.call(this),this.toBeTiled={},this.constraints={}}o(M,"CoSELayout"),M.prototype=Object.create(u.prototype);for(var N in u)M[N]=u[N];M.prototype.newGraphManager=function(){var k=new h(this);return this.graphManager=k,k},M.prototype.newGraph=function(k){return new f(null,this.graphManager,k)},M.prototype.newNode=function(k){return new d(this.graphManager,k)},M.prototype.newEdge=function(k){return new p(null,null,k)},M.prototype.initParameters=function(){u.prototype.initParameters.call(this,arguments),this.isSubLayout||(m.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=m.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=m.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=y.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=y.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=y.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},M.prototype.initSpringEmbedder=function(){u.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/y.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},M.prototype.layout=function(){var k=v.DEFAULT_CREATE_BENDS_AS_NEEDED;return k&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},M.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(m.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var I=new Set(this.getAllNodes()),C=this.nodesWithGravity.filter(function(P){return I.has(P)});this.graphManager.setAllNodesToApplyGravitation(C)}}else{var k=this.getFlatForest();if(k.length>0)this.positionNodesRadially(k);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var I=new Set(this.getAllNodes()),C=this.nodesWithGravity.filter(function(O){return I.has(O)});this.graphManager.setAllNodesToApplyGravitation(C),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(g.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),m.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},M.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%y.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var k=new Set(this.getAllNodes()),I=this.nodesWithGravity.filter(function(D){return k.has(D)});this.graphManager.setAllNodesToApplyGravitation(I),this.graphManager.updateBounds(),this.updateGrid(),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var C=!this.isTreeGrowing&&!this.isGrowthFinished,O=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(C,O),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},M.prototype.getPositionsData=function(){for(var k=this.graphManager.getAllNodes(),I={},C=0;C0&&this.updateDisplacements();for(var C=0;C0&&(O.fixedNodeWeight=P)}}if(this.constraints.relativePlacementConstraint){var F=new Map,B=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(J){k.fixedNodesOnHorizontal.add(J),k.fixedNodesOnVertical.add(J)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var $=this.constraints.alignmentConstraint.vertical,C=0;C<$.length;C++)this.dummyToNodeForVerticalAlignment.set("dummy"+C,[]),$[C].forEach(function(Z){F.set(Z,"dummy"+C),k.dummyToNodeForVerticalAlignment.get("dummy"+C).push(Z),k.fixedNodeSet.has(Z)&&k.fixedNodesOnHorizontal.add("dummy"+C)});if(this.constraints.alignmentConstraint.horizontal)for(var z=this.constraints.alignmentConstraint.horizontal,C=0;C=2*J.length/3;q--)Z=Math.floor(Math.random()*(q+1)),H=J[q],J[q]=J[Z],J[Z]=H;return J},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(J){if(J.left){var Z=F.has(J.left)?F.get(J.left):J.left,H=F.has(J.right)?F.get(J.right):J.right;k.nodesInRelativeHorizontal.includes(Z)||(k.nodesInRelativeHorizontal.push(Z),k.nodeToRelativeConstraintMapHorizontal.set(Z,[]),k.dummyToNodeForVerticalAlignment.has(Z)?k.nodeToTempPositionMapHorizontal.set(Z,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(Z)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(Z,k.idToNodeMap.get(Z).getCenterX())),k.nodesInRelativeHorizontal.includes(H)||(k.nodesInRelativeHorizontal.push(H),k.nodeToRelativeConstraintMapHorizontal.set(H,[]),k.dummyToNodeForVerticalAlignment.has(H)?k.nodeToTempPositionMapHorizontal.set(H,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(H)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(H,k.idToNodeMap.get(H).getCenterX())),k.nodeToRelativeConstraintMapHorizontal.get(Z).push({right:H,gap:J.gap}),k.nodeToRelativeConstraintMapHorizontal.get(H).push({left:Z,gap:J.gap})}else{var q=B.has(J.top)?B.get(J.top):J.top,K=B.has(J.bottom)?B.get(J.bottom):J.bottom;k.nodesInRelativeVertical.includes(q)||(k.nodesInRelativeVertical.push(q),k.nodeToRelativeConstraintMapVertical.set(q,[]),k.dummyToNodeForHorizontalAlignment.has(q)?k.nodeToTempPositionMapVertical.set(q,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(q)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(q,k.idToNodeMap.get(q).getCenterY())),k.nodesInRelativeVertical.includes(K)||(k.nodesInRelativeVertical.push(K),k.nodeToRelativeConstraintMapVertical.set(K,[]),k.dummyToNodeForHorizontalAlignment.has(K)?k.nodeToTempPositionMapVertical.set(K,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(K)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(K,k.idToNodeMap.get(K).getCenterY())),k.nodeToRelativeConstraintMapVertical.get(q).push({bottom:K,gap:J.gap}),k.nodeToRelativeConstraintMapVertical.get(K).push({top:q,gap:J.gap})}});else{var Y=new Map,Q=new Map;this.constraints.relativePlacementConstraint.forEach(function(J){if(J.left){var Z=F.has(J.left)?F.get(J.left):J.left,H=F.has(J.right)?F.get(J.right):J.right;Y.has(Z)?Y.get(Z).push(H):Y.set(Z,[H]),Y.has(H)?Y.get(H).push(Z):Y.set(H,[Z])}else{var q=B.has(J.top)?B.get(J.top):J.top,K=B.has(J.bottom)?B.get(J.bottom):J.bottom;Q.has(q)?Q.get(q).push(K):Q.set(q,[K]),Q.has(K)?Q.get(K).push(q):Q.set(K,[q])}});var X=o(function(Z,H){var q=[],K=[],se=new L,ce=new Set,ue=0;return Z.forEach(function(te,De){if(!ce.has(De)){q[ue]=[],K[ue]=!1;var oe=De;for(se.push(oe),ce.add(oe),q[ue].push(oe);se.length!=0;){oe=se.shift(),H.has(oe)&&(K[ue]=!0);var ke=Z.get(oe);ke.forEach(function(Ie){ce.has(Ie)||(se.push(Ie),ce.add(Ie),q[ue].push(Ie))})}ue++}}),{components:q,isFixed:K}},"constructComponents"),ie=X(Y,k.fixedNodesOnHorizontal);this.componentsOnHorizontal=ie.components,this.fixedComponentsOnHorizontal=ie.isFixed;var j=X(Q,k.fixedNodesOnVertical);this.componentsOnVertical=j.components,this.fixedComponentsOnVertical=j.isFixed}}},M.prototype.updateDisplacements=function(){var k=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(j){var J=k.idToNodeMap.get(j.nodeId);J.displacementX=0,J.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var I=this.constraints.alignmentConstraint.vertical,C=0;C1){var B;for(B=0;BO&&(O=Math.floor(F.y)),P=Math.floor(F.x+m.DEFAULT_COMPONENT_SEPERATION)}this.transform(new b(v.WORLD_CENTER_X-F.x/2,v.WORLD_CENTER_Y-F.y/2))},M.radialLayout=function(k,I,C){var O=Math.max(this.maxDiagonalInTree(k),m.DEFAULT_RADIAL_SEPARATION);M.branchRadialLayout(I,null,0,359,0,O);var D=_.calculateBounds(k),P=new A;P.setDeviceOrgX(D.getMinX()),P.setDeviceOrgY(D.getMinY()),P.setWorldOrgX(C.x),P.setWorldOrgY(C.y);for(var F=0;F1;){var q=H[0];H.splice(0,1);var K=X.indexOf(q);K>=0&&X.splice(K,1),J--,ie--}I!=null?Z=(X.indexOf(H[0])+1)%J:Z=0;for(var se=Math.abs(O-C)/ie,ce=Z;j!=ie;ce=++ce%J){var ue=X[ce].getOtherEnd(k);if(ue!=I){var te=(C+j*se)%360,De=(te+se)%360;M.branchRadialLayout(ue,k,te,De,D+P,P),j++}}},M.maxDiagonalInTree=function(k){for(var I=T.MIN_VALUE,C=0;CI&&(I=D)}return I},M.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},M.prototype.groupZeroDegreeMembers=function(){var k=this,I={};this.memberGroups={},this.idToDummyNode={};for(var C=[],O=this.graphManager.getAllNodes(),D=0;D"u"&&(I[B]=[]),I[B]=I[B].concat(P)}Object.keys(I).forEach(function($){if(I[$].length>1){var z="DummyCompound_"+$;k.memberGroups[z]=I[$];var Y=I[$][0].getParent(),Q=new d(k.graphManager);Q.id=z,Q.paddingLeft=Y.paddingLeft||0,Q.paddingRight=Y.paddingRight||0,Q.paddingBottom=Y.paddingBottom||0,Q.paddingTop=Y.paddingTop||0,k.idToDummyNode[z]=Q;var X=k.getGraphManager().add(k.newGraph(),Q),ie=Y.getChild();ie.add(Q);for(var j=0;jD?(O.rect.x-=(O.labelWidth-D)/2,O.setWidth(O.labelWidth),O.labelMarginLeft=(O.labelWidth-D)/2):O.labelPosHorizontal=="right"&&O.setWidth(D+O.labelWidth)),O.labelHeight&&(O.labelPosVertical=="top"?(O.rect.y-=O.labelHeight,O.setHeight(P+O.labelHeight),O.labelMarginTop=O.labelHeight):O.labelPosVertical=="center"&&O.labelHeight>P?(O.rect.y-=(O.labelHeight-P)/2,O.setHeight(O.labelHeight),O.labelMarginTop=(O.labelHeight-P)/2):O.labelPosVertical=="bottom"&&O.setHeight(P+O.labelHeight))}})},M.prototype.repopulateCompounds=function(){for(var k=this.compoundOrder.length-1;k>=0;k--){var I=this.compoundOrder[k],C=I.id,O=I.paddingLeft,D=I.paddingTop,P=I.labelMarginLeft,F=I.labelMarginTop;this.adjustLocations(this.tiledMemberPack[C],I.rect.x,I.rect.y,O,D,P,F)}},M.prototype.repopulateZeroDegreeMembers=function(){var k=this,I=this.tiledZeroDegreePack;Object.keys(I).forEach(function(C){var O=k.idToDummyNode[C],D=O.paddingLeft,P=O.paddingTop,F=O.labelMarginLeft,B=O.labelMarginTop;k.adjustLocations(I[C],O.rect.x,O.rect.y,D,P,F,B)})},M.prototype.getToBeTiled=function(k){var I=k.id;if(this.toBeTiled[I]!=null)return this.toBeTiled[I];var C=k.getChild();if(C==null)return this.toBeTiled[I]=!1,!1;for(var O=C.getNodes(),D=0;D0)return this.toBeTiled[I]=!1,!1;if(P.getChild()==null){this.toBeTiled[P.id]=!1;continue}if(!this.getToBeTiled(P))return this.toBeTiled[I]=!1,!1}return this.toBeTiled[I]=!0,!0},M.prototype.getNodeDegree=function(k){for(var I=k.id,C=k.getEdges(),O=0,D=0;DY&&(Y=X.rect.height)}C+=Y+k.verticalPadding}},M.prototype.tileCompoundMembers=function(k,I){var C=this;this.tiledMemberPack=[],Object.keys(k).forEach(function(O){var D=I[O];if(C.tiledMemberPack[O]=C.tileNodes(k[O],D.paddingLeft+D.paddingRight),D.rect.width=C.tiledMemberPack[O].width,D.rect.height=C.tiledMemberPack[O].height,D.setCenter(C.tiledMemberPack[O].centerX,C.tiledMemberPack[O].centerY),D.labelMarginLeft=0,D.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var P=D.rect.width,F=D.rect.height;D.labelWidth&&(D.labelPosHorizontal=="left"?(D.rect.x-=D.labelWidth,D.setWidth(P+D.labelWidth),D.labelMarginLeft=D.labelWidth):D.labelPosHorizontal=="center"&&D.labelWidth>P?(D.rect.x-=(D.labelWidth-P)/2,D.setWidth(D.labelWidth),D.labelMarginLeft=(D.labelWidth-P)/2):D.labelPosHorizontal=="right"&&D.setWidth(P+D.labelWidth)),D.labelHeight&&(D.labelPosVertical=="top"?(D.rect.y-=D.labelHeight,D.setHeight(F+D.labelHeight),D.labelMarginTop=D.labelHeight):D.labelPosVertical=="center"&&D.labelHeight>F?(D.rect.y-=(D.labelHeight-F)/2,D.setHeight(D.labelHeight),D.labelMarginTop=(D.labelHeight-F)/2):D.labelPosVertical=="bottom"&&D.setHeight(F+D.labelHeight))}})},M.prototype.tileNodes=function(k,I){var C=this.tileNodesByFavoringDim(k,I,!0),O=this.tileNodesByFavoringDim(k,I,!1),D=this.getOrgRatio(C),P=this.getOrgRatio(O),F;return PB&&(B=j.getWidth())});var $=P/D,z=F/D,Y=Math.pow(C-O,2)+4*($+O)*(z+C)*D,Q=(O-C+Math.sqrt(Y))/(2*($+O)),X;I?(X=Math.ceil(Q),X==Q&&X++):X=Math.floor(Q);var ie=X*($+O)-O;return B>ie&&(ie=B),ie+=O*2,ie},M.prototype.tileNodesByFavoringDim=function(k,I,C){var O=m.TILING_PADDING_VERTICAL,D=m.TILING_PADDING_HORIZONTAL,P=m.TILING_COMPARE_BY,F={rows:[],rowWidth:[],rowHeight:[],width:0,height:I,verticalPadding:O,horizontalPadding:D,centerX:0,centerY:0};P&&(F.idealRowWidth=this.calcIdealRowWidth(k,C));var B=o(function(J){return J.rect.width*J.rect.height},"getNodeArea"),$=o(function(J,Z){return B(Z)-B(J)},"areaCompareFcn");k.sort(function(j,J){var Z=$;return F.idealRowWidth?(Z=P,Z(j.id,J.id)):Z(j,J)});for(var z=0,Y=0,Q=0;Q0&&(F+=k.horizontalPadding),k.rowWidth[C]=F,k.width0&&(B+=k.verticalPadding);var $=0;B>k.rowHeight[C]&&($=k.rowHeight[C],k.rowHeight[C]=B,$=k.rowHeight[C]-$),k.height+=$,k.rows[C].push(I)},M.prototype.getShortestRowIndex=function(k){for(var I=-1,C=Number.MAX_VALUE,O=0;OC&&(I=O,C=k.rowWidth[O]);return I},M.prototype.canAddHorizontal=function(k,I,C){if(k.idealRowWidth){var O=k.rows.length-1,D=k.rowWidth[O];return D+I+k.horizontalPadding<=k.idealRowWidth}var P=this.getShortestRowIndex(k);if(P<0)return!0;var F=k.rowWidth[P];if(F+k.horizontalPadding+I<=k.width)return!0;var B=0;k.rowHeight[P]0&&(B=C+k.verticalPadding-k.rowHeight[P]);var $;k.width-F>=I+k.horizontalPadding?$=(k.height+B)/(F+I+k.horizontalPadding):$=(k.height+B)/k.width,B=C+k.verticalPadding;var z;return k.widthP&&I!=C){O.splice(-1,1),k.rows[C].push(D),k.rowWidth[I]=k.rowWidth[I]-P,k.rowWidth[C]=k.rowWidth[C]+P,k.width=k.rowWidth[instance.getLongestRowIndex(k)];for(var F=Number.MIN_VALUE,B=0;BF&&(F=O[B].height);I>0&&(F+=k.verticalPadding);var $=k.rowHeight[I]+k.rowHeight[C];k.rowHeight[I]=F,k.rowHeight[C]0)for(var ie=D;ie<=P;ie++)X[0]+=this.grid[ie][F-1].length+this.grid[ie][F].length-1;if(P0)for(var ie=F;ie<=B;ie++)X[3]+=this.grid[D-1][ie].length+this.grid[D][ie].length-1;for(var j=T.MAX_VALUE,J,Z,H=0;H{var u=l(551).FDLayoutNode,h=l(551).IMath;function f(p,m,g,y){u.call(this,p,m,g,y)}o(f,"CoSENode"),f.prototype=Object.create(u.prototype);for(var d in u)f[d]=u[d];f.prototype.calculateDisplacement=function(){var p=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementX=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementX)),Math.abs(this.displacementY)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementY=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},f.prototype.propogateDisplacementToChildren=function(p,m){for(var g=this.getChild().getNodes(),y,v=0;v{function u(g){if(Array.isArray(g)){for(var y=0,v=Array(g.length);y0){var Je=0;Ye.forEach(function(je){we=="horizontal"?(ye.set(je,x.has(je)?b[x.get(je)]:Ce.get(je)),Je+=ye.get(je)):(ye.set(je,x.has(je)?w[x.get(je)]:Ce.get(je)),Je+=ye.get(je))}),Je=Je/Ye.length,tt.forEach(function(je){Te.has(je)||ye.set(je,Je)})}else{var Ve=0;tt.forEach(function(je){we=="horizontal"?Ve+=x.has(je)?b[x.get(je)]:Ce.get(je):Ve+=x.has(je)?w[x.get(je)]:Ce.get(je)}),Ve=Ve/tt.length,tt.forEach(function(je){ye.set(je,Ve)})}});for(var Ze=o(function(){var Ye=ze.shift(),Je=ae.get(Ye);Je.forEach(function(Ve){if(ye.get(Ve.id)je&&(je=mt),Stkt&&(kt=St)}}catch(Qn){xt=!0,it=Qn}finally{try{!at&&dt.return&&dt.return()}finally{if(xt)throw it}}var gr=(Je+je)/2-(Ve+kt)/2,xn=!0,jt=!1,rn=void 0;try{for(var Er=tt[Symbol.iterator](),Kn;!(xn=(Kn=Er.next()).done);xn=!0){var hn=Kn.value;ye.set(hn,ye.get(hn)+gr)}}catch(Qn){jt=!0,rn=Qn}finally{try{!xn&&Er.return&&Er.return()}finally{if(jt)throw rn}}})}return ye},"findAppropriatePositionForRelativePlacement"),N=o(function(ae){var we=0,Te=0,Ce=0,Ae=0;if(ae.forEach(function(He){He.left?b[x.get(He.left)]-b[x.get(He.right)]>=0?we++:Te++:w[x.get(He.top)]-w[x.get(He.bottom)]>=0?Ce++:Ae++}),we>Te&&Ce>Ae)for(var Ge=0;GeTe)for(var Me=0;MeAe)for(var ye=0;ye1)y.fixedNodeConstraint.forEach(function(ne,ae){O[ae]=[ne.position.x,ne.position.y],D[ae]=[b[x.get(ne.nodeId)],w[x.get(ne.nodeId)]]}),P=!0;else if(y.alignmentConstraint)(function(){var ne=0;if(y.alignmentConstraint.vertical){for(var ae=y.alignmentConstraint.vertical,we=o(function(ye){var He=new Set;ae[ye].forEach(function(gt){He.add(gt)});var ze=new Set([].concat(u(He)).filter(function(gt){return B.has(gt)})),Ze=void 0;ze.size>0?Ze=b[x.get(ze.values().next().value)]:Ze=L(He).x,ae[ye].forEach(function(gt){O[ne]=[Ze,w[x.get(gt)]],D[ne]=[b[x.get(gt)],w[x.get(gt)]],ne++})},"_loop2"),Te=0;Te0?Ze=b[x.get(ze.values().next().value)]:Ze=L(He).y,Ce[ye].forEach(function(gt){O[ne]=[b[x.get(gt)],Ze],D[ne]=[b[x.get(gt)],w[x.get(gt)]],ne++})},"_loop3"),Ge=0;GeQ&&(Q=Y[ie].length,X=ie);if(Q0){var Ue={x:0,y:0};y.fixedNodeConstraint.forEach(function(ne,ae){var we={x:b[x.get(ne.nodeId)],y:w[x.get(ne.nodeId)]},Te=ne.position,Ce=A(Te,we);Ue.x+=Ce.x,Ue.y+=Ce.y}),Ue.x/=y.fixedNodeConstraint.length,Ue.y/=y.fixedNodeConstraint.length,b.forEach(function(ne,ae){b[ae]+=Ue.x}),w.forEach(function(ne,ae){w[ae]+=Ue.y}),y.fixedNodeConstraint.forEach(function(ne){b[x.get(ne.nodeId)]=ne.position.x,w[x.get(ne.nodeId)]=ne.position.y})}if(y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var Pe=y.alignmentConstraint.vertical,_e=o(function(ae){var we=new Set;Pe[ae].forEach(function(Ae){we.add(Ae)});var Te=new Set([].concat(u(we)).filter(function(Ae){return B.has(Ae)})),Ce=void 0;Te.size>0?Ce=b[x.get(Te.values().next().value)]:Ce=L(we).x,we.forEach(function(Ae){B.has(Ae)||(b[x.get(Ae)]=Ce)})},"_loop4"),me=0;me0?Ce=w[x.get(Te.values().next().value)]:Ce=L(we).y,we.forEach(function(Ae){B.has(Ae)||(w[x.get(Ae)]=Ce)})},"_loop5"),ge=0;ge{a.exports=t}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(45);return i})()})});var X1e=gi((xb,JB)=>{"use strict";o(function(e,r){typeof xb=="object"&&typeof JB=="object"?JB.exports=r(ZB()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof xb=="object"?xb.cytoscapeFcose=r(ZB()):e.cytoscapeFcose=r(e.coseBase)},"webpackUniversalModuleDefinition")(xb,function(t){return(()=>{"use strict";var e={658:a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var l=arguments.length,u=Array(l>1?l-1:0),h=1;h{var u=function(){function d(p,m){var g=[],y=!0,v=!1,x=void 0;try{for(var b=p[Symbol.iterator](),w;!(y=(w=b.next()).done)&&(g.push(w.value),!(m&&g.length===m));y=!0);}catch(S){v=!0,x=S}finally{try{!y&&b.return&&b.return()}finally{if(v)throw x}}return g}return o(d,"sliceIterator"),function(p,m){if(Array.isArray(p))return p;if(Symbol.iterator in Object(p))return d(p,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=l(140).layoutBase.LinkedList,f={};f.getTopMostNodes=function(d){for(var p={},m=0;m0&&P.merge(z)});for(var F=0;F1){w=x[0],S=w.connectedEdges().length,x.forEach(function(D){D.connectedEdges().length0&&g.set("dummy"+(g.size+1),_),A},f.relocateComponent=function(d,p,m){if(!m.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(m.quality=="draft"){var b=!0,w=!1,S=void 0;try{for(var T=p.nodeIndexes[Symbol.iterator](),E;!(b=(E=T.next()).done);b=!0){var _=E.value,A=u(_,2),L=A[0],M=A[1],N=m.cy.getElementById(L);if(N){var k=N.boundingBox(),I=p.xCoords[M]-k.w/2,C=p.xCoords[M]+k.w/2,O=p.yCoords[M]-k.h/2,D=p.yCoords[M]+k.h/2;Iy&&(y=C),Ox&&(x=D)}}}catch(z){w=!0,S=z}finally{try{!b&&T.return&&T.return()}finally{if(w)throw S}}var P=d.x-(y+g)/2,F=d.y-(x+v)/2;p.xCoords=p.xCoords.map(function(z){return z+P}),p.yCoords=p.yCoords.map(function(z){return z+F})}else{Object.keys(p).forEach(function(z){var Y=p[z],Q=Y.getRect().x,X=Y.getRect().x+Y.getRect().width,ie=Y.getRect().y,j=Y.getRect().y+Y.getRect().height;Qy&&(y=X),iex&&(x=j)});var B=d.x-(y+g)/2,$=d.y-(x+v)/2;Object.keys(p).forEach(function(z){var Y=p[z];Y.setCenter(Y.getCenterX()+B,Y.getCenterY()+$)})}}},f.calcBoundingBox=function(d,p,m,g){for(var y=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,x=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,w=void 0,S=void 0,T=void 0,E=void 0,_=d.descendants().not(":parent"),A=_.length,L=0;Lw&&(y=w),vT&&(x=T),b{var u=l(548),h=l(140).CoSELayout,f=l(140).CoSENode,d=l(140).layoutBase.PointD,p=l(140).layoutBase.DimensionD,m=l(140).layoutBase.LayoutConstants,g=l(140).layoutBase.FDLayoutConstants,y=l(140).CoSEConstants,v=o(function(b,w){var S=b.cy,T=b.eles,E=T.nodes(),_=T.edges(),A=void 0,L=void 0,M=void 0,N={};b.randomize&&(A=w.nodeIndexes,L=w.xCoords,M=w.yCoords);var k=o(function(z){return typeof z=="function"},"isFn"),I=o(function(z,Y){return k(z)?z(Y):z},"optFn"),C=u.calcParentsWithoutChildren(S,T),O=o(function $(z,Y,Q,X){for(var ie=Y.length,j=0;j0){var se=void 0;se=Q.getGraphManager().add(Q.newGraph(),H),$(se,Z,Q,X)}}},"processChildrenList"),D=o(function(z,Y,Q){for(var X=0,ie=0,j=0;j0?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=X/ie:k(b.idealEdgeLength)?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,y.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,y.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},"processEdges"),P=o(function(z,Y){Y.fixedNodeConstraint&&(z.constraints.fixedNodeConstraint=Y.fixedNodeConstraint),Y.alignmentConstraint&&(z.constraints.alignmentConstraint=Y.alignmentConstraint),Y.relativePlacementConstraint&&(z.constraints.relativePlacementConstraint=Y.relativePlacementConstraint)},"processConstraints");b.nestingFactor!=null&&(y.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(y.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(y.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(y.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(y.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var F=new h,B=F.newGraphManager();return O(B.addRoot(),u.getTopMostNodes(E),F,b),D(F,B,_),P(F,b),F.runLayout(),N},"coseLayout");a.exports={coseLayout:v}},212:(a,s,l)=>{var u=function(){function b(w,S){for(var T=0;T0)if(D){var B=d.getTopMostNodes(T.eles.nodes());if(k=d.connectComponents(E,T.eles,B),k.forEach(function(oe){var ke=oe.boundingBox();I.push({x:ke.x1+ke.w/2,y:ke.y1+ke.h/2})}),T.randomize&&k.forEach(function(oe){T.eles=oe,A.push(m(T))}),T.quality=="default"||T.quality=="proof"){var $=E.collection();if(T.tile){var z=new Map,Y=[],Q=[],X=0,ie={nodeIndexes:z,xCoords:Y,yCoords:Q},j=[];if(k.forEach(function(oe,ke){oe.edges().length==0&&(oe.nodes().forEach(function(Ie,Se){$.merge(oe.nodes()[Se]),Ie.isParent()||(ie.nodeIndexes.set(oe.nodes()[Se].id(),X++),ie.xCoords.push(oe.nodes()[0].position().x),ie.yCoords.push(oe.nodes()[0].position().y))}),j.push(ke))}),$.length>1){var J=$.boundingBox();I.push({x:J.x1+J.w/2,y:J.y1+J.h/2}),k.push($),A.push(ie);for(var Z=j.length-1;Z>=0;Z--)k.splice(j[Z],1),A.splice(j[Z],1),I.splice(j[Z],1)}}k.forEach(function(oe,ke){T.eles=oe,N.push(y(T,A[ke])),d.relocateComponent(I[ke],N[ke],T)})}else k.forEach(function(oe,ke){d.relocateComponent(I[ke],A[ke],T)});var H=new Set;if(k.length>1){var q=[],K=_.filter(function(oe){return oe.css("display")=="none"});k.forEach(function(oe,ke){var Ie=void 0;if(T.quality=="draft"&&(Ie=A[ke].nodeIndexes),oe.nodes().not(K).length>0){var Se={};Se.edges=[],Se.nodes=[];var Ue=void 0;oe.nodes().not(K).forEach(function(Pe){if(T.quality=="draft")if(!Pe.isParent())Ue=Ie.get(Pe.id()),Se.nodes.push({x:A[ke].xCoords[Ue]-Pe.boundingbox().w/2,y:A[ke].yCoords[Ue]-Pe.boundingbox().h/2,width:Pe.boundingbox().w,height:Pe.boundingbox().h});else{var _e=d.calcBoundingBox(Pe,A[ke].xCoords,A[ke].yCoords,Ie);Se.nodes.push({x:_e.topLeftX,y:_e.topLeftY,width:_e.width,height:_e.height})}else N[ke][Pe.id()]&&Se.nodes.push({x:N[ke][Pe.id()].getLeft(),y:N[ke][Pe.id()].getTop(),width:N[ke][Pe.id()].getWidth(),height:N[ke][Pe.id()].getHeight()})}),oe.edges().forEach(function(Pe){var _e=Pe.source(),me=Pe.target();if(_e.css("display")!="none"&&me.css("display")!="none")if(T.quality=="draft"){var W=Ie.get(_e.id()),fe=Ie.get(me.id()),ge=[],re=[];if(_e.isParent()){var he=d.calcBoundingBox(_e,A[ke].xCoords,A[ke].yCoords,Ie);ge.push(he.topLeftX+he.width/2),ge.push(he.topLeftY+he.height/2)}else ge.push(A[ke].xCoords[W]),ge.push(A[ke].yCoords[W]);if(me.isParent()){var ne=d.calcBoundingBox(me,A[ke].xCoords,A[ke].yCoords,Ie);re.push(ne.topLeftX+ne.width/2),re.push(ne.topLeftY+ne.height/2)}else re.push(A[ke].xCoords[fe]),re.push(A[ke].yCoords[fe]);Se.edges.push({startX:ge[0],startY:ge[1],endX:re[0],endY:re[1]})}else N[ke][_e.id()]&&N[ke][me.id()]&&Se.edges.push({startX:N[ke][_e.id()].getCenterX(),startY:N[ke][_e.id()].getCenterY(),endX:N[ke][me.id()].getCenterX(),endY:N[ke][me.id()].getCenterY()})}),Se.nodes.length>0&&(q.push(Se),H.add(ke))}});var se=O.packComponents(q,T.randomize).shifts;if(T.quality=="draft")A.forEach(function(oe,ke){var Ie=oe.xCoords.map(function(Ue){return Ue+se[ke].dx}),Se=oe.yCoords.map(function(Ue){return Ue+se[ke].dy});oe.xCoords=Ie,oe.yCoords=Se});else{var ce=0;H.forEach(function(oe){Object.keys(N[oe]).forEach(function(ke){var Ie=N[oe][ke];Ie.setCenter(Ie.getCenterX()+se[ce].dx,Ie.getCenterY()+se[ce].dy)}),ce++})}}}else{var P=T.eles.boundingBox();if(I.push({x:P.x1+P.w/2,y:P.y1+P.h/2}),T.randomize){var F=m(T);A.push(F)}T.quality=="default"||T.quality=="proof"?(N.push(y(T,A[0])),d.relocateComponent(I[0],N[0],T)):d.relocateComponent(I[0],A[0],T)}var ue=o(function(ke,Ie){if(T.quality=="default"||T.quality=="proof"){typeof ke=="number"&&(ke=Ie);var Se=void 0,Ue=void 0,Pe=ke.data("id");return N.forEach(function(me){Pe in me&&(Se={x:me[Pe].getRect().getCenterX(),y:me[Pe].getRect().getCenterY()},Ue=me[Pe])}),T.nodeDimensionsIncludeLabels&&(Ue.labelWidth&&(Ue.labelPosHorizontal=="left"?Se.x+=Ue.labelWidth/2:Ue.labelPosHorizontal=="right"&&(Se.x-=Ue.labelWidth/2)),Ue.labelHeight&&(Ue.labelPosVertical=="top"?Se.y+=Ue.labelHeight/2:Ue.labelPosVertical=="bottom"&&(Se.y-=Ue.labelHeight/2))),Se==null&&(Se={x:ke.position("x"),y:ke.position("y")}),{x:Se.x,y:Se.y}}else{var _e=void 0;return A.forEach(function(me){var W=me.nodeIndexes.get(ke.id());W!=null&&(_e={x:me.xCoords[W],y:me.yCoords[W]})}),_e==null&&(_e={x:ke.position("x"),y:ke.position("y")}),{x:_e.x,y:_e.y}}},"getPositions");if(T.quality=="default"||T.quality=="proof"||T.randomize){var te=d.calcParentsWithoutChildren(E,_),De=_.filter(function(oe){return oe.css("display")=="none"});T.eles=_.not(De),_.nodes().not(":parent").not(De).layoutPositions(S,T,ue),te.length>0&&te.forEach(function(oe){oe.position(ue(oe))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b}();a.exports=x},657:(a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,f=l(140).layoutBase.SVD,d=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,w=new Map,S=new Map,T=[],E=[],_=[],A=[],L=[],M=[],N=[],k=[],I=void 0,C=void 0,O=1e8,D=1e-9,P=m.piTol,F=m.samplingType,B=m.nodeSeparation,$=void 0,z=o(function(){for(var we=0,Te=0,Ce=!1;Te<$;){we=Math.floor(Math.random()*C),Ce=!1;for(var Ae=0;Ae=Ge;){ye=Ae[Ge++];for(var tt=T[ye],Ye=0;YeZe&&(Ze=L[Ve],gt=Ve)}return gt},"BFS"),Q=o(function(we){var Te=void 0;if(we){Te=Math.floor(Math.random()*C),I=Te;for(var Ae=0;Ae=1)break;Ze=ze}for(var tt=0;tt=1)break;Ze=ze}for(var Je=0;Je0&&(Te.isParent()?T[we].push(S.get(Te.id())):T[we].push(Te.id()))})});var te=o(function(we){var Te=w.get(we),Ce=void 0;b.get(we).forEach(function(Ae){g.getElementById(Ae).isParent()?Ce=S.get(Ae):Ce=Ae,T[Te].push(Ce),T[w.get(Ce)].push(we)})},"_loop"),De=!0,oe=!1,ke=void 0;try{for(var Ie=b.keys()[Symbol.iterator](),Se;!(De=(Se=Ie.next()).done);De=!0){var Ue=Se.value;te(Ue)}}catch(ae){oe=!0,ke=ae}finally{try{!De&&Ie.return&&Ie.return()}finally{if(oe)throw ke}}C=w.size;var Pe=void 0;if(C>2){$=C{var u=l(212),h=o(function(d){d&&d("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h},140:a=>{a.exports=t}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(579);return i})()})});var T1,J0,eF=R(()=>{"use strict";V1();T1=o(t=>`${t}`,"wrapIcon"),J0={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:T1('')},server:{body:T1('')},disk:{body:T1('')},internet:{body:T1('')},cloud:{body:T1('')},unknown:FC,blank:{body:T1("")}}}});var j1e,K1e,Q1e,Z1e,J1e=R(()=>{"use strict";V1();_t();Al();gb();eF();cC();j1e=o(async function(t,e){let r=Ci("padding"),n=Ci("iconSize"),i=n/2,a=n/6,s=a/2;await Promise.all(e.edges().map(async l=>{let{source:u,sourceDir:h,sourceArrow:f,sourceGroup:d,target:p,targetDir:m,targetArrow:g,targetGroup:y,label:v}=lC(l),{x,y:b}=l[0].sourceEndpoint(),{x:w,y:S}=l[0].midpoint(),{x:T,y:E}=l[0].targetEndpoint(),_=r+4;if(d&&(cs(h)?x+=h==="L"?-_:_:b+=h==="T"?-_:_+18),y&&(cs(m)?T+=m==="L"?-_:_:E+=m==="T"?-_:_+18),!d&&Z0.getNode(u)?.type==="junction"&&(cs(h)?x+=h==="L"?i:-i:b+=h==="T"?i:-i),!y&&Z0.getNode(p)?.type==="junction"&&(cs(m)?T+=m==="L"?i:-i:E+=m==="T"?i:-i),l[0]._private.rscratch){let A=t.insert("g");if(A.insert("path").attr("d",`M ${x},${b} L ${w},${S} L${T},${E} `).attr("class","edge"),f){let L=cs(h)?pb[h](x,a):x-s,M=Wc(h)?pb[h](b,a):b-s;A.insert("polygon").attr("points",qB[h](a)).attr("transform",`translate(${L},${M})`).attr("class","arrow")}if(g){let L=cs(m)?pb[m](T,a):T-s,M=Wc(m)?pb[m](E,a):E-s;A.insert("polygon").attr("points",qB[m](a)).attr("transform",`translate(${L},${M})`).attr("class","arrow")}if(v){let L=oC(h,m)?"XY":cs(h)?"X":"Y",M=0;L==="X"?M=Math.abs(x-T):L==="Y"?M=Math.abs(b-E)/1.5:M=Math.abs(x-T)/2;let N=A.append("g");if(await ta(N,v,{useHtmlLabels:!1,width:M,classes:"architecture-service-label"},de()),N.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),L==="X")N.attr("transform","translate("+w+", "+S+")");else if(L==="Y")N.attr("transform","translate("+w+", "+S+") rotate(-90)");else if(L==="XY"){let k=mb(h,m);if(k&&F1e(k)){let I=N.node().getBoundingClientRect(),[C,O]=G1e(k);N.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*C*O*45})`);let D=N.node().getBoundingClientRect();N.attr("transform",` + translate(${w}, ${S-I.height/2}) + translate(${C*D.width/2}, ${O*D.height/2}) + rotate(${-1*C*O*45}, 0, ${I.height/2}) + `)}}}}}))},"drawEdges"),K1e=o(async function(t,e){let n=Ci("padding")*.75,i=Ci("fontSize"),s=Ci("iconSize")/2;await Promise.all(e.nodes().map(async l=>{let u=If(l);if(u.type==="group"){let{h,w:f,x1:d,y1:p}=l.boundingBox();t.append("rect").attr("x",d+s).attr("y",p+s).attr("width",f).attr("height",h).attr("class","node-bkg");let m=t.append("g"),g=d,y=p;if(u.icon){let v=m.append("g");v.html(`${await zb(u.icon,{height:n,width:n,fallbackPrefix:J0.prefix})}`),v.attr("transform","translate("+(g+s+1)+", "+(y+s+1)+")"),g+=n,y+=i/2-1-2}if(u.label){let v=m.append("g");await ta(v,u.label,{useHtmlLabels:!1,width:f,classes:"architecture-service-label"},de()),v.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),v.attr("transform","translate("+(g+s+4)+", "+(y+s+2)+")")}}}))},"drawGroups"),Q1e=o(async function(t,e,r){for(let n of r){let i=e.append("g"),a=Ci("iconSize");if(n.title){let h=i.append("g");await ta(h,n.title,{useHtmlLabels:!1,width:a*1.5,classes:"architecture-service-label"},de()),h.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),h.attr("transform","translate("+a/2+", "+a+")")}let s=i.append("g");if(n.icon)s.html(`${await zb(n.icon,{height:a,width:a,fallbackPrefix:J0.prefix})}`);else if(n.iconText){s.html(`${await zb("blank",{height:a,width:a,fallbackPrefix:J0.prefix})}`);let d=s.append("g").append("foreignObject").attr("width",a).attr("height",a).append("div").attr("class","node-icon-text").attr("style",`height: ${a}px;`).append("div").html(n.iconText),p=parseInt(window.getComputedStyle(d.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;d.attr("style",`-webkit-line-clamp: ${Math.floor((a-2)/p)};`)}else s.append("path").attr("class","node-bkg").attr("id","node-"+n.id).attr("d",`M0 ${a} v${-a} q0,-5 5,-5 h${a} q5,0 5,5 v${a} H0 Z`);i.attr("class","architecture-service");let{width:l,height:u}=i._groups[0][0].getBBox();n.width=l,n.height=u,t.setElementForId(n.id,i)}return 0},"drawServices"),Z1e=o(function(t,e,r){r.forEach(n=>{let i=e.append("g"),a=Ci("iconSize");i.append("g").append("rect").attr("id","node-"+n.id).attr("fill-opacity","0").attr("width",a).attr("height",a),i.attr("class","architecture-junction");let{width:l,height:u}=i._groups[0][0].getBBox();i.width=l,i.height=u,t.setElementForId(n.id,i)})},"drawJunctions")});function iet(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"service",id:r.id,icon:r.icon,label:r.title,parent:r.in,width:Ci("iconSize"),height:Ci("iconSize")},classes:"node-service"})})}function aet(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"junction",id:r.id,parent:r.in,width:Ci("iconSize"),height:Ci("iconSize")},classes:"node-junction"})})}function set(t,e){e.nodes().map(r=>{let n=If(r);if(n.type==="group")return;n.x=r.position().x,n.y=r.position().y,t.getElementById(n.id).attr("transform","translate("+(n.x||0)+","+(n.y||0)+")")})}function oet(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function cet(t,e){t.forEach(r=>{let{lhsId:n,rhsId:i,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:f,title:d}=r,p=oC(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${n}-${i}`,label:d,source:n,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:i,targetDir:h,targetArrow:l,targetGroup:f,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};e.add({group:"edges",data:m,classes:p})})}function uet(t){let e=t.map(i=>{let a={},s={};return Object.entries(i).forEach(([l,[u,h]])=>{a[h]||(a[h]=[]),s[u]||(s[u]=[]),a[h].push(l),s[u].push(l)}),{horiz:Object.values(a).filter(l=>l.length>1),vert:Object.values(s).filter(l=>l.length>1)}}),[r,n]=e.reduce(([i,a],{horiz:s,vert:l})=>[[...i,...s],[...a,...l]],[[],[]]);return{horizontal:r,vertical:n}}function het(t){let e=[],r=o(i=>`${i[0]},${i[1]}`,"posToStr"),n=o(i=>i.split(",").map(a=>parseInt(a)),"strToPos");return t.forEach(i=>{let a=Object.fromEntries(Object.entries(i).map(([h,f])=>[r(f),h])),s=[r([0,0])],l={},u={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;s.length>0;){let h=s.shift();if(h){l[h]=1;let f=a[h];if(f){let d=n(h);Object.entries(u).forEach(([p,m])=>{let g=r([d[0]+m[0],d[1]+m[1]]),y=a[g];y&&!l[g]&&(s.push(g),e.push({[WB[p]]:y,[WB[B1e(p)]]:f,gap:1.5*Ci("iconSize")}))})}}}}),e}function fet(t,e,r,n,{spatialMaps:i}){return new Promise(a=>{let s=$e("body").append("div").attr("id","cy").attr("style","display:none"),l=rl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${Ci("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${Ci("padding")}px`}}]});s.remove(),oet(r,l),iet(t,l),aet(e,l),cet(n,l);let u=uet(i),h=het(i),f=l.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(d){let[p,m]=d.connectedNodes(),{parent:g}=If(p),{parent:y}=If(m);return g===y?1.5*Ci("iconSize"):.5*Ci("iconSize")},edgeElasticity(d){let[p,m]=d.connectedNodes(),{parent:g}=If(p),{parent:y}=If(m);return g===y?.45:.001},alignmentConstraint:u,relativePlacementConstraint:h});f.one("layoutstop",()=>{function d(p,m,g,y){let v,x,{x:b,y:w}=p,{x:S,y:T}=m;x=(y-w+(b-g)*(w-T)/(b-S))/Math.sqrt(1+Math.pow((w-T)/(b-S),2)),v=Math.sqrt(Math.pow(y-w,2)+Math.pow(g-b,2)-Math.pow(x,2));let E=Math.sqrt(Math.pow(S-b,2)+Math.pow(T-w,2));v=v/E;let _=(S-b)*(y-w)-(T-w)*(g-b);switch(!0){case _>=0:_=1;break;case _<0:_=-1;break}let A=(S-b)*(g-b)+(T-w)*(y-w);switch(!0){case A>=0:A=1;break;case A<0:A=-1;break}return x=Math.abs(x)*_,v=v*A,{distances:x,weights:v}}o(d,"getSegmentWeights"),l.startBatch();for(let p of Object.values(l.edges()))if(p.data?.()){let{x:m,y:g}=p.source().position(),{x:y,y:v}=p.target().position();if(m!==y&&g!==v){let x=p.sourceEndpoint(),b=p.targetEndpoint(),{sourceDir:w}=lC(p),[S,T]=Wc(w)?[x.x,b.y]:[b.x,x.y],{weights:E,distances:_}=d(x,b,S,T);p.style("segment-distances",_),p.style("segment-weights",E)}}l.endBatch(),f.run()}),f.run(),l.ready(d=>{V.info("Ready",d),a(l)})})}var eye,det,tye,rye=R(()=>{"use strict";V1();vB();eye=Xi(X1e(),1);Zt();ut();pf();Yn();gb();eF();cC();J1e();Fb([{name:J0.prefix,icons:J0}]);rl.use(eye.default);o(iet,"addServices");o(aet,"addJunctions");o(set,"positionNodes");o(oet,"addGroups");o(cet,"addEdges");o(uet,"getAlignments");o(het,"getRelativeConstraints");o(fet,"layoutArchitecture");det=o(async(t,e,r,n)=>{let i=n.db,a=i.getServices(),s=i.getJunctions(),l=i.getGroups(),u=i.getEdges(),h=i.getDataStructures(),f=Ps(e),d=f.append("g");d.attr("class","architecture-edges");let p=f.append("g");p.attr("class","architecture-services");let m=f.append("g");m.attr("class","architecture-groups"),await Q1e(i,p,a),Z1e(i,p,s);let g=await fet(a,s,l,u,h);await j1e(d,g),await K1e(m,g),set(i,g),Lo(void 0,f,Ci("padding"),Ci("useMaxWidth"))},"draw"),tye={draw:det}});var nye={};hr(nye,{diagram:()=>pet});var pet,iye=R(()=>{"use strict";Y1e();gb();q1e();rye();pet={parser:H1e,db:Z0,renderer:tye,styles:W1e}});var knt={};hr(knt,{default:()=>Tnt});V1();zC();Hf();var BX="c4",mCe=o(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),gCe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(PX(),OX));return{id:BX,diagram:t}},"loader"),yCe={id:BX,detector:mCe,loader:gCe},FX=yCe;var Zre="flowchart",SNe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-wrapper"||e?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(t),"detector"),ANe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(uT(),cT));return{id:Zre,diagram:t}},"loader"),_Ne={id:Zre,detector:SNe,loader:ANe},Jre=_Ne;var ene="flowchart-v2",LNe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-d3"?!1:(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)),"detector"),DNe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(uT(),cT));return{id:ene,diagram:t}},"loader"),RNe={id:ene,detector:LNe,loader:DNe},tne=RNe;var Dne="er",sMe=o(t=>/^\s*erDiagram/.test(t),"detector"),oMe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Lne(),_ne));return{id:Dne,diagram:t}},"loader"),lMe={id:Dne,detector:sMe,loader:oMe},Rne=lMe;var $le="gitGraph",NBe=o(t=>/^\s*gitGraph/.test(t),"detector"),MBe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Gle(),zle));return{id:$le,diagram:t}},"loader"),IBe={id:$le,detector:NBe,loader:MBe},Vle=IBe;var vce="gantt",wFe=o(t=>/^\s*gantt/.test(t),"detector"),TFe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(yce(),gce));return{id:vce,diagram:t}},"loader"),kFe={id:vce,detector:wFe,loader:TFe},xce=kFe;var _ce="info",LFe=o(t=>/^\s*info/.test(t),"detector"),DFe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Ace(),Sce));return{id:_ce,diagram:t}},"loader"),Lce={id:_ce,detector:LFe,loader:DFe};var zce="pie",UFe=o(t=>/^\s*pie/.test(t),"detector"),HFe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Fce(),Bce));return{id:zce,diagram:t}},"loader"),Gce={id:zce,detector:UFe,loader:HFe};var Jce="quadrantChart",lze=o(t=>/^\s*quadrantChart/.test(t),"detector"),cze=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Zce(),Qce));return{id:Jce,diagram:t}},"loader"),uze={id:Jce,detector:lze,loader:cze},eue=uze;var Aue="xychart",Sze=o(t=>/^\s*xychart-beta/.test(t),"detector"),Aze=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Sue(),Cue));return{id:Aue,diagram:t}},"loader"),_ze={id:Aue,detector:Sze,loader:Aze},_ue=_ze;var Hue="requirement",rGe=o(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),nGe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Uue(),Vue));return{id:Hue,diagram:t}},"loader"),iGe={id:Hue,detector:rGe,loader:nGe},Yue=iGe;var vhe="sequence",o$e=o(t=>/^\s*sequenceDiagram/.test(t),"detector"),l$e=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(yhe(),ghe));return{id:vhe,diagram:t}},"loader"),c$e={id:vhe,detector:o$e,loader:l$e},xhe=c$e;var Ihe="class",U$e=o((t,e)=>e?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t),"detector"),H$e=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Mhe(),Nhe));return{id:Ihe,diagram:t}},"loader"),Y$e={id:Ihe,detector:U$e,loader:H$e},Ohe=Y$e;var cfe="classDiagram",vVe=o((t,e)=>/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t),"detector"),xVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(lfe(),ofe));return{id:cfe,diagram:t}},"loader"),bVe={id:cfe,detector:vVe,loader:xVe},ufe=bVe;var tde="state",mUe=o((t,e)=>e?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t),"detector"),gUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(ede(),Jfe));return{id:tde,diagram:t}},"loader"),yUe={id:tde,detector:mUe,loader:gUe},rde=yUe;var ade="stateDiagram",xUe=o((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"),"detector"),bUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(ide(),nde));return{id:ade,diagram:t}},"loader"),wUe={id:ade,detector:xUe,loader:bUe},sde=wUe;var Tde="journey",VUe=o(t=>/^\s*journey/.test(t),"detector"),UUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(wde(),bde));return{id:Tde,diagram:t}},"loader"),HUe={id:Tde,detector:VUe,loader:UUe},kde=HUe;ut();pf();Yn();var YUe=o((t,e,r)=>{V.debug(`rendering svg for syntax error +`);let n=Ps(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Sr(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),fP={draw:YUe},Ede=fP;var WUe={db:{},renderer:fP,parser:{parse:o(()=>{},"parse")}},Cde=WUe;var Sde="flowchart-elk",qUe=o((t,e={})=>/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&e?.flowchart?.defaultRenderer==="elk"?(e.layout="elk",!0):!1,"detector"),XUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(uT(),cT));return{id:Sde,diagram:t}},"loader"),jUe={id:Sde,detector:qUe,loader:XUe},Ade=jUe;var Jde="timeline",pHe=o(t=>/^\s*timeline/.test(t),"detector"),mHe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Zde(),Qde));return{id:Jde,diagram:t}},"loader"),gHe={id:Jde,detector:pHe,loader:mHe},e0e=gHe;var vge="mindmap",TZe=o(t=>/^\s*mindmap/.test(t),"detector"),kZe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(yge(),gge));return{id:vge,diagram:t}},"loader"),EZe={id:vge,detector:TZe,loader:kZe},xge=EZe;var Zge="sankey",WZe=o(t=>/^\s*sankey-beta/.test(t),"detector"),qZe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Qge(),Kge));return{id:Zge,diagram:t}},"loader"),XZe={id:Zge,detector:WZe,loader:qZe},Jge=XZe;var c1e="packet",oJe=o(t=>/^\s*packet-beta/.test(t),"detector"),lJe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(l1e(),o1e));return{id:c1e,diagram:t}},"loader"),u1e={id:c1e,detector:oJe,loader:lJe};var O1e="block",FJe=o(t=>/^\s*block-beta/.test(t),"detector"),zJe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(I1e(),M1e));return{id:O1e,diagram:t}},"loader"),GJe={id:O1e,detector:FJe,loader:zJe},P1e=GJe;var aye="architecture",met=o(t=>/^\s*architecture/.test(t),"detector"),get=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(iye(),nye));return{id:aye,diagram:t}},"loader"),yet={id:aye,detector:met,loader:get},sye=yet;Hf();_t();var oye=!1,k1=o(()=>{oye||(oye=!0,Jf("error",Cde,t=>t.toLowerCase().trim()==="error"),Jf("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:o(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),Ub(FX,ufe,Ohe,Rne,xce,Lce,Gce,Yue,xhe,Ade,tne,Jre,xge,e0e,Vle,sde,rde,kde,eue,Jge,u1e,_ue,P1e,sye))},"addDiagrams");ut();Hf();_t();var lye=o(async()=>{V.debug("Loading registered diagrams");let e=(await Promise.allSettled(Object.entries(Uf).map(async([r,{detector:n,loader:i}])=>{if(i)try{cy(r)}catch{try{let{diagram:a,id:s}=await i();Jf(s,a,n)}catch(a){throw V.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Uf[r],a}}}))).filter(r=>r.status==="rejected");if(e.length>0){V.error(`Failed to load ${e.length} external diagrams`);for(let r of e)V.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams");ut();Zt();var uC="comm",hC="rule",fC="decl";var cye="@import";var uye="@keyframes";var hye="@layer";var tF=Math.abs,bb=String.fromCharCode;function dC(t){return t.trim()}o(dC,"trim");function wb(t,e,r){return t.replace(e,r)}o(wb,"replace");function fye(t,e,r){return t.indexOf(e,r)}o(fye,"indexof");function ep(t,e){return t.charCodeAt(e)|0}o(ep,"charat");function Of(t,e,r){return t.slice(e,r)}o(Of,"substr");function wo(t){return t.length}o(wo,"strlen");function dye(t){return t.length}o(dye,"sizeof");function E1(t,e){return e.push(t),t}o(E1,"append");var pC=1,C1=1,pye=0,nl=0,Si=0,A1="";function mC(t,e,r,n,i,a,s,l){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:pC,column:C1,length:s,return:"",siblings:l}}o(mC,"node");function mye(){return Si}o(mye,"char");function gye(){return Si=nl>0?ep(A1,--nl):0,C1--,Si===10&&(C1=1,pC--),Si}o(gye,"prev");function il(){return Si=nl2||S1(Si)>3?"":" "}o(xye,"whitespace");function bye(t,e){for(;--e&&il()&&!(Si<48||Si>102||Si>57&&Si<65||Si>70&&Si<97););return gC(t,Tb()+(e<6&&th()==32&&il()==32))}o(bye,"escaping");function rF(t){for(;il();)switch(Si){case t:return nl;case 34:case 39:t!==34&&t!==39&&rF(Si);break;case 40:t===41&&rF(t);break;case 92:il();break}return nl}o(rF,"delimiter");function wye(t,e){for(;il()&&t+Si!==57;)if(t+Si===84&&th()===47)break;return"/*"+gC(e,nl-1)+"*"+bb(t===47?t:il())}o(wye,"commenter");function Tye(t){for(;!S1(th());)il();return gC(t,nl)}o(Tye,"identifier");function Cye(t){return vye(vC("",null,null,null,[""],t=yye(t),0,[0],t))}o(Cye,"compile");function vC(t,e,r,n,i,a,s,l,u){for(var h=0,f=0,d=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,w="",S=i,T=a,E=n,_=w;v;)switch(g=b,b=il()){case 40:if(g!=108&&ep(_,d-1)==58){fye(_+=wb(yC(b),"&","&\f"),"&\f",tF(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:_+=yC(b);break;case 9:case 10:case 13:case 32:_+=xye(g);break;case 92:_+=bye(Tb()-1,7);continue;case 47:switch(th()){case 42:case 47:E1(vet(wye(il(),Tb()),e,r,u),u),(S1(g||1)==5||S1(th()||1)==5)&&wo(_)&&Of(_,-1,void 0)!==" "&&(_+=" ");break;default:_+="/"}break;case 123*y:l[h++]=wo(_)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+f:x==-1&&(_=wb(_,/\f/g,"")),m>0&&(wo(_)-d||y===0&&g===47)&&E1(m>32?Eye(_+";",n,r,d-1,u):Eye(wb(_," ","")+";",n,r,d-2,u),u);break;case 59:_+=";";default:if(E1(E=kye(_,e,r,h,f,i,l,w,S=[],T=[],d,a),a),b===123)if(f===0)vC(_,e,E,E,S,a,d,l,T);else switch(p===99&&ep(_,3)===110?100:p){case 100:case 108:case 109:case 115:vC(t,E,E,n&&E1(kye(t,E,E,0,0,i,l,w,i,S=[],d,T),T),i,T,d,l,n?S:T);break;default:vC(_,E,E,E,[""],T,0,l,T)}}h=f=m=0,y=x=1,w=_="",d=s;break;case 58:d=1+wo(_),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&gye()==125)continue}switch(_+=bb(b),b*y){case 38:x=f>0?1:(_+="\f",-1);break;case 44:l[h++]=(wo(_)-1)*x,x=1;break;case 64:th()===45&&(_+=yC(il())),p=th(),f=d=wo(w=_+=Tye(Tb())),b++;break;case 45:g===45&&wo(_)==2&&(y=0)}}return a}o(vC,"parse");function kye(t,e,r,n,i,a,s,l,u,h,f,d){for(var p=i-1,m=i===0?a:[""],g=dye(m),y=0,v=0,x=0;y0?m[b]+" "+w:wb(w,/&\f/g,m[b])))&&(u[x++]=S);return mC(t,e,r,i===0?hC:l,u,h,f,d)}o(kye,"ruleset");function vet(t,e,r,n){return mC(t,e,r,uC,bb(mye()),Of(t,2,-2),0,n)}o(vet,"comment");function Eye(t,e,r,n,i){return mC(t,e,r,fC,Of(t,0,n),Of(t,n+1,-1),n,i)}o(Eye,"declaration");function xC(t,e){for(var r="",n=0;n{Lye.forEach(t=>{t()}),Lye=[]},"attachFunctions");ut();var Rye=o(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");Vb();function qye(t){return typeof t>"u"||t===null}o(qye,"isNothing");function bet(t){return typeof t=="object"&&t!==null}o(bet,"isObject");function wet(t){return Array.isArray(t)?t:qye(t)?[]:[t]}o(wet,"toArray");function Tet(t,e){var r,n,i,a;if(e)for(a=Object.keys(e),r=0,n=a.length;rl&&(a=" ... ",e=n-l+a.length),r-n>l&&(s=" ...",r=n+l-s.length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+s,pos:n-e+a.length}}o(nF,"getLine");function iF(t,e){return Wi.repeat(" ",e-t.length)+t}o(iF,"padStart");function Net(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,n=[0],i=[],a,s=-1;a=r.exec(t.buffer);)i.push(a.index),n.push(a.index+a[0].length),t.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var l="",u,h,f=Math.min(t.line+e.linesAfter,i.length).toString().length,d=e.maxLength-(e.indent+f+3);for(u=1;u<=e.linesBefore&&!(s-u<0);u++)h=nF(t.buffer,n[s-u],i[s-u],t.position-(n[s]-n[s-u]),d),l=Wi.repeat(" ",e.indent)+iF((t.line-u+1).toString(),f)+" | "+h.str+` +`+l;for(h=nF(t.buffer,n[s],i[s],t.position,d),l+=Wi.repeat(" ",e.indent)+iF((t.line+1).toString(),f)+" | "+h.str+` +`,l+=Wi.repeat("-",e.indent+f+3+h.pos)+`^ +`,u=1;u<=e.linesAfter&&!(s+u>=i.length);u++)h=nF(t.buffer,n[s+u],i[s+u],t.position-(n[s]-n[s+u]),d),l+=Wi.repeat(" ",e.indent)+iF((t.line+u+1).toString(),f)+" | "+h.str+` +`;return l.replace(/\n$/,"")}o(Net,"makeSnippet");var Met=Net,Iet=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Oet=["scalar","sequence","mapping"];function Pet(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(n){e[String(n)]=r})}),e}o(Pet,"compileStyleAliases");function Bet(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(Iet.indexOf(r)===-1)throw new $s('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=Pet(e.styleAliases||null),Oet.indexOf(this.kind)===-1)throw new $s('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}o(Bet,"Type$1");var Va=Bet;function Nye(t,e){var r=[];return t[e].forEach(function(n){var i=r.length;r.forEach(function(a,s){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(i=s)}),r[i]=n}),r}o(Nye,"compileList");function Fet(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function n(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(o(n,"collectType"),e=0,r=arguments.length;e=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:o(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:o(function(t){return t.toString(10)},"decimal"),hexadecimal:o(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),att=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function stt(t){return!(t===null||!att.test(t)||t[t.length-1]==="_")}o(stt,"resolveYamlFloat");function ott(t){var e,r;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:r*parseFloat(e,10)}o(ott,"constructYamlFloat");var ltt=/^[-+]?[0-9]+e/;function ctt(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Wi.isNegativeZero(t))return"-0.0";return r=t.toString(10),ltt.test(r)?r.replace("e",".e"):r}o(ctt,"representYamlFloat");function utt(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||Wi.isNegativeZero(t))}o(utt,"isFloat");var htt=new Va("tag:yaml.org,2002:float",{kind:"scalar",resolve:stt,construct:ott,predicate:utt,represent:ctt,defaultStyle:"lowercase"}),jye=Uet.extend({implicit:[qet,Qet,itt,htt]}),ftt=jye,Kye=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Qye=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function dtt(t){return t===null?!1:Kye.exec(t)!==null||Qye.exec(t)!==null}o(dtt,"resolveYamlTimestamp");function ptt(t){var e,r,n,i,a,s,l,u=0,h=null,f,d,p;if(e=Kye.exec(t),e===null&&(e=Qye.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(a=+e[4],s=+e[5],l=+e[6],e[7]){for(u=e[7].slice(0,3);u.length<3;)u+="0";u=+u}return e[9]&&(f=+e[10],d=+(e[11]||0),h=(f*60+d)*6e4,e[9]==="-"&&(h=-h)),p=new Date(Date.UTC(r,n,i,a,s,l,u)),h&&p.setTime(p.getTime()-h),p}o(ptt,"constructYamlTimestamp");function mtt(t){return t.toISOString()}o(mtt,"representYamlTimestamp");var gtt=new Va("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:dtt,construct:ptt,instanceOf:Date,represent:mtt});function ytt(t){return t==="<<"||t===null}o(ytt,"resolveYamlMerge");var vtt=new Va("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ytt}),hF=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function xtt(t){if(t===null)return!1;var e,r,n=0,i=t.length,a=hF;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8===0}o(xtt,"resolveYamlBinary");function btt(t){var e,r,n=t.replace(/[\r\n=]/g,""),i=n.length,a=hF,s=0,l=[];for(e=0;e>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|a.indexOf(n.charAt(e));return r=i%4*6,r===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):r===18?(l.push(s>>10&255),l.push(s>>2&255)):r===12&&l.push(s>>4&255),new Uint8Array(l)}o(btt,"constructYamlBinary");function wtt(t){var e="",r=0,n,i,a=t.length,s=hF;for(n=0;n>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]),r=(r<<8)+t[n];return i=a%3,i===0?(e+=s[r>>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]):i===2?(e+=s[r>>10&63],e+=s[r>>4&63],e+=s[r<<2&63],e+=s[64]):i===1&&(e+=s[r>>2&63],e+=s[r<<4&63],e+=s[64],e+=s[64]),e}o(wtt,"representYamlBinary");function Ttt(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}o(Ttt,"isBinary");var ktt=new Va("tag:yaml.org,2002:binary",{kind:"scalar",resolve:xtt,construct:btt,predicate:Ttt,represent:wtt}),Ett=Object.prototype.hasOwnProperty,Ctt=Object.prototype.toString;function Stt(t){if(t===null)return!0;var e=[],r,n,i,a,s,l=t;for(r=0,n=l.length;r>10)+55296,(t-65536&1023)+56320)}o(Htt,"charFromCodepoint");var nve=new Array(256),ive=new Array(256);for(tp=0;tp<256;tp++)nve[tp]=Oye(tp)?1:0,ive[tp]=Oye(tp);var tp;function Ytt(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||Zye,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}o(Ytt,"State$1");function ave(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=Met(r),new $s(e,r)}o(ave,"generateError");function Gt(t,e){throw ave(t,e)}o(Gt,"throwError");function TC(t,e){t.onWarning&&t.onWarning.call(null,ave(t,e))}o(TC,"throwWarning");var Pye={YAML:o(function(e,r,n){var i,a,s;e.version!==null&&Gt(e,"duplication of %YAML directive"),n.length!==1&&Gt(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),i===null&&Gt(e,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),s=parseInt(i[2],10),a!==1&&Gt(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&TC(e,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:o(function(e,r,n){var i,a;n.length!==2&&Gt(e,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],tve.test(i)||Gt(e,"ill-formed tag handle (first argument) of the TAG directive"),Bf.call(e.tagMap,i)&&Gt(e,'there is a previously declared suffix for "'+i+'" tag handle'),rve.test(a)||Gt(e,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{Gt(e,"tag prefix is malformed: "+a)}e.tagMap[i]=a},"handleTagDirective")};function Pf(t,e,r,n){var i,a,s,l;if(e1&&(t.result+=Wi.repeat(` +`,e-1))}o(dF,"writeFoldedLines");function Wtt(t,e,r){var n,i,a,s,l,u,h,f,d=t.kind,p=t.result,m;if(m=t.input.charCodeAt(t.position),Vs(m)||D1(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(i=t.input.charCodeAt(t.position+1),Vs(i)||r&&D1(i)))return!1;for(t.kind="scalar",t.result="",a=s=t.position,l=!1;m!==0;){if(m===58){if(i=t.input.charCodeAt(t.position+1),Vs(i)||r&&D1(i))break}else if(m===35){if(n=t.input.charCodeAt(t.position-1),Vs(n))break}else{if(t.position===t.lineStart&&CC(t)||r&&D1(m))break;if(qc(m))if(u=t.line,h=t.lineStart,f=t.lineIndent,Ai(t,!1,-1),t.lineIndent>=e){l=!0,m=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=u,t.lineStart=h,t.lineIndent=f;break}}l&&(Pf(t,a,s,!1),dF(t,t.line-u),a=s=t.position,l=!1),rp(m)||(s=t.position+1),m=t.input.charCodeAt(++t.position)}return Pf(t,a,s,!1),t.result?!0:(t.kind=d,t.result=p,!1)}o(Wtt,"readPlainScalar");function qtt(t,e){var r,n,i;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Pf(t,n,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)n=t.position,t.position++,i=t.position;else return!0;else qc(r)?(Pf(t,n,i,!0),dF(t,Ai(t,!1,e)),n=i=t.position):t.position===t.lineStart&&CC(t)?Gt(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);Gt(t,"unexpected end of the stream within a single quoted scalar")}o(qtt,"readSingleQuotedScalar");function Xtt(t,e){var r,n,i,a,s,l;if(l=t.input.charCodeAt(t.position),l!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(l=t.input.charCodeAt(t.position))!==0;){if(l===34)return Pf(t,r,t.position,!0),t.position++,!0;if(l===92){if(Pf(t,r,t.position,!0),l=t.input.charCodeAt(++t.position),qc(l))Ai(t,!1,e);else if(l<256&&nve[l])t.result+=ive[l],t.position++;else if((s=Vtt(l))>0){for(i=s,a=0;i>0;i--)l=t.input.charCodeAt(++t.position),(s=$tt(l))>=0?a=(a<<4)+s:Gt(t,"expected hexadecimal character");t.result+=Htt(a),t.position++}else Gt(t,"unknown escape sequence");r=n=t.position}else qc(l)?(Pf(t,r,n,!0),dF(t,Ai(t,!1,e)),r=n=t.position):t.position===t.lineStart&&CC(t)?Gt(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}Gt(t,"unexpected end of the stream within a double quoted scalar")}o(Xtt,"readDoubleQuotedScalar");function jtt(t,e){var r=!0,n,i,a,s=t.tag,l,u=t.anchor,h,f,d,p,m,g=Object.create(null),y,v,x,b;if(b=t.input.charCodeAt(t.position),b===91)f=93,m=!1,l=[];else if(b===123)f=125,m=!0,l={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=l),b=t.input.charCodeAt(++t.position);b!==0;){if(Ai(t,!0,e),b=t.input.charCodeAt(t.position),b===f)return t.position++,t.tag=s,t.anchor=u,t.kind=m?"mapping":"sequence",t.result=l,!0;r?b===44&&Gt(t,"expected the node content, but found ','"):Gt(t,"missed comma between flow collection entries"),v=y=x=null,d=p=!1,b===63&&(h=t.input.charCodeAt(t.position+1),Vs(h)&&(d=p=!0,t.position++,Ai(t,!0,e))),n=t.line,i=t.lineStart,a=t.position,N1(t,e,bC,!1,!0),v=t.tag,y=t.result,Ai(t,!0,e),b=t.input.charCodeAt(t.position),(p||t.line===n)&&b===58&&(d=!0,b=t.input.charCodeAt(++t.position),Ai(t,!0,e),N1(t,e,bC,!1,!0),x=t.result),m?R1(t,l,g,v,y,x,n,i,a):d?l.push(R1(t,null,g,v,y,x,n,i,a)):l.push(y),Ai(t,!0,e),b=t.input.charCodeAt(t.position),b===44?(r=!0,b=t.input.charCodeAt(++t.position)):r=!1}Gt(t,"unexpected end of the stream within a flow collection")}o(jtt,"readFlowCollection");function Ktt(t,e){var r,n,i=aF,a=!1,s=!1,l=e,u=0,h=!1,f,d;if(d=t.input.charCodeAt(t.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(t.kind="scalar",t.result="";d!==0;)if(d=t.input.charCodeAt(++t.position),d===43||d===45)aF===i?i=d===43?Mye:Btt:Gt(t,"repeat of a chomping mode identifier");else if((f=Utt(d))>=0)f===0?Gt(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?Gt(t,"repeat of an indentation width identifier"):(l=e+f-1,s=!0);else break;if(rp(d)){do d=t.input.charCodeAt(++t.position);while(rp(d));if(d===35)do d=t.input.charCodeAt(++t.position);while(!qc(d)&&d!==0)}for(;d!==0;){for(fF(t),t.lineIndent=0,d=t.input.charCodeAt(t.position);(!s||t.lineIndentl&&(l=t.lineIndent),qc(d)){u++;continue}if(t.lineIndente)&&u!==0)Gt(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(v&&(s=t.line,l=t.lineStart,u=t.position),N1(t,e,wC,!0,i)&&(v?g=t.result:y=t.result),v||(R1(t,d,p,m,g,y,s,l,u),m=g=y=null),Ai(t,!0,-1),b=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&b!==0)Gt(t,"bad indentation of a mapping entry");else if(t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),d=0,p=t.implicitTypes.length;d"),t.result!==null&&g.kind!==t.kind&&Gt(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+g.kind+'", not "'+t.kind+'"'),g.resolve(t.result,t.tag)?(t.result=g.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Gt(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||f}o(N1,"composeNode");function trt(t){var e=t.position,r,n,i,a=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(Ai(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(a=!0,s=t.input.charCodeAt(++t.position),r=t.position;s!==0&&!Vs(s);)s=t.input.charCodeAt(++t.position);for(n=t.input.slice(r,t.position),i=[],n.length<1&&Gt(t,"directive name must not be less than one character in length");s!==0;){for(;rp(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!qc(s));break}if(qc(s))break;for(r=t.position;s!==0&&!Vs(s);)s=t.input.charCodeAt(++t.position);i.push(t.input.slice(r,t.position))}s!==0&&fF(t),Bf.call(Pye,n)?Pye[n](t,n,i):TC(t,'unknown document directive "'+n+'"')}if(Ai(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Ai(t,!0,-1)):a&&Gt(t,"directives end mark is expected"),N1(t,t.lineIndent-1,wC,!1,!0),Ai(t,!0,-1),t.checkLineBreaks&&ztt.test(t.input.slice(e,t.position))&&TC(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&CC(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Ai(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var n=sve(t,r);if(typeof e!="function")return n;for(var i=0,a=n.length;i=55296&&r<=56319&&e+1=56320&&n<=57343)?(r-55296)*1024+n-56320+65536:r}o(kb,"codePointAt");function mve(t){var e=/^\n* /;return e.test(t)}o(mve,"needIndentIndicator");var gve=1,cF=2,yve=3,vve=4,L1=5;function Rrt(t,e,r,n,i,a,s,l){var u,h=0,f=null,d=!1,p=!1,m=n!==-1,g=-1,y=Lrt(kb(t,0))&&Drt(kb(t,t.length-1));if(e||s)for(u=0;u=65536?u+=2:u++){if(h=kb(t,u),!Ab(h))return L1;y=y&&$ye(h,f,l),f=h}else{for(u=0;u=65536?u+=2:u++){if(h=kb(t,u),h===Cb)d=!0,m&&(p=p||u-g-1>n&&t[g+1]!==" ",g=u);else if(!Ab(h))return L1;y=y&&$ye(h,f,l),f=h}p=p||m&&u-g-1>n&&t[g+1]!==" "}return!d&&!p?y&&!s&&!i(t)?gve:a===Sb?L1:cF:r>9&&mve(t)?L1:s?a===Sb?L1:cF:p?vve:yve}o(Rrt,"chooseScalarStyle");function Nrt(t,e,r,n,i){t.dump=function(){if(e.length===0)return t.quotingType===Sb?'""':"''";if(!t.noCompatMode&&(Trt.indexOf(e)!==-1||krt.test(e)))return t.quotingType===Sb?'"'+e+'"':"'"+e+"'";var a=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),l=n||t.flowLevel>-1&&r>=t.flowLevel;function u(h){return _rt(t,h)}switch(o(u,"testAmbiguity"),Rrt(e,l,t.indent,s,u,t.quotingType,t.forceQuotes&&!n,i)){case gve:return e;case cF:return"'"+e.replace(/'/g,"''")+"'";case yve:return"|"+Vye(e,t.indent)+Uye(zye(e,a));case vve:return">"+Vye(e,t.indent)+Uye(zye(Mrt(e,s),a));case L1:return'"'+Irt(e)+'"';default:throw new $s("impossible error: invalid scalar style")}}()}o(Nrt,"writeScalar");function Vye(t,e){var r=mve(t)?String(e):"",n=t[t.length-1]===` +`,i=n&&(t[t.length-2]===` +`||t===` +`),a=i?"+":n?"":"-";return r+a+` +`}o(Vye,"blockHeader");function Uye(t){return t[t.length-1]===` +`?t.slice(0,-1):t}o(Uye,"dropEndingNewline");function Mrt(t,e){for(var r=/(\n+)([^\n]*)/g,n=function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,Hye(t.slice(0,h),e)}(),i=t[0]===` +`||t[0]===" ",a,s;s=r.exec(t);){var l=s[1],u=s[2];a=u[0]===" ",n+=l+(!i&&!a&&u!==""?` +`:"")+Hye(u,e),i=a}return n}o(Mrt,"foldString");function Hye(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,n,i=0,a,s=0,l=0,u="";n=r.exec(t);)l=n.index,l-i>e&&(a=s>i?s:l,u+=` +`+t.slice(i,a),i=a+1),s=l;return u+=` +`,t.length-i>e&&s>i?u+=t.slice(i,s)+` +`+t.slice(s+1):u+=t.slice(i),u.slice(1)}o(Hye,"foldLine");function Irt(t){for(var e="",r=0,n,i=0;i=65536?i+=2:i++)r=kb(t,i),n=Ua[r],!n&&Ab(r)?(e+=t[i],r>=65536&&(e+=t[i+1])):e+=n||Crt(r);return e}o(Irt,"escapeString");function Ort(t,e,r){var n="",i=t.tag,a,s,l;for(a=0,s=r.length;a"u"&&rh(t,e,null,!1,!1))&&(n!==""&&(n+=","+(t.condenseFlow?"":" ")),n+=t.dump);t.tag=i,t.dump="["+n+"]"}o(Ort,"writeFlowSequence");function Yye(t,e,r,n){var i="",a=t.tag,s,l,u;for(s=0,l=r.length;s"u"&&rh(t,e+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=lF(t,e)),t.dump&&Cb===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=a,t.dump=i||"[]"}o(Yye,"writeBlockSequence");function Prt(t,e,r){var n="",i=t.tag,a=Object.keys(r),s,l,u,h,f;for(s=0,l=a.length;s1024&&(f+="? "),f+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),rh(t,e,h,!1,!1)&&(f+=t.dump,n+=f));t.tag=i,t.dump="{"+n+"}"}o(Prt,"writeFlowMapping");function Brt(t,e,r,n){var i="",a=t.tag,s=Object.keys(r),l,u,h,f,d,p;if(t.sortKeys===!0)s.sort();else if(typeof t.sortKeys=="function")s.sort(t.sortKeys);else if(t.sortKeys)throw new $s("sortKeys must be a boolean or a function");for(l=0,u=s.length;l1024,d&&(t.dump&&Cb===t.dump.charCodeAt(0)?p+="?":p+="? "),p+=t.dump,d&&(p+=lF(t,e)),rh(t,e+1,f,!0,d)&&(t.dump&&Cb===t.dump.charCodeAt(0)?p+=":":p+=": ",p+=t.dump,i+=p));t.tag=a,t.dump=i||"{}"}o(Brt,"writeBlockMapping");function Wye(t,e,r){var n,i,a,s,l,u;for(i=r?t.explicitTypes:t.implicitTypes,a=0,s=i.length;a tag resolver accepts not "'+u+'" style');t.dump=n}return!0}return!1}o(Wye,"detectType");function rh(t,e,r,n,i,a,s){t.tag=null,t.dump=r,Wye(t,r,!1)||Wye(t,r,!0);var l=lve.call(t.dump),u=n,h;n&&(n=t.flowLevel<0||t.flowLevel>e);var f=l==="[object Object]"||l==="[object Array]",d,p;if(f&&(d=t.duplicates.indexOf(r),p=d!==-1),(t.tag!==null&&t.tag!=="?"||p||t.indent!==2&&e>0)&&(i=!1),p&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(f&&p&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),l==="[object Object]")n&&Object.keys(t.dump).length!==0?(Brt(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(Prt(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object Array]")n&&t.dump.length!==0?(t.noArrayIndent&&!s&&e>0?Yye(t,e-1,t.dump,i):Yye(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(Ort(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object String]")t.tag!=="?"&&Nrt(t,t.dump,e,a,u);else{if(l==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new $s("unacceptable kind of an object to dump "+l)}t.tag!==null&&t.tag!=="?"&&(h=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?h="!"+h:h.slice(0,18)==="tag:yaml.org,2002:"?h="!!"+h.slice(18):h="!<"+h+">",t.dump=h+" "+t.dump)}return!0}o(rh,"writeNode");function Frt(t,e){var r=[],n=[],i,a;for(uF(t,r,n),i=0,a=n.length;it.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),Hrt=o(t=>{let{text:e,metadata:r}=wve(t),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:e}},"processFrontmatter"),Yrt=o(t=>{let e=Lt.detectInit(t)??{},r=Lt.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(e.wrap=!0),{text:EX(t),directive:e}},"processDirectives");function gF(t){let e=Urt(t),r=Hrt(e),n=Yrt(r.text),i=Ts(r.config,n.directive);return t=Rye(n.text),{code:t,title:r.title,config:i}}o(gF,"preprocessDiagram");Z7();Kb();xr();function Tve(t){let e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}o(Tve,"toBase64");var Wrt=5e4,qrt="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",Xrt="sandbox",jrt="loose",Krt="http://www.w3.org/2000/svg",Qrt="http://www.w3.org/1999/xlink",Zrt="http://www.w3.org/1999/xhtml",Jrt="100%",ent="100%",tnt="border:0;margin:0;",rnt="margin:0",nnt="allow-top-navigation-by-user-activation allow-popups",int='The "iframe" tag is not supported by your browser.',ant=["foreignobject"],snt=["dominant-baseline"];function Ave(t){let e=gF(t);return Q1(),jz(e.config??{}),e}o(Ave,"processAndSetConfigs");async function ont(t,e){k1();try{let{code:r,config:n}=Ave(t);return{diagramType:(await _ve(r)).type,config:n}}catch(r){if(e?.suppressErrors)return!1;throw r}}o(ont,"parse");var kve=o((t,e,r=[])=>` +.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),lnt=o((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0&&(r+=` +${t.themeCSS}`),t.fontFamily!==void 0&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){let s=t.htmlLabels??t.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(l=>{Qt(l.styles)||s.forEach(u=>{r+=kve(l.id,u,l.styles)}),Qt(l.textStyles)||(r+=kve(l.id,"tspan",(l?.textStyles||[]).map(u=>u.replace("color","fill"))))})}return r},"createCssStyles"),cnt=o((t,e,r,n)=>{let i=lnt(t,r),a=D$(e,i,t.themeVariables);return xC(Cye(`${n}{${a}}`),Sye)},"createUserStyles"),unt=o((t="",e,r)=>{let n=t;return!r&&!e&&(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=to(n),n=n.replace(/
    /g,"
    "),n},"cleanUpSvgCode"),hnt=o((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":ent,n=Tve(`${t}`);return``},"putIntoIFrame"),Eve=o((t,e,r,n,i)=>{let a=t.append("div");a.attr("id",r),n&&a.attr("style",n);let s=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Krt);return i&&s.attr("xmlns:xlink",i),s.append("g"),t},"appendDivSvgG");function Cve(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(Cve,"sandboxedIframe");var fnt=o((t,e,r,n)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(n)?.remove()},"removeExistingElements"),dnt=o(async function(t,e,r){k1();let n=Ave(e);e=n.code;let i=Or();V.debug(i),e.length>(i?.maxTextSize??Wrt)&&(e=qrt);let a="#"+t,s="i"+t,l="#"+s,u="d"+t,h="#"+u,f=o(()=>{let I=$e(p?l:h).node();I&&"remove"in I&&I.remove()},"removeTempElements"),d=$e("body"),p=i.securityLevel===Xrt,m=i.securityLevel===jrt,g=i.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let k=Cve($e(r),s);d=$e(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=$e(r);Eve(d,t,u,`font-family: ${g}`,Qrt)}else{if(fnt(document,t,u,s),p){let k=Cve($e("body"),s);d=$e(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=$e("body");Eve(d,t,u)}let y,v;try{y=await _1.fromText(e,{title:n.title})}catch(k){if(i.suppressErrorRendering)throw f(),k;y=await _1.fromText("error"),v=k}let x=d.select(h).node(),b=y.type,w=x.firstChild,S=w.firstChild,T=y.renderer.getClasses?.(e,y),E=cnt(i,b,T,a),_=document.createElement("style");_.innerHTML=E,w.insertBefore(_,S);try{await y.renderer.draw(e,t,fx,y)}catch(k){throw i.suppressErrorRendering?f():Ede.draw(e,t,fx),k}let A=d.select(`${h} svg`),L=y.db.getAccTitle?.(),M=y.db.getAccDescription?.();mnt(b,A,L,M),d.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",Zrt);let N=d.select(h).node().innerHTML;if(V.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),N=unt(N,p,yr(i.arrowMarkerAbsolute)),p){let k=d.select(h+" svg").node();N=hnt(N,k)}else m||(N=Sve.default.sanitize(N,{ADD_TAGS:ant,ADD_ATTR:snt}));if(Dye(),v)throw v;return f(),{diagramType:b,svg:N,bindFunctions:y.db.bindFunctions}},"render");function pnt(t={}){let e=On({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),Wz(e),e?.theme&&e.theme in Co?e.themeVariables=Co[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=Co.default.getThemeVariables(e.themeVariables));let r=typeof e=="object"?n7(e):i7();$1(r.logLevel),k1()}o(pnt,"initialize");var _ve=o((t,e={})=>{let{code:r}=gF(t);return _1.fromText(r,e)},"getDiagramFromText");function mnt(t,e,r,n){Aye(e,t),_ye(e,r,n,e.attr("id"))}o(mnt,"addA11yInfo");var Ff=Object.freeze({render:dnt,parse:ont,getDiagramFromText:_ve,initialize:pnt,getConfig:Or,setConfig:Zb,getSiteConfig:i7,updateSiteConfig:qz,reset:o(()=>{Q1()},"reset"),globalReset:o(()=>{Q1(uh)},"globalReset"),defaultConfig:uh});$1(Or().logLevel);Q1(Or());oT();xr();var gnt=o((t,e,r)=>{V.warn(t),r9(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),Lve=o(async function(t={querySelector:".mermaid"}){try{await ynt(t)}catch(e){if(r9(e)&&V.error(e.str),nh.parseError&&nh.parseError(e),!t.suppressErrors)throw V.error("Use the suppressErrors option to suppress these errors"),e}},"run"),ynt=o(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let n=Ff.getConfig();V.debug(`${t?"":"No "}Callback function found`);let i;if(r)i=r;else if(e)i=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");V.debug(`Found ${i.length} diagrams`),n?.startOnLoad!==void 0&&(V.debug("Start On Load: "+n?.startOnLoad),Ff.updateSiteConfig({startOnLoad:n?.startOnLoad}));let a=new Lt.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),s,l=[];for(let u of Array.from(i)){V.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=Gb(Lt.entityDecode(s)).trim().replace(//gi,"
    ");let f=Lt.detectInit(s);f&&V.debug("Detected early reinit: ",f);try{let{svg:d,bindFunctions:p}=await Mve(h,s,u);u.innerHTML=d,t&&await t(h),p&&p(u)}catch(d){gnt(d,l,nh.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),Dve=o(function(t){Ff.initialize(t)},"initialize"),vnt=o(async function(t,e,r){V.warn("mermaid.init is deprecated. Please use run instead."),t&&Dve(t);let n={postRenderCallback:r,querySelector:".mermaid"};typeof e=="string"?n.querySelector=e:e&&(e instanceof HTMLElement?n.nodes=[e]:n.nodes=e),await Lve(n)},"init"),xnt=o(async(t,{lazyLoad:e=!0}={})=>{k1(),Ub(...t),e===!1&&await lye()},"registerExternalDiagrams"),Rve=o(function(){if(nh.startOnLoad){let{startOnLoad:t}=Ff.getConfig();t&&nh.run().catch(e=>V.error("Mermaid failed to initialize",e))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",Rve,!1)}var bnt=o(function(t){nh.parseError=t},"setParseErrorHandler"),SC=[],yF=!1,Nve=o(async()=>{if(!yF){for(yF=!0;SC.length>0;){let t=SC.shift();if(t)try{await t()}catch(e){V.error("Error executing queue",e)}}yF=!1}},"executeQueue"),wnt=o(async(t,e)=>new Promise((r,n)=>{let i=o(()=>new Promise((a,s)=>{Ff.parse(t,e).then(l=>{a(l),r(l)},l=>{V.error("Error parsing",l),nh.parseError?.(l),s(l),n(l)})}),"performCall");SC.push(i),Nve().catch(n)}),"parse"),Mve=o((t,e,r)=>new Promise((n,i)=>{let a=o(()=>new Promise((s,l)=>{Ff.render(t,e,r).then(u=>{s(u),n(u)},u=>{V.error("Error parsing",u),nh.parseError?.(u),l(u),i(u)})}),"performCall");SC.push(a),Nve().catch(i)}),"render"),nh={startOnLoad:!0,mermaidAPI:Ff,parse:wnt,render:Mve,init:vnt,run:Lve,registerExternalDiagrams:xnt,registerLayoutLoaders:gD,initialize:Dve,parseError:void 0,contentLoaded:Rve,setParseErrorHandler:bnt,detectType:lp,registerIconPacks:Fb},Tnt=nh;return $ve(knt);})(); +/*! Check if previously processed */ +/*! + * Wait for document loaded before starting the execution + */ +/*! Bundled license information: + +dompurify/dist/purify.js: + (*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +cytoscape/dist/cytoscape.esm.mjs: + (*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + *) + (*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + *) + (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *) + (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *) + +js-yaml/dist/js-yaml.mjs: + (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *) +*/ +globalThis.mermaid = globalThis.__esbuild_esm_mermaid.default; diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index e51531014..77fed7780 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -49,7 +49,33 @@ - [Interactive](framework/interactive.md) - [Libraries](./libraries.md) - [Seth](./libs/seth.md) - - [WASP](./libs/wasp.md) + - [WASP](./libs/wasp/overview.md) + - [Getting started](./libs/wasp/getting_started.md) + - [First test (RPS test)](./libs/wasp/first_test.md) + - [Stateful test](./libs/wasp/stateful_test.md) + - [User Journey test](./libs/wasp/user_journey_test.md) + - [Profile test](./libs/wasp/profile_test.md) + - [Testing alerts]() + - [Configuration](./libs/wasp/configuration.md) + - [k8s](./libs/wasp/k8s.md) + - [Components](./libs/wasp/components/overview.md) + - [Alert Checker]() + - [Dashboard](./libs/wasp/components/dashboard.md) + - [Generator](./libs/wasp/components/generator.md) + - [Loki](./libs/wasp/components/loki.md) + - [Profile](./libs/wasp/components/profile.md) + - [Sampler](./libs/wasp/components/sampler.md) + - [Schedule](./libs/wasp/components/schedule.md) + - [How to](./libs/wasp/how-to/overview.md) + - [Start local observability stack](./libs/wasp/how-to/start_local_observability_stack.md) + - [Try it out quickly](./libs/wasp/how-to/run_included_tests.md) + - [Chose between RPS and VUs](./libs/wasp/how-to/chose_rps_vu.md) + - [Define NFRs and check alerts](./libs/wasp/how-to/define_nfr_check_alerts.md) + - [Use labels](./libs/wasp/how-to/use_labels.md) + - [Incorporate load tests in your workflow](./libs/wasp/how-to/incorporate_load_tests.md) + - [Reuse dashboard components](./libs/wasp/how-to/reuse_dashboard_components.md) + - [Parallelize load](./libs/wasp/how-to/parallelise_load.md) + - [Debug Loki errors](./libs/wasp/how-to/debug_loki_errors.md) - [Havoc](./libs/havoc.md) - [K8s Test Runner](k8s-test-runner/k8s-test-runner.md) diff --git a/book/src/lib/wasp/how-to/run_included_tests.md b/book/src/lib/wasp/how-to/run_included_tests.md new file mode 100644 index 000000000..c8d06ae17 --- /dev/null +++ b/book/src/lib/wasp/how-to/run_included_tests.md @@ -0,0 +1 @@ +# Try it out quickly diff --git a/book/src/libs/wasp/components/alert_checker.md b/book/src/libs/wasp/components/alert_checker.md new file mode 100644 index 000000000..6bc6f546f --- /dev/null +++ b/book/src/libs/wasp/components/alert_checker.md @@ -0,0 +1,20 @@ +# WASP - Alert Checker + +> [!WARNING] +> The API used by `AlertChecker` is unstable, and this section may be out of date. + +`AlertChecker` is a simple yet powerful component that allows you to verify which alerts fired during test execution. + +It supports the following functionalities: +* Checking if **any alert** fired during a specified time range for a given dashboard. +* Checking if **any group of alerts** fired for a given dashboard. + +The first mode is more suitable for existing dashboards, while the second mode is ideal for dashboards created specifically for the test (as it does not support time range selection). + +> [!NOTE] +> To use this component, you need to set certain Grafana-specific variables as described in the [Configuration](../configuration.md) section. + +For a practical example of how to use `AlertChecker`, refer to the [Testing Alerts](../testing_alerts.md) section. + +> [!WARNING] +> If you define alerts yourself, ensure they are grouped by adding a label named `requirement_name` with a value representing the alert group. diff --git a/book/src/libs/wasp/components/dashboard.md b/book/src/libs/wasp/components/dashboard.md new file mode 100644 index 000000000..c977c31a4 --- /dev/null +++ b/book/src/libs/wasp/components/dashboard.md @@ -0,0 +1,77 @@ +# WASP - Dashboard + +> [!WARNING] +> The API used to check and create alerts is unstable, and the information related to them may be out of date. + + +WASP comes with a built-in dashboard that allows you to monitor test runs in real-time. +The dashboard includes several built-in metrics that integrate seamlessly with the `AlertChecker` component. + +It is built using the [Grabana](https://pkg.go.dev/github.com/K-Phoen/grabana) library, which you can use to further customize and extend the dashboard by adding your own rows and panels. + +> [!NOTE] +> To create new dashboards, you need to set certain dashboard-specific variables as described in the [Configuration](../configuration.md) section. + +--- + +### Predefined Alerts + +WASP comes with predefined alerts for: +* **99th percentile of the response time** +* **Response errors** +* **Response timeouts** + +You can use these predefined metrics to add simple alerts to your dashboard for conditions such as: +* Values above or below a threshold +* Averages above or below a threshold +* Percentages of the total above or below a threshold + +For a complete list of available conditions, refer to Grabana's [ConditionEvaluator](https://pkg.go.dev/github.com/K-Phoen/grabana@v0.21.18/alert#ConditionEvaluator). + +--- + +### Custom Alerts + +Custom alerts can be composed of: +* The simple conditions mentioned above +* Arbitrary Loki queries + +Custom alerts use Grabana's [timeseries.Alert](https://pkg.go.dev/github.com/K-Phoen/grabana@v0.21.18/timeseries#Alert) and must be timeseries-based. + +> [!NOTE] +> Adding a built-in alert will also add a new row to the dashboard to display the monitored metric. +> In contrast, custom alerts do not automatically add rows to the dashboard to prevent clutter. + +Each generator has its own metrics, matched by the generator name. + +--- + +### Default Dashboard Panels + +The default dashboard includes the following panels: +* Current RPS/VUs (depending on the generator) +* Responses per second +* Total successful requests +* Total failed requests +* Total timeout requests +* RPS/VUs per schedule segment +* Responses per second +* Latency quantiles over groups (p99, p90, p50) +* Response latencies over time +* Logs size per second +* Sampling statistics +* Failed & timed-out responses +* Logs of the statistics-pushing service + +![Dashboard](../images/dashboard_basic.png) + +Where applicable, these panels group results by generator name (`gen_name` label) and call group (`call_group` label). + +> [!NOTE] +> You can read more about using labels in the [Use labels](../how-to/use_labels.md) section. + +--- + +### Creating a New Dashboard with Alerts + +For a practical example of how to create a new dashboard with alerts, see the [Testing Alerts](../testing_alerts.md) section. diff --git a/book/src/libs/wasp/components/generator.md b/book/src/libs/wasp/components/generator.md new file mode 100644 index 000000000..e570d7251 --- /dev/null +++ b/book/src/libs/wasp/components/generator.md @@ -0,0 +1,58 @@ +# WASP - Generator + +A **Generator** is a component that encapsulates all the characteristics of load generation, including: +* Load type: + * RPS (requests per second) + * VUs (virtual users) +* [Load schedule](./schedule.md) +* Call logic +* Response data +* [Sampling](./sampler.md) +* Timeouts + +> [!WARNING] +> RPS load type can only be used with a `Gun`, while VUs can only be used with a `VirtualUser`. + +--- + +### Choosing Between `Gun` and `VirtualUser` + +#### **`Gun`** +* Best for **stateless protocols** (e.g., HTTP). +* Simplistic in nature; ideal for executing a single operation that does not require setup or teardown. +* Operates using an **open model**, where: + * The number of requests is fixed. + * The load adjusts to meet the target RPS, regardless of the system's response time. + * There's no feedback from the system. +* Recommended for scenarios focused on measuring **throughput**. + +#### **`VirtualUser`** +* Designed for **stateful protocols** (e.g., `WebSocket`) or workflows involving multiple operations (e.g., authenticating, executing tasks, and logging out). +* More complex, with dedicated methods for setup and teardown. +* Operates using a **closed model**, where: + * New iterations start only after the previous one completes. + * The RPS fluctuates based on the system's response time. Longer response times reduce RPS. + * Feedback from the system is used to adjust the load. +--- + +### Closed vs. Open Models + +* A `Gun` follows an **open model**: + - It controls the rate of requests being sent. + - The system's response time does not impact the load generation rate. + +* A `VirtualUser` follows a **closed model**: + - It controls the rate of receiving responses. + - The system's response time directly impacts the load generation rate. If the system slows down, iterations take longer, reducing the RPS. + +--- + +### Summary + +In simpler terms: +* A **`Gun`** limits the load during the **sending** phase, making it ideal for throughput measurements. +* A **`VirtualUser`** limits the load during the **receiving** phase, reflecting the system's performance under load. + +--- + +This distinction helps you decide which tool to use based on the protocol type and the goals of your test. diff --git a/book/src/libs/wasp/components/loki.md b/book/src/libs/wasp/components/loki.md new file mode 100644 index 000000000..59c8114d2 --- /dev/null +++ b/book/src/libs/wasp/components/loki.md @@ -0,0 +1,16 @@ +# WASP - Loki + +Loki is a component responsible for pushing batches of statistics to a Loki instance. It operates in the background using a `promtail` client. + +Key features include: +* Optional basic authentication support. +* Configurable batch sizes. +* Support for configurable backoff retries, among others. + +By default, a test will fail on the first error encountered while pushing data. You can modify this behavior by setting the maximum allowed errors: +* Setting the value to `-1` disables error checks entirely. + +> [!NOTE] +> While it is technically possible to execute a WASP test without Loki, doing so means you won't have access to load-generation-related metrics. +> Unless your sole interest is in the metrics sent by your application, it is highly recommended to use Loki. +> For this reason, Loki is considered an integral part of the WASP stack. diff --git a/book/src/libs/wasp/components/overview.md b/book/src/libs/wasp/components/overview.md new file mode 100644 index 000000000..172c66f00 --- /dev/null +++ b/book/src/libs/wasp/components/overview.md @@ -0,0 +1,13 @@ +# WASP - Components + +In this section, we will briefly describe the main **logical** components that are part of the WASP library: +* [AlertChecker](./alert_checker.md) +* [Dashboard](./dashboard.md) +* [Generator](./generator.md) +* [Loki](./loki.md) +* [Profile](./profile.md) +* [Sampler](./sampler.md) +* [Segment](./schedule) + +Brief overview of how WASP works and how different components interact with each other: +![Overview](../images/how-it-works.png) \ No newline at end of file diff --git a/book/src/libs/wasp/components/profile.md b/book/src/libs/wasp/components/profile.md new file mode 100644 index 000000000..fb5d57dc0 --- /dev/null +++ b/book/src/libs/wasp/components/profile.md @@ -0,0 +1,17 @@ +# WASP - Profile + +A **Profile** allows you to combine load from different generators. Each generator operates according to its own schedule, and you can even mix RPS and VU load types, as shown in [this example](https://github.com/smartcontractkit/chainlink-testing-framework/blob/main/wasp/examples/profiles/node_mixed_test.go). + +> [!NOTE] +> The `error` returned by the `.Run(true)` function of a `Profile` might indicate the following: +> * load generator did not start and instead returned an error +> * or **if** `Profile` was created with `WithGrafana` option that enabled `CheckDashboardAlertsAfterRun` that at some alerts fired. +> To check for errors during load generation, you need to call the `Errors()` method on each `Generator` within the `Profile`. + +--- + +### Timing Considerations + +It is not possible to have different generators in the same `Profile` start load generation at different times. +If you need staggered start times, you must use separate `Profiles` and handle timing in your `Go` code. +An example demonstrating this can be found [here](../how-to/parallelise_load.md). diff --git a/book/src/libs/wasp/components/sampler.md b/book/src/libs/wasp/components/sampler.md new file mode 100644 index 000000000..b58fe8f81 --- /dev/null +++ b/book/src/libs/wasp/components/sampler.md @@ -0,0 +1,16 @@ +# WASP - Sampler + +By default, WASP saves all successful, failed, and timed-out responses in each [Generator](./generator.md). +The **Sampler** component allows you to programmatically set the sampling ratio for successful responses (a value between 0 and 100). + +For example, if you set the sampling ratio to 10, only 10% of successful responses will be saved: + +```go +samplerCfg := &SamplerConfig{ + SuccessfulCallResultRecordRatio: 10, +} + +g := &Generator{ + sampler: NewSampler(samplerCfg), + // other fields +} diff --git a/book/src/libs/wasp/components/schedule.md b/book/src/libs/wasp/components/schedule.md new file mode 100644 index 000000000..f7e3a7a55 --- /dev/null +++ b/book/src/libs/wasp/components/schedule.md @@ -0,0 +1,19 @@ +# WASP - Schedule + +The **Schedule** component allows you to define the load characteristics for each [Generator](./generator.md). +A schedule is composed of various `Segments`, each characterized by the number of requests (or VUs) and duration. + +--- + +### Helper Functions for Defining Schedules + +WASP provides several helper functions to define schedules in a human-readable way: + +* **`Plain`**: Defines a segment with a stable load. +* **`Steps`**: Defines a segment with increasing or decreasing load, using a specified step size. + +--- + +### Custom Schedules + +You can also define schedules programmatically by directly composing segments to suit your specific requirements. diff --git a/book/src/libs/wasp/configuration.md b/book/src/libs/wasp/configuration.md new file mode 100644 index 000000000..b1d8e4768 --- /dev/null +++ b/book/src/libs/wasp/configuration.md @@ -0,0 +1,49 @@ +# WASP - Configuration + +WASP can be configured using environment variables for most commonly used settings. However, to fully leverage the flexibility of WASP, you may need to use programmatic configuration for more advanced features. + +### Required Environment Variables + +At a minimum, you need to provide the following environment variables, as WASP requires Loki: + +* `LOKI_URL` - The Loki **endpoint** to which logs are pushed (e.g., [http://localhost:3100/loki/api/v1/push](http://localhost:3100/loki/api/v1/push)). +* `LOKI_TOKEN` - The authorization token. + +Optionally, you can also provide the following: +* `LOKI_TENANT_ID` - A tenant ID that acts as a bucket identifier for logs, logically separating them from other sets of logs. If the tenant ID doesn't exist, Loki will create it. Can be empty if log separation is not a concern. +* `LOKI_BASIC_AUTH` - Basic authentication credentials. + +--- + +### Alert Configuration + +To enable alert checking, you need to provide the following additional environment variables, as alerts are an integral part of Grafana: + +* `GRAFANA_URL` - The base URL of the Grafana instance. +* `GRAFANA_TOKEN` - An API token with permissions to access the following namespaces: + `/api/alertmanager/`, `/api/annotations/`, `/api/dashboard/`, `/api/datasources/`, `/api/v1/provisioning/`, and `/api/ruler/`. + +--- + +### Grafana Dashboard Creation + +If you want WASP to create a Grafana dashboard for you, provide the following environment variables: + +* `DATA_SOURCE_NAME` - The name of the data source (currently, only `Loki` is supported). +* `DASHBOARD_FOLDER` - The folder in which to create the dashboard. +* `DASHBOARD_NAME` - The name of the dashboard. + +--- + +### Log Level Control + +You can control the log level using this environment variable: + +* `WASP_LOG_LEVEL` - Sets the log level (`trace`, `debug`, `info`, `warn`, `error`; defaults to `info`). + +--- + +And that's it! You are now ready to start using WASP to its full potential. + +> [!NOTE] +> Remember, WASP offers much more configurability through its programmatic API. diff --git a/book/src/libs/wasp/first_test.md b/book/src/libs/wasp/first_test.md new file mode 100644 index 000000000..112052c40 --- /dev/null +++ b/book/src/libs/wasp/first_test.md @@ -0,0 +1,116 @@ +# WASP - First Test (RPS Test) + +## Requirements +* Go installed +* Loki + +Let's start by creating a simple test that sends 5 HTTP requests per second for 60 seconds. + +We will use a `Gun`, which is designed for stateless protocols like HTTP or measuring throughput. + +A `Gun` only needs to implement this single-method interface: + +```go +type Gun interface { + Call(l *Generator) *Response +} +``` + +### Defining the Gun + +First, let's define a struct that will hold our `Gun` implementation: + +```go +type ExampleGun struct { + target string + client *resty.Client + Data []string +} +``` + +Our `Gun` will send a `GET` request to the target URL. If the request is successful, we return a `*wasp.Response` containing the response data. If it fails or responds with an HTTP status other than `200`, we also return a `*wasp.Response` with the response and an error. + +Here’s the implementation of the `Gun` interface: + +```go +func (m *ExampleGun) Call(l *wasp.Generator) *wasp.Response { + var result map[string]interface{} + r, err := m.client.R(). + SetResult(&result). + Get(m.target) + if err != nil { + return &wasp.Response{Data: result, Error: err.Error()} + } + if r.Status() != "200 OK" { + return &wasp.Response{Data: result, Error: "not 200"} + } + return &wasp.Response{Data: result} +} +``` + +> [!NOTE] +> By default, WASP stores all successful and failed responses, but you can use a `Sampler` to store only some of the successful ones. You can read more about it [here](./components/sampler.md). + +### Writing the Test + +Now that we have a `Gun`, let’s write the test: + +```go +func TestGun(t *testing.T) { + // start mock HTTP server + srv := wasp.NewHTTPMockServer(nil) + srv.Run() + + // define labels to differentiate one run from another + labels := map[string]string{ + // check variables in dashboard/dashboard.go + "go_test_name": "TestGun", + "gen_name": "test_gun", + "branch": "my-awesome-branch", + "commit": "f3729fa", + } + + // create generator + gen, err := wasp.NewGenerator(&wasp.Config{ + LoadType: wasp.RPS, + // plain line profile - 5 RPS for 60s + Schedule: wasp.Plain(5, 60*time.Second), + Gun: NewExampleHTTPGun(srv.URL()), + Labels: labels, + LokiConfig: wasp.NewEnvLokiConfig(), + }) + if err != nil { + panic(err) + } + // run the generator and wait until it finishes + gen.Run(true) +} +``` + +> [!NOTE] +> We used the `LoadType` of `wasp.RPS` since this is the only type of load that a `Gun` can handle. +> You can read more about load types [here](./how-to/chose_rps_vu.md). + +> [!NOTE] +> You can learn more about different labels and their functions [here](./how-to/use_labels.md). + +> [!NOTE] +> `wasp.NewEnvLokiConfig()` configures Loki using environment variables. You can read about them [here](./configuration.md). + +### Conclusion + +And that's it! You’ve just created your first test using WASP. You can now run it using: + +```bash +go test -v -run TestGun +``` + +You can find the full example [here](https://github.com/smartcontractkit/chainlink-testing-framework/tree/main/wasp/examples/simple_rps). + +--- + +### What’s Next? + +What if you want to test a more complex scenario? + +First, we’ll look at a [stateful protocol test](./stateful_test.md), like `WebSocket`. Then, we’ll explore a hypothetical [user journey test](./user_journey_test.md), where multiple requests need to be executed. \ No newline at end of file diff --git a/book/src/libs/wasp/getting_started.md b/book/src/libs/wasp/getting_started.md new file mode 100644 index 000000000..ff5028eed --- /dev/null +++ b/book/src/libs/wasp/getting_started.md @@ -0,0 +1,17 @@ +# WASP - Getting Started + +## Prerequisites +* [Golang](https://go.dev/doc/install) + +## Setup +To start writing tests, create a directory for your project with a `go.mod` file, then add the WASP package: + +```bash +go get github.com/smartcontractkit/chainlink-testing-framework/wasp +``` + +> [!WARNING] +> To execute any of the tests from the next chapters, you need access to Loki and Grafana. +> You can find instructions on setting them up locally [here](./how-to/start_local_observability_stack.md). + +That was simple, wasn't it? Time to write your [first test](./first_test.md). \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/chose_rps_vu.md b/book/src/libs/wasp/how-to/chose_rps_vu.md new file mode 100644 index 000000000..64ab4f1dd --- /dev/null +++ b/book/src/libs/wasp/how-to/chose_rps_vu.md @@ -0,0 +1,109 @@ +# WASP - How to Choose Between RPS and VUs + +When writing a test, you need to decide whether to use **RPS** or **VUs** as your load type. + +> [!WARNING] +> RPS load type can only be used with a `Gun`, and VUs can only be used with a `VirtualUser`. + +--- + +## RPS (Requests Per Second) + +You should use **RPS** when your goal is to measure **throughput**. This load type implements an **open model**, where: +* The number of requests is fixed. +* The load is adjusted to meet the target RPS. +* The system's response time has no impact on the rate of load generation. + +In an RPS-based test, new requests are sent continuously, regardless of how long previous requests take. + +### Example RPS Test Diagram +```mermaid +--- +title: RPS test +--- +sequenceDiagram + participant Profile(Test) + participant Scheduler + participant Generator(Gun) + participant Promtail + participant Loki + participant Grafana + loop Test Execution + Profile(Test) ->> Generator(Gun): Start with (API, TestData) + loop Schedule + Scheduler ->> Scheduler: Process schedule segment + Scheduler ->> Generator(Gun): Set new RPS target + loop RPS load + Generator(Gun) ->> Generator(Gun): Execute Call() in parallel + Generator(Gun) ->> Promtail: Save CallResult + end + Promtail ->> Loki: Send batch
    when ready or timeout + end + Scheduler ->> Scheduler: All segments done
    wait all responses
    test ends + Profile(Test) ->> Grafana: Check alert groups
    FAIL or PASS the test + end +``` + +--- + +## VirtualUser (VUs) + +Use **VUs** when working with **stateful protocols** or workflows. With `VirtualUser`, the **requests per second** rate cannot be guaranteed because: +* Each iteration begins only after the previous one finishes. +* The load follows a **closed model**, where the system's response time affects the RPS. + +If the system takes longer to respond, iterations take longer, and the RPS decreases. + +### Example VUs Test Diagram +```mermaid +--- +title: VUs test +--- +sequenceDiagram + participant Profile(Test) + participant Scheduler + participant Generator(VUs) + participant VU1 + participant VU2 + participant Promtail + participant Loki + participant Grafana + loop Test Execution + Profile(Test) ->> Generator(VUs): Start with (API, TestData) + loop Schedule + Scheduler ->> Scheduler: Process schedule segment + Scheduler ->> Generator(VUs): Set new VUs target + loop VUs load + Generator(VUs) ->> Generator(VUs): Add/remove VUs + Generator(VUs) ->> VU1: Start/end + Generator(VUs) ->> VU2: Start/end + VU1 ->> VU1: Run loop, execute multiple calls + VU1 ->> Promtail: Save []CallResult + VU2 ->> VU2: Run loop, execute multiple calls + VU2 ->> Promtail: Save []CallResult + Promtail ->> Loki: Send batch
    when ready or timeout + end + end + Scheduler ->> Scheduler: All segments done
    wait all responses
    test ends + Profile(Test) ->> Grafana: Check alert groups
    FAIL or PASS the test + end +``` + +In this model, `VU2` starts only after `VU1` has finished its iteration. + +--- + +## Summary + +* Use **RPS** for: + - Stateless protocols. + - Measuring throughput. + - Scenarios where the load generation rate must remain constant. + +* Use **VUs** for: + - Stateful protocols. + - Workflows that involve multiple steps. + - Scenarios where response time impacts the load generation rate. + +> [!NOTE] +> Learn more about open and closed models [here](https://grafana.com/docs/k6/latest/using-k6/scenarios/concepts/open-vs-closed/). \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/debug_loki_errors.md b/book/src/libs/wasp/how-to/debug_loki_errors.md new file mode 100644 index 000000000..a15d657e8 --- /dev/null +++ b/book/src/libs/wasp/how-to/debug_loki_errors.md @@ -0,0 +1,44 @@ +# WASP - How to Debug Loki Push Errors + +To troubleshoot Loki push errors, follow these steps: + +--- + +### Step 1: Enable Trace Logging + +Set the logging level to `trace` to see all messages sent to Loki: + +```bash +WASP_LOG_LEVEL=trace +``` + +--- + +### Step 2: Adjust Error Limits + +If the Loki client fails to deliver a batch, the test will continue until the maximum number of errors is reached. +You can control this using `LokiConfig.MaxErrors`: +* Set `LokiConfig.MaxErrors` to a desired limit. +* Set it to `-1` to disable error checks entirely. + +Often, simply increasing `LokiConfig.Timeout` can resolve the issue. + +--- + +### Step 3: Handle Specific Errors + +If you encounter errors like the following: + +``` +ERR Malformed promtail log message, skipping Line=["level",{},"component","client","host","...","msg","batch add err","tenant","","error",{}] +``` + +Take the following actions: +1. Increase `LokiConfig.MaxStreams`. +2. Verify the validity of your Loki configuration. + +--- + +Since `LokiConfig` is specific for each `Generator` remember to adjust the configuration for all of your generators. + +By following these steps, you can effectively debug and resolve Loki push errors. \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/define_nfr_check_alerts.md b/book/src/libs/wasp/how-to/define_nfr_check_alerts.md new file mode 100644 index 000000000..a6f4bf484 --- /dev/null +++ b/book/src/libs/wasp/how-to/define_nfr_check_alerts.md @@ -0,0 +1,83 @@ +# WASP - How to Define NFRs and Check Alerts + +WASP allows you to define and monitor **Non-Functional Requirements (NFRs)** by grouping them into categories for independent checks. Ideally, these NFRs should be defined as dashboard-as-code and committed to your Git repository. However, you can also create them programmatically on an existing or new dashboard. + +--- + +### Defining Alerts + +WASP supports two types of alerts: + +#### Built-in Alerts + +These alerts are automatically supported by every generator and are based on the following metrics: +* **99th quantile (p99)** +* **Errors** +* **Timeouts** + +You can specify simple alert conditions such as: +* Value above or below +* Average +* Median + +These conditions use Grabana's [ConditionEvaluator](https://pkg.go.dev/github.com/K-Phoen/grabana@v0.21.18/alert#ConditionEvaluator). + +--- + +#### Custom Alerts + +Custom alerts can be much more complex and can: +* Combine multiple simple conditions. +* Execute Loki queries. + +Custom alerts use Grabana's [timeseries.Alert](https://pkg.go.dev/github.com/K-Phoen/grabana@v0.21.18/timeseries#Alert) and must be timeseries-based. + +> [!NOTE] +> For a programmatic example, check the [alerts example](https://github.com/smartcontractkit/chainlink-testing-framework/blob/main/wasp/examples/alerts/main_test.go). + +--- + +### Checking Alerts + +Once you have a dashboard with alerts, you can choose between two approaches: + +#### 1. Automatic Checking with `Profile` and `GrafanaOpts` + +You can automatically check alerts and add dashboard annotations by utilizing the `WithGrafana()` function with a `wasp.Profile`. This approach integrates dashboard annotations and evaluates alerts after the test run. + +**Example**: + +```go +_, err = wasp.NewProfile(). + WithGrafana(grafanaOpts). + Add(wasp.NewGenerator(getLatestReportByTimestampCfg)). + Run(true) +require.NoError(t, err) +``` + +Where `GrafanaOpts` is defined as: + +```go +type GrafanaOpts struct { + GrafanaURL string `toml:"grafana_url"` + GrafanaToken string `toml:"grafana_token_secret"` + WaitBeforeAlertCheck time.Duration `toml:"grafana_wait_before_alert_check"` // Cooldown period before checking for alerts + AnnotateDashboardUIDs []string `toml:"grafana_annotate_dashboard_uids"` // Dashboard UIDs to annotate the start and end of the run + CheckDashboardAlertsAfterRun []string `toml:"grafana_check_alerts_after_run_on_dashboard_uids"` // Dashboard UIDs to check for alerts after the run +} +``` + +#### 2. Manual Checking with `AlertChecker` + +You can manually check alerts using the [AlertChecker](../components/alert_checker.md) component. + +--- + +### Summary + +WASP provides flexibility in defining and monitoring NFRs: +* Use **built-in alerts** for standard metrics like p99, errors, and timeouts. +* Use **custom alerts** for complex conditions or Loki queries. +* Automate alert checks using `Profile` with `GrafanaOpts` or manually verify them with `AlertChecker`. + +By combining these tools, you can ensure your application's performance and reliability align with your NFRs. \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/incorporate_load_tests.md b/book/src/libs/wasp/how-to/incorporate_load_tests.md new file mode 100644 index 000000000..c61d27ee8 --- /dev/null +++ b/book/src/libs/wasp/how-to/incorporate_load_tests.md @@ -0,0 +1,66 @@ +# WASP - How to Incorporate Load Tests in Your Workflow + +You might be wondering where load tests belong in the Software Development Life Cycle (SDLC) and how to incorporate them effectively. The diagram below illustrates the recommended approach: + +```mermaid +--- +title: Workload execution. P - Profile, G - Generator, VU - VirtualUser +--- +sequenceDiagram + participant Product repo + participant Runner + participant K8s + participant Loki + participant Grafana + participant Devs + Product repo->>Product repo: Define NFR for different workloads
    Define application dashboard
    Define dashboard alerts
    Define load tests + Product repo->>Grafana: Upload app dashboard
    Alerts have "requirement_name" label
    Each "requirement_name" group is based on some NFR + loop CI runs + Product repo->>Runner: CI runs small load test + Runner->>Runner: Execute load test logic
    Run multiple generators + Runner->>Loki: Stream load test data + Runner->>Grafana: Check alerts for "requirement_name": "baseline" + Grafana->>Devs: Notify devs (Dashboard URL/Alert groups) + Product repo->>Runner: CI runs large load test + Runner->>K8s: Split workload into multiple jobs
    Monitor job statuses + K8s->>Loki: Stream load test data + Runner->>Grafana: Check alerts for "requirement_name": "stress" + Grafana->>Devs: Notify devs (Dashboard URL/Alert groups) + end +``` + +--- + +### Workflow Explanation + +1. **Define Requirements and Dashboards:** + - Define **NFRs** (Non-Functional Requirements) for different workloads. + - Create an application dashboard and define alerts grouped by `requirement_name`. + Each `requirement_name` group corresponds to a specific NFR. + +2. **Integrate into CI/CD:** + - **Small Load Tests:** + Run small load tests as part of your CI pipeline: + * Execute load test logic with multiple generators. + * Stream test data to Loki. + * Check Grafana alerts for the "baseline" group. + * Notify developers with dashboard URLs and alert group details. + - **Large Load Tests:** + For stress testing: + * Split the workload into multiple Kubernetes jobs and monitor their statuses. + * Stream test data to Loki. + * Check Grafana alerts for the "stress" group. + * Notify developers with dashboard URLs and alert group details. + +3. **Notification and Iteration:** + - Alerts notify developers about potential issues, directing them to relevant dashboards and alert groups. + +--- + +### Key Points + +- **Scalable Testing:** Use small load tests for quick validation in CI and larger tests for stress validation. +- **Real-Time Monitoring:** Leverage Grafana to monitor metrics and alerts during test execution. +- **Team Collaboration:** Automate notifications to keep the team informed of any issues. + +This approach ensures that load testing is seamlessly integrated into your SDLC and provides actionable insights for maintaining performance and reliability. \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/overview.md b/book/src/libs/wasp/how-to/overview.md new file mode 100644 index 000000000..b7a603fac --- /dev/null +++ b/book/src/libs/wasp/how-to/overview.md @@ -0,0 +1,12 @@ +# WASP - How to's + +In this section we will deal with the most common issues or questions: +* [How to start local observability stack?](./start_local_observability_stack.md) +* [How to try some tests quickly?](./run_included_tests.md) +* [How to chose between RPS and VUs?](./chose_rps_vu.md) +* [How to define NFRs and check alerts?](./define_nfr_check_alerts.md) +* [How to use labels?](./use_labels.md) +* [How to incorporate load tests in your workflow?](./incorporate_load_tests.md) +* [How to reuse dashboard components?](./reuse_dashboard_components.md) +* [How to parallelize load?](./parallelise_load.md) +* [How to debug Loki errors?](./debug_loki_errors.md) \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/parallelise_load.md b/book/src/libs/wasp/how-to/parallelise_load.md new file mode 100644 index 000000000..a9d81c03a --- /dev/null +++ b/book/src/libs/wasp/how-to/parallelise_load.md @@ -0,0 +1,134 @@ +# WASP - How to Parallelize Load + +Parallelizing load can be achieved using the **`Profile`** component, which allows you to combine multiple generators. However, this approach works only if all generators start at the same time. If you need to space out the generators for various reasons, you must use native Go concurrency primitives like `goroutines` and `channels`. + +--- + +### Concept + +To parallelize load: +1. Split the load into multiple parts. +2. Run each part in separate `goroutines`, either using a `Profile` or directly with `Generator`. +3. Use `channels` to coordinate the timing and synchronization between the goroutines. + +--- + +### Example Scenario + +Suppose you want to execute the following scenario: +1. Gradually ramp up an **RPS load** over 10 seconds from 1 to 10 RPS and hold it for 50 seconds. +2. When RPS reaches 10, gradually ramp up a **VU load** over 16 seconds from 2 to 8 VUs (`VU'`) and hold it for 30 seconds. +3. Once `VU'` reaches 8, introduce another user interaction and ramp up a **VU load** over 14 seconds from 3 to 9 VUs (`VU''`) and hold it for 20 seconds. + +Here’s how you can achieve this: + +```go +func TestParallelLoad(t *testing.T) { + labels := map[string]string{ + "branch": "parallel_load", + "commit": "parallel_load", + } + + // Define RPS schedule + rpsSchedule := wasp.Combine( + // wasp.Steps(from, increase, steps, duration) + wasp.Steps(1, 1, 9, 10*time.Second), // Start with 1 RPS, increment by 1 RPS in 9 steps over 10 seconds + // wasp.Plain(count, duration) + wasp.Plain(9, 50*time.Second), // Hold 9 RPS for 50 seconds + ) + + // Define VU' schedule + vuSchedule := wasp.Combine( + // wasp.Steps(from, increase, steps, duration) + wasp.Steps(2, 1, 8, 16*time.Second), // Start with 2 VUs, increment by 1 VU in 8 steps over 16 seconds + // wasp.Plain(count, duration) + wasp.Plain(10, 30*time.Second), // Hold 10 VUs for 30 seconds + ) + + // Define VU'' schedule + vu2Schedule := wasp.Combine( + // wasp.Steps(from, increase, steps, duration) + wasp.Steps(3, 1, 6, 14*time.Second), // Start with 3 VUs, increment by 1 VU in 6 steps over 14 seconds + // wasp.Plain(count, duration) + wasp.Plain(9, 20*time.Second), // Hold 9 VUs for 20 seconds + ) + + // Create generators + rpsGen, err := wasp.NewGenerator(&wasp.Config{ + LoadType: wasp.RPS, + Schedule: rpsSchedule, + GenName: "Kappa", + Labels: labels, + Gun: NewExampleHTTPGun(srv.URL()), + LokiConfig: wasp.NewEnvLokiConfig(), + }) + require.NoError(t, err) + + vuGen, err := wasp.NewGenerator(&wasp.Config{ + LoadType: wasp.VU, + Schedule: vuSchedule, + GenName: "Lambda", + Labels: labels, + VU: NewExampleScenario(srv.URL()), + LokiConfig: wasp.NewEnvLokiConfig(), + }) + require.NoError(t, err) + + vu2Gen, err := wasp.NewGenerator(&wasp.Config{ + LoadType: wasp.VU, + Schedule: vu2Schedule, + GenName: "Mu", + Labels: labels, + VU: NewExampleScenario(srv.URL()), // Use the same VirtualUser implementation for simplicity + LokiConfig: wasp.NewEnvLokiConfig(), + }) + require.NoError(t, err) + + wg := sync.WaitGroup{} + + // Run RPS load in a separate goroutine + go func() { + wg.Add(1) + rpsGen.Run(true) + wg.Done() + }() + + // Wait for RPS load to stabilize + time.Sleep(10 * time.Second) + + // Run VU' load in a separate goroutine + go func() { + wg.Add(1) + vuGen.Run(true) + wg.Done() + }() + + // Wait for VU' load to stabilize + time.Sleep(16 * time.Second) + + // Run VU'' load + vu2Gen.Run(true) + + // Wait for all goroutines to complete + wg.Wait() + + // Check for load generation errors + require.Equal(t, 0, len(rpsGen.Errors()), "RPS generator errors") + require.Equal(t, 0, len(vuGen.Errors()), "VU generator errors") + require.Equal(t, 0, len(vu2Gen.Errors()), "VU'' generator errors") +} +``` + +--- + +### Key Points + +- **Parallel Execution:** Run each generator in its own `goroutine`. +- **Synchronization:** Use `time.Sleep` or channels to coordinate timing between load segments. +- **Error Handling:** Always check for errors in load generation, though they may not necessarily indicate a problem (e.g., aggressive load tests). + +--- + +### Full Example + +For a complete example, refer to [this file](https://github.com/smartcontractkit/chainlink-testing-framework/blob/main/wasp/examples/profiles/node_background_load_test.go). \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/reuse_dashboard_components.md b/book/src/libs/wasp/how-to/reuse_dashboard_components.md new file mode 100644 index 000000000..5433a8179 --- /dev/null +++ b/book/src/libs/wasp/how-to/reuse_dashboard_components.md @@ -0,0 +1,42 @@ +# WASP - How to Reuse WASP Components in Your Own Dashboard + +You can reuse components from the default WASP dashboard to build your custom dashboard. Here’s an example: + +```go +import ( + waspdashboard "github.com/smartcontractkit/wasp/dashboard" + "github.com/K-Phoen/grabana/dashboard" +) + +func BuildCustomLoadTestDashboard(dashboardName string) (dashboard.Builder, error) { + // Custom key-value pairs used to query panels + panelQuery := map[string]string{ + "branch": `=~"${branch:pipe}"`, + "commit": `=~"${commit:pipe}"`, + "network_type": `="testnet"`, + } + + return dashboard.New( + dashboardName, + waspdashboard.WASPLoadStatsRow("Loki", panelQuery), // WASP component + waspdashboard.WASPDebugDataRow("Loki", panelQuery, true), // WASP component + // Your custom panels and rows go here + ) +} +``` + +--- + +### Available Components + +You can find all reusable components in the following files: +* [grafanasdk/panels.go](https://github.com/smartcontractkit/chainlink-testing-framework/blob/main/wasp/dashboard/grafanasdk/panels.go) +* [panels.go](https://github.com/smartcontractkit/chainlink-testing-framework/blob/main/wasp/dashboard/panels.go) + +--- + +### Key Points + +- WASP components like `WASPLoadStatsRow` and `WASPDebugDataRow` can be directly included in your dashboard. +- Customize panel queries using key-value pairs specific to your setup. +- Extend the default dashboard by adding your own rows and panels alongside WASP components. \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/run_included_tests.md b/book/src/libs/wasp/how-to/run_included_tests.md new file mode 100644 index 000000000..76c561ed4 --- /dev/null +++ b/book/src/libs/wasp/how-to/run_included_tests.md @@ -0,0 +1,62 @@ +# WASP - Try It Out Quickly + +--- + +## Prerequisites + +Ensure you have the following installed: +* [Golang](https://go.dev/doc/install) +* [Docker](https://docs.docker.com/get-docker/) +* [Nix](https://nixos.org/manual/nix/stable/installation/installation.html) +* [Loki and Grafana](./start_local_observability_stack.md) +* [Pyroscope](./start_local_observability_stack.md) + +--- + +### Install Dependencies with Nix + +To install dependencies with Nix, simply execute: + +```bash +nix develop +``` + +--- + +## Running Grafana and Loki Tests + +Assuming you have already started and configured the local observability stack, you can run sample Loki and Grafana tests with: + +```bash +make test_loki +``` + +Once the test is running, you can view the results in the [dashboard](http://localhost:3000/d/wasp/Wasp?orgId=1&refresh=5s&from=now-5m&to=now). + +> [!WARNING] +> If deploying to your own Grafana instance, verify the `DASHBOARD_FOLDER` and `DASHBOARD_NAME`. +> Defaults are the `LoadTests` directory, and the dashboard is named `Wasp`. + +--- + +## Running Pyroscope Tests + +If Grafana, Loki, and Pyroscope are already running, you can execute sample Pyroscope tests with: + +```bash +make test_pyro_rps +``` + +or + +```bash +make test_pyro_vu +``` + +During the test, you can view the results in the [Pyroscope dashboard](http://localhost:4040/). + +--- + +### Additional Debugging Option + +You can also add the `-trace trace.out` flag when running any of your tests with `go test` for additional tracing information. \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/start_local_observability_stack.md b/book/src/libs/wasp/how-to/start_local_observability_stack.md new file mode 100644 index 000000000..ea510011e --- /dev/null +++ b/book/src/libs/wasp/how-to/start_local_observability_stack.md @@ -0,0 +1,77 @@ +# WASP - How to Start Local Observability Stack + +To execute all examples or tests locally, you need to configure a local observability stack. This stack includes **Loki**, **Grafana**, and **Pyroscope**. + +--- + +## Prerequisites + +Ensure you have the following installed: +* [Docker](https://docs.docker.com/get-docker/) + +--- + +## Grafana and Loki + +To start the local observability stack, run the following command: + +```bash +make start +``` + +This command will download and run Docker images for Loki and Grafana. Once completed, it will output something like: + +```bash +Service account id: 2 +Grafana token: "" +``` + +### Setting Up Environment Variables + +Next, set up the required environment variables. +> [!WARNING] +> Replace `` with the token provided in the previous step. + +```bash +export LOKI_TOKEN= +export LOKI_URL=http://localhost:3030/loki/api/v1/push +export GRAFANA_URL=http://localhost:3000 +export GRAFANA_TOKEN= +export DATA_SOURCE_NAME=Loki +export DASHBOARD_FOLDER=LoadTests +export DASHBOARD_NAME=Wasp +``` + +### Accessing Services + +* Grafana: [http://localhost:3000/](http://localhost:3000/) +* Loki: [http://localhost:3030/](http://localhost:3030/) + +### Stopping the Containers + +To stop both containers, run: + +```bash +make stop +``` + +--- + +## Pyroscope + +To start Pyroscope, execute: + +```bash +make pyro_start +``` + +> [!NOTE] +> Pyroscope is available at: [http://localhost:4040/](http://localhost:4040/) + +### Stopping Pyroscope + +To stop Pyroscope, run: + +```bash +make pyro_stop +``` \ No newline at end of file diff --git a/book/src/libs/wasp/how-to/use_labels.md b/book/src/libs/wasp/how-to/use_labels.md new file mode 100644 index 000000000..5ff98c9ba --- /dev/null +++ b/book/src/libs/wasp/how-to/use_labels.md @@ -0,0 +1,125 @@ +# WASP - How to Use Labels + +The default WASP dashboard utilizes the following labels to differentiate between various generators and requests: +* `go_test_name` +* `gen_name` +* `branch` +* `commit` +* `call_group` + +--- + +## `go_test_name` + +This label is used to differentiate between different tests. If an instance of `*testing.T` is passed to the generator configuration, the test name will automatically be added to the `go_test_name` label: + +```go +gen, err := wasp.NewGenerator(&wasp.Config{ + LoadType: wasp.RPS, + T: t, // < ----------------------- HERE + Schedule: wasp.Plain(5, 60*time.Second), + Gun: NewExampleHTTPGun(srv.URL()), + Labels: labels, + LokiConfig: wasp.NewEnvLokiConfig(), +}) +``` + +--- + +## `gen_name` + +This label differentiates between different generators: + +```go +gen, err := wasp.NewGenerator(&wasp.Config{ + LoadType: wasp.RPS, + T: t, + GenName: "my_super_generator", // < ----------------------- HERE + Schedule: wasp.Plain(5, 60*time.Second), + Gun: NewExampleHTTPGun(srv.URL()), + Labels: labels, + LokiConfig: wasp.NewEnvLokiConfig(), +}) +``` + +--- + +## `branch` and `commit` + +These labels are primarily used to distinguish between different branches and commits when running tests in CI. +Since there is no automated way to fetch this data, it must be passed manually: + +```go +branch := os.Getenv("BRANCH") +commit := os.Getenv("COMMIT") + +labels := map[string]string{ + "branch": branch, // < ----------------------- HERE + "commit": commit, // < ----------------------- HERE +} + +gen, err := wasp.NewGenerator(&wasp.Config{ + LoadType: wasp.RPS, + T: t, + GenName: "my_super_generator", + Schedule: wasp.Plain(5, 60*time.Second), + Gun: NewExampleHTTPGun(srv.URL()), + Labels: labels, // < ----------------------- HERE + LokiConfig: wasp.NewEnvLokiConfig(), +}) +``` + +> [!NOTE] +> Make sure to set the `BRANCH` and `COMMIT` environment variables in your CI workflow. + +--- + +## `call_group` + +This label allows differentiation between different requests within a Virtual User's `Call()` function. + +### Example: + +```go +// represents user login +func (m *VirtualUser) requestOne(l *wasp.Generator) { + var result map[string]interface{} + r, err := m.client.R(). + SetResult(&result). + Get(m.target) + if err != nil { + l.Responses.Err(r, "auth", err) // < ----------------------- HERE + return + } + l.Responses.OK(r, "auth") // < ----------------------- HERE +} + +// represents authenticated user action +func (m *VirtualUser) requestTwo(l *wasp.Generator) { + var result map[string]interface{} + r, err := m.client.R(). + SetResult(&result). + Get(m.target) + if err != nil { + l.Responses.Err(r, "user", err) // < ----------------------- HERE + return + } + l.Responses.OK(r, "user") // < ----------------------- HERE +} +``` + +In this example, the authentication request and the user action request are differentiated by the `call_group` label. + +--- + +## Custom Labels + +> [!NOTE] +> You can add as many custom labels as needed for use with your dashboard. + +```go +labels := map[string]string{ + "custom_label_1": "value1", + "custom_label_2": "value2", +} +``` \ No newline at end of file diff --git a/book/src/libs/wasp/images/dashboard_basic.png b/book/src/libs/wasp/images/dashboard_basic.png new file mode 100644 index 0000000000000000000000000000000000000000..6f768c1361793a284dd4de5dc086a80e004fe2cd GIT binary patch literal 651751 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ΞdU4bnomxp`)%JZMNuROt2ZU^q$ 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 z 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%0AkFQx@w{o~~mw|WP=z~w0 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 U*eBy14-GV1LNX87bwJy? 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�!y>W|WI(U~!lD%(KtK}$kO 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%0Am97Hb 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 Zx>;lsH9*s_S3>|?FO@VEOXW>J|36Wiv2_3d literal 0 HcmV?d00001 diff --git a/book/src/libs/wasp/images/how-it-works.png b/book/src/libs/wasp/images/how-it-works.png new file mode 100644 index 0000000000000000000000000000000000000000..405e873a951500eb2d8c7c7b0f07296bee6b9b6c GIT binary patch literal 130430 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