likec4 1.12.2 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1816 @@
1
+ import*as Eb from"node:fs";import{writeFileSync as Db,statSync as NN,readFileSync as Hp,appendFileSync as ON,createReadStream as Tb,createWriteStream as Rb,existsSync as FN}from"node:fs";import Jr,{sep as LN,resolve as MN,basename as zN}from"node:path";import{fileURLToPath as Vp,pathToFileURL as BN}from"node:url";import{isatty as qN}from"tty";import{Graphviz as Kp}from"@hpcc-js/wasm-graphviz";import*as jN from"node:util";import{formatWithOptions as UN,debuglog as WN,stripVTControlCharacters as GN,inspect as Sb,promisify as HN,callbackify as bo,aborted as VN}from"node:util";import Pe,{platform as KN,hrtime as nd,execPath as YN,execArgv as XN}from"node:process";import*as Yp from"node:tty";import kb from"node:tty";import{ChildProcess as $b,spawnSync as JN,spawn as ZN}from"node:child_process";import{StringDecoder as Cb}from"node:string_decoder";import*as QN from"child_process";import*as e2 from"path";import*as t2 from"fs";import{setTimeout as _b,scheduler as Ab,setImmediate as n2}from"node:timers/promises";import{constants as vs}from"node:os";import{once as yn,addAbortListener as xb,EventEmitter as r2,on as rd,setMaxListeners as i2}from"node:events";import{serialize as s2}from"node:v8";import{Transform as o2,getDefaultHighWaterMark as id,PassThrough as Ib,Readable as ws,Writable as Xp,Duplex as Jp}from"node:stream";import{Buffer as Zp}from"node:buffer";import{finished as xi}from"node:stream/promises";import{createLogger as a2}from"vite";import{Buffer as Qp}from"buffer";import*as c2 from"util";import*as u2 from"os";import*as l2 from"crypto";import*as d2 from"net";import*as f2 from"url";function h2(t,e,n){let r=i=>t(i,...e);return n===void 0?r:Object.assign(r,{lazy:n,lazyArgs:e})}function Zr(t,e,n){let r=t.length-e.length;if(r===0)return t(...e);if(r===1)return h2(t,e,n);throw new Error("Wrong number of arguments")}function p2(t){return e=>!t(e)}function Ii(t){return t==null}function Pb(t){return Array.isArray(t)}function g2(...t){return Zr(m2,t)}var m2=(t,e)=>e.every(n=>n(t));function y2(...t){return Zr(v2,t)}var v2=(t,e)=>e.some(n=>n(t));function rt(t,e){if(typeof t>"u"||t==null)throw new Error(e??`Expected defined value, but received ${t}`);return t}function we(t,e){if(!t)throw new Error(e??"Invariant failed")}function Me(t){throw new Error(`NonExhaustive value: ${t}`)}function w2(t,e){return e?e+"."+t:t}const b2=["solid","dashed","dotted","none"],E2=["rectangle","person","browser","mobile","cylinder","storage","queue"],_a="primary",eg="rectangle";function Nb(t){return"element"in t}function Ob(t){return"expanded"in t}function Fb(t){return"custom"in t&&(sd(t.custom.expr)||tg(t.custom.expr))}function Lb(t){return"wildcard"in t}function Mb(t){return"elementKind"in t&&"isEqual"in t}function zb(t){return"elementTag"in t&&"isEqual"in t}function sd(t){return Nb(t)||Lb(t)||Mb(t)||zb(t)||Ob(t)}function tg(t){return"where"in t&&sd(t.where.expr)}function Bb(t){return sd(t)||tg(t)||Fb(t)}function qb(t){return"source"in t&&"target"in t}function jb(t){return"inout"in t}function Ub(t){return"incoming"in t}function Wb(t){return"outgoing"in t}function ng(t){return qb(t)||jb(t)||Ub(t)||Wb(t)}function Gb(t){return"where"in t&&ng(t.where.expr)}function Hb(t){return"customRelation"in t}function D2(t){return ng(t)||Gb(t)||Hb(t)}const ye={__proto__:null,isCustomElement:Fb,isCustomRelationExpr:Hb,isElement:sd,isElementKindExpr:Mb,isElementPredicateExpr:Bb,isElementRef:Nb,isElementTagExpr:zb,isElementWhere:tg,isExpandedElementExpr:Ob,isInOut:jb,isIncoming:Ub,isOutgoing:Wb,isRelation:qb,isRelationExpression:ng,isRelationPredicateExpr:D2,isRelationWhere:Gb,isWildcard:Lb},T2=t=>"tag"in t,R2=t=>"kind"in t,S2=t=>"not"in t,rg=t=>"and"in t,ig=t=>"or"in t;function Eo(t){switch(!0){case T2(t):{if("eq"in t.tag){const n=t.tag.eq;return r=>Array.isArray(r.tags)&&r.tags.includes(n)}const e=t.tag.neq;return n=>!Array.isArray(n.tags)||!n.tags.includes(e)}case R2(t):{if("eq"in t.kind){const n=t.kind.eq;return r=>r.kind===n}const e=t.kind.neq;return n=>Ii(n.kind)||n.kind!==e}case S2(t):{const e=Eo(t.not);return p2(e)}case rg(t):{const e=t.and.map(Eo);return g2(e)}case ig(t):{const e=t.or.map(Eo);return y2(e)}default:Me(t)}}const Vb="dashed",Do="normal",bs="gray",k2=["amber","blue","gray","slate","green","indigo","muted","primary","red","secondary","sky"];function Kb(t){return t in k2}function $2(t){return"include"in t&&Array.isArray(t.include)||"exclude"in t&&Array.isArray(t.exclude)}function C2(t){return"style"in t&&"targets"in t}function _2(t){return t==="TB"||t==="BT"||t==="LR"||t==="RL"}function Yb(t){return"direction"in t}function A2(t){return"include"in t&&Array.isArray(t.include)}function x2(t){return"__parallel"in t&&Pb(t.__parallel)}function od(t){return Ii(t.__)||t.__==="element"}function Xb(t){return od(t)&&"extends"in t}function sg(t){return od(t)&&"viewOf"in t}function Jb(t,e){const n=`step-${String(t).padStart(2,"0")}`;return e?`${n}.${e}`:n}function Zb(t){return t.startsWith("step-")}function Qb(t){if(!Zb(t))throw new Error(`Invalid step edge id: ${t}`);return parseFloat(t.slice(5))}function og(t){return t.__==="dynamic"}function I2(t){return Ii(t.__)||t.__==="element"}function ag(t){if(t===null||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);return e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null||Symbol.iterator in t?!1:Symbol.toStringTag in t?Object.prototype.toString.call(t)==="[object Module]":!0}function cg(t,e,n=".",r){if(!ag(e))return cg(t,{},n,r);const i=Object.assign({},e);for(const s in t){if(s==="__proto__"||s==="constructor")continue;const o=t[s];o!=null&&(r&&r(i,s,o,n)||(Array.isArray(o)&&Array.isArray(i[s])?i[s]=[...o,...i[s]]:ag(o)&&ag(i[s])?i[s]=cg(o,i[s],(n?`${n}.`:"")+s.toString(),r):i[s]=o))}return i}function P2(t){return(...e)=>e.reduce((n,r)=>cg(n,r,"",t),{})}const Aa=P2();function xa(...t){return Zr(Object.values,t)}function ad(...t){return Zr(N2,t)}var N2=(t,e)=>t.length>=e;function O2(t,e){let n=Math.ceil(t),r=Math.floor(e);if(r<n)throw new RangeError(`randomInteger: The range [${t.toString()},${e.toString()}] contains no integer`);return Math.floor(Math.random()*(r-n+1)+n)}function F2(...t){return Zr(L2,t)}function L2(t,e){let n={};for(let[r,i]of Object.entries(t))e(i,r,t)&&(n[r]=i);return n}function ug(...t){return Zr(M2,t,z2)}var M2=(t,e)=>t.map(e),z2=t=>(e,n,r)=>({done:!1,hasNext:!0,next:t(e,n,r)});function B2(...t){return Zr(q2,t)}function q2(t,e){let n={};for(let[r,i]of t.entries()){let[s,o]=e(i,r,t);n[s]=o}return n}function j2(...t){return Zr(U2,t)}function U2(t,e){let n={};for(let[r,i]of Object.entries(t)){let s=e(i,r,t);n[r]=s}return n}function Es(t){return typeof t=="string"}function eE(t){return!!t}function tE(t){return typeof t=="function"}function W2(t){return t!=null}function nE(...t){return Zr(Object.fromEntries,t)}function G2(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var lg={exports:{}},rE;function H2(){if(rE)return lg.exports;rE=1;var t=function(e,n){var r,i,s=1,o=0,a=0,c=String.alphabet;function u(l,d,f){if(f){for(r=d;f=u(l,r),f<76&&f>65;)++r;return+l.slice(d-1,r)}return f=c&&c.indexOf(l.charAt(d)),f>-1?f+76:(f=l.charCodeAt(d)||0,f<45||f>127?f:f<46?65:f<48?f-1:f<58?f+18:f<65?f-11:f<91?f+11:f<97?f-37:f<123?f+5:f-63)}if((e+="")!=(n+="")){for(;s;)if(i=u(e,o++),s=u(n,a++),i<76&&s<76&&i>66&&s>66&&(i=u(e,o,o),s=u(n,a,o=r),a=r),i!=s)return i<s?-1:1}return 0};try{lg.exports=t}catch{String.naturalCompare=t}return lg.exports}var V2=H2();const K2=G2(V2);function cd(t,e){return t===e?0:Es(t)?Es(e)?K2(t,e):1:Es(e)?-1:0}function ud(t){return t!=null&&typeof t=="string"}function Ds(t){return!!t&&Array.isArray(t)&&t.length>0}function To(t){const e=t.lastIndexOf(".");return e>0?t.slice(e+1):t}function kr(...t){const e=ud(t[0])?t[0]:t[0].id;return(ud(t[1])?t[1]:t[1].id).startsWith(e+".")}function Ia(t,e){const n=ud(t)?t:t.id,r=ud(e)?e:e.id;return n===r||r.startsWith(n+".")||n.startsWith(r+".")}function Y2(t){const e=t.flatMap(n=>[r=>r.id===n.id,r=>kr(n,r)]);return n=>e.some(r=>r(n))}function Ts(t,e){const n=bt(t),r=bt(e);if(n===r)return n;if(!n||!r)return null;const i=t.split("."),s=e.split(".");let o=null;for(;i.length>1&&s.length>1&&i[0]&&i[0]===s[0];)o=o?`${o}.${i[0]}`:i[0],i.shift(),s.shift();return o}function bt(t){const e=t.lastIndexOf(".");return e>0?t.slice(0,e):null}function iE(t){const e=t+".";return n=>!!n.parent&&(n.parent===t||n.parent.startsWith(e))}function sr(t){const e=t.split(".");return e.pop(),e.length===0?[]:e.reduce((n,r,i)=>i===0?(n.push(r),n):(n.unshift(`${n[0]}.${r}`),n),[])}function Ro(t,e){const n=t.split(".").length,r=e.split(".").length;switch(!0){case n>r:return 1;case n<r:return-1;default:return 0}}function dg(t,e){return Ro(t.id,e.id)}function X2(t){return t.map(e=>({item:e,fqn:e.id.split(".")})).sort((e,n)=>e.fqn.length-n.fqn.length).map(({item:e})=>e)}function Pa(t){if(Es(t)){const e=t;switch(!0){case e.startsWith("tag is not #"):return{tag:{neq:e.replace("tag is not #","")}};case e.startsWith("tag is #"):return{tag:{eq:e.replace("tag is #","")}};case e.startsWith("kind is not "):return{kind:{neq:e.replace("kind is not ","")}};case e.startsWith("kind is "):return{kind:{eq:e.replace("kind is ","")}};default:throw new Error(`Unknown where operator: ${t}`)}}if(t.and)return{and:ug(t.and,Pa)};if(t.or)return{or:ug(t.or,Pa)};if(t.not)return{not:Pa(t.not)};throw new Error(`Unknown where operator: ${t}`)}function J2(...t){return e=>{let n=or(t[0]);const r=Bb(n);if(t.length===2){const i=t[1].where?Pa(t[1].where):void 0;i&&(n={where:{expr:n,condition:i}});const s=t[1].with;s&&(r?n={custom:{...s,expr:n}}:n={customRelation:{...s,relation:n}})}return e.include(n),e}}function Z2(...t){return e=>{let n=or(t[0]);if(t.length===2&&t[1].where){const r=Pa(t[1].where);n={where:{expr:n,condition:r}}}return e.exclude(n),e}}function or(t){if(!Es(t))return t;if(t==="*")return{wildcard:!0};if(t.startsWith("->"))return t.endsWith("->")?{inout:or(t.replace(/->/g,"").trim())}:{incoming:or(t.replace("-> ",""))};if(t.endsWith(" ->"))return{outgoing:or(t.replace(" ->",""))};if(t.includes(" <-> ")){const[e,n]=t.split(" <-> ");return{source:or(e),target:or(n),isBidirectional:!0}}if(t.includes(" -> ")){const[e,n]=t.split(" -> ");return{source:or(e),target:or(n)}}return t.endsWith("._")?{expanded:t.replace("._","")}:t.endsWith(".*")?{element:t.replace(".*",""),isDescedants:!0}:{element:t,isDescedants:!1}}function Q2(t,{notation:e,...n}){return r=>r.style({targets:(Pb(t)?t:[t]).map(i=>or(i)),...e?{notation:e}:{},style:{...n}})}function eO(t){return e=>e.autoLayout(t)}function tO(...t){return e=>t.reduce((n,r)=>r(n),e)}function sE(t,e=new Map,n=[],r=new Map){const i=()=>({tags:t.tags??[],elements:{...t.elements},relationships:{...t.relationships}}),s=c=>!c||!ad(c,1)?null:ug(c,u=>typeof u=="string"?{url:u}:u),o=c=>{const u={autoLayout(l){return c.rules.push({direction:l}),u},exclude(l){return c.rules.push({exclude:[l]}),u},include(l){return c.rules.push({include:[l]}),u},style(l){return c.rules.push(l),u}};return u},a={get Types(){throw new Error("Types are not available in runtime")},clone:()=>sE(structuredClone(t),structuredClone(e),structuredClone(n),structuredClone(r)),__model:()=>({addElement:c=>{const u=bt(c.id);if(u&&we(e.get(u),`Parent element with id "${u}" not found for element with id "${c.id}"`),e.has(c.id))throw new Error(`Element with id "${c.id}" already exists`);return e.set(c.id,c),a},addRelation(c){const u=e.get(c.source);we(u,`Element with id "${c.source}" not found`);const l=e.get(c.target);return we(l,`Element with id "${c.target}" not found`),we(!Ia(u,l),"Cannot create relationship between elements in the same hierarchy"),n.push({id:`rel${n.length+1}`,...c}),a},fqn(c){return c},addSourcelessRelation(){throw new Error("Can be called only in nested model")}}),__views:()=>({addView:c=>(sg(c)&&we(e.get(c.viewOf),`Invalid view ${c.id}, wlement with id "${c.viewOf}" not found`),r.set(c.id,c),a)}),build:()=>({specification:i(),elements:nE(Array.from(e.entries())),relations:B2(n,c=>[c.id,c]),views:nE(Array.from(r.entries()))}),helpers:()=>({model:{model:(...c)=>u=>{const l=u.__model();for(const d of c)d(l);return u},rel:(c,u,l)=>d=>{const{title:f="",links:h=[],...p}=Aa(typeof l=="string"?{title:l}:{...l},{title:null,links:null}),g=s(h);return d.addRelation({source:c,target:u,title:f,...g&&{links:g},...p}),d},relTo:(c,u)=>l=>{const{title:d="",links:f=[],...h}=Aa(typeof u=="string"?{title:u}:{...u},{title:null,links:null}),p=s(f);return l.addSourcelessRelation({target:c,title:d,...p&&{links:p},...h}),l},...j2(t.elements,({style:c,...u},l)=>(d,f)=>{const h=p=>{const{links:g,icon:v,style:m,title:w,...E}=typeof f=="string"?{title:f}:{...f},k=s(g),A=v??c?.icon,I=p.fqn(d);return p.addElement({id:I,kind:l,title:w??To(I),description:null,technology:null,tags:null,color:c?.color??_a,shape:c?.shape??eg,style:F2({border:c?.border,opacity:c?.opacity,...m},W2),links:k,...A&&{icon:A},...u,...E}),p};return h.with=(...p)=>g=>{h(g);const v={...g,fqn:m=>`${g.fqn(d)}.${m}`,addSourcelessRelation:m=>g.addRelation({...m,source:g.fqn(d)})};for(const m of p)m(v);return g},h})},views:{views:(...c)=>u=>{const l=u.__views();for(const d of c)d(l);return u},view:(c,u,l)=>(tE(u)&&(l=u,u={}),d=>{const{links:f=[],title:h=null,...p}=typeof u=="string"?{title:u}:{...u},g=s(f),v={id:c,__:"element",title:h,description:null,tags:null,rules:[],links:g,customColorDefinitions:{},...p};return d.addView(v),l&&l(o(v)),d}),viewOf:(c,u,l,d)=>(tE(l)&&(d=l,l={}),f=>{const{links:h=[],title:p=null,...g}=typeof l=="string"?{title:l}:{...l},v=s(h),m={id:c,__:"element",viewOf:u,title:p,description:null,tags:null,rules:[],links:v,customColorDefinitions:{},...g};return f.addView(m),d&&d(o(m)),f}),$autoLayout:eO,$exclude:Z2,$expr:or,$include:J2,$rules:tO,$style:Q2}}),with:(...c)=>c.reduce((u,l)=>l(u),a).clone()};return a}var fg;(t=>{function e(n){const r=sE(n);return{...r.helpers(),builder:r}}t.forSpecification=e})(fg||(fg={}));const{min:nO,max:rO}=Math,Rs=(t,e=0,n=1)=>nO(rO(e,t),n),hg=t=>{t._clipped=!1,t._unclipped=t.slice(0);for(let e=0;e<=3;e++)e<3?((t[e]<0||t[e]>255)&&(t._clipped=!0),t[e]=Rs(t[e],0,255)):e===3&&(t[e]=Rs(t[e],0,1));return t},oE={};for(let t of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])oE[`[object ${t}]`]=t.toLowerCase();function Ae(t){return oE[Object.prototype.toString.call(t)]||"object"}const Se=(t,e=null)=>t.length>=3?Array.prototype.slice.call(t):Ae(t[0])=="object"&&e?e.split("").filter(n=>t[0][n]!==void 0).map(n=>t[0][n]):t[0].slice(0),So=t=>{if(t.length<2)return null;const e=t.length-1;return Ae(t[e])=="string"?t[e].toLowerCase():null},{PI:ld,min:aE,max:cE}=Math,qn=t=>Math.round(t*100)/100,pg=t=>Math.round(t*100)/100,Qr=ld*2,gg=ld/3,iO=ld/180,sO=180/ld,Re={format:{},autodetect:[]};let re=class{constructor(...e){const n=this;if(Ae(e[0])==="object"&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];let r=So(e),i=!1;if(!r){i=!0,Re.sorted||(Re.autodetect=Re.autodetect.sort((s,o)=>o.p-s.p),Re.sorted=!0);for(let s of Re.autodetect)if(r=s.test(...e),r)break}if(Re.format[r]){const s=Re.format[r].apply(null,i?e:e.slice(0,-1));n._rgb=hg(s)}else throw new Error("unknown format: "+e);n._rgb.length===3&&n._rgb.push(1)}toString(){return Ae(this.hex)=="function"?this.hex():`[${this._rgb.join(",")}]`}};const oO="3.1.1",Ie=(...t)=>new re(...t);Ie.version=oO;const ko={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",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",maroon2:"#7f0000",maroon3:"#b03060",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",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},aO=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,cO=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,uE=t=>{if(t.match(aO)){(t.length===4||t.length===7)&&(t=t.substr(1)),t.length===3&&(t=t.split(""),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);const e=parseInt(t,16),n=e>>16,r=e>>8&255,i=e&255;return[n,r,i,1]}if(t.match(cO)){(t.length===5||t.length===9)&&(t=t.substr(1)),t.length===4&&(t=t.split(""),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]);const e=parseInt(t,16),n=e>>24&255,r=e>>16&255,i=e>>8&255,s=Math.round((e&255)/255*100)/100;return[n,r,i,s]}throw new Error(`unknown hex color: ${t}`)},{round:dd}=Math,lE=(...t)=>{let[e,n,r,i]=Se(t,"rgba"),s=So(t)||"auto";i===void 0&&(i=1),s==="auto"&&(s=i<1?"rgba":"rgb"),e=dd(e),n=dd(n),r=dd(r);let o="000000"+(e<<16|n<<8|r).toString(16);o=o.substr(o.length-6);let a="0"+dd(i*255).toString(16);switch(a=a.substr(a.length-2),s.toLowerCase()){case"rgba":return`#${o}${a}`;case"argb":return`#${a}${o}`;default:return`#${o}`}};re.prototype.name=function(){const t=lE(this._rgb,"rgb");for(let e of Object.keys(ko))if(ko[e]===t)return e.toLowerCase();return t},Re.format.named=t=>{if(t=t.toLowerCase(),ko[t])return uE(ko[t]);throw new Error("unknown color name: "+t)},Re.autodetect.push({p:5,test:(t,...e)=>{if(!e.length&&Ae(t)==="string"&&ko[t.toLowerCase()])return"named"}}),re.prototype.alpha=function(t,e=!1){return t!==void 0&&Ae(t)==="number"?e?(this._rgb[3]=t,this):new re([this._rgb[0],this._rgb[1],this._rgb[2],t],"rgb"):this._rgb[3]},re.prototype.clipped=function(){return this._rgb._clipped||!1};const $r={Kn:18,labWhitePoint:"d65",Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452,kE:216/24389,kKE:8,kK:24389/27,RefWhiteRGB:{X:.95047,Y:1,Z:1.08883},MtxRGB2XYZ:{m00:.4124564390896922,m01:.21267285140562253,m02:.0193338955823293,m10:.357576077643909,m11:.715152155287818,m12:.11919202588130297,m20:.18043748326639894,m21:.07217499330655958,m22:.9503040785363679},MtxXYZ2RGB:{m00:3.2404541621141045,m01:-.9692660305051868,m02:.055643430959114726,m10:-1.5371385127977166,m11:1.8760108454466942,m12:-.2040259135167538,m20:-.498531409556016,m21:.041556017530349834,m22:1.0572251882231791},As:.9414285350000001,Bs:1.040417467,Cs:1.089532651,MtxAdaptMa:{m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296},MtxAdaptMaI:{m00:.9869929054667123,m01:.43230526972339456,m02:-.008528664575177328,m10:-.14705425642099013,m11:.5183602715367776,m12:.04004282165408487,m20:.15996265166373125,m21:.0492912282128556,m22:.9684866957875502}},uO=new Map([["a",[1.0985,.35585]],["b",[1.0985,.35585]],["c",[.98074,1.18232]],["d50",[.96422,.82521]],["d55",[.95682,.92149]],["d65",[.95047,1.08883]],["e",[1,1,1]],["f2",[.99186,.67393]],["f7",[.95041,1.08747]],["f11",[1.00962,.6435]],["icc",[.96422,.82521]]]);function ei(t){const e=uO.get(String(t).toLowerCase());if(!e)throw new Error("unknown Lab illuminant "+t);$r.labWhitePoint=t,$r.Xn=e[0],$r.Zn=e[1]}function Na(){return $r.labWhitePoint}const mg=(...t)=>{t=Se(t,"lab");const[e,n,r]=t,[i,s,o]=lO(e,n,r),[a,c,u]=dE(i,s,o);return[a,c,u,t.length>3?t[3]:1]},lO=(t,e,n)=>{const{kE:r,kK:i,kKE:s,Xn:o,Yn:a,Zn:c}=$r,u=(t+16)/116,l=.002*e+u,d=u-.005*n,f=l*l*l,h=d*d*d,p=f>r?f:(116*l-16)/i,g=t>s?Math.pow((t+16)/116,3):t/i,v=h>r?h:(116*d-16)/i,m=p*o,w=g*a,E=v*c;return[m,w,E]},yg=t=>{const e=Math.sign(t);return t=Math.abs(t),(t<=.0031308?t*12.92:1.055*Math.pow(t,1/2.4)-.055)*e},dE=(t,e,n)=>{const{MtxAdaptMa:r,MtxAdaptMaI:i,MtxXYZ2RGB:s,RefWhiteRGB:o,Xn:a,Yn:c,Zn:u}=$r,l=a*r.m00+c*r.m10+u*r.m20,d=a*r.m01+c*r.m11+u*r.m21,f=a*r.m02+c*r.m12+u*r.m22,h=o.X*r.m00+o.Y*r.m10+o.Z*r.m20,p=o.X*r.m01+o.Y*r.m11+o.Z*r.m21,g=o.X*r.m02+o.Y*r.m12+o.Z*r.m22,v=(t*r.m00+e*r.m10+n*r.m20)*(h/l),m=(t*r.m01+e*r.m11+n*r.m21)*(p/d),w=(t*r.m02+e*r.m12+n*r.m22)*(g/f),E=v*i.m00+m*i.m10+w*i.m20,k=v*i.m01+m*i.m11+w*i.m21,A=v*i.m02+m*i.m12+w*i.m22,I=yg(E*s.m00+k*s.m10+A*s.m20),x=yg(E*s.m01+k*s.m11+A*s.m21),_=yg(E*s.m02+k*s.m12+A*s.m22);return[I*255,x*255,_*255]},vg=(...t)=>{const[e,n,r,...i]=Se(t,"rgb"),[s,o,a]=fE(e,n,r),[c,u,l]=dO(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]};function dO(t,e,n){const{Xn:r,Yn:i,Zn:s,kE:o,kK:a}=$r,c=t/r,u=e/i,l=n/s,d=c>o?Math.pow(c,1/3):(a*c+16)/116,f=u>o?Math.pow(u,1/3):(a*u+16)/116,h=l>o?Math.pow(l,1/3):(a*l+16)/116;return[116*f-16,500*(d-f),200*(f-h)]}function wg(t){const e=Math.sign(t);return t=Math.abs(t),(t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4))*e}const fE=(t,e,n)=>{t=wg(t/255),e=wg(e/255),n=wg(n/255);const{MtxRGB2XYZ:r,MtxAdaptMa:i,MtxAdaptMaI:s,Xn:o,Yn:a,Zn:c,As:u,Bs:l,Cs:d}=$r;let f=t*r.m00+e*r.m10+n*r.m20,h=t*r.m01+e*r.m11+n*r.m21,p=t*r.m02+e*r.m12+n*r.m22;const g=o*i.m00+a*i.m10+c*i.m20,v=o*i.m01+a*i.m11+c*i.m21,m=o*i.m02+a*i.m12+c*i.m22;let w=f*i.m00+h*i.m10+p*i.m20,E=f*i.m01+h*i.m11+p*i.m21,k=f*i.m02+h*i.m12+p*i.m22;return w*=g/u,E*=v/l,k*=m/d,f=w*s.m00+E*s.m10+k*s.m20,h=w*s.m01+E*s.m11+k*s.m21,p=w*s.m02+E*s.m12+k*s.m22,[f,h,p]};re.prototype.lab=function(){return vg(this._rgb)};const fO=(...t)=>new re(...t,"lab");Object.assign(Ie,{lab:fO,getLabWhitePoint:Na,setLabWhitePoint:ei}),Re.format.lab=mg,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"lab"),Ae(t)==="array"&&t.length===3)return"lab"}}),re.prototype.darken=function(t=1){const e=this,n=e.lab();return n[0]-=$r.Kn*t,new re(n,"lab").alpha(e.alpha(),!0)},re.prototype.brighten=function(t=1){return this.darken(-t)},re.prototype.darker=re.prototype.darken,re.prototype.brighter=re.prototype.brighten,re.prototype.get=function(t){const[e,n]=t.split("."),r=this[e]();if(n){const i=e.indexOf(n)-(e.substr(0,2)==="ok"?2:0);if(i>-1)return r[i];throw new Error(`unknown channel ${n} in mode ${e}`)}else return r};const{pow:hO}=Math,pO=1e-7,gO=20;re.prototype.luminance=function(t,e="rgb"){if(t!==void 0&&Ae(t)==="number"){if(t===0)return new re([0,0,0,this._rgb[3]],"rgb");if(t===1)return new re([255,255,255,this._rgb[3]],"rgb");let n=this.luminance(),r=gO;const i=(o,a)=>{const c=o.interpolate(a,.5,e),u=c.luminance();return Math.abs(t-u)<pO||!r--?c:u>t?i(o,c):i(c,a)},s=(n>t?i(new re([0,0,0]),this):i(this,new re([255,255,255]))).rgb();return new re([...s,this._rgb[3]])}return mO(...this._rgb.slice(0,3))};const mO=(t,e,n)=>(t=bg(t),e=bg(e),n=bg(n),.2126*t+.7152*e+.0722*n),bg=t=>(t/=255,t<=.03928?t/12.92:hO((t+.055)/1.055,2.4)),Ht={},$o=(t,e,n=.5,...r)=>{let i=r[0]||"lrgb";if(!Ht[i]&&!r.length&&(i=Object.keys(Ht)[0]),!Ht[i])throw new Error(`interpolation mode ${i} is not defined`);return Ae(t)!=="object"&&(t=new re(t)),Ae(e)!=="object"&&(e=new re(e)),Ht[i](t,e,n).alpha(t.alpha()+n*(e.alpha()-t.alpha()))};re.prototype.mix=re.prototype.interpolate=function(t,e=.5,...n){return $o(this,t,e,...n)},re.prototype.premultiply=function(t=!1){const e=this._rgb,n=e[3];return t?(this._rgb=[e[0]*n,e[1]*n,e[2]*n,n],this):new re([e[0]*n,e[1]*n,e[2]*n,n],"rgb")};const{sin:yO,cos:vO}=Math,hE=(...t)=>{let[e,n,r]=Se(t,"lch");return isNaN(r)&&(r=0),r=r*iO,[e,vO(r)*n,yO(r)*n]},Eg=(...t)=>{t=Se(t,"lch");const[e,n,r]=t,[i,s,o]=hE(e,n,r),[a,c,u]=mg(i,s,o);return[a,c,u,t.length>3?t[3]:1]},wO=(...t)=>{const e=Se(t,"hcl").reverse();return Eg(...e)},{sqrt:bO,atan2:EO,round:DO}=Math,pE=(...t)=>{const[e,n,r]=Se(t,"lab"),i=bO(n*n+r*r);let s=(EO(r,n)*sO+360)%360;return DO(i*1e4)===0&&(s=Number.NaN),[e,i,s]},Dg=(...t)=>{const[e,n,r,...i]=Se(t,"rgb"),[s,o,a]=vg(e,n,r),[c,u,l]=pE(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]};re.prototype.lch=function(){return Dg(this._rgb)},re.prototype.hcl=function(){return Dg(this._rgb).reverse()};const TO=(...t)=>new re(...t,"lch"),RO=(...t)=>new re(...t,"hcl");Object.assign(Ie,{lch:TO,hcl:RO}),Re.format.lch=Eg,Re.format.hcl=wO,["lch","hcl"].forEach(t=>Re.autodetect.push({p:2,test:(...e)=>{if(e=Se(e,t),Ae(e)==="array"&&e.length===3)return t}})),re.prototype.saturate=function(t=1){const e=this,n=e.lch();return n[1]+=$r.Kn*t,n[1]<0&&(n[1]=0),new re(n,"lch").alpha(e.alpha(),!0)},re.prototype.desaturate=function(t=1){return this.saturate(-t)},re.prototype.set=function(t,e,n=!1){const[r,i]=t.split("."),s=this[r]();if(i){const o=r.indexOf(i)-(r.substr(0,2)==="ok"?2:0);if(o>-1){if(Ae(e)=="string")switch(e.charAt(0)){case"+":s[o]+=+e;break;case"-":s[o]+=+e;break;case"*":s[o]*=+e.substr(1);break;case"/":s[o]/=+e.substr(1);break;default:s[o]=+e}else if(Ae(e)==="number")s[o]=e;else throw new Error("unsupported value for Color.set");const a=new re(s,r);return n?(this._rgb=a._rgb,this):a}throw new Error(`unknown channel ${i} in mode ${r}`)}else return s},re.prototype.tint=function(t=.5,...e){return $o(this,"white",t,...e)},re.prototype.shade=function(t=.5,...e){return $o(this,"black",t,...e)};const SO=(t,e,n)=>{const r=t._rgb,i=e._rgb;return new re(r[0]+n*(i[0]-r[0]),r[1]+n*(i[1]-r[1]),r[2]+n*(i[2]-r[2]),"rgb")};Ht.rgb=SO;const{sqrt:Tg,pow:Co}=Math,kO=(t,e,n)=>{const[r,i,s]=t._rgb,[o,a,c]=e._rgb;return new re(Tg(Co(r,2)*(1-n)+Co(o,2)*n),Tg(Co(i,2)*(1-n)+Co(a,2)*n),Tg(Co(s,2)*(1-n)+Co(c,2)*n),"rgb")};Ht.lrgb=kO;const $O=(t,e,n)=>{const r=t.lab(),i=e.lab();return new re(r[0]+n*(i[0]-r[0]),r[1]+n*(i[1]-r[1]),r[2]+n*(i[2]-r[2]),"lab")};Ht.lab=$O;const _o=(t,e,n,r)=>{let i,s;r==="hsl"?(i=t.hsl(),s=e.hsl()):r==="hsv"?(i=t.hsv(),s=e.hsv()):r==="hcg"?(i=t.hcg(),s=e.hcg()):r==="hsi"?(i=t.hsi(),s=e.hsi()):r==="lch"||r==="hcl"?(r="hcl",i=t.hcl(),s=e.hcl()):r==="oklch"&&(i=t.oklch().reverse(),s=e.oklch().reverse());let o,a,c,u,l,d;(r.substr(0,1)==="h"||r==="oklch")&&([o,c,l]=i,[a,u,d]=s);let f,h,p,g;return!isNaN(o)&&!isNaN(a)?(a>o&&a-o>180?g=a-(o+360):a<o&&o-a>180?g=a+360-o:g=a-o,h=o+n*g):isNaN(o)?isNaN(a)?h=Number.NaN:(h=a,(l==1||l==0)&&r!="hsv"&&(f=u)):(h=o,(d==1||d==0)&&r!="hsv"&&(f=c)),f===void 0&&(f=c+n*(u-c)),p=l+n*(d-l),r==="oklch"?new re([p,f,h],r):new re([h,f,p],r)},gE=(t,e,n)=>_o(t,e,n,"lch");Ht.lch=gE,Ht.hcl=gE;const CO=t=>{if(Ae(t)=="number"&&t>=0&&t<=16777215){const e=t>>16,n=t>>8&255,r=t&255;return[e,n,r,1]}throw new Error("unknown num color: "+t)},_O=(...t)=>{const[e,n,r]=Se(t,"rgb");return(e<<16)+(n<<8)+r};re.prototype.num=function(){return _O(this._rgb)};const AO=(...t)=>new re(...t,"num");Object.assign(Ie,{num:AO}),Re.format.num=CO,Re.autodetect.push({p:5,test:(...t)=>{if(t.length===1&&Ae(t[0])==="number"&&t[0]>=0&&t[0]<=16777215)return"num"}});const xO=(t,e,n)=>{const r=t.num(),i=e.num();return new re(r+n*(i-r),"num")};Ht.num=xO;const{floor:IO}=Math,PO=(...t)=>{t=Se(t,"hcg");let[e,n,r]=t,i,s,o;r=r*255;const a=n*255;if(n===0)i=s=o=r;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;const c=IO(e),u=e-c,l=r*(1-n),d=l+a*(1-u),f=l+a*u,h=l+a;switch(c){case 0:[i,s,o]=[h,f,l];break;case 1:[i,s,o]=[d,h,l];break;case 2:[i,s,o]=[l,h,f];break;case 3:[i,s,o]=[l,d,h];break;case 4:[i,s,o]=[f,l,h];break;case 5:[i,s,o]=[h,l,d];break}}return[i,s,o,t.length>3?t[3]:1]},NO=(...t)=>{const[e,n,r]=Se(t,"rgb"),i=aE(e,n,r),s=cE(e,n,r),o=s-i,a=o*100/255,c=i/(255-o)*100;let u;return o===0?u=Number.NaN:(e===s&&(u=(n-r)/o),n===s&&(u=2+(r-e)/o),r===s&&(u=4+(e-n)/o),u*=60,u<0&&(u+=360)),[u,a,c]};re.prototype.hcg=function(){return NO(this._rgb)};const OO=(...t)=>new re(...t,"hcg");Ie.hcg=OO,Re.format.hcg=PO,Re.autodetect.push({p:1,test:(...t)=>{if(t=Se(t,"hcg"),Ae(t)==="array"&&t.length===3)return"hcg"}});const FO=(t,e,n)=>_o(t,e,n,"hcg");Ht.hcg=FO;const{cos:Ao}=Math,LO=(...t)=>{t=Se(t,"hsi");let[e,n,r]=t,i,s,o;return isNaN(e)&&(e=0),isNaN(n)&&(n=0),e>360&&(e-=360),e<0&&(e+=360),e/=360,e<1/3?(o=(1-n)/3,i=(1+n*Ao(Qr*e)/Ao(gg-Qr*e))/3,s=1-(o+i)):e<2/3?(e-=1/3,i=(1-n)/3,s=(1+n*Ao(Qr*e)/Ao(gg-Qr*e))/3,o=1-(i+s)):(e-=2/3,s=(1-n)/3,o=(1+n*Ao(Qr*e)/Ao(gg-Qr*e))/3,i=1-(s+o)),i=Rs(r*i*3),s=Rs(r*s*3),o=Rs(r*o*3),[i*255,s*255,o*255,t.length>3?t[3]:1]},{min:MO,sqrt:zO,acos:BO}=Math,qO=(...t)=>{let[e,n,r]=Se(t,"rgb");e/=255,n/=255,r/=255;let i;const s=MO(e,n,r),o=(e+n+r)/3,a=o>0?1-s/o:0;return a===0?i=NaN:(i=(e-n+(e-r))/2,i/=zO((e-n)*(e-n)+(e-r)*(n-r)),i=BO(i),r>n&&(i=Qr-i),i/=Qr),[i*360,a,o]};re.prototype.hsi=function(){return qO(this._rgb)};const jO=(...t)=>new re(...t,"hsi");Ie.hsi=jO,Re.format.hsi=LO,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"hsi"),Ae(t)==="array"&&t.length===3)return"hsi"}});const UO=(t,e,n)=>_o(t,e,n,"hsi");Ht.hsi=UO;const Rg=(...t)=>{t=Se(t,"hsl");const[e,n,r]=t;let i,s,o;if(n===0)i=s=o=r*255;else{const a=[0,0,0],c=[0,0,0],u=r<.5?r*(1+n):r+n-r*n,l=2*r-u,d=e/360;a[0]=d+1/3,a[1]=d,a[2]=d-1/3;for(let f=0;f<3;f++)a[f]<0&&(a[f]+=1),a[f]>1&&(a[f]-=1),6*a[f]<1?c[f]=l+(u-l)*6*a[f]:2*a[f]<1?c[f]=u:3*a[f]<2?c[f]=l+(u-l)*(2/3-a[f])*6:c[f]=l;[i,s,o]=[c[0]*255,c[1]*255,c[2]*255]}return t.length>3?[i,s,o,t[3]]:[i,s,o,1]},mE=(...t)=>{t=Se(t,"rgba");let[e,n,r]=t;e/=255,n/=255,r/=255;const i=aE(e,n,r),s=cE(e,n,r),o=(s+i)/2;let a,c;return s===i?(a=0,c=Number.NaN):a=o<.5?(s-i)/(s+i):(s-i)/(2-s-i),e==s?c=(n-r)/(s-i):n==s?c=2+(r-e)/(s-i):r==s&&(c=4+(e-n)/(s-i)),c*=60,c<0&&(c+=360),t.length>3&&t[3]!==void 0?[c,a,o,t[3]]:[c,a,o]};re.prototype.hsl=function(){return mE(this._rgb)};const WO=(...t)=>new re(...t,"hsl");Ie.hsl=WO,Re.format.hsl=Rg,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"hsl"),Ae(t)==="array"&&t.length===3)return"hsl"}});const GO=(t,e,n)=>_o(t,e,n,"hsl");Ht.hsl=GO;const{floor:HO}=Math,VO=(...t)=>{t=Se(t,"hsv");let[e,n,r]=t,i,s,o;if(r*=255,n===0)i=s=o=r;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;const a=HO(e),c=e-a,u=r*(1-n),l=r*(1-n*c),d=r*(1-n*(1-c));switch(a){case 0:[i,s,o]=[r,d,u];break;case 1:[i,s,o]=[l,r,u];break;case 2:[i,s,o]=[u,r,d];break;case 3:[i,s,o]=[u,l,r];break;case 4:[i,s,o]=[d,u,r];break;case 5:[i,s,o]=[r,u,l];break}}return[i,s,o,t.length>3?t[3]:1]},{min:KO,max:YO}=Math,XO=(...t)=>{t=Se(t,"rgb");let[e,n,r]=t;const i=KO(e,n,r),s=YO(e,n,r),o=s-i;let a,c,u;return u=s/255,s===0?(a=Number.NaN,c=0):(c=o/s,e===s&&(a=(n-r)/o),n===s&&(a=2+(r-e)/o),r===s&&(a=4+(e-n)/o),a*=60,a<0&&(a+=360)),[a,c,u]};re.prototype.hsv=function(){return XO(this._rgb)};const JO=(...t)=>new re(...t,"hsv");Ie.hsv=JO,Re.format.hsv=VO,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"hsv"),Ae(t)==="array"&&t.length===3)return"hsv"}});const ZO=(t,e,n)=>_o(t,e,n,"hsv");Ht.hsv=ZO;function fd(t,e){let n=t.length;Array.isArray(t[0])||(t=[t]),Array.isArray(e[0])||(e=e.map(o=>[o]));let r=e[0].length,i=e[0].map((o,a)=>e.map(c=>c[a])),s=t.map(o=>i.map(a=>Array.isArray(o)?o.reduce((c,u,l)=>c+u*(a[l]||0),0):a.reduce((c,u)=>c+u*o,0)));return n===1&&(s=s[0]),r===1?s.map(o=>o[0]):s}const Sg=(...t)=>{t=Se(t,"lab");const[e,n,r,...i]=t,[s,o,a]=QO([e,n,r]),[c,u,l]=dE(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]};function QO(t){var e=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],n=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],r=fd(n,t);return fd(e,r.map(i=>i**3))}const kg=(...t)=>{const[e,n,r,...i]=Se(t,"rgb"),s=fE(e,n,r);return[...eF(s),...i.length>0&&i[0]<1?[i[0]]:[]]};function eF(t){const e=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],n=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],r=fd(e,t);return fd(n,r.map(i=>Math.cbrt(i)))}re.prototype.oklab=function(){return kg(this._rgb)};const tF=(...t)=>new re(...t,"oklab");Object.assign(Ie,{oklab:tF}),Re.format.oklab=Sg,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"oklab"),Ae(t)==="array"&&t.length===3)return"oklab"}});const nF=(t,e,n)=>{const r=t.oklab(),i=e.oklab();return new re(r[0]+n*(i[0]-r[0]),r[1]+n*(i[1]-r[1]),r[2]+n*(i[2]-r[2]),"oklab")};Ht.oklab=nF;const rF=(t,e,n)=>_o(t,e,n,"oklch");Ht.oklch=rF;const{pow:$g,sqrt:Cg,PI:_g,cos:yE,sin:vE,atan2:iF}=Math,sF=(t,e="lrgb",n=null)=>{const r=t.length;n||(n=Array.from(new Array(r)).map(()=>1));const i=r/n.reduce(function(d,f){return d+f});if(n.forEach((d,f)=>{n[f]*=i}),t=t.map(d=>new re(d)),e==="lrgb")return oF(t,n);const s=t.shift(),o=s.get(e),a=[];let c=0,u=0;for(let d=0;d<o.length;d++)if(o[d]=(o[d]||0)*n[0],a.push(isNaN(o[d])?0:n[0]),e.charAt(d)==="h"&&!isNaN(o[d])){const f=o[d]/180*_g;c+=yE(f)*n[0],u+=vE(f)*n[0]}let l=s.alpha()*n[0];t.forEach((d,f)=>{const h=d.get(e);l+=d.alpha()*n[f+1];for(let p=0;p<o.length;p++)if(!isNaN(h[p]))if(a[p]+=n[f+1],e.charAt(p)==="h"){const g=h[p]/180*_g;c+=yE(g)*n[f+1],u+=vE(g)*n[f+1]}else o[p]+=h[p]*n[f+1]});for(let d=0;d<o.length;d++)if(e.charAt(d)==="h"){let f=iF(u/a[d],c/a[d])/_g*180;for(;f<0;)f+=360;for(;f>=360;)f-=360;o[d]=f}else o[d]=o[d]/a[d];return l/=r,new re(o,e).alpha(l>.99999?1:l,!0)},oF=(t,e)=>{const n=t.length,r=[0,0,0,0];for(let i=0;i<t.length;i++){const s=t[i],o=e[i]/n,a=s._rgb;r[0]+=$g(a[0],2)*o,r[1]+=$g(a[1],2)*o,r[2]+=$g(a[2],2)*o,r[3]+=a[3]*o}return r[0]=Cg(r[0]),r[1]=Cg(r[1]),r[2]=Cg(r[2]),r[3]>.9999999&&(r[3]=1),new re(hg(r))},{pow:aF}=Math;function hd(t){let e="rgb",n=Ie("#ccc"),r=0,i=[0,1],s=[],o=[0,0],a=!1,c=[],u=!1,l=0,d=1,f=!1,h={},p=!0,g=1;const v=function(x){if(x=x||["#fff","#000"],x&&Ae(x)==="string"&&Ie.brewer&&Ie.brewer[x.toLowerCase()]&&(x=Ie.brewer[x.toLowerCase()]),Ae(x)==="array"){x.length===1&&(x=[x[0],x[0]]),x=x.slice(0);for(let _=0;_<x.length;_++)x[_]=Ie(x[_]);s.length=0;for(let _=0;_<x.length;_++)s.push(_/(x.length-1))}return A(),c=x},m=function(x){if(a!=null){const _=a.length-1;let P=0;for(;P<_&&x>=a[P];)P++;return P-1}return 0};let w=x=>x,E=x=>x;const k=function(x,_){let P,N;if(_==null&&(_=!1),isNaN(x)||x===null)return n;_?N=x:a&&a.length>2?N=m(x)/(a.length-2):d!==l?N=(x-l)/(d-l):N=1,N=E(N),_||(N=w(N)),g!==1&&(N=aF(N,g)),N=o[0]+N*(1-o[0]-o[1]),N=Rs(N,0,1);const C=Math.floor(N*1e4);if(p&&h[C])P=h[C];else{if(Ae(c)==="array")for(let D=0;D<s.length;D++){const R=s[D];if(N<=R){P=c[D];break}if(N>=R&&D===s.length-1){P=c[D];break}if(N>R&&N<s[D+1]){N=(N-R)/(s[D+1]-R),P=Ie.interpolate(c[D],c[D+1],N,e);break}}else Ae(c)==="function"&&(P=c(N));p&&(h[C]=P)}return P};var A=()=>h={};v(t);const I=function(x){const _=Ie(k(x));return u&&_[u]?_[u]():_};return I.classes=function(x){if(x!=null){if(Ae(x)==="array")a=x,i=[x[0],x[x.length-1]];else{const _=Ie.analyze(i);x===0?a=[_.min,_.max]:a=Ie.limits(_,"e",x)}return I}return a},I.domain=function(x){if(!arguments.length)return i;l=x[0],d=x[x.length-1],s=[];const _=c.length;if(x.length===_&&l!==d)for(let P of Array.from(x))s.push((P-l)/(d-l));else{for(let P=0;P<_;P++)s.push(P/(_-1));if(x.length>2){const P=x.map((C,D)=>D/(x.length-1)),N=x.map(C=>(C-l)/(d-l));N.every((C,D)=>P[D]===C)||(E=C=>{if(C<=0||C>=1)return C;let D=0;for(;C>=N[D+1];)D++;const R=(C-N[D])/(N[D+1]-N[D]);return P[D]+R*(P[D+1]-P[D])})}}return i=[l,d],I},I.mode=function(x){return arguments.length?(e=x,A(),I):e},I.range=function(x,_){return v(x),I},I.out=function(x){return u=x,I},I.spread=function(x){return arguments.length?(r=x,I):r},I.correctLightness=function(x){return x==null&&(x=!0),f=x,A(),f?w=function(_){const P=k(0,!0).lab()[0],N=k(1,!0).lab()[0],C=P>N;let D=k(_,!0).lab()[0];const R=P+(N-P)*_;let L=D-R,G=0,V=1,Z=20;for(;Math.abs(L)>.01&&Z-- >0;)(function(){return C&&(L*=-1),L<0?(G=_,_+=(V-_)*.5):(V=_,_+=(G-_)*.5),D=k(_,!0).lab()[0],L=D-R})();return _}:w=_=>_,I},I.padding=function(x){return x!=null?(Ae(x)==="number"&&(x=[x,x]),o=x,I):o},I.colors=function(x,_){arguments.length<2&&(_="hex");let P=[];if(arguments.length===0)P=c.slice(0);else if(x===1)P=[I(.5)];else if(x>1){const N=i[0],C=i[1]-N;P=cF(0,x).map(D=>I(N+D/(x-1)*C))}else{t=[];let N=[];if(a&&a.length>2)for(let C=1,D=a.length,R=1<=D;R?C<D:C>D;R?C++:C--)N.push((a[C-1]+a[C])*.5);else N=i;P=N.map(C=>I(C))}return Ie[_]&&(P=P.map(N=>N[_]())),P},I.cache=function(x){return x!=null?(p=x,I):p},I.gamma=function(x){return x!=null?(g=x,I):g},I.nodata=function(x){return x!=null?(n=Ie(x),I):n},I}function cF(t,e,n){let r=[],i=t<e,s=e;for(let o=t;i?o<s:o>s;i?o++:o--)r.push(o);return r}const uF=function(t){let e=[1,1];for(let n=1;n<t;n++){let r=[1];for(let i=1;i<=e.length;i++)r[i]=(e[i]||0)+e[i-1];e=r}return e},lF=function(t){let e,n,r,i;if(t=t.map(s=>new re(s)),t.length===2)[n,r]=t.map(s=>s.lab()),e=function(s){const o=[0,1,2].map(a=>n[a]+s*(r[a]-n[a]));return new re(o,"lab")};else if(t.length===3)[n,r,i]=t.map(s=>s.lab()),e=function(s){const o=[0,1,2].map(a=>(1-s)*(1-s)*n[a]+2*(1-s)*s*r[a]+s*s*i[a]);return new re(o,"lab")};else if(t.length===4){let s;[n,r,i,s]=t.map(o=>o.lab()),e=function(o){const a=[0,1,2].map(c=>(1-o)*(1-o)*(1-o)*n[c]+3*(1-o)*(1-o)*o*r[c]+3*(1-o)*o*o*i[c]+o*o*o*s[c]);return new re(a,"lab")}}else if(t.length>=5){let s,o,a;s=t.map(c=>c.lab()),a=t.length-1,o=uF(a),e=function(c){const u=1-c,l=[0,1,2].map(d=>s.reduce((f,h,p)=>f+o[p]*u**(a-p)*c**p*h[d],0));return new re(l,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return e},dF=t=>{const e=lF(t);return e.scale=()=>hd(e),e},{round:wE}=Math;re.prototype.rgb=function(t=!0){return t===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(wE)},re.prototype.rgba=function(t=!0){return this._rgb.slice(0,4).map((e,n)=>n<3?t===!1?e:wE(e):e)};const fF=(...t)=>new re(...t,"rgb");Object.assign(Ie,{rgb:fF}),Re.format.rgb=(...t)=>{const e=Se(t,"rgba");return e[3]===void 0&&(e[3]=1),e},Re.autodetect.push({p:3,test:(...t)=>{if(t=Se(t,"rgba"),Ae(t)==="array"&&(t.length===3||t.length===4&&Ae(t[3])=="number"&&t[3]>=0&&t[3]<=1))return"rgb"}});const ar=(t,e,n)=>{if(!ar[n])throw new Error("unknown blend mode "+n);return ar[n](t,e)},Pi=t=>(e,n)=>{const r=Ie(n).rgb(),i=Ie(e).rgb();return Ie.rgb(t(r,i))},Ni=t=>(e,n)=>{const r=[];return r[0]=t(e[0],n[0]),r[1]=t(e[1],n[1]),r[2]=t(e[2],n[2]),r},hF=t=>t,pF=(t,e)=>t*e/255,gF=(t,e)=>t>e?e:t,mF=(t,e)=>t>e?t:e,yF=(t,e)=>255*(1-(1-t/255)*(1-e/255)),vF=(t,e)=>e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255)),wF=(t,e)=>255*(1-(1-e/255)/(t/255)),bF=(t,e)=>t===255?255:(t=255*(e/255)/(1-t/255),t>255?255:t);ar.normal=Pi(Ni(hF)),ar.multiply=Pi(Ni(pF)),ar.screen=Pi(Ni(yF)),ar.overlay=Pi(Ni(vF)),ar.darken=Pi(Ni(gF)),ar.lighten=Pi(Ni(mF)),ar.dodge=Pi(Ni(bF)),ar.burn=Pi(Ni(wF));const{pow:EF,sin:DF,cos:TF}=Math;function RF(t=300,e=-1.5,n=1,r=1,i=[0,1]){let s=0,o;Ae(i)==="array"?o=i[1]-i[0]:(o=0,i=[i,i]);const a=function(c){const u=Qr*((t+120)/360+e*c),l=EF(i[0]+o*c,r),d=(s!==0?n[0]+c*s:n)*l*(1-l)/2,f=TF(u),h=DF(u),p=l+d*(-.14861*f+1.78277*h),g=l+d*(-.29227*f-.90649*h),v=l+d*(1.97294*f);return Ie(hg([p*255,g*255,v*255,1]))};return a.start=function(c){return c==null?t:(t=c,a)},a.rotations=function(c){return c==null?e:(e=c,a)},a.gamma=function(c){return c==null?r:(r=c,a)},a.hue=function(c){return c==null?n:(n=c,Ae(n)==="array"?(s=n[1]-n[0],s===0&&(n=n[1])):s=0,a)},a.lightness=function(c){return c==null?i:(Ae(c)==="array"?(i=c,o=c[1]-c[0]):(i=[c,c],o=0),a)},a.scale=()=>Ie.scale(a),a.hue(n),a}const SF="0123456789abcdef",{floor:kF,random:$F}=Math,CF=()=>{let t="#";for(let e=0;e<6;e++)t+=SF.charAt(kF($F()*16));return new re(t,"hex")},{log:bE,pow:_F,floor:AF,abs:xF}=Math;function EE(t,e=null){const n={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return Ae(t)==="object"&&(t=Object.values(t)),t.forEach(r=>{e&&Ae(r)==="object"&&(r=r[e]),r!=null&&!isNaN(r)&&(n.values.push(r),n.sum+=r,r<n.min&&(n.min=r),r>n.max&&(n.max=r),n.count+=1)}),n.domain=[n.min,n.max],n.limits=(r,i)=>DE(n,r,i),n}function DE(t,e="equal",n=7){Ae(t)=="array"&&(t=EE(t));const{min:r,max:i}=t,s=t.values.sort((a,c)=>a-c);if(n===1)return[r,i];const o=[];if(e.substr(0,1)==="c"&&(o.push(r),o.push(i)),e.substr(0,1)==="e"){o.push(r);for(let a=1;a<n;a++)o.push(r+a/n*(i-r));o.push(i)}else if(e.substr(0,1)==="l"){if(r<=0)throw new Error("Logarithmic scales are only possible for values > 0");const a=Math.LOG10E*bE(r),c=Math.LOG10E*bE(i);o.push(r);for(let u=1;u<n;u++)o.push(_F(10,a+u/n*(c-a)));o.push(i)}else if(e.substr(0,1)==="q"){o.push(r);for(let a=1;a<n;a++){const c=(s.length-1)*a/n,u=AF(c);if(u===c)o.push(s[u]);else{const l=c-u;o.push(s[u]*(1-l)+s[u+1]*l)}}o.push(i)}else if(e.substr(0,1)==="k"){let a;const c=s.length,u=new Array(c),l=new Array(n);let d=!0,f=0,h=null;h=[],h.push(r);for(let v=1;v<n;v++)h.push(r+v/n*(i-r));for(h.push(i);d;){for(let m=0;m<n;m++)l[m]=0;for(let m=0;m<c;m++){const w=s[m];let E=Number.MAX_VALUE,k;for(let A=0;A<n;A++){const I=xF(h[A]-w);I<E&&(E=I,k=A),l[k]++,u[m]=k}}const v=new Array(n);for(let m=0;m<n;m++)v[m]=null;for(let m=0;m<c;m++)a=u[m],v[a]===null?v[a]=s[m]:v[a]+=s[m];for(let m=0;m<n;m++)v[m]*=1/l[m];d=!1;for(let m=0;m<n;m++)if(v[m]!==h[m]){d=!0;break}h=v,f++,f>200&&(d=!1)}const p={};for(let v=0;v<n;v++)p[v]=[];for(let v=0;v<c;v++)a=u[v],p[a].push(s[v]);let g=[];for(let v=0;v<n;v++)g.push(p[v][0]),g.push(p[v][p[v].length-1]);g=g.sort((v,m)=>v-m),o.push(g[0]);for(let v=1;v<g.length;v+=2){const m=g[v];!isNaN(m)&&o.indexOf(m)===-1&&o.push(m)}}return o}const IF=(t,e)=>{t=new re(t),e=new re(e);const n=t.luminance(),r=e.luminance();return n>r?(n+.05)/(r+.05):(r+.05)/(n+.05)},TE=.027,PF=5e-4,NF=.1,RE=1.14,pd=.022,SE=1.414,OF=(t,e)=>{t=new re(t),e=new re(e),t.alpha()<1&&(t=$o(e,t,t.alpha(),"rgb"));const n=kE(...t.rgb()),r=kE(...e.rgb()),i=n>=pd?n:n+Math.pow(pd-n,SE),s=r>=pd?r:r+Math.pow(pd-r,SE),o=Math.pow(s,.56)-Math.pow(i,.57),a=Math.pow(s,.65)-Math.pow(i,.62),c=Math.abs(s-i)<PF?0:i<s?o*RE:a*RE;return(Math.abs(c)<NF?0:c>0?c-TE:c+TE)*100};function kE(t,e,n){return .2126729*Math.pow(t/255,2.4)+.7151522*Math.pow(e/255,2.4)+.072175*Math.pow(n/255,2.4)}const{sqrt:ti,pow:kt,min:FF,max:LF,atan2:$E,abs:CE,cos:gd,sin:_E,exp:MF,PI:AE}=Math;function zF(t,e,n=1,r=1,i=1){var s=function(at){return 360*at/(2*AE)},o=function(at){return 2*AE*at/360};t=new re(t),e=new re(e);const[a,c,u]=Array.from(t.lab()),[l,d,f]=Array.from(e.lab()),h=(a+l)/2,p=ti(kt(c,2)+kt(u,2)),g=ti(kt(d,2)+kt(f,2)),v=(p+g)/2,m=.5*(1-ti(kt(v,7)/(kt(v,7)+kt(25,7)))),w=c*(1+m),E=d*(1+m),k=ti(kt(w,2)+kt(u,2)),A=ti(kt(E,2)+kt(f,2)),I=(k+A)/2,x=s($E(u,w)),_=s($E(f,E)),P=x>=0?x:x+360,N=_>=0?_:_+360,C=CE(P-N)>180?(P+N+360)/2:(P+N)/2,D=1-.17*gd(o(C-30))+.24*gd(o(2*C))+.32*gd(o(3*C+6))-.2*gd(o(4*C-63));let R=N-P;R=CE(R)<=180?R:N<=P?R+360:R-360,R=2*ti(k*A)*_E(o(R)/2);const L=l-a,G=A-k,V=1+.015*kt(h-50,2)/ti(20+kt(h-50,2)),Z=1+.045*I,Ne=1+.015*I*D,se=30*MF(-kt((C-275)/25,2)),K=-(2*ti(kt(I,7)/(kt(I,7)+kt(25,7))))*_E(2*o(se)),Te=ti(kt(L/(n*V),2)+kt(G/(r*Z),2)+kt(R/(i*Ne),2)+K*(G/(r*Z))*(R/(i*Ne)));return LF(0,FF(100,Te))}function BF(t,e,n="lab"){t=new re(t),e=new re(e);const r=t.get(n),i=e.get(n);let s=0;for(let o in r){const a=(r[o]||0)-(i[o]||0);s+=a*a}return Math.sqrt(s)}const qF=(...t)=>{try{return new re(...t),!0}catch{return!1}},jF={cool(){return hd([Ie.hsl(180,1,.9),Ie.hsl(250,.7,.4)])},hot(){return hd(["#000","#f00","#ff0","#fff"]).mode("rgb")}},Ag={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},xE=Object.keys(Ag),IE=new Map(xE.map(t=>[t.toLowerCase(),t])),UF=typeof Proxy=="function"?new Proxy(Ag,{get(t,e){const n=e.toLowerCase();if(IE.has(n))return t[IE.get(n)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(xE)}}):Ag,WF=(...t)=>{t=Se(t,"cmyk");const[e,n,r,i]=t,s=t.length>4?t[4]:1;return i===1?[0,0,0,s]:[e>=1?0:255*(1-e)*(1-i),n>=1?0:255*(1-n)*(1-i),r>=1?0:255*(1-r)*(1-i),s]},{max:PE}=Math,GF=(...t)=>{let[e,n,r]=Se(t,"rgb");e=e/255,n=n/255,r=r/255;const i=1-PE(e,PE(n,r)),s=i<1?1/(1-i):0,o=(1-e-i)*s,a=(1-n-i)*s,c=(1-r-i)*s;return[o,a,c,i]};re.prototype.cmyk=function(){return GF(this._rgb)};const HF=(...t)=>new re(...t,"cmyk");Object.assign(Ie,{cmyk:HF}),Re.format.cmyk=WF,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"cmyk"),Ae(t)==="array"&&t.length===4)return"cmyk"}});const VF=(...t)=>{const e=Se(t,"hsla");let n=So(t)||"lsa";return e[0]=qn(e[0]||0)+"deg",e[1]=qn(e[1]*100)+"%",e[2]=qn(e[2]*100)+"%",n==="hsla"||e.length>3&&e[3]<1?(e[3]="/ "+(e.length>3?e[3]:1),n="hsla"):e.length=3,`${n.substr(0,3)}(${e.join(" ")})`},KF=(...t)=>{const e=Se(t,"lab");let n=So(t)||"lab";return e[0]=qn(e[0])+"%",e[1]=qn(e[1]),e[2]=qn(e[2]),n==="laba"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lab(${e.join(" ")})`},YF=(...t)=>{const e=Se(t,"lch");let n=So(t)||"lab";return e[0]=qn(e[0])+"%",e[1]=qn(e[1]),e[2]=isNaN(e[2])?"none":qn(e[2])+"deg",n==="lcha"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lch(${e.join(" ")})`},XF=(...t)=>{const e=Se(t,"lab");return e[0]=qn(e[0]*100)+"%",e[1]=pg(e[1]),e[2]=pg(e[2]),e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklab(${e.join(" ")})`},NE=(...t)=>{const[e,n,r,...i]=Se(t,"rgb"),[s,o,a]=kg(e,n,r),[c,u,l]=pE(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]},JF=(...t)=>{const e=Se(t,"lch");return e[0]=qn(e[0]*100)+"%",e[1]=pg(e[1]),e[2]=isNaN(e[2])?"none":qn(e[2])+"deg",e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklch(${e.join(" ")})`},{round:xg}=Math,ZF=(...t)=>{const e=Se(t,"rgba");let n=So(t)||"rgb";if(n.substr(0,3)==="hsl")return VF(mE(e),n);if(n.substr(0,3)==="lab"){const r=Na();ei("d50");const i=KF(vg(e),n);return ei(r),i}if(n.substr(0,3)==="lch"){const r=Na();ei("d50");const i=YF(Dg(e),n);return ei(r),i}return n.substr(0,5)==="oklab"?XF(kg(e)):n.substr(0,5)==="oklch"?JF(NE(e)):(e[0]=xg(e[0]),e[1]=xg(e[1]),e[2]=xg(e[2]),(n==="rgba"||e.length>3&&e[3]<1)&&(e[3]="/ "+(e.length>3?e[3]:1),n="rgba"),`${n.substr(0,3)}(${e.slice(0,n==="rgb"?3:4).join(" ")})`)},OE=(...t)=>{t=Se(t,"lch");const[e,n,r,...i]=t,[s,o,a]=hE(e,n,r),[c,u,l]=Sg(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]},ni=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,cr=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,md=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,jn=/\s*/.source,xo=/\s+/.source,Ig=/\s*,\s*/.source,yd=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,Io=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,FE=new RegExp("^rgba?\\("+jn+[ni,ni,ni].join(xo)+Io+"\\)$"),LE=new RegExp("^rgb\\("+jn+[ni,ni,ni].join(Ig)+jn+"\\)$"),ME=new RegExp("^rgba\\("+jn+[ni,ni,ni,cr].join(Ig)+jn+"\\)$"),zE=new RegExp("^hsla?\\("+jn+[yd,md,md].join(xo)+Io+"\\)$"),BE=new RegExp("^hsl?\\("+jn+[yd,md,md].join(Ig)+jn+"\\)$"),qE=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,jE=new RegExp("^lab\\("+jn+[cr,cr,cr].join(xo)+Io+"\\)$"),UE=new RegExp("^lch\\("+jn+[cr,cr,yd].join(xo)+Io+"\\)$"),WE=new RegExp("^oklab\\("+jn+[cr,cr,cr].join(xo)+Io+"\\)$"),GE=new RegExp("^oklch\\("+jn+[cr,cr,yd].join(xo)+Io+"\\)$"),{round:HE}=Math,Po=t=>t.map((e,n)=>n<=2?Rs(HE(e),0,255):e),$t=(t,e=0,n=100,r=!1)=>(typeof t=="string"&&t.endsWith("%")&&(t=parseFloat(t.substring(0,t.length-1))/100,r?t=e+(t+1)*.5*(n-e):t=e+t*(n-e)),+t),nn=(t,e)=>t==="none"?e:t,Pg=t=>{if(t=t.toLowerCase().trim(),t==="transparent")return[0,0,0,0];let e;if(Re.format.named)try{return Re.format.named(t)}catch{}if((e=t.match(FE))||(e=t.match(LE))){let n=e.slice(1,4);for(let i=0;i<3;i++)n[i]=+$t(nn(n[i],0),0,255);n=Po(n);const r=e[4]!==void 0?+$t(e[4],0,1):1;return n[3]=r,n}if(e=t.match(ME)){const n=e.slice(1,5);for(let r=0;r<4;r++)n[r]=+$t(n[r],0,255);return n}if((e=t.match(zE))||(e=t.match(BE))){const n=e.slice(1,4);n[0]=+nn(n[0].replace("deg",""),0),n[1]=+$t(nn(n[1],0),0,100)*.01,n[2]=+$t(nn(n[2],0),0,100)*.01;const r=Po(Rg(n)),i=e[4]!==void 0?+$t(e[4],0,1):1;return r[3]=i,r}if(e=t.match(qE)){const n=e.slice(1,4);n[1]*=.01,n[2]*=.01;const r=Rg(n);for(let i=0;i<3;i++)r[i]=HE(r[i]);return r[3]=+e[4],r}if(e=t.match(jE)){const n=e.slice(1,4);n[0]=$t(nn(n[0],0),0,100),n[1]=$t(nn(n[1],0),-125,125,!0),n[2]=$t(nn(n[2],0),-125,125,!0);const r=Na();ei("d50");const i=Po(mg(n));ei(r);const s=e[4]!==void 0?+$t(e[4],0,1):1;return i[3]=s,i}if(e=t.match(UE)){const n=e.slice(1,4);n[0]=$t(n[0],0,100),n[1]=$t(nn(n[1],0),0,150,!1),n[2]=+nn(n[2].replace("deg",""),0);const r=Na();ei("d50");const i=Po(Eg(n));ei(r);const s=e[4]!==void 0?+$t(e[4],0,1):1;return i[3]=s,i}if(e=t.match(WE)){const n=e.slice(1,4);n[0]=$t(nn(n[0],0),0,1),n[1]=$t(nn(n[1],0),-.4,.4,!0),n[2]=$t(nn(n[2],0),-.4,.4,!0);const r=Po(Sg(n)),i=e[4]!==void 0?+$t(e[4],0,1):1;return r[3]=i,r}if(e=t.match(GE)){const n=e.slice(1,4);n[0]=$t(nn(n[0],0),0,1),n[1]=$t(nn(n[1],0),0,.4,!1),n[2]=+nn(n[2].replace("deg",""),0);const r=Po(OE(n)),i=e[4]!==void 0?+$t(e[4],0,1):1;return r[3]=i,r}};Pg.test=t=>FE.test(t)||zE.test(t)||jE.test(t)||UE.test(t)||WE.test(t)||GE.test(t)||LE.test(t)||ME.test(t)||BE.test(t)||qE.test(t)||t==="transparent",re.prototype.css=function(t){return ZF(this._rgb,t)};const QF=(...t)=>new re(...t,"css");Ie.css=QF,Re.format.css=Pg,Re.autodetect.push({p:5,test:(t,...e)=>{if(!e.length&&Ae(t)==="string"&&Pg.test(t))return"css"}}),Re.format.gl=(...t)=>{const e=Se(t,"rgba");return e[0]*=255,e[1]*=255,e[2]*=255,e};const eL=(...t)=>new re(...t,"gl");Ie.gl=eL,re.prototype.gl=function(){const t=this._rgb;return[t[0]/255,t[1]/255,t[2]/255,t[3]]},re.prototype.hex=function(t){return lE(this._rgb,t)};const tL=(...t)=>new re(...t,"hex");Ie.hex=tL,Re.format.hex=uE,Re.autodetect.push({p:4,test:(t,...e)=>{if(!e.length&&Ae(t)==="string"&&[3,4,5,6,7,8,9].indexOf(t.length)>=0)return"hex"}});const{log:vd}=Math,VE=t=>{const e=t/100;let n,r,i;return e<66?(n=255,r=e<6?0:-155.25485562709179-.44596950469579133*(r=e-2)+104.49216199393888*vd(r),i=e<20?0:-254.76935184120902+.8274096064007395*(i=e-10)+115.67994401066147*vd(i)):(n=351.97690566805693+.114206453784165*(n=e-55)-40.25366309332127*vd(n),r=325.4494125711974+.07943456536662342*(r=e-50)-28.0852963507957*vd(r),i=255),[n,r,i,1]},{round:nL}=Math,rL=(...t)=>{const e=Se(t,"rgb"),n=e[0],r=e[2];let i=1e3,s=4e4;const o=.4;let a;for(;s-i>o;){a=(s+i)*.5;const c=VE(a);c[2]/c[0]>=r/n?s=a:i=a}return nL(a)};re.prototype.temp=re.prototype.kelvin=re.prototype.temperature=function(){return rL(this._rgb)};const Ng=(...t)=>new re(...t,"temp");Object.assign(Ie,{temp:Ng,kelvin:Ng,temperature:Ng}),Re.format.temp=Re.format.kelvin=Re.format.temperature=VE,re.prototype.oklch=function(){return NE(this._rgb)};const iL=(...t)=>new re(...t,"oklch");Object.assign(Ie,{oklch:iL}),Re.format.oklch=OE,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"oklch"),Ae(t)==="array"&&t.length===3)return"oklch"}}),Object.assign(Ie,{analyze:EE,average:sF,bezier:dF,blend:ar,brewer:UF,Color:re,colors:ko,contrast:IF,contrastAPCA:OF,cubehelix:RF,deltaE:zF,distance:BF,input:Re,interpolate:$o,limits:DE,mix:$o,random:CF,scale:hd,scales:jF,valid:qF});const Og=[.96,.907,.805,.697,.605,.547,.518,.445,.395,.34],KE=[.32,.16,.08,.04,0,0,.04,.08,.16,.32];function sL(t){const e=t.get("hsl.l");return Og.reduce((n,r)=>Math.abs(r-e)<Math.abs(n-e)?r:n)}function oL(t){const e=Ie(t),n=sL(e),r=Og.findIndex(s=>s===n),i=Og.map(s=>e.set("hsl.l",s)).map(s=>Ie(s)).map((s,o)=>{const a=KE[o]-KE[r];return a>=0?s.saturate(a):s.desaturate(a*-1)});return{baseColorIndex:r,colors:i}}function aL(t){return oL(t).colors.map(e=>e.hex())}const YE={fill:"#3b82f6",stroke:"#2563eb",hiContrast:"#eff6ff",loContrast:"#bfdbfe"},XE={fill:"#0284c7",stroke:"#0369a1",hiContrast:"#f0f9ff",loContrast:"#B6ECF7"},JE={fill:"#64748b",stroke:"#475569",hiContrast:"#f8fafc",loContrast:"#cbd5e1"},ZE={primary:YE,blue:YE,secondary:XE,sky:XE,muted:JE,slate:JE,gray:{fill:"#737373",stroke:"#525252",hiContrast:"#fafafa",loContrast:"#d4d4d4"},red:{fill:"#AC4D39",stroke:"#853A2D",hiContrast:"#FBD3CB",loContrast:"#f5b2a3"},green:{fill:"#428a4f",stroke:"#2d5d39",hiContrast:"#f8fafc",loContrast:"#c2f0c2"},amber:{fill:"#A35829",stroke:"#7E451D",hiContrast:"#FFE0C2",loContrast:"#f9b27c"},indigo:{fill:"#6366f1",stroke:"#4f46e5",hiContrast:"#eef2ff",loContrast:"#c7d2fe"}},cL={lineColor:"#6E6E6E",labelBgColor:"#18191b",labelColor:"#C6C6C6"},QE={lineColor:"#64748b",labelBgColor:"#0f172a",labelColor:"#cbd5e1"},eD={lineColor:"#3b82f6",labelBgColor:"#172554",labelColor:"#60a5fa"},tD={lineColor:"#0ea5e9",labelBgColor:"#082f49",labelColor:"#38bdf8"},nD={amber:{lineColor:"#b45309",labelBgColor:"#78350f",labelColor:"#FFE0C2"},blue:eD,gray:cL,green:{lineColor:"#15803d",labelBgColor:"#052e16",labelColor:"#22c55e"},indigo:{lineColor:"#6366f1",labelBgColor:"#1e1b4b",labelColor:"#818cf8"},muted:QE,primary:eD,red:{lineColor:"#AC4D39",labelBgColor:"#b91c1c",labelColor:"#f5b2a3"},secondary:tD,sky:tD,slate:QE},Un={elements:ZE,relationships:nD,font:"Arial",shadow:"#0a0a0a"};function uL(t){if(t.match(/^#([0-9a-f]{3}){1,2}$/i)){const e=aL(t);return{elements:{fill:e[6],stroke:e[7],hiContrast:e[0],loContrast:e[1]},relationships:{lineColor:e[4],labelColor:e[3],labelBgColor:e[9]}}}else return{elements:Un.elements.primary,relationships:Un.relationships.primary}}function it(t){return Es(t)?t:t.id}let Oa=class pb{constructor(e,n){this.view=e,this.model=n;for(const r of e.nodes){const i=new pb.Element(r,this);this._elements.set(r.id,i),Ii(r.parent)&&this._rootElements.add(i)}this._connections=new Map(e.edges.map(r=>[r.id,new pb.Connection(r,this)]))}_rootElements=new Set;_elements=new Map;_connections;get isDynamic(){return this.view.__==="dynamic"}get id(){return this.view.id}get title(){return this.view.title}get viewOf(){if(Ii(this.view.__)||this.view.__==="element"){const e=this.view;return e.viewOf?this.model.element(e.viewOf):null}return null}get tags(){return this.view.tags??[]}roots(){return[...this._rootElements]}elements(){return[...this._elements.values()]}element(e){return rt(this._elements.get(e),`LikeC4DiagramModel.Element ${e} in view ${this.view.id} not found`)}hasElement(e){return this._elements.has(e)}connections(){return[...this._connections.values()]}connection(e){return rt(this._connections.get(e),`Connection ${e} in view ${this.view.id} not found`)}findConnections(e,n,r="direct"){const i=it(e),s=it(n);return this.connections().filter(o=>o.source.id===i&&o.target.id===s||r==="both"&&o.source.id===s&&o.target.id===i)}parent(e){const n=this.element(it(e));return n.node.parent?this.element(n.node.parent):null}children(e){return this.element(it(e)).node.children.map(n=>this.element(n))}siblings(e){const n=it(e),r=this.parent(n);return(r?this.children(r):this.roots()).filter(i=>i.id!==n)}ancestors(e){let n=it(e);const r=[];let i;for(;i=this.parent(n);)r.push(i),n=i.id;return r}descendants(e){return this.children(e).flatMap(n=>[n,...this.descendants(n.id)])}incoming(e,n="all"){const r=this.element(it(e)),i=r.node.inEdges.map(s=>this.connection(s));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.target.id===r.id:s.target.id!==r.id)}incomers(e,n="all"){return this.incoming(e,n).map(r=>r.source)}outgoing(e,n="all"){const r=this.element(it(e)),i=r.node.outEdges.map(s=>this.connection(s));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.source.id===r.id:s.source.id!==r.id)}outgoers(e,n="all"){return this.outgoing(e,n).map(r=>r.target)}};(t=>{class e{constructor(i,s){this.node=i,this.view=s}get id(){return this.node.id}get title(){return this.node.title}get kind(){return this.node.kind}get isRoot(){return Ii(this.node.parent)}get hasNested(){return this.node.children.length>0}get shape(){return this.node.shape}get color(){return this.node.color}get tags(){return this.node.tags??[]}get level(){return this.node.level}get depth(){return this.node.depth??0}model(){return this.view.model.element(this.id)}parent(){return this.node.parent?this.view.element(this.node.parent):null}metadata(i,s){return this.model().metadata(i)??s}hasMetadata(i){return this.model().hasMetadata(i)}ancestors(){return this.view.ancestors(this)}siblings(){return this.view.siblings(this)}descendants(){return this.view.descendants(this)}children(){return this.view.children(this)}incoming(i="all"){return this.view.incoming(this,i)}incomers(i="all"){return this.view.incomers(this,i)}outgoing(i="all"){return this.view.outgoing(this,i)}outgoers(i="all"){return this.view.outgoers(this,i)}connectionsTo(i){return this.view.findConnections(this,i)}}t.Element=e;class n{constructor(i,s){this.edge=i,this.view=s}get id(){return this.edge.id}get source(){return this.view.element(this.edge.source)}get target(){return this.view.element(this.edge.target)}get tags(){return this.edge.tags??[]}get color(){return this.edge.color??bs}relationships(){return this.edge.relations.map(i=>rt(this.view.model.relationship(i)))}}t.Connection=n})(Oa||(Oa={}));let wd=class gb{constructor(e,n){this.view=e,this.model=n;for(const r of e.nodes){const i=new gb.Element(r,this);this._elements.set(r.id,i),Ii(r.parent)&&this._rootElements.add(i)}this._connections=new Map(e.edges.map(r=>[r.id,new gb.Connection(r,this)]))}_rootElements=new Set;_elements=new Map;_connections;get id(){return this.view.id}get title(){return this.view.title}get viewOf(){return this.view.__!=="dynamic"&&this.view.viewOf?this.model.element(this.view.viewOf):null}get tags(){return this.view.tags??[]}roots(){return[...this._rootElements]}elements(){return[...this._elements.values()]}element(e){return rt(this._elements.get(e),`LikeC4ViewModel.Element ${e} in view ${this.id} not found`)}hasElement(e){return this._elements.has(e)}connections(){return[...this._connections.values()]}connection(e){return rt(this._connections.get(e),`Connection ${e} in view ${this.id} not found`)}findConnections(e,n,r="direct"){const i=it(e),s=it(n);return this.connections().filter(o=>o.source.id===i&&o.target.id===s||r==="both"&&o.source.id===s&&o.target.id===i)}parent(e){const n=this.element(it(e));return n.node.parent?this.element(n.node.parent):null}children(e){return this.element(it(e)).node.children.map(n=>this.element(n))}siblings(e){const n=it(e),r=this.parent(n);return(r?this.children(r):this.roots()).filter(i=>i.id!==n)}ancestors(e){let n=it(e);const r=[];let i;for(;i=this.parent(n);)r.push(i),n=i.id;return r}descendants(e){return this.children(e).flatMap(n=>[n,...this.descendants(n.id)])}incoming(e,n="all"){const r=this.element(it(e)),i=r.node.inEdges.map(s=>rt(this._connections.get(s),`Edge ${s} not found`));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.target.id===r.id:s.target.id!==r.id)}incomers(e,n="all"){return[...new Set(this.incoming(e,n).map(r=>r.source))]}outgoing(e,n="all"){const r=this.element(it(e)),i=r.node.outEdges.map(s=>rt(this._connections.get(s),`Edge ${s} not found`));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.source.id===r.id:s.source.id!==r.id)}outgoers(e,n="all"){return[...new Set(this.outgoing(e,n).map(r=>r.target))]}};(t=>{class e{constructor(i,s){this.node=i,this.viewmodel=s}get id(){return this.node.id}get title(){return this.node.title}get kind(){return this.node.kind}get isRoot(){return Ii(this.node.parent)}get hasNested(){return this.node.children.length>0}get shape(){return this.node.shape}get color(){return this.node.color}get tags(){return this.node.tags??[]}model(){return this.viewmodel.model.element(this.id)}parent(){return this.node.parent?this.viewmodel.element(this.node.parent):null}metadata(i,s){return this.model().metadata(i)??s}hasMetadata(i){return this.model().hasMetadata(i)}ancestors(){return this.viewmodel.ancestors(this)}siblings(){return this.viewmodel.siblings(this)}descendants(){return this.viewmodel.descendants(this)}children(){return this.viewmodel.children(this)}incoming(i="all"){return this.viewmodel.incoming(this,i)}incomers(i="all"){return this.viewmodel.incomers(this,i)}outgoing(i="all"){return this.viewmodel.outgoing(this,i)}outgoers(i="all"){return this.viewmodel.outgoers(this,i)}connectionsTo(i){return this.viewmodel.findConnections(this,i)}}t.Element=e;class n{constructor(i,s){this.edge=i,this.viewmodel=s}get id(){return this.edge.id}get source(){return this.viewmodel.element(this.edge.source)}get target(){return this.viewmodel.element(this.edge.target)}get tags(){return this.edge.tags??[]}relationships(){return this.edge.relations.map(i=>rt(this.viewmodel.model.relationship(i)))}}t.Connection=n})(wd||(wd={}));let Fa=class mb{constructor(e,n,r,i,s,o){this.type=e,this.sourcemodel=n;for(const a of r)this.addElement(a);for(const a of i)this.addRelation(a);this._views=new Map(xa(s).map(a=>[a.id,new o(a,this)]))}_elements=new Map;_parents=new Map;_children=new Map;_rootElements=new Set;_relations=new Map;_incoming=new Map;_outgoing=new Map;_internal=new Map;_cacheAscendingSiblings=new Map;_views;roots(){return[...this._rootElements]}elements(){return[...this._elements.values()]}element(e){return rt(this._elements.get(e),`Element ${e} not found`)}relationships(){return[...this._relations.values()]}relationship(e){return rt(this._relations.get(e),`Relation ${e} not found`)}views(){return[...this._views.values()]}view(e){return rt(this._views.get(e),`View ${e} not found`)}parent(e){const n=it(e);return this._parents.get(n)||null}children(e){const n=it(e);return this._childrenOf(n)}siblings(e){const n=it(e),r=this._parents.get(n);return(r?this._childrenOf(r.id):this.roots()).filter(i=>i.id!==n)}ancestors(e){let n=Es(e)?e:e.id;const r=[];let i;for(;i=this._parents.get(n);)r.push(i),n=i.id;return r}descendants(e){const n=it(e);return this._childrenOf(n).flatMap(r=>[r,...this.descendants(r.id)])}incoming(e,n="all"){const r=it(e),i=Array.from(this._incomingTo(r));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.target.id===r:s.target.id!==r)}incomers(e,n="all"){return[...new Set(this.incoming(e,n).map(r=>r.source))]}outgoing(e,n="all"){const r=it(e),i=Array.from(this._outgoingFrom(r));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.source.id===r:s.source.id!==r)}outgoers(e,n="all"){return[...new Set(this.outgoing(e,n).map(r=>r.target))]}internal(e){const n=it(e);return Array.from(this._internalOf(n))}ascendingSiblings(e){const n=it(e);let r=this._cacheAscendingSiblings.get(n);return r||(r=[...this.siblings(n),...this.ancestors(n).flatMap(i=>this.siblings(i.id))],this._cacheAscendingSiblings.set(n,r)),r.slice()}viewsWithElement(e){const n=it(e);return[...this._views.values()].filter(r=>r.hasElement(n))}addElement(e){if(this._elements.has(e.id))throw new Error(`Element ${e.id} already exists`);const n=new mb.ElementModel(e,this);this._elements.set(n.id,n);const r=bt(n.id);r?(this._parents.set(n.id,this.element(r)),this._childrenOf(r).push(n)):this._rootElements.add(n)}addRelation(e){if(this._relations.has(e.id))throw new Error(`Relation ${e.id} already exists`);const n=new mb.Relationship(e,this);this._relations.set(n.id,n),this._incomingTo(e.target).add(n),this._outgoingFrom(e.source).add(n);const r=Ts(e.source,e.target);if(r)for(const i of[r,...sr(r)])this._internalOf(i).add(n);for(const i of sr(e.source)){if(i===r)break;this._outgoingFrom(i).add(n)}for(const i of sr(e.target)){if(i===r)break;this._incomingTo(i).add(n)}}_childrenOf(e){let n=this._children.get(e);return n||(n=[],this._children.set(e,n)),n}_incomingTo(e){let n=this._incoming.get(e);return n||(n=new Set,this._incoming.set(e,n)),n}_outgoingFrom(e){let n=this._outgoing.get(e);return n||(n=new Set,this._outgoing.set(e,n)),n}_internalOf(e){let n=this._internal.get(e);return n||(n=new Set,this._internal.set(e,n)),n}};(t=>{function e(c){return c.__==="layouted"?t.layouted(c):t.computed(c)}t.create=e;function n(c){return new t("computed",c,xa(c.elements),xa(c.relations),c.views,wd)}t.computed=n;function r(c){return new t("layouted",c,xa(c.elements),xa(c.relations),c.views,Oa)}t.layouted=r;function i(c){return c instanceof t}t.isModel=i,(c=>{function u(l){return l instanceof Oa}c.isLayouted=u})(t.ViewModel||(t.ViewModel={}));function s(c){return c.type==="layouted"}t.isLayouted=s;class o{constructor(u,l){this.relationship=u,this.model=l}get id(){return this.relationship.id}get title(){return this.relationship.title}get kind(){return this.relationship.kind??null}get tags(){return this.relationship.tags??[]}get source(){return this.model.element(this.relationship.source)}get target(){return this.model.element(this.relationship.target)}metadata(u,l){return this.relationship.metadata?.[u]??l}hasMetadata(u){return eE(this.relationship.metadata?.[u])}}t.Relationship=o;class a{constructor(u,l){this.element=u,this.model=l}get id(){return this.element.id}get title(){return this.element.title}get kind(){return this.element.kind}get isRoot(){return bt(this.element.id)===null}get hasNested(){return this.model.children(this).length>0}get shape(){return this.element.shape??eg}get color(){return this.element.color??_a}get tags(){return this.element.tags??[]}parent(){return this.model.parent(this)}metadata(u,l){return this.element.metadata?.[u]??l}hasMetadata(u){return eE(this.element.metadata?.[u])}ancestors(){return this.model.ancestors(this)}siblings(){return this.model.siblings(this)}descendants(){return this.model.descendants(this)}children(){return this.model.children(this)}viewsOf(){return this.model.views().filter(u=>u.viewOf?.id===this.id)}views(){return this.model.viewsWithElement(this)}incoming(u){return this.model.incoming(this,u)}incomers(u){return this.model.incomers(this,u)}outgoing(u){return this.model.outgoing(this,u)}outgoers(u){return this.model.outgoers(this,u)}internal(){return this.model.internal(this)}ascendingSiblings(){return this.model.ascendingSiblings(this)}}t.ElementModel=a})(Fa||(Fa={}));const lL="LIKEC4_DELAY";function rD(...t){let e=100;return t.length===2?e=O2(t[0],t[1]):t.length===1&&(e=t[0]),new Promise(n=>{setTimeout(()=>{n(lL)},e??100)})}const La=(t,e)=>{const n=Ts(t.source,t.target),r=Ts(e.source,e.target);if(n&&!r)return 1;if(!n&&r)return-1;const i=n&&r?Ro(n,r):0;if(i!==0)return i;const s=Ro(t.source,e.source);return s!==0?s:Ro(t.target,e.target)};function yt(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function Wn(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function dL(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function bd(t){return typeof t=="object"&&t!==null&&yt(t.container)&&Wn(t.reference)&&typeof t.message=="string"}class iD{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,n){return yt(e)&&this.isSubtype(e.$type,n)}isSubtype(e,n){if(e===n)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[n];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,n);return r[n]=s,s}}getAllSubTypes(e){const n=this.allSubtypes[e];if(n)return n;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function ri(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function Ss(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function sD(t){return ri(t)&&typeof t.fullText=="string"}class xt{constructor(e,n){this.startFn=e,this.nextFn=n}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let n=0,r=e.next();for(;!r.done;)n++,r=e.next();return n}toArray(){const e=[],n=this.iterator();let r;do r=n.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,n){const r=this.map(i=>[e?e(i):i,n?n(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new xt(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),n=>{let r;if(!n.firstDone){do if(r=this.nextFn(n.first),!r.done)return r;while(!r.done);n.firstDone=!0}do if(r=n.iterator.next(),!r.done)return r;while(!r.done);return Vt})}join(e=","){const n=this.iterator();let r="",i,s=!1;do i=n.next(),i.done||(s&&(r+=e),r+=fL(i.value)),s=!0;while(!i.done);return r}indexOf(e,n=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=n&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(!e(r.value))return!1;r=n.next()}return!0}some(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return!0;r=n.next()}return!1}forEach(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;)e(i.value,r),i=n.next(),r++}map(e){return new xt(this.startFn,n=>{const{done:r,value:i}=this.nextFn(n);return r?Vt:{done:!1,value:e(i)}})}filter(e){return new xt(this.startFn,n=>{let r;do if(r=this.nextFn(n),!r.done&&e(r.value))return r;while(!r.done);return Vt})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,n){const r=this.iterator();let i=n,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,n){return this.recursiveReduce(this.iterator(),e,n)}recursiveReduce(e,n,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,n,r);return s===void 0?i.value:n(s,i.value)}find(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return r.value;r=n.next()}}findIndex(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(e(i.value))return r;i=n.next(),r++}return-1}includes(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(r.value===e)return!0;r=n.next()}return!1}flatMap(e){return new xt(()=>({this:this.startFn()}),n=>{do{if(n.iterator){const s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(n.this);if(!r){const s=e(i);if(Ed(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(n.iterator);return Vt})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const n=e>1?this.flat(e-1):this;return new xt(()=>({this:n.startFn()}),r=>{do{if(r.iterator){const o=r.iterator.next();if(o.done)r.iterator=void 0;else return o}const{done:i,value:s}=n.nextFn(r.this);if(!i)if(Ed(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return Vt})}head(){const n=this.iterator().next();if(!n.done)return n.value}tail(e=1){return new xt(()=>{const n=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(e){return new xt(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>e?Vt:this.nextFn(n.state)))}distinct(e){return new xt(()=>({set:new Set,internalState:this.startFn()}),n=>{let r;do if(r=this.nextFn(n.internalState),!r.done){const i=e?e(r.value):r.value;if(!n.set.has(i))return n.set.add(i),r}while(!r.done);return Vt})}exclude(e,n){const r=new Set;for(const i of e){const s=n?n(i):i;r.add(s)}return this.filter(i=>{const s=n?n(i):i;return!r.has(s)})}}function fL(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function Ed(t){return!!t&&typeof t[Symbol.iterator]=="function"}const No=new xt(()=>{},()=>Vt),Vt=Object.freeze({done:!0,value:void 0});function Xe(...t){if(t.length===1){const e=t[0];if(e instanceof xt)return e;if(Ed(e))return new xt(()=>e[Symbol.iterator](),n=>n.next());if(typeof e.length=="number")return new xt(()=>({index:0}),n=>n.index<e.length?{done:!1,value:e[n.index++]}:Vt)}return t.length>1?new xt(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const n=e.iterator.next();if(!n.done)return n;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<t.length){const n=t[e.collIndex++];Ed(n)?e.iterator=n[Symbol.iterator]():n&&typeof n.length=="number"&&(e.array=n)}}while(e.iterator||e.array||e.collIndex<t.length);return Vt}):No}class Oo extends xt{constructor(e,n,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[n(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const o=i.iterators[i.iterators.length-1].next();if(o.done)i.iterators.pop();else return i.iterators.push(n(o.value)[Symbol.iterator]()),o}return Vt})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Fg;(function(t){function e(s){return s.reduce((o,a)=>o+a,0)}t.sum=e;function n(s){return s.reduce((o,a)=>o*a,0)}t.product=n;function r(s){return s.reduce((o,a)=>Math.min(o,a))}t.min=r;function i(s){return s.reduce((o,a)=>Math.max(o,a))}t.max=i})(Fg||(Fg={}));function Ma(t){return new Oo(t,e=>ri(e)?e.content:[],{includeRoot:!0})}function oD(t){return Ma(t).filter(Ss)}function aD(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function Dd(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function za(t){if(!t)return;const{offset:e,end:n,range:r}=t;return{range:r,offset:e,end:n,length:n-e}}var Cr;(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",t[t.Outside=5]="Outside"})(Cr||(Cr={}));function cD(t,e){if(t.end.line<e.start.line||t.end.line===e.start.line&&t.end.character<=e.start.character)return Cr.Before;if(t.start.line>e.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return Cr.After;const n=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,r=t.end.line<e.end.line||t.end.line===e.end.line&&t.end.character<=e.end.character;return n&&r?Cr.Inside:n?Cr.OverlapBack:r?Cr.OverlapFront:Cr.Outside}function Lg(t,e){return cD(t,e)>Cr.After}const Mg=/^[\w\p{L}]$/u;function Oi(t,e,n=Mg){if(t){if(e>0){const r=e-t.offset,i=t.text.charAt(r);n.test(i)||e--}return Bg(t,e)}}function Td(t,e){if(t){const n=lD(t,!0);if(n&&zg(n,e))return n;if(sD(t)){const r=t.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=t.content[i];if(zg(s,e))return s}}}}function zg(t,e){return Ss(t)&&e.includes(t.tokenType.name)}function Bg(t,e){if(Ss(t))return t;if(ri(t)){const n=uD(t,e,!1);if(n)return Bg(n,e)}}function Rd(t,e){if(Ss(t))return t;if(ri(t)){const n=uD(t,e,!0);if(n)return Rd(n,e)}}function uD(t,e,n){let r=0,i=t.content.length-1,s;for(;r<=i;){const o=Math.floor((r+i)/2),a=t.content[o];if(a.offset<=e&&a.end>e)return a;a.end<=e?(s=n?a:void 0,r=o+1):i=o-1}return s}function lD(t,e=!0){for(;t.container;){const n=t.container;let r=n.content.indexOf(t);for(;r>0;){r--;const i=n.content[r];if(e||!i.hidden)return i}t=n}}function dD(t,e=!0){for(;t.container;){const n=t.container;let r=n.content.indexOf(t);const i=n.content.length-1;for(;r<i;){r++;const s=n.content[r];if(e||!s.hidden)return s}t=n}}function hL(t){if(t.range.start.character===0)return t;const e=t.range.start.line;let n=t,r;for(;t.container;){const i=t.container,s=r??i.content.indexOf(t);if(s===0?(t=i,r=void 0):(r=s-1,t=i.content[r]),t.range.start.line!==e)break;n=t}return n}function fD(t,e){const n=pL(t,e);return n?n.parent.content.slice(n.a+1,n.b):[]}function pL(t,e){const n=hD(t),r=hD(e);let i;for(let s=0;s<n.length&&s<r.length;s++){const o=n[s],a=r[s];if(o.parent===a.parent)i={parent:o.parent,a:o.index,b:a.index};else break}return i}function hD(t){const e=[];for(;t.container;){const n=t.container,r=n.content.indexOf(t);e.push({parent:n,index:r}),t=n}return e.reverse()}const gL={__proto__:null,DefaultNameRegexp:Mg,get RangeComparison(){return Cr},compareRange:cD,findCommentNode:Td,findDeclarationNodeAtOffset:Oi,findLeafNodeAtOffset:Bg,findLeafNodeBeforeOffset:Rd,flattenCst:oD,getInteriorNodes:fD,getNextNode:dD,getPreviousNode:lD,getStartlineNode:hL,inRange:Lg,isChildNode:aD,isCommentNode:zg,streamCst:Ma,toDocumentSegment:za,tokenToRange:Dd};class pD extends Error{constructor(e,n){super(e?`${n} at ${e.range.start.line}:${e.range.start.character}`:n)}}function Sd(t){throw new Error("Error! The input value was not handled.")}const kd="AbstractRule",$d="AbstractType",qg="Condition",gD="TypeDefinition",jg="ValueLiteral",Ba="AbstractElement";function Ug(t){return ze.isInstance(t,Ba)}const Cd="ArrayLiteral",qa="ArrayType";function mL(t){return ze.isInstance(t,qa)}const ja="BooleanLiteral";function yL(t){return ze.isInstance(t,ja)}const Ua="Conjunction";function vL(t){return ze.isInstance(t,Ua)}const Wa="Disjunction";function wL(t){return ze.isInstance(t,Wa)}const _d="Grammar",Wg="GrammarImport",Ga="InferredType";function mD(t){return ze.isInstance(t,Ga)}const Ha="Interface";function yD(t){return ze.isInstance(t,Ha)}const Gg="NamedArgument",Va="Negation";function bL(t){return ze.isInstance(t,Va)}const Ad="NumberLiteral",xd="Parameter",Ka="ParameterReference";function EL(t){return ze.isInstance(t,Ka)}const Ya="ParserRule";function Kt(t){return ze.isInstance(t,Ya)}const Xa="ReferenceType";function DL(t){return ze.isInstance(t,Xa)}const Id="ReturnType";function TL(t){return ze.isInstance(t,Id)}const Ja="SimpleType";function vD(t){return ze.isInstance(t,Ja)}const Pd="StringLiteral",Fo="TerminalRule";function ii(t){return ze.isInstance(t,Fo)}const Za="Type";function Hg(t){return ze.isInstance(t,Za)}const Vg="TypeAttribute",Qa="UnionType";function RL(t){return ze.isInstance(t,Qa)}const ec="Action";function ks(t){return ze.isInstance(t,ec)}const tc="Alternatives";function Kg(t){return ze.isInstance(t,tc)}const nc="Assignment";function _r(t){return ze.isInstance(t,nc)}const rc="CharacterRange";function SL(t){return ze.isInstance(t,rc)}const ic="CrossReference";function sc(t){return ze.isInstance(t,ic)}const oc="EndOfFile";function kL(t){return ze.isInstance(t,oc)}const ac="Group";function Fi(t){return ze.isInstance(t,ac)}const cc="Keyword";function Ar(t){return ze.isInstance(t,cc)}const uc="NegatedToken";function $L(t){return ze.isInstance(t,uc)}const lc="RegexToken";function CL(t){return ze.isInstance(t,lc)}const dc="RuleCall";function si(t){return ze.isInstance(t,dc)}const fc="TerminalAlternatives";function _L(t){return ze.isInstance(t,fc)}const hc="TerminalGroup";function AL(t){return ze.isInstance(t,hc)}const pc="TerminalRuleCall";function wD(t){return ze.isInstance(t,pc)}const gc="UnorderedGroup";function Yg(t){return ze.isInstance(t,gc)}const mc="UntilToken";function xL(t){return ze.isInstance(t,mc)}const yc="Wildcard";function IL(t){return ze.isInstance(t,yc)}class bD extends iD{getAllTypes(){return[Ba,kd,$d,ec,tc,Cd,qa,nc,ja,rc,qg,Ua,ic,Wa,oc,_d,Wg,ac,Ga,Ha,cc,Gg,uc,Va,Ad,xd,Ka,Ya,Xa,lc,Id,dc,Ja,Pd,fc,hc,Fo,pc,Za,Vg,gD,Qa,gc,mc,jg,yc]}computeIsSubtype(e,n){switch(e){case ec:case tc:case nc:case rc:case ic:case oc:case ac:case cc:case uc:case lc:case dc:case fc:case hc:case pc:case gc:case mc:case yc:return this.isSubtype(Ba,n);case Cd:case Ad:case Pd:return this.isSubtype(jg,n);case qa:case Xa:case Ja:case Qa:return this.isSubtype(gD,n);case ja:return this.isSubtype(qg,n)||this.isSubtype(jg,n);case Ua:case Wa:case Va:case Ka:return this.isSubtype(qg,n);case Ga:case Ha:case Za:return this.isSubtype($d,n);case Ya:return this.isSubtype(kd,n)||this.isSubtype($d,n);case Fo:return this.isSubtype(kd,n);default:return!1}}getReferenceType(e){const n=`${e.container.$type}:${e.property}`;switch(n){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return $d;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return kd;case"Grammar:usedGrammars":return _d;case"NamedArgument:parameter":case"ParameterReference:parameter":return xd;case"TerminalRuleCall:rule":return Fo;default:throw new Error(`${n} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Ba:return{name:Ba,properties:[{name:"cardinality"},{name:"lookahead"}]};case Cd:return{name:Cd,properties:[{name:"elements",defaultValue:[]}]};case qa:return{name:qa,properties:[{name:"elementType"}]};case ja:return{name:ja,properties:[{name:"true",defaultValue:!1}]};case Ua:return{name:Ua,properties:[{name:"left"},{name:"right"}]};case Wa:return{name:Wa,properties:[{name:"left"},{name:"right"}]};case _d:return{name:_d,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 Wg:return{name:Wg,properties:[{name:"path"}]};case Ga:return{name:Ga,properties:[{name:"name"}]};case Ha:return{name:Ha,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Gg:return{name:Gg,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Va:return{name:Va,properties:[{name:"value"}]};case Ad:return{name:Ad,properties:[{name:"value"}]};case xd:return{name:xd,properties:[{name:"name"}]};case Ka:return{name:Ka,properties:[{name:"parameter"}]};case Ya:return{name:Ya,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 Xa:return{name:Xa,properties:[{name:"referenceType"}]};case Id:return{name:Id,properties:[{name:"name"}]};case Ja:return{name:Ja,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Pd:return{name:Pd,properties:[{name:"value"}]};case Fo:return{name:Fo,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Za:return{name:Za,properties:[{name:"name"},{name:"type"}]};case Vg:return{name:Vg,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case Qa:return{name:Qa,properties:[{name:"types",defaultValue:[]}]};case ec:return{name:ec,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case tc:return{name:tc,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case nc:return{name:nc,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case rc:return{name:rc,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case ic:return{name:ic,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case oc:return{name:oc,properties:[{name:"cardinality"},{name:"lookahead"}]};case ac:return{name:ac,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case cc:return{name:cc,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case uc:return{name:uc,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case lc:return{name:lc,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case dc:return{name:dc,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case fc:return{name:fc,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case hc:return{name:hc,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case pc:return{name:pc,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case gc:return{name:gc,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case mc:return{name:mc,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case yc:return{name:yc,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const ze=new bD;function Xg(t){for(const[e,n]of Object.entries(t))e.startsWith("$")||(Array.isArray(n)?n.forEach((r,i)=>{yt(r)&&(r.$container=t,r.$containerProperty=e,r.$containerIndex=i)}):yt(n)&&(n.$container=t,n.$containerProperty=e))}function vn(t,e){let n=t;for(;n;){if(e(n))return n;n=n.$container}}function Jg(t,e){let n=t;for(;n;){if(e(n))return!0;n=n.$container}return!1}function rn(t){const n=Nd(t).$document;if(!n)throw new Error("AST node has no document.");return n}function Nd(t){for(;t.$container;)t=t.$container;return t}function vc(t,e){if(!t)throw new Error("Node must be an AstNode.");const n=e?.range;return new xt(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=t[i];if(yt(s)){if(r.keyIndex++,Zg(s,n))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const o=r.arrayIndex++,a=s[o];if(yt(a)&&Zg(a,n))return{done:!1,value:a}}r.arrayIndex=0}}r.keyIndex++}return Vt})}function xr(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new Oo(t,n=>vc(n,e))}function oi(t,e){if(t){if(e?.range&&!Zg(t,e.range))return new Oo(t,()=>[])}else throw new Error("Root node must be an AstNode.");return new Oo(t,n=>vc(n,e),{includeRoot:!0})}function Zg(t,e){var n;if(!e)return!0;const r=(n=t.$cstNode)===null||n===void 0?void 0:n.range;return r?Lg(r,e):!1}function Od(t){return new xt(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const n=e.keys[e.keyIndex];if(!n.startsWith("$")){const r=t[n];if(Wn(r))return e.keyIndex++,{done:!1,value:{reference:r,container:t,property:n}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Wn(s))return{done:!1,value:{reference:s,container:t,property:n,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Vt})}function PL(t,e=rn(t).parseResult.value){const n=[];return oi(e).forEach(r=>{Od(r).forEach(i=>{i.reference.ref===t&&n.push(i.reference)})}),Xe(n)}function Qg(t,e){const n=t.getTypeMetaData(e.$type),r=e;for(const i of n.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=ED(i.defaultValue))}function ED(t){return Array.isArray(t)?[...t.map(ED)]:t}function em(t,e){const n={$type:t.$type};for(const[r,i]of Object.entries(t))if(!r.startsWith("$"))if(yt(i))n[r]=em(i,e);else if(Wn(i))n[r]=e(n,r,i.$refNode,i.$refText);else if(Array.isArray(i)){const s=[];for(const o of i)yt(o)?s.push(em(o,e)):Wn(o)?s.push(e(n,r,o.$refNode,o.$refText)):s.push(o);n[r]=s}else n[r]=i;return Xg(n),n}const Fd={__proto__:null,assignMandatoryProperties:Qg,copyAstNode:em,findLocalReferences:PL,findRootNode:Nd,getContainerOfType:vn,getDocument:rn,hasContainerOfType:Jg,linkContentToContainer:Xg,streamAllContents:xr,streamAst:oi,streamContents:vc,streamReferences:Od};function De(t){return t.charCodeAt(0)}function tm(t,e){Array.isArray(t)?t.forEach(function(n){e.push(n)}):e.push(t)}function wc(t,e){if(t[e]===!0)throw"duplicate flag "+e;t[e],t[e]=!0}function Lo(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function NL(){throw Error("Internal Error - Should never get here!")}function DD(t){return t.type==="Character"}const Ld=[];for(let t=De("0");t<=De("9");t++)Ld.push(t);const Md=[De("_")].concat(Ld);for(let t=De("a");t<=De("z");t++)Md.push(t);for(let t=De("A");t<=De("Z");t++)Md.push(t);const TD=[De(" "),De("\f"),De(`
2
+ `),De("\r"),De(" "),De("\v"),De(" "),De("\xA0"),De("\u1680"),De("\u2000"),De("\u2001"),De("\u2002"),De("\u2003"),De("\u2004"),De("\u2005"),De("\u2006"),De("\u2007"),De("\u2008"),De("\u2009"),De("\u200A"),De("\u2028"),De("\u2029"),De("\u202F"),De("\u205F"),De("\u3000"),De("\uFEFF")],OL=/[0-9a-fA-F]/,zd=/[0-9]/,FL=/[1-9]/;class RD{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("/");const n=this.disjunction();this.consumeChar("/");const r={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":wc(r,"global");break;case"i":wc(r,"ignoreCase");break;case"m":wc(r,"multiLine");break;case"u":wc(r,"unicode");break;case"y":wc(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:n,loc:this.loc(0)}}disjunction(){const e=[],n=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(n)}}alternative(){const e=[],n=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(n)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const 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 n;switch(this.popChar()){case"=":n="Lookahead";break;case"!":n="NegativeLookahead";break}Lo(n);const r=this.disjunction();return this.consumeChar(")"),{type:n,value:r,loc:this.loc(e)}}return NL()}quantifier(e=!1){let n;const r=this.idx;switch(this.popChar()){case"*":n={atLeast:0,atMost:1/0};break;case"+":n={atLeast:1,atMost:1/0};break;case"?":n={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":n={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),n={atLeast:i,atMost:s}):n={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&n===void 0)return;Lo(n);break}if(!(e===!0&&n===void 0)&&Lo(n))return this.peekChar(0)==="?"?(this.consumeChar("?"),n.greedy=!1):n.greedy=!0,n.type="Quantifier",n.loc=this.loc(r),n}atom(){let e;const n=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}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Lo(e))return e.loc=this.loc(n),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[De(`
3
+ `),De("\r"),De("\u2028"),De("\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,n=!1;switch(this.popChar()){case"d":e=Ld;break;case"D":e=Ld,n=!0;break;case"s":e=TD;break;case"S":e=TD,n=!0;break;case"w":e=Md;break;case"W":e=Md,n=!0;break}if(Lo(e))return{type:"Set",value:e,complement:n}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=De("\f");break;case"n":e=De(`
4
+ `);break;case"r":e=De("\r");break;case"t":e=De(" ");break;case"v":e=De("\v");break}if(Lo(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const 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:De("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:De(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
5
+ `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:De(e)}}}characterClass(){const e=[];let n=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),n=!0);this.isClassAtom();){const r=this.classAtom();if(r.type,DD(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,DD(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else tm(r.value,e),e.push(De("-")),tm(i.value,e)}else tm(r.value,e)}return this.consumeChar("]"),{type:"Set",complement:n,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
6
+ `:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:De("\b")};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()}}group(){let e=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),e=!1;break;default:this.groupIdx++;break}const n=this.disjunction();this.consumeChar(")");const r={type:"Group",capturing:e,value:n};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(FL.test(e)===!1)throw Error("Expecting a positive integer");for(;zd.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(zd.test(e)===!1)throw Error("Expecting an integer");for(;zd.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case`
7
+ `:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:De(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return zd.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case`
8
+ `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}}isQuantifier(){const e=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
9
+ `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let n="";for(let i=0;i<e;i++){const s=this.popChar();if(OL.test(s)===!1)throw Error("Expecting a HexDecimal digits");n+=s}return{type:"Character",value:parseInt(n,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){const e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(e!==void 0&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class Bd{visitChildren(e){for(const n in e){const r=e[n];e.hasOwnProperty(n)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.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){}}const SD=/\r?\n/gm,LL=new RD;class ML extends Bd{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){const n=String.fromCharCode(e.value);if(!this.multiline&&n===`
10
+ `&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const r=qd(n);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(e){if(!this.multiline){const n=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(n);this.multiline=!!`
11
+ `.match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const n=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}}const nm=new ML;function zL(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),nm.reset(t),nm.visit(LL.pattern(t)),nm.multiline}catch{return!1}}const BL=`\f
12
+ \r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");function rm(t){const e=typeof t=="string"?new RegExp(t):t;return BL.some(n=>e.test(n))}function qd(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function qL(t){return Array.prototype.map.call(t,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:qd(e)).join("")}function jL(t,e){const n=UL(t),r=e.match(n);return!!r&&r[0].length>0}function UL(t){typeof t=="string"&&(t=new RegExp(t));const e=t,n=t.source;let r=0;function i(){let s="",o;function a(u){s+=n.substr(r,u),r+=u}function c(u){s+="(?:"+n.substr(r,u)+"|$)",r+=u}for(;r<n.length;)switch(n[r]){case"\\":switch(n[r+1]){case"c":c(3);break;case"x":c(4);break;case"u":e.unicode?n[r+2]==="{"?c(n.indexOf("}",r)-r+1):c(6):c(2);break;case"p":case"P":e.unicode?c(n.indexOf("}",r)-r+1):c(2);break;case"k":c(n.indexOf(">",r)-r+1);break;default:c(2);break}break;case"[":o=/\[(?:\\.|.)*?\]/g,o.lastIndex=r,o=o.exec(n)||[],c(o[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":a(1);break;case"{":o=/\{\d+,?\d*\}/g,o.lastIndex=r,o=o.exec(n),o?a(o[0].length):c(1);break;case"(":if(n[r+1]==="?")switch(n[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":o=r,r+=3,i(),s+=n.substr(o,r-o);break;case"<":switch(n[r+3]){case"=":case"!":o=r,r+=4,i(),s+=n.substr(o,r-o);break;default:a(n.indexOf(">",r)-r+1),s+=i()+"|$)";break}break}else a(1),s+=i()+"|$)";break;case")":return++r,s;default:c(1);break}return s}return new RegExp(i(),t.flags)}function jd(t){return t.rules.find(e=>Kt(e)&&e.entry)}function kD(t){return t.rules.filter(e=>ii(e)&&e.hidden)}function im(t,e){const n=new Set,r=jd(t);if(!r)return new Set(t.rules);const i=[r].concat(kD(t));for(const o of i)$D(o,n,e);const s=new Set;for(const o of t.rules)(n.has(o.name)||ii(o)&&o.hidden)&&s.add(o);return s}function $D(t,e,n){e.add(t.name),xr(t).forEach(r=>{if(si(r)||n&&wD(r)){const i=r.rule.ref;i&&!e.has(i.name)&&$D(i,e,n)}})}function sm(t){if(t.terminal)return t.terminal;if(t.type.ref){const e=um(t.type.ref);return e?.terminal}}function CD(t){return t.hidden&&!rm(Dc(t))}function Mo(t,e){return!t||!e?[]:om(t,e,t.astNode,!0)}function _n(t,e,n){if(!t||!e)return;const r=om(t,e,t.astNode,!0);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function om(t,e,n,r){if(!r){const i=vn(t.grammarSource,_r);if(i&&i.feature===e)return[t]}return ri(t)&&t.astNode===n?t.content.flatMap(i=>om(i,e,n,!1)):[]}function am(t,e){return t?cm(t,e,t?.astNode):[]}function bc(t,e,n){if(!t)return;const r=cm(t,e,t?.astNode);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function cm(t,e,n){if(t.astNode!==n)return[];if(Ar(t.grammarSource)&&t.grammarSource.value===e)return[t];const r=Ma(t).iterator();let i;const s=[];do if(i=r.next(),!i.done){const o=i.value;o.astNode===n?Ar(o.grammarSource)&&o.grammarSource.value===e&&s.push(o):r.prune()}while(!i.done);return s}function _D(t){var e;const n=t.astNode;for(;n===((e=t.container)===null||e===void 0?void 0:e.astNode);){const r=vn(t.grammarSource,_r);if(r)return r;t=t.container}}function um(t){let e=t;return mD(e)&&(ks(e.$container)?e=e.$container.$container:Kt(e.$container)?e=e.$container:Sd(e.$container)),AD(t,e,new Map)}function AD(t,e,n){var r;function i(s,o){let a;return vn(s,_r)||(a=AD(o,o,n)),n.set(t,a),a}if(n.has(t))return n.get(t);n.set(t,void 0);for(const s of xr(e)){if(_r(s)&&s.feature.toLowerCase()==="name")return n.set(t,s),s;if(si(s)&&Kt(s.rule.ref))return i(s,s.rule.ref);if(vD(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function xD(t){const e=t.$container;if(Fi(e)){const n=e.elements,r=n.indexOf(t);for(let i=r-1;i>=0;i--){const s=n[i];if(ks(s))return s;{const o=xr(n[i]).find(ks);if(o)return o}}}if(Ug(e))return xD(e)}function zo(t,e){return t==="?"||t==="*"||Fi(e)&&!!e.guardCondition}function ID(t){return t==="*"||t==="+"}function WL(t){return t==="+="}function Ud(t){return PD(t,new Set)}function PD(t,e){if(e.has(t))return!0;e.add(t);for(const n of xr(t))if(si(n)){if(!n.rule.ref||Kt(n.rule.ref)&&!PD(n.rule.ref,e))return!1}else{if(_r(n))return!1;if(ks(n))return!1}return!!t.definition}function GL(t){return lm(t.type,new Set)}function lm(t,e){if(e.has(t))return!0;if(e.add(t),mL(t))return!1;if(DL(t))return!1;if(RL(t))return t.types.every(n=>lm(n,e));if(vD(t)){if(t.primitiveType!==void 0)return!0;if(t.stringType!==void 0)return!0;if(t.typeRef!==void 0){const n=t.typeRef.ref;return Hg(n)?lm(n.type,e):!1}else return!1}else return!1}function $s(t){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){const e=t.returnType.ref;if(e){if(Kt(e))return e.name;if(yD(e)||Hg(e))return e.name}}}function Ec(t){var e;if(Kt(t))return Ud(t)?t.name:(e=$s(t))!==null&&e!==void 0?e:t.name;if(yD(t)||Hg(t)||TL(t))return t.name;if(ks(t)){const n=ND(t);if(n)return n}else if(mD(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function ND(t){var e;if(t.inferredType)return t.inferredType.name;if(!((e=t.type)===null||e===void 0)&&e.ref)return Ec(t.type.ref)}function HL(t){var e,n,r;return ii(t)?(n=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&n!==void 0?n:"string":Ud(t)?t.name:(r=$s(t))!==null&&r!==void 0?r:t.name}function OD(t){var e,n,r;return ii(t)?(n=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&n!==void 0?n:"string":(r=$s(t))!==null&&r!==void 0?r:t.name}function Dc(t){const e={s:!1,i:!1,u:!1},n=Bo(t.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(n,r)}const dm=/[\s\S]/.source;function Bo(t,e){if(_L(t))return VL(t);if(AL(t))return KL(t);if(SL(t))return JL(t);if(wD(t)){const n=t.rule.ref;if(!n)throw new Error("Missing rule reference.");return ai(Bo(n.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}else{if($L(t))return XL(t);if(xL(t))return YL(t);if(CL(t)){const n=t.regex.lastIndexOf("/"),r=t.regex.substring(1,n),i=t.regex.substring(n+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),ai(r,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}else{if(IL(t))return ai(dm,{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error(`Invalid terminal element: ${t?.$type}`)}}}function VL(t){return ai(t.elements.map(e=>Bo(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead})}function KL(t){return ai(t.elements.map(e=>Bo(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead})}function YL(t){return ai(`${dm}*?${Bo(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead})}function XL(t){return ai(`(?!${Bo(t.terminal)})${dm}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function JL(t){return t.right?ai(`[${fm(t.left)}-${fm(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):ai(fm(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function fm(t){return qd(t.value)}function ai(t,e){var n;return(e.wrap!==!1||e.lookahead)&&(t=`(${(n=e.lookahead)!==null&&n!==void 0?n:""}${t})`),e.cardinality?`${t}${e.cardinality}`:t}const Wd={__proto__:null,findAssignment:_D,findNameAssignment:um,findNodeForKeyword:bc,findNodeForProperty:_n,findNodesForKeyword:am,findNodesForKeywordInternal:cm,findNodesForProperty:Mo,getActionAtElement:xD,getActionType:ND,getAllReachableRules:im,getCrossReferenceTerminal:sm,getEntryRule:jd,getExplicitRuleType:$s,getHiddenRules:kD,getRuleType:OD,getRuleTypeName:HL,getTypeName:Ec,isArrayCardinality:ID,isArrayOperator:WL,isCommentTerminal:CD,isDataType:GL,isDataTypeRule:Ud,isOptionalCardinality:zo,terminalRegex:Dc};function ZL(t){const e=[],n=t.Grammar;for(const r of n.rules)ii(r)&&CD(r)&&zL(Dc(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:Mg}}var FD=typeof global=="object"&&global&&global.Object===Object&&global,QL=typeof self=="object"&&self&&self.Object===Object&&self,Ir=FD||QL||Function("return this")(),Gn=Ir.Symbol,LD=Object.prototype,eM=LD.hasOwnProperty,tM=LD.toString,Tc=Gn?Gn.toStringTag:void 0;function nM(t){var e=eM.call(t,Tc),n=t[Tc];try{t[Tc]=void 0;var r=!0}catch{}var i=tM.call(t);return r&&(e?t[Tc]=n:delete t[Tc]),i}var rM=Object.prototype,iM=rM.toString;function sM(t){return iM.call(t)}var oM="[object Null]",aM="[object Undefined]",MD=Gn?Gn.toStringTag:void 0;function Li(t){return t==null?t===void 0?aM:oM:MD&&MD in Object(t)?nM(t):sM(t)}function ur(t){return t!=null&&typeof t=="object"}var cM="[object Symbol]";function Rc(t){return typeof t=="symbol"||ur(t)&&Li(t)==cM}function Gd(t,e){for(var n=-1,r=t==null?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}var Be=Array.isArray,uM=1/0,zD=Gn?Gn.prototype:void 0,BD=zD?zD.toString:void 0;function qD(t){if(typeof t=="string")return t;if(Be(t))return Gd(t,qD)+"";if(Rc(t))return BD?BD.call(t):"";var e=t+"";return e=="0"&&1/t==-uM?"-0":e}var lM=/\s/;function dM(t){for(var e=t.length;e--&&lM.test(t.charAt(e)););return e}var fM=/^\s+/;function hM(t){return t&&t.slice(0,dM(t)+1).replace(fM,"")}function Hn(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var jD=NaN,pM=/^[-+]0x[0-9a-f]+$/i,gM=/^0b[01]+$/i,mM=/^0o[0-7]+$/i,yM=parseInt;function vM(t){if(typeof t=="number")return t;if(Rc(t))return jD;if(Hn(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Hn(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=hM(t);var n=gM.test(t);return n||mM.test(t)?yM(t.slice(2),n?2:8):pM.test(t)?jD:+t}var UD=1/0,wM=17976931348623157e292;function bM(t){if(!t)return t===0?t:0;if(t=vM(t),t===UD||t===-UD){var e=t<0?-1:1;return e*wM}return t===t?t:0}function Hd(t){var e=bM(t),n=e%1;return e===e?n?e-n:e:0}function Cs(t){return t}var EM="[object AsyncFunction]",DM="[object Function]",TM="[object GeneratorFunction]",RM="[object Proxy]";function ci(t){if(!Hn(t))return!1;var e=Li(t);return e==DM||e==TM||e==EM||e==RM}var hm=Ir["__core-js_shared__"],WD=function(){var t=/[^.]+$/.exec(hm&&hm.keys&&hm.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function SM(t){return!!WD&&WD in t}var kM=Function.prototype,$M=kM.toString;function _s(t){if(t!=null){try{return $M.call(t)}catch{}try{return t+""}catch{}}return""}var CM=/[\\^$.*+?()[\]{}|]/g,_M=/^\[object .+?Constructor\]$/,AM=Function.prototype,xM=Object.prototype,IM=AM.toString,PM=xM.hasOwnProperty,NM=RegExp("^"+IM.call(PM).replace(CM,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function OM(t){if(!Hn(t)||SM(t))return!1;var e=ci(t)?NM:_M;return e.test(_s(t))}function FM(t,e){return t?.[e]}function As(t,e){var n=FM(t,e);return OM(n)?n:void 0}var pm=As(Ir,"WeakMap"),GD=Object.create,LM=function(){function t(){}return function(e){if(!Hn(e))return{};if(GD)return GD(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function MM(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function Pt(){}function zM(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}var BM=800,qM=16,jM=Date.now;function UM(t){var e=0,n=0;return function(){var r=jM(),i=qM-(r-n);if(n=r,i>0){if(++e>=BM)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function WM(t){return function(){return t}}var Vd=function(){try{var t=As(Object,"defineProperty");return t({},"",{}),t}catch{}}(),GM=Vd?function(t,e){return Vd(t,"toString",{configurable:!0,enumerable:!1,value:WM(e),writable:!0})}:Cs,HM=UM(GM);function HD(t,e){for(var n=-1,r=t==null?0:t.length;++n<r&&e(t[n],n,t)!==!1;);return t}function VD(t,e,n,r){for(var i=t.length,s=n+-1;++s<i;)if(e(t[s],s,t))return s;return-1}function VM(t){return t!==t}function KM(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}function gm(t,e,n){return e===e?KM(t,e,n):VD(t,VM,n)}function KD(t,e){var n=t==null?0:t.length;return!!n&&gm(t,e,0)>-1}var YM=9007199254740991,XM=/^(?:0|[1-9]\d*)$/;function Kd(t,e){var n=typeof t;return e=e??YM,!!e&&(n=="number"||n!="symbol"&&XM.test(t))&&t>-1&&t%1==0&&t<e}function mm(t,e,n){e=="__proto__"&&Vd?Vd(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Sc(t,e){return t===e||t!==t&&e!==e}var JM=Object.prototype,ZM=JM.hasOwnProperty;function Yd(t,e,n){var r=t[e];(!(ZM.call(t,e)&&Sc(r,n))||n===void 0&&!(e in t))&&mm(t,e,n)}function ym(t,e,n,r){var i=!n;n||(n={});for(var s=-1,o=e.length;++s<o;){var a=e[s],c=void 0;c===void 0&&(c=t[a]),i?mm(n,a,c):Yd(n,a,c)}return n}var YD=Math.max;function QM(t,e,n){return e=YD(e===void 0?t.length-1:e,0),function(){for(var r=arguments,i=-1,s=YD(r.length-e,0),o=Array(s);++i<s;)o[i]=r[e+i];i=-1;for(var a=Array(e+1);++i<e;)a[i]=r[i];return a[e]=n(o),MM(t,this,a)}}function vm(t,e){return HM(QM(t,e,Cs),t+"")}var e3=9007199254740991;function wm(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=e3}function Pr(t){return t!=null&&wm(t.length)&&!ci(t)}function XD(t,e,n){if(!Hn(n))return!1;var r=typeof e;return(r=="number"?Pr(n)&&Kd(e,n.length):r=="string"&&e in n)?Sc(n[e],t):!1}function t3(t){return vm(function(e,n){var r=-1,i=n.length,s=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(s=t.length>3&&typeof s=="function"?(i--,s):void 0,o&&XD(n[0],n[1],o)&&(s=i<3?void 0:s,i=1),e=Object(e);++r<i;){var a=n[r];a&&t(e,a,r,s)}return e})}var n3=Object.prototype;function kc(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||n3;return t===n}function r3(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}var i3="[object Arguments]";function JD(t){return ur(t)&&Li(t)==i3}var ZD=Object.prototype,s3=ZD.hasOwnProperty,o3=ZD.propertyIsEnumerable,Xd=JD(function(){return arguments}())?JD:function(t){return ur(t)&&s3.call(t,"callee")&&!o3.call(t,"callee")},a3=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ui(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function r(){return this instanceof r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}),n}function c3(){return!1}var QD=typeof exports=="object"&&exports&&!exports.nodeType&&exports,eT=QD&&typeof module=="object"&&module&&!module.nodeType&&module,u3=eT&&eT.exports===QD,tT=u3?Ir.Buffer:void 0,l3=tT?tT.isBuffer:void 0,$c=l3||c3,d3="[object Arguments]",f3="[object Array]",h3="[object Boolean]",p3="[object Date]",g3="[object Error]",m3="[object Function]",y3="[object Map]",v3="[object Number]",w3="[object Object]",b3="[object RegExp]",E3="[object Set]",D3="[object String]",T3="[object WeakMap]",R3="[object ArrayBuffer]",S3="[object DataView]",k3="[object Float32Array]",$3="[object Float64Array]",C3="[object Int8Array]",_3="[object Int16Array]",A3="[object Int32Array]",x3="[object Uint8Array]",I3="[object Uint8ClampedArray]",P3="[object Uint16Array]",N3="[object Uint32Array]",st={};st[k3]=st[$3]=st[C3]=st[_3]=st[A3]=st[x3]=st[I3]=st[P3]=st[N3]=!0,st[d3]=st[f3]=st[R3]=st[h3]=st[S3]=st[p3]=st[g3]=st[m3]=st[y3]=st[v3]=st[w3]=st[b3]=st[E3]=st[D3]=st[T3]=!1;function O3(t){return ur(t)&&wm(t.length)&&!!st[Li(t)]}function Jd(t){return function(e){return t(e)}}var nT=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Cc=nT&&typeof module=="object"&&module&&!module.nodeType&&module,F3=Cc&&Cc.exports===nT,bm=F3&&FD.process,Mi=function(){try{var t=Cc&&Cc.require&&Cc.require("util").types;return t||bm&&bm.binding&&bm.binding("util")}catch{}}(),rT=Mi&&Mi.isTypedArray,Em=rT?Jd(rT):O3,L3=Object.prototype,M3=L3.hasOwnProperty;function iT(t,e){var n=Be(t),r=!n&&Xd(t),i=!n&&!r&&$c(t),s=!n&&!r&&!i&&Em(t),o=n||r||i||s,a=o?r3(t.length,String):[],c=a.length;for(var u in t)(e||M3.call(t,u))&&!(o&&(u=="length"||i&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Kd(u,c)))&&a.push(u);return a}function sT(t,e){return function(n){return t(e(n))}}var z3=sT(Object.keys,Object),B3=Object.prototype,q3=B3.hasOwnProperty;function oT(t){if(!kc(t))return z3(t);var e=[];for(var n in Object(t))q3.call(t,n)&&n!="constructor"&&e.push(n);return e}function Vn(t){return Pr(t)?iT(t):oT(t)}var j3=Object.prototype,U3=j3.hasOwnProperty,An=t3(function(t,e){if(kc(e)||Pr(e)){ym(e,Vn(e),t);return}for(var n in e)U3.call(e,n)&&Yd(t,n,e[n])});function W3(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}var G3=Object.prototype,H3=G3.hasOwnProperty;function V3(t){if(!Hn(t))return W3(t);var e=kc(t),n=[];for(var r in t)r=="constructor"&&(e||!H3.call(t,r))||n.push(r);return n}function aT(t){return Pr(t)?iT(t,!0):V3(t)}var K3=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Y3=/^\w*$/;function Dm(t,e){if(Be(t))return!1;var n=typeof t;return n=="number"||n=="symbol"||n=="boolean"||t==null||Rc(t)?!0:Y3.test(t)||!K3.test(t)||e!=null&&t in Object(e)}var _c=As(Object,"create");function X3(){this.__data__=_c?_c(null):{},this.size=0}function J3(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Z3="__lodash_hash_undefined__",Q3=Object.prototype,e8=Q3.hasOwnProperty;function t8(t){var e=this.__data__;if(_c){var n=e[t];return n===Z3?void 0:n}return e8.call(e,t)?e[t]:void 0}var n8=Object.prototype,r8=n8.hasOwnProperty;function i8(t){var e=this.__data__;return _c?e[t]!==void 0:r8.call(e,t)}var s8="__lodash_hash_undefined__";function o8(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=_c&&e===void 0?s8:e,this}function xs(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}xs.prototype.clear=X3,xs.prototype.delete=J3,xs.prototype.get=t8,xs.prototype.has=i8,xs.prototype.set=o8;function a8(){this.__data__=[],this.size=0}function Zd(t,e){for(var n=t.length;n--;)if(Sc(t[n][0],e))return n;return-1}var c8=Array.prototype,u8=c8.splice;function l8(t){var e=this.__data__,n=Zd(e,t);if(n<0)return!1;var r=e.length-1;return n==r?e.pop():u8.call(e,n,1),--this.size,!0}function d8(t){var e=this.__data__,n=Zd(e,t);return n<0?void 0:e[n][1]}function f8(t){return Zd(this.__data__,t)>-1}function h8(t,e){var n=this.__data__,r=Zd(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function li(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}li.prototype.clear=a8,li.prototype.delete=l8,li.prototype.get=d8,li.prototype.has=f8,li.prototype.set=h8;var Ac=As(Ir,"Map");function p8(){this.size=0,this.__data__={hash:new xs,map:new(Ac||li),string:new xs}}function g8(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function Qd(t,e){var n=t.__data__;return g8(e)?n[typeof e=="string"?"string":"hash"]:n.map}function m8(t){var e=Qd(this,t).delete(t);return this.size-=e?1:0,e}function y8(t){return Qd(this,t).get(t)}function v8(t){return Qd(this,t).has(t)}function w8(t,e){var n=Qd(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this}function di(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}di.prototype.clear=p8,di.prototype.delete=m8,di.prototype.get=y8,di.prototype.has=v8,di.prototype.set=w8;var b8="Expected a function";function Tm(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(b8);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],s=n.cache;if(s.has(i))return s.get(i);var o=t.apply(this,r);return n.cache=s.set(i,o)||s,o};return n.cache=new(Tm.Cache||di),n}Tm.Cache=di;var E8=500;function D8(t){var e=Tm(t,function(r){return n.size===E8&&n.clear(),r}),n=e.cache;return e}var T8=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,R8=/\\(\\)?/g,S8=D8(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(T8,function(n,r,i,s){e.push(i?s.replace(R8,"$1"):r||n)}),e});function k8(t){return t==null?"":qD(t)}function ef(t,e){return Be(t)?t:Dm(t,e)?[t]:S8(k8(t))}var $8=1/0;function xc(t){if(typeof t=="string"||Rc(t))return t;var e=t+"";return e=="0"&&1/t==-$8?"-0":e}function Rm(t,e){e=ef(e,t);for(var n=0,r=e.length;t!=null&&n<r;)t=t[xc(e[n++])];return n&&n==r?t:void 0}function C8(t,e,n){var r=t==null?void 0:Rm(t,e);return r===void 0?n:r}function Sm(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}var cT=Gn?Gn.isConcatSpreadable:void 0;function _8(t){return Be(t)||Xd(t)||!!(cT&&t&&t[cT])}function km(t,e,n,r,i){var s=-1,o=t.length;for(n||(n=_8),i||(i=[]);++s<o;){var a=t[s];n(a)?Sm(i,a):r||(i[i.length]=a)}return i}function Kn(t){var e=t==null?0:t.length;return e?km(t):[]}var uT=sT(Object.getPrototypeOf,Object);function lT(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),n=n>i?i:n,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=t[r+e];return s}function A8(t,e,n,r){var i=-1,s=t==null?0:t.length;for(r&&s&&(n=t[++i]);++i<s;)n=e(n,t[i],i,t);return n}function x8(){this.__data__=new li,this.size=0}function I8(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}function P8(t){return this.__data__.get(t)}function N8(t){return this.__data__.has(t)}var O8=200;function F8(t,e){var n=this.__data__;if(n instanceof li){var r=n.__data__;if(!Ac||r.length<O8-1)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new di(r)}return n.set(t,e),this.size=n.size,this}function Nr(t){var e=this.__data__=new li(t);this.size=e.size}Nr.prototype.clear=x8,Nr.prototype.delete=I8,Nr.prototype.get=P8,Nr.prototype.has=N8,Nr.prototype.set=F8;function L8(t,e){return t&&ym(e,Vn(e),t)}var dT=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fT=dT&&typeof module=="object"&&module&&!module.nodeType&&module,M8=fT&&fT.exports===dT,hT=M8?Ir.Buffer:void 0,pT=hT?hT.allocUnsafe:void 0;function z8(t,e){var n=t.length,r=pT?pT(n):new t.constructor(n);return t.copy(r),r}function $m(t,e){for(var n=-1,r=t==null?0:t.length,i=0,s=[];++n<r;){var o=t[n];e(o,n,t)&&(s[i++]=o)}return s}function gT(){return[]}var B8=Object.prototype,q8=B8.propertyIsEnumerable,mT=Object.getOwnPropertySymbols,Cm=mT?function(t){return t==null?[]:(t=Object(t),$m(mT(t),function(e){return q8.call(t,e)}))}:gT;function j8(t,e){return ym(t,Cm(t),e)}var U8=Object.getOwnPropertySymbols,W8=U8?function(t){for(var e=[];t;)Sm(e,Cm(t)),t=uT(t);return e}:gT;function yT(t,e,n){var r=e(t);return Be(t)?r:Sm(r,n(t))}function _m(t){return yT(t,Vn,Cm)}function G8(t){return yT(t,aT,W8)}var Am=As(Ir,"DataView"),xm=As(Ir,"Promise"),qo=As(Ir,"Set"),vT="[object Map]",H8="[object Object]",wT="[object Promise]",bT="[object Set]",ET="[object WeakMap]",DT="[object DataView]",V8=_s(Am),K8=_s(Ac),Y8=_s(xm),X8=_s(qo),J8=_s(pm),Yn=Li;(Am&&Yn(new Am(new ArrayBuffer(1)))!=DT||Ac&&Yn(new Ac)!=vT||xm&&Yn(xm.resolve())!=wT||qo&&Yn(new qo)!=bT||pm&&Yn(new pm)!=ET)&&(Yn=function(t){var e=Li(t),n=e==H8?t.constructor:void 0,r=n?_s(n):"";if(r)switch(r){case V8:return DT;case K8:return vT;case Y8:return wT;case X8:return bT;case J8:return ET}return e});var Z8=Object.prototype,Q8=Z8.hasOwnProperty;function ez(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&Q8.call(t,"index")&&(n.index=t.index,n.input=t.input),n}var tf=Ir.Uint8Array;function tz(t){var e=new t.constructor(t.byteLength);return new tf(e).set(new tf(t)),e}function nz(t,e){var n=t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}var rz=/\w*$/;function iz(t){var e=new t.constructor(t.source,rz.exec(t));return e.lastIndex=t.lastIndex,e}var TT=Gn?Gn.prototype:void 0,RT=TT?TT.valueOf:void 0;function sz(t){return RT?Object(RT.call(t)):{}}function oz(t,e){var n=t.buffer;return new t.constructor(n,t.byteOffset,t.length)}var az="[object Boolean]",cz="[object Date]",uz="[object Map]",lz="[object Number]",dz="[object RegExp]",fz="[object Set]",hz="[object String]",pz="[object Symbol]",gz="[object ArrayBuffer]",mz="[object DataView]",yz="[object Float32Array]",vz="[object Float64Array]",wz="[object Int8Array]",bz="[object Int16Array]",Ez="[object Int32Array]",Dz="[object Uint8Array]",Tz="[object Uint8ClampedArray]",Rz="[object Uint16Array]",Sz="[object Uint32Array]";function kz(t,e,n){var r=t.constructor;switch(e){case gz:return tz(t);case az:case cz:return new r(+t);case mz:return nz(t);case yz:case vz:case wz:case bz:case Ez:case Dz:case Tz:case Rz:case Sz:return oz(t);case uz:return new r;case lz:case hz:return new r(t);case dz:return iz(t);case fz:return new r;case pz:return sz(t)}}function $z(t){return typeof t.constructor=="function"&&!kc(t)?LM(uT(t)):{}}var Cz="[object Map]";function _z(t){return ur(t)&&Yn(t)==Cz}var ST=Mi&&Mi.isMap,Az=ST?Jd(ST):_z,xz="[object Set]";function Iz(t){return ur(t)&&Yn(t)==xz}var kT=Mi&&Mi.isSet,Pz=kT?Jd(kT):Iz,$T="[object Arguments]",Nz="[object Array]",Oz="[object Boolean]",Fz="[object Date]",Lz="[object Error]",CT="[object Function]",Mz="[object GeneratorFunction]",zz="[object Map]",Bz="[object Number]",_T="[object Object]",qz="[object RegExp]",jz="[object Set]",Uz="[object String]",Wz="[object Symbol]",Gz="[object WeakMap]",Hz="[object ArrayBuffer]",Vz="[object DataView]",Kz="[object Float32Array]",Yz="[object Float64Array]",Xz="[object Int8Array]",Jz="[object Int16Array]",Zz="[object Int32Array]",Qz="[object Uint8Array]",eB="[object Uint8ClampedArray]",tB="[object Uint16Array]",nB="[object Uint32Array]",et={};et[$T]=et[Nz]=et[Hz]=et[Vz]=et[Oz]=et[Fz]=et[Kz]=et[Yz]=et[Xz]=et[Jz]=et[Zz]=et[zz]=et[Bz]=et[_T]=et[qz]=et[jz]=et[Uz]=et[Wz]=et[Qz]=et[eB]=et[tB]=et[nB]=!0,et[Lz]=et[CT]=et[Gz]=!1;function nf(t,e,n,r,i,s){var o;if(o!==void 0)return o;if(!Hn(t))return t;var a=Be(t);if(a)return o=ez(t),zM(t,o);var c=Yn(t),u=c==CT||c==Mz;if($c(t))return z8(t);if(c==_T||c==$T||u&&!i)return o=u?{}:$z(t),j8(t,L8(o,t));if(!et[c])return i?t:{};o=kz(t,c),s||(s=new Nr);var l=s.get(t);if(l)return l;s.set(t,o),Pz(t)?t.forEach(function(h){o.add(nf(h,e,n,h,t,s))}):Az(t)&&t.forEach(function(h,p){o.set(p,nf(h,e,n,p,t,s))});var d=_m,f=a?void 0:d(t);return HD(f||t,function(h,p){f&&(p=h,h=t[p]),Yd(o,p,nf(h,e,n,p,t,s))}),o}var rB=4;function qt(t){return nf(t,rB)}function Ic(t){for(var e=-1,n=t==null?0:t.length,r=0,i=[];++e<n;){var s=t[e];s&&(i[r++]=s)}return i}var iB="__lodash_hash_undefined__";function sB(t){return this.__data__.set(t,iB),this}function oB(t){return this.__data__.has(t)}function jo(t){var e=-1,n=t==null?0:t.length;for(this.__data__=new di;++e<n;)this.add(t[e])}jo.prototype.add=jo.prototype.push=sB,jo.prototype.has=oB;function AT(t,e){for(var n=-1,r=t==null?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function Im(t,e){return t.has(e)}var aB=1,cB=2;function xT(t,e,n,r,i,s){var o=n&aB,a=t.length,c=e.length;if(a!=c&&!(o&&c>a))return!1;var u=s.get(t),l=s.get(e);if(u&&l)return u==e&&l==t;var d=-1,f=!0,h=n&cB?new jo:void 0;for(s.set(t,e),s.set(e,t);++d<a;){var p=t[d],g=e[d];if(r)var v=o?r(g,p,d,e,t,s):r(p,g,d,t,e,s);if(v!==void 0){if(v)continue;f=!1;break}if(h){if(!AT(e,function(m,w){if(!Im(h,w)&&(p===m||i(p,m,n,r,s)))return h.push(w)})){f=!1;break}}else if(!(p===g||i(p,g,n,r,s))){f=!1;break}}return s.delete(t),s.delete(e),f}function uB(t){var e=-1,n=Array(t.size);return t.forEach(function(r,i){n[++e]=[i,r]}),n}function Pm(t){var e=-1,n=Array(t.size);return t.forEach(function(r){n[++e]=r}),n}var lB=1,dB=2,fB="[object Boolean]",hB="[object Date]",pB="[object Error]",gB="[object Map]",mB="[object Number]",yB="[object RegExp]",vB="[object Set]",wB="[object String]",bB="[object Symbol]",EB="[object ArrayBuffer]",DB="[object DataView]",IT=Gn?Gn.prototype:void 0,Nm=IT?IT.valueOf:void 0;function TB(t,e,n,r,i,s,o){switch(n){case DB:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case EB:return!(t.byteLength!=e.byteLength||!s(new tf(t),new tf(e)));case fB:case hB:case mB:return Sc(+t,+e);case pB:return t.name==e.name&&t.message==e.message;case yB:case wB:return t==e+"";case gB:var a=uB;case vB:var c=r&lB;if(a||(a=Pm),t.size!=e.size&&!c)return!1;var u=o.get(t);if(u)return u==e;r|=dB,o.set(t,e);var l=xT(a(t),a(e),r,i,s,o);return o.delete(t),l;case bB:if(Nm)return Nm.call(t)==Nm.call(e)}return!1}var RB=1,SB=Object.prototype,kB=SB.hasOwnProperty;function $B(t,e,n,r,i,s){var o=n&RB,a=_m(t),c=a.length,u=_m(e),l=u.length;if(c!=l&&!o)return!1;for(var d=c;d--;){var f=a[d];if(!(o?f in e:kB.call(e,f)))return!1}var h=s.get(t),p=s.get(e);if(h&&p)return h==e&&p==t;var g=!0;s.set(t,e),s.set(e,t);for(var v=o;++d<c;){f=a[d];var m=t[f],w=e[f];if(r)var E=o?r(w,m,f,e,t,s):r(m,w,f,t,e,s);if(!(E===void 0?m===w||i(m,w,n,r,s):E)){g=!1;break}v||(v=f=="constructor")}if(g&&!v){var k=t.constructor,A=e.constructor;k!=A&&"constructor"in t&&"constructor"in e&&!(typeof k=="function"&&k instanceof k&&typeof A=="function"&&A instanceof A)&&(g=!1)}return s.delete(t),s.delete(e),g}var CB=1,PT="[object Arguments]",NT="[object Array]",rf="[object Object]",_B=Object.prototype,OT=_B.hasOwnProperty;function AB(t,e,n,r,i,s){var o=Be(t),a=Be(e),c=o?NT:Yn(t),u=a?NT:Yn(e);c=c==PT?rf:c,u=u==PT?rf:u;var l=c==rf,d=u==rf,f=c==u;if(f&&$c(t)){if(!$c(e))return!1;o=!0,l=!1}if(f&&!l)return s||(s=new Nr),o||Em(t)?xT(t,e,n,r,i,s):TB(t,e,c,n,r,i,s);if(!(n&CB)){var h=l&&OT.call(t,"__wrapped__"),p=d&&OT.call(e,"__wrapped__");if(h||p){var g=h?t.value():t,v=p?e.value():e;return s||(s=new Nr),i(g,v,n,r,s)}}return f?(s||(s=new Nr),$B(t,e,n,r,i,s)):!1}function Om(t,e,n,r,i){return t===e?!0:t==null||e==null||!ur(t)&&!ur(e)?t!==t&&e!==e:AB(t,e,n,r,Om,i)}var xB=1,IB=2;function PB(t,e,n,r){var i=n.length,s=i;if(t==null)return!s;for(t=Object(t);i--;){var o=n[i];if(o[2]?o[1]!==t[o[0]]:!(o[0]in t))return!1}for(;++i<s;){o=n[i];var a=o[0],c=t[a],u=o[1];if(o[2]){if(c===void 0&&!(a in t))return!1}else{var l=new Nr,d;if(!(d===void 0?Om(u,c,xB|IB,r,l):d))return!1}}return!0}function FT(t){return t===t&&!Hn(t)}function NB(t){for(var e=Vn(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,FT(i)]}return e}function LT(t,e){return function(n){return n==null?!1:n[t]===e&&(e!==void 0||t in Object(n))}}function OB(t){var e=NB(t);return e.length==1&&e[0][2]?LT(e[0][0],e[0][1]):function(n){return n===t||PB(n,t,e)}}function FB(t,e){return t!=null&&e in Object(t)}function MT(t,e,n){e=ef(e,t);for(var r=-1,i=e.length,s=!1;++r<i;){var o=xc(e[r]);if(!(s=t!=null&&n(t,o)))break;t=t[o]}return s||++r!=i?s:(i=t==null?0:t.length,!!i&&wm(i)&&Kd(o,i)&&(Be(t)||Xd(t)))}function LB(t,e){return t!=null&&MT(t,e,FB)}var MB=1,zB=2;function BB(t,e){return Dm(t)&&FT(e)?LT(xc(t),e):function(n){var r=C8(n,t);return r===void 0&&r===e?LB(n,t):Om(e,r,MB|zB)}}function qB(t){return function(e){return e?.[t]}}function jB(t){return function(e){return Rm(e,t)}}function UB(t){return Dm(t)?qB(xc(t)):jB(t)}function lr(t){return typeof t=="function"?t:t==null?Cs:typeof t=="object"?Be(t)?BB(t[0],t[1]):OB(t):UB(t)}function WB(t,e,n,r){for(var i=-1,s=t==null?0:t.length;++i<s;){var o=t[i];e(r,o,n(o),t)}return r}function GB(t){return function(e,n,r){for(var i=-1,s=Object(e),o=r(e),a=o.length;a--;){var c=o[++i];if(n(s[c],c,s)===!1)break}return e}}var HB=GB();function VB(t,e){return t&&HB(t,e,Vn)}function KB(t,e){return function(n,r){if(n==null)return n;if(!Pr(n))return t(n,r);for(var i=n.length,s=-1,o=Object(n);++s<i&&r(o[s],s,o)!==!1;);return n}}var Is=KB(VB);function YB(t,e,n,r){return Is(t,function(i,s,o){e(r,i,n(i),o)}),r}function XB(t,e){return function(n,r){var i=Be(n)?WB:YB,s=e?e():{};return i(n,t,lr(r),s)}}var zT=Object.prototype,JB=zT.hasOwnProperty,Fm=vm(function(t,e){t=Object(t);var n=-1,r=e.length,i=r>2?e[2]:void 0;for(i&&XD(e[0],e[1],i)&&(r=1);++n<r;)for(var s=e[n],o=aT(s),a=-1,c=o.length;++a<c;){var u=o[a],l=t[u];(l===void 0||Sc(l,zT[u])&&!JB.call(t,u))&&(t[u]=s[u])}return t});function BT(t){return ur(t)&&Pr(t)}var ZB=200;function QB(t,e,n,r){var i=-1,s=KD,o=!0,a=t.length,c=[],u=e.length;if(!a)return c;e.length>=ZB&&(s=Im,o=!1,e=new jo(e));e:for(;++i<a;){var l=t[i],d=l;if(l=l!==0?l:0,o&&d===d){for(var f=u;f--;)if(e[f]===d)continue e;c.push(l)}else s(e,d,r)||c.push(l)}return c}var sf=vm(function(t,e){return BT(t)?QB(t,km(e,1,BT,!0)):[]});function Uo(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}function jt(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:Hd(e),lT(t,e<0?0:e,r)):[]}function Pc(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:Hd(e),e=r-e,lT(t,0,e<0?0:e)):[]}function e4(t){return typeof t=="function"?t:Cs}function ve(t,e){var n=Be(t)?HD:Is;return n(t,e4(e))}function t4(t,e){for(var n=-1,r=t==null?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function n4(t,e){var n=!0;return Is(t,function(r,i,s){return n=!!e(r,i,s),n}),n}function dr(t,e,n){var r=Be(t)?t4:n4;return r(t,lr(e))}function qT(t,e){var n=[];return Is(t,function(r,i,s){e(r,i,s)&&n.push(r)}),n}function xn(t,e){var n=Be(t)?$m:qT;return n(t,lr(e))}function r4(t){return function(e,n,r){var i=Object(e);if(!Pr(e)){var s=lr(n);e=Vn(e),n=function(a){return s(i[a],a,i)}}var o=t(e,n,r);return o>-1?i[s?e[o]:o]:void 0}}var i4=Math.max;function s4(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var i=n==null?0:Hd(n);return i<0&&(i=i4(r+i,0)),VD(t,lr(e),i)}var Wo=r4(s4);function fr(t){return t&&t.length?t[0]:void 0}function o4(t,e){var n=-1,r=Pr(t)?Array(t.length):[];return Is(t,function(i,s,o){r[++n]=e(i,s,o)}),r}function de(t,e){var n=Be(t)?Gd:o4;return n(t,lr(e))}function In(t,e){return km(de(t,e))}var a4=Object.prototype,c4=a4.hasOwnProperty,u4=XB(function(t,e,n){c4.call(t,n)?t[n].push(e):mm(t,n,[e])}),l4=Object.prototype,d4=l4.hasOwnProperty;function f4(t,e){return t!=null&&d4.call(t,e)}function be(t,e){return t!=null&&MT(t,e,f4)}var h4="[object String]";function wn(t){return typeof t=="string"||!Be(t)&&ur(t)&&Li(t)==h4}function p4(t,e){return Gd(e,function(n){return t[n]})}function Nt(t){return t==null?[]:p4(t,Vn(t))}var g4=Math.max;function sn(t,e,n,r){t=Pr(t)?t:Nt(t),n=n&&!r?Hd(n):0;var i=t.length;return n<0&&(n=g4(i+n,0)),wn(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&gm(t,e,n)>-1}function jT(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var i=0;return gm(t,e,i)}var m4="[object Map]",y4="[object Set]",v4=Object.prototype,w4=v4.hasOwnProperty;function Ze(t){if(t==null)return!0;if(Pr(t)&&(Be(t)||typeof t=="string"||typeof t.splice=="function"||$c(t)||Em(t)||Xd(t)))return!t.length;var e=Yn(t);if(e==m4||e==y4)return!t.size;if(kc(t))return!oT(t).length;for(var n in t)if(w4.call(t,n))return!1;return!0}var b4="[object RegExp]";function E4(t){return ur(t)&&Li(t)==b4}var UT=Mi&&Mi.isRegExp,fi=UT?Jd(UT):E4;function hi(t){return t===void 0}function D4(t,e){return t<e}function T4(t,e,n){for(var r=-1,i=t.length;++r<i;){var s=t[r],o=e(s);if(o!=null&&(a===void 0?o===o&&!Rc(o):n(o,a)))var a=o,c=s}return c}function R4(t){return t&&t.length?T4(t,Cs,D4):void 0}var S4="Expected a function";function k4(t){if(typeof t!="function")throw new TypeError(S4);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)}}function $4(t,e,n,r){if(!Hn(t))return t;e=ef(e,t);for(var i=-1,s=e.length,o=s-1,a=t;a!=null&&++i<s;){var c=xc(e[i]),u=n;if(c==="__proto__"||c==="constructor"||c==="prototype")return t;if(i!=o){var l=a[c];u=void 0,u===void 0&&(u=Hn(l)?l:Kd(e[i+1])?[]:{})}Yd(a,c,u),a=a[c]}return t}function C4(t,e,n){for(var r=-1,i=e.length,s={};++r<i;){var o=e[r],a=Rm(t,o);n(a,o)&&$4(s,ef(o,t),a)}return s}function hr(t,e){if(t==null)return{};var n=Gd(G8(t),function(r){return[r]});return e=lr(e),C4(t,n,function(r,i){return e(r,i[0])})}function _4(t,e,n,r,i){return i(t,function(s,o,a){n=r?(r=!1,s):e(n,s,o,a)}),n}function on(t,e,n){var r=Be(t)?A8:_4,i=arguments.length<3;return r(t,lr(e),n,i,Is)}function of(t,e){var n=Be(t)?$m:qT;return n(t,k4(lr(e)))}function A4(t,e){var n;return Is(t,function(r,i,s){return n=e(r,i,s),!n}),!!n}function WT(t,e,n){var r=Be(t)?AT:A4;return r(t,lr(e))}var x4=1/0,I4=qo&&1/Pm(new qo([,-0]))[1]==x4?function(t){return new qo(t)}:Pt,P4=200;function GT(t,e,n){var r=-1,i=KD,s=t.length,o=!0,a=[],c=a;if(s>=P4){var u=e?null:I4(t);if(u)return Pm(u);o=!1,i=Im,c=new jo}else c=e?[]:a;e:for(;++r<s;){var l=t[r],d=e?e(l):l;if(l=l!==0?l:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue e;e&&c.push(d),a.push(l)}else i(c,d,n)||(c!==a&&c.push(d),a.push(l))}return a}function Lm(t){return t&&t.length?GT(t):[]}function N4(t,e){return t&&t.length?GT(t,lr(e)):[]}function Mm(t){console&&console.error&&console.error(`Error: ${t}`)}function HT(t){console&&console.warn&&console.warn(`Warning: ${t}`)}function VT(t){const e=new Date().getTime(),n=t();return{time:new Date().getTime()-e,value:n}}function KT(t){function e(){}e.prototype=t;const n=new e;function r(){return typeof n.bar}return r(),r(),t}function O4(t){return F4(t)?t.LABEL:t.name}function F4(t){return wn(t.LABEL)&&t.LABEL!==""}class Or{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),ve(this.definition,n=>{n.accept(e)})}}class an extends Or{constructor(e){super([]),this.idx=1,An(this,hr(e,n=>n!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class Go extends Or{constructor(e){super(e.definition),this.orgText="",An(this,hr(e,n=>n!==void 0))}}class bn extends Or{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,An(this,hr(e,n=>n!==void 0))}}class Ut extends Or{constructor(e){super(e.definition),this.idx=1,An(this,hr(e,n=>n!==void 0))}}class Pn extends Or{constructor(e){super(e.definition),this.idx=1,An(this,hr(e,n=>n!==void 0))}}class Nn extends Or{constructor(e){super(e.definition),this.idx=1,An(this,hr(e,n=>n!==void 0))}}class vt extends Or{constructor(e){super(e.definition),this.idx=1,An(this,hr(e,n=>n!==void 0))}}class En extends Or{constructor(e){super(e.definition),this.idx=1,An(this,hr(e,n=>n!==void 0))}}class Dn extends Or{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,An(this,hr(e,n=>n!==void 0))}}class ot{constructor(e){this.idx=1,An(this,hr(e,n=>n!==void 0))}accept(e){e.visit(this)}}function L4(t){return de(t,af)}function af(t){function e(n){return de(n,af)}if(t instanceof an){const n={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return wn(t.label)&&(n.label=t.label),n}else{if(t instanceof bn)return{type:"Alternative",definition:e(t.definition)};if(t instanceof Ut)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof Pn)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof Nn)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:af(new ot({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof En)return{type:"RepetitionWithSeparator",idx:t.idx,separator:af(new ot({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof vt)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof Dn)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof ot){const n={type:"Terminal",name:t.terminalType.name,label:O4(t.terminalType),idx:t.idx};wn(t.label)&&(n.terminalLabel=t.label);const r=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(n.pattern=fi(r)?r.source:r),n}else{if(t instanceof Go)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}class Ho{visit(e){const n=e;switch(n.constructor){case an:return this.visitNonTerminal(n);case bn:return this.visitAlternative(n);case Ut:return this.visitOption(n);case Pn:return this.visitRepetitionMandatory(n);case Nn:return this.visitRepetitionMandatoryWithSeparator(n);case En:return this.visitRepetitionWithSeparator(n);case vt:return this.visitRepetition(n);case Dn:return this.visitAlternation(n);case ot:return this.visitTerminal(n);case Go:return this.visitRule(n);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 M4(t){return t instanceof bn||t instanceof Ut||t instanceof vt||t instanceof Pn||t instanceof Nn||t instanceof En||t instanceof ot||t instanceof Go}function cf(t,e=[]){return t instanceof Ut||t instanceof vt||t instanceof En?!0:t instanceof Dn?WT(t.definition,r=>cf(r,e)):t instanceof an&&sn(e,t)?!1:t instanceof Or?(t instanceof an&&e.push(t),dr(t.definition,r=>cf(r,e))):!1}function z4(t){return t instanceof Dn}function Fr(t){if(t instanceof an)return"SUBRULE";if(t instanceof Ut)return"OPTION";if(t instanceof Dn)return"OR";if(t instanceof Pn)return"AT_LEAST_ONE";if(t instanceof Nn)return"AT_LEAST_ONE_SEP";if(t instanceof En)return"MANY_SEP";if(t instanceof vt)return"MANY";if(t instanceof ot)return"CONSUME";throw Error("non exhaustive match")}class uf{walk(e,n=[]){ve(e.definition,(r,i)=>{const s=jt(e.definition,i+1);if(r instanceof an)this.walkProdRef(r,s,n);else if(r instanceof ot)this.walkTerminal(r,s,n);else if(r instanceof bn)this.walkFlat(r,s,n);else if(r instanceof Ut)this.walkOption(r,s,n);else if(r instanceof Pn)this.walkAtLeastOne(r,s,n);else if(r instanceof Nn)this.walkAtLeastOneSep(r,s,n);else if(r instanceof En)this.walkManySep(r,s,n);else if(r instanceof vt)this.walkMany(r,s,n);else if(r instanceof Dn)this.walkOr(r,s,n);else throw Error("non exhaustive match")})}walkTerminal(e,n,r){}walkProdRef(e,n,r){}walkFlat(e,n,r){const i=n.concat(r);this.walk(e,i)}walkOption(e,n,r){const i=n.concat(r);this.walk(e,i)}walkAtLeastOne(e,n,r){const i=[new Ut({definition:e.definition})].concat(n,r);this.walk(e,i)}walkAtLeastOneSep(e,n,r){const i=YT(e,n,r);this.walk(e,i)}walkMany(e,n,r){const i=[new Ut({definition:e.definition})].concat(n,r);this.walk(e,i)}walkManySep(e,n,r){const i=YT(e,n,r);this.walk(e,i)}walkOr(e,n,r){const i=n.concat(r);ve(e.definition,s=>{const o=new bn({definition:[s]});this.walk(o,i)})}}function YT(t,e,n){return[new Ut({definition:[new ot({terminalType:t.separator})].concat(t.definition)})].concat(e,n)}function Nc(t){if(t instanceof an)return Nc(t.referencedRule);if(t instanceof ot)return j4(t);if(M4(t))return B4(t);if(z4(t))return q4(t);throw Error("non exhaustive match")}function B4(t){let e=[];const n=t.definition;let r=0,i=n.length>r,s,o=!0;for(;i&&o;)s=n[r],o=cf(s),e=e.concat(Nc(s)),r=r+1,i=n.length>r;return Lm(e)}function q4(t){const e=de(t.definition,n=>Nc(n));return Lm(Kn(e))}function j4(t){return[t.terminalType]}const XT="_~IN~_";class U4 extends uf{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,n,r){}walkProdRef(e,n,r){const i=G4(e.referencedRule,e.idx)+this.topProd.name,s=n.concat(r),o=new bn({definition:s}),a=Nc(o);this.follows[i]=a}}function W4(t){const e={};return ve(t,n=>{const r=new U4(n).startWalking();An(e,r)}),e}function G4(t,e){return t.name+e+XT}let lf={};const H4=new RD;function df(t){const e=t.toString();if(lf.hasOwnProperty(e))return lf[e];{const n=H4.pattern(e);return lf[e]=n,n}}function V4(){lf={}}const JT="Complement Sets are not supported for first char optimization",ff=`Unable to use "first char" lexer optimizations:
13
+ `;function K4(t,e=!1){try{const n=df(t);return zm(n.value,{},n.flags.ignoreCase)}catch(n){if(n.message===JT)e&&HT(`${ff} Unable to optimize: < ${t.toString()} >
14
+ Complement Sets cannot be automatically optimized.
15
+ This will disable the lexer's first char optimizations.
16
+ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";e&&(r=`
17
+ This will disable the lexer's first char optimizations.
18
+ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Mm(`${ff}
19
+ Failed parsing: < ${t.toString()} >
20
+ Using the @chevrotain/regexp-to-ast library
21
+ Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function zm(t,e,n){switch(t.type){case"Disjunction":for(let i=0;i<t.value.length;i++)zm(t.value[i],e,n);break;case"Alternative":const r=t.value;for(let i=0;i<r.length;i++){const s=r[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const o=s;switch(o.type){case"Character":hf(o.value,e,n);break;case"Set":if(o.complement===!0)throw Error(JT);ve(o.value,c=>{if(typeof c=="number")hf(c,e,n);else{const u=c;if(n===!0)for(let l=u.from;l<=u.to;l++)hf(l,e,n);else{for(let l=u.from;l<=u.to&&l<Fc;l++)hf(l,e,n);if(u.to>=Fc){const l=u.from>=Fc?u.from:Fc,d=u.to,f=zi(l),h=zi(d);for(let p=f;p<=h;p++)e[p]=p}}}});break;case"Group":zm(o.value,e,n);break;default:throw Error("Non Exhaustive Match")}const a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Bm(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return Nt(e)}function hf(t,e,n){const r=zi(t);e[r]=r,n===!0&&Y4(t,e)}function Y4(t,e){const n=String.fromCharCode(t),r=n.toUpperCase();if(r!==n){const i=zi(r.charCodeAt(0));e[i]=i}else{const i=n.toLowerCase();if(i!==n){const s=zi(i.charCodeAt(0));e[s]=s}}}function ZT(t,e){return Wo(t.value,n=>{if(typeof n=="number")return sn(e,n);{const r=n;return Wo(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function Bm(t){const e=t.quantifier;return e&&e.atLeast===0?!0:t.value?Be(t.value)?dr(t.value,Bm):Bm(t.value):!1}class X4 extends Bd{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){sn(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?ZT(e,this.targetCharCodes)===void 0&&(this.found=!0):ZT(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function qm(t,e){if(e instanceof RegExp){const n=df(e),r=new X4(t);return r.visit(n),r.found}else return Wo(e,n=>sn(t,n.charCodeAt(0)))!==void 0}const Ps="PATTERN",Oc="defaultMode",pf="modes";let QT=typeof new RegExp("(?:)").sticky=="boolean";function J4(t,e){e=Fm(e,{useSticky:QT,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
22
+ `],tracer:(w,E)=>E()});const n=e.tracer;n("initCharCodeToOptimizedIndexMap",()=>{b6()});let r;n("Reject Lexer.NA",()=>{r=of(t,w=>w[Ps]===Tn.NA)});let i=!1,s;n("Transform Patterns",()=>{i=!1,s=de(r,w=>{const E=w[Ps];if(fi(E)){const k=E.source;return k.length===1&&k!=="^"&&k!=="$"&&k!=="."&&!E.ignoreCase?k:k.length===2&&k[0]==="\\"&&!sn(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],k[1])?k[1]:e.useSticky?tR(E):eR(E)}else{if(ci(E))return i=!0,{exec:E};if(typeof E=="object")return i=!0,E;if(typeof E=="string"){if(E.length===1)return E;{const k=E.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),A=new RegExp(k);return e.useSticky?tR(A):eR(A)}}else throw Error("non exhaustive match")}})});let o,a,c,u,l;n("misc mapping",()=>{o=de(r,w=>w.tokenTypeIdx),a=de(r,w=>{const E=w.GROUP;if(E!==Tn.SKIPPED){if(wn(E))return E;if(hi(E))return!1;throw Error("non exhaustive match")}}),c=de(r,w=>{const E=w.LONGER_ALT;if(E)return Be(E)?de(E,A=>jT(r,A)):[jT(r,E)]}),u=de(r,w=>w.PUSH_MODE),l=de(r,w=>be(w,"POP_MODE"))});let d;n("Line Terminator Handling",()=>{const w=iR(e.lineTerminatorCharacters);d=de(r,E=>!1),e.positionTracking!=="onlyOffset"&&(d=de(r,E=>be(E,"LINE_BREAKS")?!!E.LINE_BREAKS:rR(E,w)===!1&&qm(w,E.PATTERN)))});let f,h,p,g;n("Misc Mapping #2",()=>{f=de(r,nR),h=de(s,y6),p=on(r,(w,E)=>{const k=E.GROUP;return wn(k)&&k!==Tn.SKIPPED&&(w[k]=[]),w},{}),g=de(s,(w,E)=>({pattern:s[E],longerAlt:c[E],canLineTerminator:d[E],isCustom:f[E],short:h[E],group:a[E],push:u[E],pop:l[E],tokenTypeIdx:o[E],tokenType:r[E]}))});let v=!0,m=[];return e.safeMode||n("First Char Optimization",()=>{m=on(r,(w,E,k)=>{if(typeof E.PATTERN=="string"){const A=E.PATTERN.charCodeAt(0),I=zi(A);jm(w,I,g[k])}else if(Be(E.START_CHARS_HINT)){let A;ve(E.START_CHARS_HINT,I=>{const x=typeof I=="string"?I.charCodeAt(0):I,_=zi(x);A!==_&&(A=_,jm(w,_,g[k]))})}else if(fi(E.PATTERN))if(E.PATTERN.unicode)v=!1,e.ensureOptimizations&&Mm(`${ff} Unable to analyze < ${E.PATTERN.toString()} > pattern.
23
+ The regexp unicode flag is not currently supported by the regexp-to-ast library.
24
+ This will disable the lexer's first char optimizations.
25
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const A=K4(E.PATTERN,e.ensureOptimizations);Ze(A)&&(v=!1),ve(A,I=>{jm(w,I,g[k])})}else e.ensureOptimizations&&Mm(`${ff} TokenType: <${E.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
26
+ This will disable the lexer's first char optimizations.
27
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return w},[])}),{emptyGroups:p,patternIdxToConfig:g,charCodeToPatternIdxToConfig:m,hasCustom:i,canBeOptimized:v}}function Z4(t,e){let n=[];const r=e6(t);n=n.concat(r.errors);const i=t6(r.valid),s=i.valid;return n=n.concat(i.errors),n=n.concat(Q4(s)),n=n.concat(u6(s)),n=n.concat(l6(s,e)),n=n.concat(d6(s)),n}function Q4(t){let e=[];const n=xn(t,r=>fi(r[Ps]));return e=e.concat(r6(n)),e=e.concat(o6(n)),e=e.concat(a6(n)),e=e.concat(c6(n)),e=e.concat(i6(n)),e}function e6(t){const e=xn(t,i=>!be(i,Ps)),n=de(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:wt.MISSING_PATTERN,tokenTypes:[i]})),r=sf(t,e);return{errors:n,valid:r}}function t6(t){const e=xn(t,i=>{const s=i[Ps];return!fi(s)&&!ci(s)&&!be(s,"exec")&&!wn(s)}),n=de(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:wt.INVALID_PATTERN,tokenTypes:[i]})),r=sf(t,e);return{errors:n,valid:r}}const n6=/[^\\][$]/;function r6(t){class e extends Bd{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const n=xn(t,i=>{const s=i.PATTERN;try{const o=df(s),a=new e;return a.visit(o),a.found}catch{return n6.test(s.source)}});return de(n,i=>({message:`Unexpected RegExp Anchor Error:
28
+ Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
29
+ See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:wt.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function i6(t){const e=xn(t,r=>r.PATTERN.test(""));return de(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:wt.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const s6=/[^\\[][\^]|^\^/;function o6(t){class e extends Bd{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const n=xn(t,i=>{const s=i.PATTERN;try{const o=df(s),a=new e;return a.visit(o),a.found}catch{return s6.test(s.source)}});return de(n,i=>({message:`Unexpected RegExp Anchor Error:
30
+ Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
31
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:wt.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function a6(t){const e=xn(t,r=>{const i=r[Ps];return i instanceof RegExp&&(i.multiline||i.global)});return de(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:wt.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function c6(t){const e=[];let n=de(t,s=>on(t,(o,a)=>(s.PATTERN.source===a.PATTERN.source&&!sn(e,a)&&a.PATTERN!==Tn.NA&&(e.push(a),o.push(a)),o),[]));n=Ic(n);const r=xn(n,s=>s.length>1);return de(r,s=>{const o=de(s,c=>c.name);return{message:`The same RegExp pattern ->${fr(s).PATTERN}<-has been used in all of the following Token Types: ${o.join(", ")} <-`,type:wt.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function u6(t){const e=xn(t,r=>{if(!be(r,"GROUP"))return!1;const i=r.GROUP;return i!==Tn.SKIPPED&&i!==Tn.NA&&!wn(i)});return de(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:wt.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function l6(t,e){const n=xn(t,i=>i.PUSH_MODE!==void 0&&!sn(e,i.PUSH_MODE));return de(n,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:wt.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function d6(t){const e=[],n=on(t,(r,i,s)=>{const o=i.PATTERN;return o===Tn.NA||(wn(o)?r.push({str:o,idx:s,tokenType:i}):fi(o)&&h6(o)&&r.push({str:o.source,idx:s,tokenType:i})),r},[]);return ve(t,(r,i)=>{ve(n,({str:s,idx:o,tokenType:a})=>{if(i<o&&f6(s,r.PATTERN)){const c=`Token: ->${a.name}<- can never be matched.
32
+ Because it appears AFTER the Token Type ->${r.name}<-in the lexer's definition.
33
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:wt.UNREACHABLE_PATTERN,tokenTypes:[r,a]})}})}),e}function f6(t,e){if(fi(e)){const n=e.exec(t);return n!==null&&n.index===0}else{if(ci(e))return e(t,0,[],{});if(be(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function h6(t){return Wo([".","\\","[","]","|","^","$","(",")","?","*","+","{"],n=>t.source.indexOf(n)!==-1)===void 0}function eR(t){const e=t.ignoreCase?"i":"";return new RegExp(`^(?:${t.source})`,e)}function tR(t){const e=t.ignoreCase?"iy":"y";return new RegExp(`${t.source}`,e)}function p6(t,e,n){const r=[];return be(t,Oc)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Oc+`> property in its definition
34
+ `,type:wt.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),be(t,pf)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+pf+`> property in its definition
35
+ `,type:wt.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),be(t,pf)&&be(t,Oc)&&!be(t.modes,t.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${Oc}: <${t.defaultMode}>which does not exist
36
+ `,type:wt.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),be(t,pf)&&ve(t.modes,(i,s)=>{ve(i,(o,a)=>{if(hi(o))r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${a}>
37
+ `,type:wt.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(be(o,"LONGER_ALT")){const c=Be(o.LONGER_ALT)?o.LONGER_ALT:[o.LONGER_ALT];ve(c,u=>{!hi(u)&&!sn(i,u)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${u.name}> on token <${o.name}> outside of mode <${s}>
38
+ `,type:wt.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function g6(t,e,n){const r=[];let i=!1;const s=Ic(Kn(Nt(t.modes))),o=of(s,c=>c[Ps]===Tn.NA),a=iR(n);return e&&ve(o,c=>{const u=rR(c,a);if(u!==!1){const d={message:w6(c,u),type:u.issue,tokenType:c};r.push(d)}else be(c,"LINE_BREAKS")?c.LINE_BREAKS===!0&&(i=!0):qm(a,c.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
39
+ This Lexer has been defined to track line and column information,
40
+ But none of the Token Types can be identified as matching a line terminator.
41
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
42
+ for details.`,type:wt.NO_LINE_BREAKS_FLAGS}),r}function m6(t){const e={},n=Vn(t);return ve(n,r=>{const i=t[r];if(Be(i))e[r]=[];else throw Error("non exhaustive match")}),e}function nR(t){const e=t.PATTERN;if(fi(e))return!1;if(ci(e))return!0;if(be(e,"exec"))return!0;if(wn(e))return!1;throw Error("non exhaustive match")}function y6(t){return wn(t)&&t.length===1?t.charCodeAt(0):!1}const v6={test:function(t){const e=t.length;for(let n=this.lastIndex;n<e;n++){const r=t.charCodeAt(n);if(r===10)return this.lastIndex=n+1,!0;if(r===13)return t.charCodeAt(n+1)===10?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function rR(t,e){if(be(t,"LINE_BREAKS"))return!1;if(fi(t.PATTERN)){try{qm(e,t.PATTERN)}catch(n){return{issue:wt.IDENTIFY_TERMINATOR,errMsg:n.message}}return!1}else{if(wn(t.PATTERN))return!1;if(nR(t))return{issue:wt.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function w6(t,e){if(e.issue===wt.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
43
+ The problem is in the <${t.name}> Token Type
44
+ Root cause: ${e.errMsg}.
45
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===wt.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
46
+ The problem is in the <${t.name}> Token Type
47
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function iR(t){return de(t,n=>wn(n)?n.charCodeAt(0):n)}function jm(t,e,n){t[e]===void 0?t[e]=[n]:t[e].push(n)}const Fc=256;let gf=[];function zi(t){return t<Fc?t:gf[t]}function b6(){if(Ze(gf)){gf=new Array(65536);for(let t=0;t<65536;t++)gf[t]=t>255?255+~~(t/255):t}}function Lc(t,e){const n=t.tokenTypeIdx;return n===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[n]===!0}function mf(t,e){return t.tokenTypeIdx===e.tokenTypeIdx}let sR=1;const oR={};function Mc(t){const e=E6(t);D6(e),R6(e),T6(e),ve(e,n=>{n.isParent=n.categoryMatches.length>0})}function E6(t){let e=qt(t),n=t,r=!0;for(;r;){n=Ic(Kn(de(n,s=>s.CATEGORIES)));const i=sf(n,e);e=e.concat(i),Ze(i)?r=!1:n=i}return e}function D6(t){ve(t,e=>{cR(e)||(oR[sR]=e,e.tokenTypeIdx=sR++),uR(e)&&!Be(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),uR(e)||(e.CATEGORIES=[]),S6(e)||(e.categoryMatches=[]),k6(e)||(e.categoryMatchesMap={})})}function T6(t){ve(t,e=>{e.categoryMatches=[],ve(e.categoryMatchesMap,(n,r)=>{e.categoryMatches.push(oR[r].tokenTypeIdx)})})}function R6(t){ve(t,e=>{aR([],e)})}function aR(t,e){ve(t,n=>{e.categoryMatchesMap[n.tokenTypeIdx]=!0}),ve(e.CATEGORIES,n=>{const r=t.concat(e);sn(r,n)||aR(r,n)})}function cR(t){return be(t,"tokenTypeIdx")}function uR(t){return be(t,"CATEGORIES")}function S6(t){return be(t,"categoryMatches")}function k6(t){return be(t,"categoryMatchesMap")}function $6(t){return be(t,"tokenTypeIdx")}const C6={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,n,r,i){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${n} characters.`}};var wt;(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"})(wt||(wt={}));const zc={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
48
+ `,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:C6,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(zc);class Tn{constructor(e,n=zc){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,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const o=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${o}--> <${i}>`);const{time:a,value:c}=VT(s),u=a>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&u(`${o}<-- <${i}> time: ${a}ms`),this.traceInitIndent--,c}else return s()},typeof n=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
49
+ a boolean 2nd argument is no longer supported`);this.config=An({},zc,n);const r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===zc.lineTerminatorsPattern)this.config.lineTerminatorsPattern=v6;else if(this.config.lineTerminatorCharacters===zc.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
50
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(n.safeMode&&n.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),Be(e)?i={modes:{defaultMode:qt(e)},defaultMode:Oc}:(s=!1,i=qt(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(p6(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(g6(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},ve(i.modes,(a,c)=>{i.modes[c]=of(a,u=>hi(u))});const o=Vn(i.modes);if(ve(i.modes,(a,c)=>{this.TRACE_INIT(`Mode: <${c}> processing`,()=>{if(this.modes.push(c),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Z4(a,o))}),Ze(this.lexerDefinitionErrors)){Mc(a);let u;this.TRACE_INIT("analyzeTokenTypes",()=>{u=J4(a,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:n.positionTracking,ensureOptimizations:n.ensureOptimizations,safeMode:n.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[c]=u.patternIdxToConfig,this.charCodeToPatternIdxToConfig[c]=u.charCodeToPatternIdxToConfig,this.emptyGroups=An({},this.emptyGroups,u.emptyGroups),this.hasCustom=u.hasCustom||this.hasCustom,this.canModeBeOptimized[c]=u.canBeOptimized}})}),this.defaultMode=i.defaultMode,!Ze(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const c=de(this.lexerDefinitionErrors,u=>u.message).join(`-----------------------
51
+ `);throw new Error(`Errors detected in definition of Lexer:
52
+ `+c)}ve(this.lexerDefinitionWarning,a=>{HT(a.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(QT?(this.chopInput=Cs,this.match=this.matchWithTest):(this.updateLastIndex=Pt,this.match=this.matchWithExec),s&&(this.handleModes=Pt),this.trackStartLines===!1&&(this.computeNewColumn=Cs),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=Pt),/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 <positionTracking> 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",()=>{const a=on(this.canModeBeOptimized,(c,u,l)=>(u===!1&&c.push(l),c),[]);if(n.ensureOptimizations&&!Ze(a))throw Error(`Lexer Modes: < ${a.join(", ")} > cannot be optimized.
53
+ Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
54
+ Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{V4()}),this.TRACE_INIT("toFastProperties",()=>{KT(this)})})}tokenize(e,n=this.defaultMode){if(!Ze(this.lexerDefinitionErrors)){const i=de(this.lexerDefinitionErrors,s=>s.message).join(`-----------------------
55
+ `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
56
+ `+i)}return this.tokenizeInternal(e,n)}tokenizeInternal(e,n){let r,i,s,o,a,c,u,l,d,f,h,p,g,v,m;const w=e,E=w.length;let k=0,A=0;const I=this.hasCustom?0:Math.floor(e.length/10),x=new Array(I),_=[];let P=this.trackStartLines?1:void 0,N=this.trackStartLines?1:void 0;const C=m6(this.emptyGroups),D=this.trackStartLines,R=this.config.lineTerminatorsPattern;let L=0,G=[],V=[];const Z=[],Ne=[];Object.freeze(Ne);let se;function K(){return G}function Te(ne){const fe=zi(ne),Ee=V[fe];return Ee===void 0?Ne:Ee}const at=ne=>{if(Z.length===1&&ne.tokenType.PUSH_MODE===void 0){const fe=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(ne);_.push({offset:ne.startOffset,line:ne.startLine,column:ne.startColumn,length:ne.image.length,message:fe})}else{Z.pop();const fe=Uo(Z);G=this.patternIdxToConfig[fe],V=this.charCodeToPatternIdxToConfig[fe],L=G.length;const Ee=this.canModeBeOptimized[fe]&&this.config.safeMode===!1;V&&Ee?se=Te:se=K}};function H(ne){Z.push(ne),V=this.charCodeToPatternIdxToConfig[ne],G=this.patternIdxToConfig[ne],L=G.length,L=G.length;const fe=this.canModeBeOptimized[ne]&&this.config.safeMode===!1;V&&fe?se=Te:se=K}H.call(this,n);let Y;const Q=this.config.recoveryEnabled;for(;k<E;){c=null;const ne=w.charCodeAt(k),fe=se(ne),Ee=fe.length;for(r=0;r<Ee;r++){Y=fe[r];const me=Y.pattern;u=null;const ae=Y.short;if(ae!==!1?ne===ae&&(c=me):Y.isCustom===!0?(m=me.exec(w,k,x,C),m!==null?(c=m[0],m.payload!==void 0&&(u=m.payload)):c=null):(this.updateLastIndex(me,k),c=this.match(me,e,k)),c!==null){if(a=Y.longerAlt,a!==void 0){const M=a.length;for(s=0;s<M;s++){const U=G[a[s]],oe=U.pattern;if(l=null,U.isCustom===!0?(m=oe.exec(w,k,x,C),m!==null?(o=m[0],m.payload!==void 0&&(l=m.payload)):o=null):(this.updateLastIndex(oe,k),o=this.match(oe,e,k)),o&&o.length>c.length){c=o,u=l,Y=U;break}}}break}}if(c!==null){if(d=c.length,f=Y.group,f!==void 0&&(h=Y.tokenTypeIdx,p=this.createTokenInstance(c,k,h,Y.tokenType,P,N,d),this.handlePayload(p,u),f===!1?A=this.addToken(x,A,p):C[f].push(p)),e=this.chopInput(e,d),k=k+d,N=this.computeNewColumn(N,d),D===!0&&Y.canLineTerminator===!0){let me=0,ae,M;R.lastIndex=0;do ae=R.test(c),ae===!0&&(M=R.lastIndex-1,me++);while(ae===!0);me!==0&&(P=P+me,N=d-M,this.updateTokenEndLineColumnLocation(p,f,M,me,P,N,d))}this.handleModes(Y,at,H,p)}else{const me=k,ae=P,M=N;let U=Q===!1;for(;U===!1&&k<E;)for(e=this.chopInput(e,1),k++,i=0;i<L;i++){const oe=G[i],W=oe.pattern,Oe=oe.short;if(Oe!==!1?w.charCodeAt(k)===Oe&&(U=!0):oe.isCustom===!0?U=W.exec(w,k,x,C)!==null:(this.updateLastIndex(W,k),U=W.exec(e)!==null),U===!0)break}if(g=k-me,N=this.computeNewColumn(N,g),v=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(w,me,g,ae,M),_.push({offset:me,line:ae,column:M,length:g,message:v}),Q===!1)break}}return this.hasCustom||(x.length=A),{tokens:x,groups:C,errors:_}}handleModes(e,n,r,i){if(e.pop===!0){const s=e.push;n(i),s!==void 0&&r.call(this,s)}else e.push!==void 0&&r.call(this,e.push)}chopInput(e,n){return e.substring(n)}updateLastIndex(e,n){e.lastIndex=n}updateTokenEndLineColumnLocation(e,n,r,i,s,o,a){let c,u;n!==void 0&&(c=r===a-1,u=c?-1:0,i===1&&c===!0||(e.endLine=s+u,e.endColumn=o-1+-u))}computeNewColumn(e,n){return e+n}createOffsetOnlyToken(e,n,r,i){return{image:e,startOffset:n,tokenTypeIdx:r,tokenType:i}}createStartOnlyToken(e,n,r,i,s,o){return{image:e,startOffset:n,startLine:s,startColumn:o,tokenTypeIdx:r,tokenType:i}}createFullToken(e,n,r,i,s,o,a){return{image:e,startOffset:n,endOffset:n+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:r,tokenType:i}}addTokenUsingPush(e,n,r){return e.push(r),n}addTokenUsingMemberAccess(e,n,r){return e[n]=r,n++,n}handlePayloadNoCustom(e,n){}handlePayloadWithCustom(e,n){n!==null&&(e.payload=n)}matchWithTest(e,n,r){return e.test(n)===!0?n.substring(r,e.lastIndex):null}matchWithExec(e,n){const r=e.exec(n);return r!==null?r[0]:null}}Tn.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",Tn.NA=/NOT_APPLICABLE/;function Vo(t){return lR(t)?t.LABEL:t.name}function lR(t){return wn(t.LABEL)&&t.LABEL!==""}const _6="parent",dR="categories",fR="label",hR="group",pR="push_mode",gR="pop_mode",mR="longer_alt",yR="line_breaks",vR="start_chars_hint";function wR(t){return A6(t)}function A6(t){const e=t.pattern,n={};if(n.name=t.name,hi(e)||(n.PATTERN=e),be(t,_6))throw`The parent property is no longer supported.
57
+ See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return be(t,dR)&&(n.CATEGORIES=t[dR]),Mc([n]),be(t,fR)&&(n.LABEL=t[fR]),be(t,hR)&&(n.GROUP=t[hR]),be(t,gR)&&(n.POP_MODE=t[gR]),be(t,pR)&&(n.PUSH_MODE=t[pR]),be(t,mR)&&(n.LONGER_ALT=t[mR]),be(t,yR)&&(n.LINE_BREAKS=t[yR]),be(t,vR)&&(n.START_CHARS_HINT=t[vR]),n}const Bi=wR({name:"EOF",pattern:Tn.NA});Mc([Bi]);function Um(t,e,n,r,i,s,o,a){return{image:e,startOffset:n,endOffset:r,startLine:i,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:t.tokenTypeIdx,tokenType:t}}function bR(t,e){return Lc(t,e)}const Ko={buildMismatchTokenMessage({expected:t,actual:e,previous:n,ruleName:r}){return`Expecting ${lR(t)?`--> ${Vo(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:n,customUserDescription:r,ruleName:i}){const s="Expecting: ",a=`
58
+ but found: '`+fr(e).image+"'";if(r)return s+r+a;{const c=on(t,(f,h)=>f.concat(h),[]),u=de(c,f=>`[${de(f,h=>Vo(h)).join(", ")}]`),d=`one of these possible Token sequences:
59
+ ${de(u,(f,h)=>` ${h+1}. ${f}`).join(`
60
+ `)}`;return s+d+a}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:n,ruleName:r}){const i="Expecting: ",o=`
61
+ but found: '`+fr(e).image+"'";if(n)return i+n+o;{const c=`expecting at least one iteration which starts with one of these possible Token sequences::
62
+ <${de(t,u=>`[${de(u,l=>Vo(l)).join(",")}]`).join(" ,")}>`;return i+c+o}}};Object.freeze(Ko);const x6={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
63
+ inside top level rule: ->`+t.name+"<-"}},Ns={buildDuplicateFoundError(t,e){function n(l){return l instanceof ot?l.terminalType.name:l instanceof an?l.nonTerminalName:""}const r=t.name,i=fr(e),s=i.idx,o=Fr(i),a=n(i),c=s>0;let u=`->${o}${c?s:""}<- ${a?`with argument: ->${a}<-`:""}
64
+ appears more than once (${e.length} times) in the top level rule: ->${r}<-.
65
+ For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
66
+ `;return u=u.replace(/[ \t]+/g," "),u=u.replace(/\s\s+/g,`
67
+ `),u},buildNamespaceConflictError(t){return`Namespace conflict found in grammar.
68
+ The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>.
69
+ To resolve this make sure each Terminal and Non-Terminal names are unique
70
+ This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
71
+ and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){const e=de(t.prefixPath,i=>Vo(i)).join(", "),n=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix
72
+ in <OR${n}> inside <${t.topLevelRule.name}> Rule,
73
+ <${e}> may appears as a prefix path in all these alternatives.
74
+ See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
75
+ For Further details.`},buildAlternationAmbiguityError(t){const e=de(t.prefixPath,i=>Vo(i)).join(", "),n=t.alternation.idx===0?"":t.alternation.idx;let r=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in <OR${n}> inside <${t.topLevelRule.name}> Rule,
76
+ <${e}> may appears as a prefix path in all these alternatives.
77
+ `;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
78
+ For Further details.`,r},buildEmptyRepetitionError(t){let e=Fr(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens.
79
+ This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in <OR${t.alternation.idx}> inside <${t.topLevelRule.name}> Rule.
80
+ Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives:
81
+ <OR${t.alternation.idx}> inside <${t.topLevelRule.name}> Rule.
82
+ has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){const e=t.topLevelRule.name,n=de(t.leftRecursionPath,s=>s.name),r=`${e} --> ${n.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar.
83
+ rule: <${e}> can be invoked from itself (directly or indirectly)
84
+ without consuming any Tokens. The grammar path that causes this is:
85
+ ${r}
86
+ To fix this refactor your grammar to remove the left recursion.
87
+ see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof Go?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}};function I6(t,e){const n=new P6(t,e);return n.resolveRefs(),n.errors}class P6 extends Ho{constructor(e,n){super(),this.nameToTopRule=e,this.errMsgProvider=n,this.errors=[]}resolveRefs(){ve(Nt(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const n=this.nameToTopRule[e.nonTerminalName];if(n)e.referencedRule=n;else{const r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:r,type:cn.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class N6 extends uf{constructor(e,n){super(),this.topProd=e,this.path=n,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=qt(this.path.ruleStack).reverse(),this.occurrenceStack=qt(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,n=[]){this.found||super.walk(e,n)}walkProdRef(e,n,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const i=n.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){Ze(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class O6 extends N6{constructor(e,n){super(e,n),this.path=n,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,n,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=n.concat(r),s=new bn({definition:i});this.possibleTokTypes=Nc(s),this.found=!0}}}class yf extends uf{constructor(e,n){super(),this.topRule=e,this.occurrence=n,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class F6 extends yf{walkMany(e,n,r){if(e.idx===this.occurrence){const i=fr(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ot&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,n,r)}}class ER extends yf{walkManySep(e,n,r){if(e.idx===this.occurrence){const i=fr(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ot&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,n,r)}}class L6 extends yf{walkAtLeastOne(e,n,r){if(e.idx===this.occurrence){const i=fr(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ot&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,n,r)}}class DR extends yf{walkAtLeastOneSep(e,n,r){if(e.idx===this.occurrence){const i=fr(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ot&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,n,r)}}function Wm(t,e,n=[]){n=qt(n);let r=[],i=0;function s(a){return a.concat(jt(t,i+1))}function o(a){const c=Wm(s(a),e,n);return r.concat(c)}for(;n.length<e&&i<t.length;){const a=t[i];if(a instanceof bn)return o(a.definition);if(a instanceof an)return o(a.definition);if(a instanceof Ut)r=o(a.definition);else if(a instanceof Pn){const c=a.definition.concat([new vt({definition:a.definition})]);return o(c)}else if(a instanceof Nn){const c=[new bn({definition:a.definition}),new vt({definition:[new ot({terminalType:a.separator})].concat(a.definition)})];return o(c)}else if(a instanceof En){const c=a.definition.concat([new vt({definition:[new ot({terminalType:a.separator})].concat(a.definition)})]);r=o(c)}else if(a instanceof vt){const c=a.definition.concat([new vt({definition:a.definition})]);r=o(c)}else{if(a instanceof Dn)return ve(a.definition,c=>{Ze(c.definition)===!1&&(r=o(c.definition))}),r;if(a instanceof ot)n.push(a.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:n,suffixDef:jt(t,i)}),r}function TR(t,e,n,r){const i="EXIT_NONE_TERMINAL",s=[i],o="EXIT_ALTERNATIVE";let a=!1;const c=e.length,u=c-r-1,l=[],d=[];for(d.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!Ze(d);){const f=d.pop();if(f===o){a&&Uo(d).idx<=u&&d.pop();continue}const h=f.def,p=f.idx,g=f.ruleStack,v=f.occurrenceStack;if(Ze(h))continue;const m=h[0];if(m===i){const w={idx:p,def:jt(h),ruleStack:Pc(g),occurrenceStack:Pc(v)};d.push(w)}else if(m instanceof ot)if(p<c-1){const w=p+1,E=e[w];if(n(E,m.terminalType)){const k={idx:w,def:jt(h),ruleStack:g,occurrenceStack:v};d.push(k)}}else if(p===c-1)l.push({nextTokenType:m.terminalType,nextTokenOccurrence:m.idx,ruleStack:g,occurrenceStack:v}),a=!0;else throw Error("non exhaustive match");else if(m instanceof an){const w=qt(g);w.push(m.nonTerminalName);const E=qt(v);E.push(m.idx);const k={idx:p,def:m.definition.concat(s,jt(h)),ruleStack:w,occurrenceStack:E};d.push(k)}else if(m instanceof Ut){const w={idx:p,def:jt(h),ruleStack:g,occurrenceStack:v};d.push(w),d.push(o);const E={idx:p,def:m.definition.concat(jt(h)),ruleStack:g,occurrenceStack:v};d.push(E)}else if(m instanceof Pn){const w=new vt({definition:m.definition,idx:m.idx}),E=m.definition.concat([w],jt(h)),k={idx:p,def:E,ruleStack:g,occurrenceStack:v};d.push(k)}else if(m instanceof Nn){const w=new ot({terminalType:m.separator}),E=new vt({definition:[w].concat(m.definition),idx:m.idx}),k=m.definition.concat([E],jt(h)),A={idx:p,def:k,ruleStack:g,occurrenceStack:v};d.push(A)}else if(m instanceof En){const w={idx:p,def:jt(h),ruleStack:g,occurrenceStack:v};d.push(w),d.push(o);const E=new ot({terminalType:m.separator}),k=new vt({definition:[E].concat(m.definition),idx:m.idx}),A=m.definition.concat([k],jt(h)),I={idx:p,def:A,ruleStack:g,occurrenceStack:v};d.push(I)}else if(m instanceof vt){const w={idx:p,def:jt(h),ruleStack:g,occurrenceStack:v};d.push(w),d.push(o);const E=new vt({definition:m.definition,idx:m.idx}),k=m.definition.concat([E],jt(h)),A={idx:p,def:k,ruleStack:g,occurrenceStack:v};d.push(A)}else if(m instanceof Dn)for(let w=m.definition.length-1;w>=0;w--){const E=m.definition[w],k={idx:p,def:E.definition.concat(jt(h)),ruleStack:g,occurrenceStack:v};d.push(k),d.push(o)}else if(m instanceof bn)d.push({idx:p,def:m.definition.concat(jt(h)),ruleStack:g,occurrenceStack:v});else if(m instanceof Go)d.push(M6(m,p,g,v));else throw Error("non exhaustive match")}return l}function M6(t,e,n,r){const i=qt(n);i.push(t.name);const s=qt(r);return s.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:s}}var dt;(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"})(dt||(dt={}));function Gm(t){if(t instanceof Ut||t==="Option")return dt.OPTION;if(t instanceof vt||t==="Repetition")return dt.REPETITION;if(t instanceof Pn||t==="RepetitionMandatory")return dt.REPETITION_MANDATORY;if(t instanceof Nn||t==="RepetitionMandatoryWithSeparator")return dt.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof En||t==="RepetitionWithSeparator")return dt.REPETITION_WITH_SEPARATOR;if(t instanceof Dn||t==="Alternation")return dt.ALTERNATION;throw Error("non exhaustive match")}function RR(t){const{occurrence:e,rule:n,prodType:r,maxLookahead:i}=t,s=Gm(r);return s===dt.ALTERNATION?vf(e,n,i):wf(e,n,s,i)}function z6(t,e,n,r,i,s){const o=vf(t,e,n),a=CR(o)?mf:Lc;return s(o,r,a,i)}function B6(t,e,n,r,i,s){const o=wf(t,e,i,n),a=CR(o)?mf:Lc;return s(o[0],a,r)}function q6(t,e,n,r){const i=t.length,s=dr(t,o=>dr(o,a=>a.length===1));if(e)return function(o){const a=de(o,c=>c.GATE);for(let c=0;c<i;c++){const u=t[c],l=u.length,d=a[c];if(!(d!==void 0&&d.call(this)===!1))e:for(let f=0;f<l;f++){const h=u[f],p=h.length;for(let g=0;g<p;g++){const v=this.LA(g+1);if(n(v,h[g])===!1)continue e}return c}}};if(s&&!r){const o=de(t,c=>Kn(c)),a=on(o,(c,u,l)=>(ve(u,d=>{be(c,d.tokenTypeIdx)||(c[d.tokenTypeIdx]=l),ve(d.categoryMatches,f=>{be(c,f)||(c[f]=l)})}),c),{});return function(){const c=this.LA(1);return a[c.tokenTypeIdx]}}else return function(){for(let o=0;o<i;o++){const a=t[o],c=a.length;e:for(let u=0;u<c;u++){const l=a[u],d=l.length;for(let f=0;f<d;f++){const h=this.LA(f+1);if(n(h,l[f])===!1)continue e}return o}}}}function j6(t,e,n){const r=dr(t,s=>s.length===1),i=t.length;if(r&&!n){const s=Kn(t);if(s.length===1&&Ze(s[0].categoryMatches)){const a=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{const o=on(s,(a,c,u)=>(a[c.tokenTypeIdx]=!0,ve(c.categoryMatches,l=>{a[l]=!0}),a),[]);return function(){const a=this.LA(1);return o[a.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const o=t[s],a=o.length;for(let c=0;c<a;c++){const u=this.LA(c+1);if(e(u,o[c])===!1)continue e}return!0}return!1}}class U6 extends uf{constructor(e,n,r){super(),this.topProd=e,this.targetOccurrence=n,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,n,r,i){return e.idx===this.targetOccurrence&&this.targetProdType===n?(this.restDef=r.concat(i),!0):!1}walkOption(e,n,r){this.checkIsTarget(e,dt.OPTION,n,r)||super.walkOption(e,n,r)}walkAtLeastOne(e,n,r){this.checkIsTarget(e,dt.REPETITION_MANDATORY,n,r)||super.walkOption(e,n,r)}walkAtLeastOneSep(e,n,r){this.checkIsTarget(e,dt.REPETITION_MANDATORY_WITH_SEPARATOR,n,r)||super.walkOption(e,n,r)}walkMany(e,n,r){this.checkIsTarget(e,dt.REPETITION,n,r)||super.walkOption(e,n,r)}walkManySep(e,n,r){this.checkIsTarget(e,dt.REPETITION_WITH_SEPARATOR,n,r)||super.walkOption(e,n,r)}}class SR extends Ho{constructor(e,n,r){super(),this.targetOccurrence=e,this.targetProdType=n,this.targetRef=r,this.result=[]}checkIsTarget(e,n){e.idx===this.targetOccurrence&&this.targetProdType===n&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,dt.OPTION)}visitRepetition(e){this.checkIsTarget(e,dt.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,dt.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,dt.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,dt.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,dt.ALTERNATION)}}function kR(t){const e=new Array(t);for(let n=0;n<t;n++)e[n]=[];return e}function Hm(t){let e=[""];for(let n=0;n<t.length;n++){const r=t[n],i=[];for(let s=0;s<e.length;s++){const o=e[s];i.push(o+"_"+r.tokenTypeIdx);for(let a=0;a<r.categoryMatches.length;a++){const c="_"+r.categoryMatches[a];i.push(o+c)}}e=i}return e}function W6(t,e,n){for(let r=0;r<t.length;r++){if(r===n)continue;const i=t[r];for(let s=0;s<e.length;s++){const o=e[s];if(i[o]===!0)return!1}}return!0}function $R(t,e){const n=de(t,o=>Wm([o],1)),r=kR(n.length),i=de(n,o=>{const a={};return ve(o,c=>{const u=Hm(c.partialPath);ve(u,l=>{a[l]=!0})}),a});let s=n;for(let o=1;o<=e;o++){const a=s;s=kR(a.length);for(let c=0;c<a.length;c++){const u=a[c];for(let l=0;l<u.length;l++){const d=u[l].partialPath,f=u[l].suffixDef,h=Hm(d);if(W6(i,h,c)||Ze(f)||d.length===e){const g=r[c];if(Vm(g,d)===!1){g.push(d);for(let v=0;v<h.length;v++){const m=h[v];i[c][m]=!0}}}else{const g=Wm(f,o+1,d);s[c]=s[c].concat(g),ve(g,v=>{const m=Hm(v.partialPath);ve(m,w=>{i[c][w]=!0})})}}}}return r}function vf(t,e,n,r){const i=new SR(t,dt.ALTERNATION,r);return e.accept(i),$R(i.result,n)}function wf(t,e,n,r){const i=new SR(t,n);e.accept(i);const s=i.result,a=new U6(e,t,n).startWalking(),c=new bn({definition:s}),u=new bn({definition:a});return $R([c,u],r)}function Vm(t,e){e:for(let n=0;n<t.length;n++){const r=t[n];if(r.length===e.length){for(let i=0;i<r.length;i++){const s=e[i],o=r[i];if((s===o||o.categoryMatchesMap[s.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function G6(t,e){return t.length<e.length&&dr(t,(n,r)=>{const i=e[r];return n===i||i.categoryMatchesMap[n.tokenTypeIdx]})}function CR(t){return dr(t,e=>dr(e,n=>dr(n,r=>Ze(r.categoryMatches))))}function H6(t){const e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return de(e,n=>Object.assign({type:cn.CUSTOM_LOOKAHEAD_VALIDATION},n))}function V6(t,e,n,r){const i=In(t,c=>K6(c,n)),s=o5(t,e,n),o=In(t,c=>n5(c,n)),a=In(t,c=>J6(c,t,r,n));return i.concat(s,o,a)}function K6(t,e){const n=new X6;t.accept(n);const r=n.allProductions,i=u4(r,Y6),s=hr(i,a=>a.length>1);return de(Nt(s),a=>{const c=fr(a),u=e.buildDuplicateFoundError(t,a),l=Fr(c),d={message:u,type:cn.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:l,occurrence:c.idx},f=_R(c);return f&&(d.parameter=f),d})}function Y6(t){return`${Fr(t)}_#_${t.idx}_#_${_R(t)}`}function _R(t){return t instanceof ot?t.terminalType.name:t instanceof an?t.nonTerminalName:""}class X6 extends Ho{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)}}function J6(t,e,n,r){const i=[];if(on(e,(o,a)=>a.name===t.name?o+1:o,0)>1){const o=r.buildDuplicateRuleNameError({topLevelRule:t,grammarName:n});i.push({message:o,type:cn.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function Z6(t,e,n){const r=[];let i;return sn(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:cn.INVALID_RULE_OVERRIDE,ruleName:t})),r}function AR(t,e,n,r=[]){const i=[],s=bf(e.definition);if(Ze(s))return[];{const o=t.name;sn(s,t)&&i.push({message:n.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:r}),type:cn.LEFT_RECURSION,ruleName:o});const c=sf(s,r.concat([t])),u=In(c,l=>{const d=qt(r);return d.push(l),AR(t,l,n,d)});return i.concat(u)}}function bf(t){let e=[];if(Ze(t))return e;const n=fr(t);if(n instanceof an)e.push(n.referencedRule);else if(n instanceof bn||n instanceof Ut||n instanceof Pn||n instanceof Nn||n instanceof En||n instanceof vt)e=e.concat(bf(n.definition));else if(n instanceof Dn)e=Kn(de(n.definition,s=>bf(s.definition)));else if(!(n instanceof ot))throw Error("non exhaustive match");const r=cf(n),i=t.length>1;if(r&&i){const s=jt(t);return e.concat(bf(s))}else return e}class Km extends Ho{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Q6(t,e){const n=new Km;t.accept(n);const r=n.alternations;return In(r,s=>{const o=Pc(s.definition);return In(o,(a,c)=>{const u=TR([a],[],Lc,1);return Ze(u)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:s,emptyChoiceIdx:c}),type:cn.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:s.idx,alternative:c+1}]:[]})})}function e5(t,e,n){const r=new Km;t.accept(r);let i=r.alternations;return i=of(i,o=>o.ignoreAmbiguities===!0),In(i,o=>{const a=o.idx,c=o.maxLookahead||e,u=vf(a,t,c,o),l=i5(u,o,t,n),d=s5(u,o,t,n);return l.concat(d)})}class t5 extends Ho{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)}}function n5(t,e){const n=new Km;t.accept(n);const r=n.alternations;return In(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:s}),type:cn.TOO_MANY_ALTS,ruleName:t.name,occurrence:s.idx}]:[])}function r5(t,e,n){const r=[];return ve(t,i=>{const s=new t5;i.accept(s);const o=s.allProductions;ve(o,a=>{const c=Gm(a),u=a.maxLookahead||e,l=a.idx,f=wf(l,i,c,u)[0];if(Ze(Kn(f))){const h=n.buildEmptyRepetitionError({topLevelRule:i,repetition:a});r.push({message:h,type:cn.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function i5(t,e,n,r){const i=[],s=on(t,(a,c,u)=>(e.definition[u].ignoreAmbiguities===!0||ve(c,l=>{const d=[u];ve(t,(f,h)=>{u!==h&&Vm(f,l)&&e.definition[h].ignoreAmbiguities!==!0&&d.push(h)}),d.length>1&&!Vm(i,l)&&(i.push(l),a.push({alts:d,path:l}))}),a),[]);return de(s,a=>{const c=de(a.alts,l=>l+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:e,ambiguityIndices:c,prefixPath:a.path}),type:cn.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:e.idx,alternatives:a.alts}})}function s5(t,e,n,r){const i=on(t,(o,a,c)=>{const u=de(a,l=>({idx:c,path:l}));return o.concat(u)},[]);return Ic(In(i,o=>{if(e.definition[o.idx].ignoreAmbiguities===!0)return[];const c=o.idx,u=o.path,l=xn(i,f=>e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx<c&&G6(f.path,u));return de(l,f=>{const h=[f.idx+1,c+1],p=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:e,ambiguityIndices:h,prefixPath:f.path}),type:cn.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:p,alternatives:h}})}))}function o5(t,e,n){const r=[],i=de(e,s=>s.name);return ve(t,s=>{const o=s.name;if(sn(i,o)){const a=n.buildNamespaceConflictError(s);r.push({message:a,type:cn.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:o})}}),r}function a5(t){const e=Fm(t,{errMsgProvider:x6}),n={};return ve(t.rules,r=>{n[r.name]=r}),I6(n,e.errMsgProvider)}function c5(t){return t=Fm(t,{errMsgProvider:Ns}),V6(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}const xR="MismatchedTokenException",IR="NoViableAltException",PR="EarlyExitException",NR="NotAllInputParsedException",OR=[xR,IR,PR,NR];Object.freeze(OR);function Ef(t){return sn(OR,t.name)}class Df extends Error{constructor(e,n){super(e),this.token=n,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class FR extends Df{constructor(e,n,r){super(e,n),this.previousToken=r,this.name=xR}}class u5 extends Df{constructor(e,n,r){super(e,n),this.previousToken=r,this.name=IR}}class l5 extends Df{constructor(e,n){super(e,n),this.name=NR}}class d5 extends Df{constructor(e,n,r){super(e,n),this.previousToken=r,this.name=PR}}const Ym={},LR="InRuleRecoveryException";class f5 extends Error{constructor(e){super(e),this.name=LR}}class h5{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=be(e,"recoveryEnabled")?e.recoveryEnabled:pi.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=p5)}getTokenToInsert(e){const n=Um(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return n.isInsertedInRecovery=!0,n}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,n,r,i){const s=this.findReSyncTokenType(),o=this.exportLexerState(),a=[];let c=!1;const u=this.LA(1);let l=this.LA(1);const d=()=>{const f=this.LA(0),h=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:u,previous:f,ruleName:this.getCurrRuleFullName()}),p=new FR(h,u,this.LA(0));p.resyncedTokens=Pc(a),this.SAVE_ERROR(p)};for(;!c;)if(this.tokenMatcher(l,i)){d();return}else if(r.call(this)){d(),e.apply(this,n);return}else this.tokenMatcher(l,s)?c=!0:(l=this.SKIP_TOKEN(),this.addToResyncTokens(l,a));this.importLexerState(o)}shouldInRepetitionRecoveryBeTried(e,n,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,n)))}getFollowsForInRuleRecovery(e,n){const r=this.getCurrentGrammarPath(e,n);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,n){if(this.canRecoverWithSingleTokenInsertion(e,n))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new f5("sad sad panda")}canPerformInRuleRecovery(e,n){return this.canRecoverWithSingleTokenInsertion(e,n)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,n){if(!this.canTokenTypeBeInsertedInRecovery(e)||Ze(n))return!1;const r=this.LA(1);return Wo(n,s=>this.tokenMatcher(r,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const n=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(n);return sn(r,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let n=this.LA(1),r=2;for(;;){const i=Wo(e,s=>bR(n,s));if(i!==void 0)return i;n=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Ym;const e=this.getLastExplicitRuleShortName(),n=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:n,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,n=this.RULE_OCCURRENCE_STACK;return de(e,(r,i)=>i===0?Ym:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:n[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=de(this.buildFullFollowKeyStack(),n=>this.getFollowSetFromFollowKey(n));return Kn(e)}getFollowSetFromFollowKey(e){if(e===Ym)return[Bi];const n=e.ruleName+e.idxInCallingRule+XT+e.inRule;return this.resyncFollows[n]}addToResyncTokens(e,n){return this.tokenMatcher(e,Bi)||n.push(e),n}reSyncTo(e){const n=[];let r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,n);return Pc(n)}attemptInRepetitionRecovery(e,n,r,i,s,o,a){}getCurrentGrammarPath(e,n){const r=this.getHumanReadableRuleStack(),i=qt(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:n}}getHumanReadableRuleStack(){return de(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function p5(t,e,n,r,i,s,o){const a=this.getKeyForAutomaticLookahead(r,i);let c=this.firstAfterRepMap[a];if(c===void 0){const f=this.getCurrRuleFullName(),h=this.getGAstProductions()[f];c=new s(h,i).startWalking(),this.firstAfterRepMap[a]=c}let u=c.token,l=c.occurrence;const d=c.isEndOfRule;this.RULE_STACK.length===1&&d&&u===void 0&&(u=Bi,l=1),!(u===void 0||l===void 0)&&this.shouldInRepetitionRecoveryBeTried(u,l,o)&&this.tryInRepetitionRecovery(t,e,n,u)}const g5=4,qi=8,MR=1<<qi,zR=2<<qi,Xm=3<<qi,Jm=4<<qi,Zm=5<<qi,Tf=6<<qi;function Qm(t,e,n){return n|e|t}class ey{constructor(e){var n;this.maxLookahead=(n=e?.maxLookahead)!==null&&n!==void 0?n:pi.maxLookahead}validate(e){const n=this.validateNoLeftRecursion(e.rules);if(Ze(n)){const r=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...n,...r,...i,...s]}return n}validateNoLeftRecursion(e){return In(e,n=>AR(n,n,Ns))}validateEmptyOrAlternatives(e){return In(e,n=>Q6(n,Ns))}validateAmbiguousAlternationAlternatives(e,n){return In(e,r=>e5(r,n,Ns))}validateSomeNonEmptyLookaheadPath(e,n){return r5(e,n,Ns)}buildLookaheadForAlternation(e){return z6(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,q6)}buildLookaheadForOptional(e){return B6(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Gm(e.prodType),j6)}}class m5{initLooksAhead(e){this.dynamicTokensEnabled=be(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:pi.dynamicTokensEnabled,this.maxLookahead=be(e,"maxLookahead")?e.maxLookahead:pi.maxLookahead,this.lookaheadStrategy=be(e,"lookaheadStrategy")?e.lookaheadStrategy:new ey({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){ve(e,n=>{this.TRACE_INIT(`${n.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:o,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:c}=v5(n);ve(r,u=>{const l=u.idx===0?"":u.idx;this.TRACE_INIT(`${Fr(u)}${l}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:u.idx,rule:n,maxLookahead:u.maxLookahead||this.maxLookahead,hasPredicates:u.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),f=Qm(this.fullRuleNameToShort[n.name],MR,u.idx);this.setLaFuncCache(f,d)})}),ve(i,u=>{this.computeLookaheadFunc(n,u.idx,Xm,"Repetition",u.maxLookahead,Fr(u))}),ve(s,u=>{this.computeLookaheadFunc(n,u.idx,zR,"Option",u.maxLookahead,Fr(u))}),ve(o,u=>{this.computeLookaheadFunc(n,u.idx,Jm,"RepetitionMandatory",u.maxLookahead,Fr(u))}),ve(a,u=>{this.computeLookaheadFunc(n,u.idx,Tf,"RepetitionMandatoryWithSeparator",u.maxLookahead,Fr(u))}),ve(c,u=>{this.computeLookaheadFunc(n,u.idx,Zm,"RepetitionWithSeparator",u.maxLookahead,Fr(u))})})})}computeLookaheadFunc(e,n,r,i,s,o){this.TRACE_INIT(`${o}${n===0?"":n}`,()=>{const a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:n,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),c=Qm(this.fullRuleNameToShort[e.name],r,n);this.setLaFuncCache(c,a)})}getKeyForAutomaticLookahead(e,n){const r=this.getLastExplicitRuleShortName();return Qm(r,e,n)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,n){this.lookAheadFuncsCache.set(e,n)}}class y5 extends Ho{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)}}const Rf=new y5;function v5(t){Rf.reset(),t.accept(Rf);const e=Rf.dslMethods;return Rf.reset(),e}function BR(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset<e.endOffset&&(t.endOffset=e.endOffset)}function qR(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.startColumn=e.startColumn,t.startLine=e.startLine,t.endOffset=e.endOffset,t.endColumn=e.endColumn,t.endLine=e.endLine):t.endOffset<e.endOffset&&(t.endOffset=e.endOffset,t.endColumn=e.endColumn,t.endLine=e.endLine)}function w5(t,e,n){t.children[n]===void 0?t.children[n]=[e]:t.children[n].push(e)}function b5(t,e,n){t.children[e]===void 0?t.children[e]=[n]:t.children[e].push(n)}const E5="name";function jR(t,e){Object.defineProperty(t,E5,{enumerable:!1,configurable:!0,writable:!1,value:e})}function D5(t,e){const n=Vn(t),r=n.length;for(let i=0;i<r;i++){const s=n[i],o=t[s],a=o.length;for(let c=0;c<a;c++){const u=o[c];u.tokenTypeIdx===void 0&&this[u.name](u.children,e)}}}function T5(t,e){const n=function(){};jR(n,t+"BaseSemantics");const r={visit:function(i,s){if(Be(i)&&(i=i[0]),!hi(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=S5(this,e);if(!Ze(i)){const s=de(i,o=>o.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
88
+ ${s.join(`
89
+
90
+ `).replace(/\n/g,`
91
+ `)}`)}}};return n.prototype=r,n.prototype.constructor=n,n._RULE_NAMES=e,n}function R5(t,e,n){const r=function(){};jR(r,t+"BaseSemanticsWithDefaults");const i=Object.create(n.prototype);return ve(e,s=>{i[s]=D5}),r.prototype=i,r.prototype.constructor=r,r}var ty;(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(ty||(ty={}));function S5(t,e){return k5(t,e)}function k5(t,e){const n=xn(e,i=>ci(t[i])===!1),r=de(n,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:ty.MISSING_METHOD,methodName:i}));return Ic(r)}class $5{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=be(e,"nodeLocationTracking")?e.nodeLocationTracking:pi.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Pt,this.cstFinallyStateUpdate=Pt,this.cstPostTerminal=Pt,this.cstPostNonTerminal=Pt,this.cstPostRule=Pt;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=qR,this.setNodeLocationFromNode=qR,this.cstPostRule=Pt,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Pt,this.setNodeLocationFromNode=Pt,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=BR,this.setNodeLocationFromNode=BR,this.cstPostRule=Pt,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Pt,this.setNodeLocationFromNode=Pt,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Pt,this.setNodeLocationFromNode=Pt,this.cstPostRule=Pt,this.setInitialNodeLocation=Pt;else throw Error(`Invalid <nodeLocationTracking> 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){const n=this.LA(1);e.location={startOffset:n.startOffset,startLine:n.startLine,startColumn:n.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const n={name:e,children:Object.create(null)};this.setInitialNodeLocation(n),this.CST_STACK.push(n)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?(r.endOffset=n.endOffset,r.endLine=n.endLine,r.endColumn=n.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?r.endOffset=n.endOffset:r.startOffset=NaN}cstPostTerminal(e,n){const r=this.CST_STACK[this.CST_STACK.length-1];w5(r,n,e),this.setNodeLocationFromToken(r.location,n)}cstPostNonTerminal(e,n){const r=this.CST_STACK[this.CST_STACK.length-1];b5(r,n,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(hi(this.baseCstVisitorConstructor)){const e=T5(this.className,Vn(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(hi(this.baseCstVisitorWithDefaultsConstructor)){const e=R5(this.className,Vn(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}class C5{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> 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)):$f}LA(e){const n=this.currIdx+e;return n<0||this.tokVectorLength<=n?$f:this.tokVector[n]}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()}}class _5{ACTION(e){return e.call(this)}consume(e,n,r){return this.consumeInternal(n,e,r)}subrule(e,n,r){return this.subruleInternal(n,e,r)}option(e,n){return this.optionInternal(n,e)}or(e,n){return this.orInternal(n,e)}many(e,n){return this.manyInternal(e,n)}atLeastOne(e,n){return this.atLeastOneInternal(e,n)}CONSUME(e,n){return this.consumeInternal(e,0,n)}CONSUME1(e,n){return this.consumeInternal(e,1,n)}CONSUME2(e,n){return this.consumeInternal(e,2,n)}CONSUME3(e,n){return this.consumeInternal(e,3,n)}CONSUME4(e,n){return this.consumeInternal(e,4,n)}CONSUME5(e,n){return this.consumeInternal(e,5,n)}CONSUME6(e,n){return this.consumeInternal(e,6,n)}CONSUME7(e,n){return this.consumeInternal(e,7,n)}CONSUME8(e,n){return this.consumeInternal(e,8,n)}CONSUME9(e,n){return this.consumeInternal(e,9,n)}SUBRULE(e,n){return this.subruleInternal(e,0,n)}SUBRULE1(e,n){return this.subruleInternal(e,1,n)}SUBRULE2(e,n){return this.subruleInternal(e,2,n)}SUBRULE3(e,n){return this.subruleInternal(e,3,n)}SUBRULE4(e,n){return this.subruleInternal(e,4,n)}SUBRULE5(e,n){return this.subruleInternal(e,5,n)}SUBRULE6(e,n){return this.subruleInternal(e,6,n)}SUBRULE7(e,n){return this.subruleInternal(e,7,n)}SUBRULE8(e,n){return this.subruleInternal(e,8,n)}SUBRULE9(e,n){return this.subruleInternal(e,9,n)}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,n,r=Cf){if(sn(this.definedRulesNames,e)){const o={message:Ns.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:cn.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(o)}this.definedRulesNames.push(e);const i=this.defineRule(e,n,r);return this[e]=i,i}OVERRIDE_RULE(e,n,r=Cf){const i=Z6(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);const s=this.defineRule(e,n,r);return this[e]=s,s}BACKTRACK(e,n){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,n),!0}catch(i){if(Ef(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return L4(Nt(this.gastProductionsCache))}}class A5{initRecognizerEngine(e,n){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=mf,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},be(n,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
92
+ See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
93
+ For Further details.`);if(Be(e)){if(Ze(e))throw Error(`A Token Vocabulary cannot be empty.
94
+ Note that the first argument for the parser constructor
95
+ 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.
96
+ See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
97
+ For Further details.`)}if(Be(e))this.tokensMap=on(e,(s,o)=>(s[o.name]=o,s),{});else if(be(e,"modes")&&dr(Kn(Nt(e.modes)),$6)){const s=Kn(Nt(e.modes)),o=Lm(s);this.tokensMap=on(o,(a,c)=>(a[c.name]=c,a),{})}else if(Hn(e))this.tokensMap=qt(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Bi;const r=be(e,"modes")?Kn(Nt(e.modes)):Nt(e),i=dr(r,s=>Ze(s.categoryMatches));this.tokenMatcher=i?mf:Lc,Mc(Nt(this.tokensMap))}defineRule(e,n,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'
98
+ Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=be(r,"resyncEnabled")?r.resyncEnabled:Cf.resyncEnabled,s=be(r,"recoveryValueFunc")?r.recoveryValueFunc:Cf.recoveryValueFunc,o=this.ruleShortNameIdx<<g5+qi;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;let a;return this.outputCst===!0?a=function(...l){try{this.ruleInvocationStateUpdate(o,e,this.subruleIdx),n.apply(this,l);const d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}}:a=function(...l){try{return this.ruleInvocationStateUpdate(o,e,this.subruleIdx),n.apply(this,l)}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(a,{ruleName:e,originalGrammarAction:n})}invokeRuleCatch(e,n,r){const i=this.RULE_STACK.length===1,s=n&&!this.isBackTracking()&&this.recoveryEnabled;if(Ef(e)){const o=e;if(s){const a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){const c=this.CST_STACK[this.CST_STACK.length-1];return c.recoveredNode=!0,c}else return r(e);else{if(this.outputCst){const c=this.CST_STACK[this.CST_STACK.length-1];c.recoveredNode=!0,o.partialCstResult=c}throw o}}else{if(i)return this.moveToTerminatedState(),r(e);throw o}}else throw e}optionInternal(e,n){const r=this.getKeyForAutomaticLookahead(zR,n);return this.optionInternalLogic(e,n,r)}optionInternalLogic(e,n,r){let i=this.getLaFuncFromCache(r),s;if(typeof e!="function"){s=e.DEF;const o=e.GATE;if(o!==void 0){const a=i;i=()=>o.call(this)&&a.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,n){const r=this.getKeyForAutomaticLookahead(Jm,e);return this.atLeastOneInternalLogic(e,n,r)}atLeastOneInternalLogic(e,n,r){let i=this.getLaFuncFromCache(r),s;if(typeof n!="function"){s=n.DEF;const o=n.GATE;if(o!==void 0){const a=i;i=()=>o.call(this)&&a.call(this)}}else s=n;if(i.call(this)===!0){let o=this.doSingleRepetition(s);for(;i.call(this)===!0&&o===!0;)o=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,dt.REPETITION_MANDATORY,n.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,n],i,Jm,e,L6)}atLeastOneSepFirstInternal(e,n){const r=this.getKeyForAutomaticLookahead(Tf,e);this.atLeastOneSepFirstInternalLogic(e,n,r)}atLeastOneSepFirstInternalLogic(e,n,r){const i=n.DEF,s=n.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const a=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,a,i,DR],a,Tf,e,DR)}else throw this.raiseEarlyExitException(e,dt.REPETITION_MANDATORY_WITH_SEPARATOR,n.ERR_MSG)}manyInternal(e,n){const r=this.getKeyForAutomaticLookahead(Xm,e);return this.manyInternalLogic(e,n,r)}manyInternalLogic(e,n,r){let i=this.getLaFuncFromCache(r),s;if(typeof n!="function"){s=n.DEF;const a=n.GATE;if(a!==void 0){const c=i;i=()=>a.call(this)&&c.call(this)}}else s=n;let o=!0;for(;i.call(this)===!0&&o===!0;)o=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,n],i,Xm,e,F6,o)}manySepFirstInternal(e,n){const r=this.getKeyForAutomaticLookahead(Zm,e);this.manySepFirstInternalLogic(e,n,r)}manySepFirstInternalLogic(e,n,r){const i=n.DEF,s=n.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const a=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,a,i,ER],a,Zm,e,ER)}}repetitionSepSecondInternal(e,n,r,i,s){for(;r();)this.CONSUME(n),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,n,r,i,s],r,Tf,e,s)}doSingleRepetition(e){const n=this.getLexerPosition();return e.call(this),this.getLexerPosition()>n}orInternal(e,n){const r=this.getKeyForAutomaticLookahead(MR,n),i=Be(e)?e:e.DEF,o=this.getLaFuncFromCache(r).call(this,i);if(o!==void 0)return i[o].ALT.call(this);this.raiseNoAltException(n,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const e=this.LA(1),n=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new l5(n,e))}}subruleInternal(e,n,r){let i;try{const s=r!==void 0?r.ARGS:void 0;return this.subruleIdx=n,i=e.apply(this,s),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,r,e.ruleName)}}subruleInternalError(e,n,r){throw Ef(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,n!==void 0&&n.LABEL!==void 0?n.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,n,r){let i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,r)}catch(s){i=this.consumeInternalRecovery(e,n,s)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,n,r){let i;const s=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:n,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new FR(i,n,s))}consumeInternalRecovery(e,n,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,n);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===LR?r:s}}else throw r}saveRecogState(){const e=this.errors,n=qt(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:n,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,n,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(n)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),Bi)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class x5{initErrorHandler(e){this._errors=[],this.errorMessageProvider=be(e,"errorMessageProvider")?e.errorMessageProvider:pi.errorMessageProvider}SAVE_ERROR(e){if(Ef(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:qt(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return qt(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,n,r){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],a=wf(e,s,n,this.maxLookahead)[0],c=[];for(let l=1;l<=this.maxLookahead;l++)c.push(this.LA(l));const u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:c,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new d5(u,this.LA(1),this.LA(0)))}raiseNoAltException(e,n){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=vf(e,i,this.maxLookahead),o=[];for(let u=1;u<=this.maxLookahead;u++)o.push(this.LA(u));const a=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:a,customUserDescription:n,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new u5(c,this.LA(1),a))}}class I5{initContentAssist(){}computeContentAssist(e,n){const r=this.gastProductionsCache[e];if(hi(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return TR([r],n,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const n=fr(e.ruleStack),i=this.getGAstProductions()[n];return new O6(i,e).startWalking()}}const Sf={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sf);const UR=!0,WR=Math.pow(2,qi)-1,GR=wR({name:"RECORDING_PHASE_TOKEN",pattern:Tn.NA});Mc([GR]);const HR=Um(GR,`This IToken indicates the Parser is in Recording Phase
99
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(HR);const P5={name:`This CSTNode indicates the Parser is in Recording Phase
100
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class N5{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++){const n=e>0?e:"";this[`CONSUME${n}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${n}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${n}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${n}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${n}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${n}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${n}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${n}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,n,r){return this.consumeInternalRecord(n,e,r)},this.subrule=function(e,n,r){return this.subruleInternalRecord(n,e,r)},this.option=function(e,n){return this.optionInternalRecord(n,e)},this.or=function(e,n){return this.orInternalRecord(n,e)},this.many=function(e,n){this.manyInternalRecord(e,n)},this.atLeastOne=function(e,n){this.atLeastOneInternalRecord(e,n)},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",()=>{const e=this;for(let n=0;n<10;n++){const r=n>0?n:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}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,n){return()=>!0}LA_RECORD(e){return $f}topLevelRuleRecord(e,n){try{const r=new Go({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),n.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+`
101
+ This error was thrown during the "grammar recording phase" For more info see:
102
+ https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,n){return Bc.call(this,Ut,e,n)}atLeastOneInternalRecord(e,n){Bc.call(this,Pn,n,e)}atLeastOneSepFirstInternalRecord(e,n){Bc.call(this,Nn,n,e,UR)}manyInternalRecord(e,n){Bc.call(this,vt,n,e)}manySepFirstInternalRecord(e,n){Bc.call(this,En,n,e,UR)}orInternalRecord(e,n){return O5.call(this,e,n)}subruleInternalRecord(e,n,r){if(kf(n),!e||be(e,"ruleName")===!1){const a=new Error(`<SUBRULE${VR(n)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
103
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const i=Uo(this.recordingProdStack),s=e.ruleName,o=new an({idx:n,nonTerminalName:s,label:r?.LABEL,referencedRule:void 0});return i.definition.push(o),this.outputCst?P5:Sf}consumeInternalRecord(e,n,r){if(kf(n),!cR(e)){const o=new Error(`<CONSUME${VR(n)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
104
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}const i=Uo(this.recordingProdStack),s=new ot({idx:n,terminalType:e,label:r?.LABEL});return i.definition.push(s),HR}}function Bc(t,e,n,r=!1){kf(n);const i=Uo(this.recordingProdStack),s=ci(e)?e:e.DEF,o=new t({definition:[],idx:n});return r&&(o.separator=e.SEP),be(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),i.definition.push(o),this.recordingProdStack.pop(),Sf}function O5(t,e){kf(e);const n=Uo(this.recordingProdStack),r=Be(t)===!1,i=r===!1?t:t.DEF,s=new Dn({definition:[],idx:e,ignoreAmbiguities:r&&t.IGNORE_AMBIGUITIES===!0});be(t,"MAX_LOOKAHEAD")&&(s.maxLookahead=t.MAX_LOOKAHEAD);const o=WT(i,a=>ci(a.GATE));return s.hasPredicates=o,n.definition.push(s),ve(i,a=>{const c=new bn({definition:[]});s.definition.push(c),be(a,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=a.IGNORE_AMBIGUITIES:be(a,"GATE")&&(c.ignoreAmbiguities=!0),this.recordingProdStack.push(c),a.ALT.call(this),this.recordingProdStack.pop()}),Sf}function VR(t){return t===0?"":`${t}`}function kf(t){if(t<0||t>WR){const e=new Error(`Invalid DSL Method idx value: <${t}>
105
+ Idx value must be a none negative value smaller than ${WR+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class F5{initPerformanceTracer(e){if(be(e,"traceInitPerf")){const n=e.traceInitPerf,r=typeof n=="number";this.traceInitMaxIdent=r?n:1/0,this.traceInitPerf=r?n>0:n}else this.traceInitMaxIdent=0,this.traceInitPerf=pi.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,n){if(this.traceInitPerf===!0){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);const{time:i,value:s}=VT(n),o=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&o(`${r}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return n()}}function L5(t,e){e.forEach(n=>{const r=n.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(r,i);s&&(s.get||s.set)?Object.defineProperty(t.prototype,i,s):t.prototype[i]=n.prototype[i]})})}const $f=Um(Bi,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze($f);const pi=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Ko,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Cf=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var cn;(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"})(cn||(cn={}));function KR(t=void 0){return function(){return t}}class ed{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;const n=this.className;this.TRACE_INIT("toFastProps",()=>{KT(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),ve(this.definedRulesNames,i=>{const o=this[i].originalGrammarAction;let a;this.TRACE_INIT(`${i} Rule`,()=>{a=this.topLevelRuleRecord(i,o)}),this.gastProductionsCache[i]=a})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=a5({rules:Nt(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(Ze(r)&&this.skipValidations===!1){const i=c5({rules:Nt(this.gastProductionsCache),tokenTypes:Nt(this.tokensMap),errMsgProvider:Ns,grammarName:n}),s=H6({lookaheadStrategy:this.lookaheadStrategy,rules:Nt(this.gastProductionsCache),tokenTypes:Nt(this.tokensMap),grammarName:n});this.definitionErrors=this.definitionErrors.concat(i,s)}}),Ze(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=W4(Nt(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:Nt(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Nt(this.gastProductionsCache))})),!ed.DEFER_DEFINITION_ERRORS_HANDLING&&!Ze(this.definitionErrors))throw e=de(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
106
+ ${e.join(`
107
+ -------------------------------
108
+ `)}`)})}constructor(e,n){this.definitionErrors=[],this.selfAnalysisDone=!1;const r=this;if(r.initErrorHandler(n),r.initLexerAdapter(),r.initLooksAhead(n),r.initRecognizerEngine(e,n),r.initRecoverable(n),r.initTreeBuilder(n),r.initContentAssist(),r.initGastRecorder(n),r.initPerformanceTracer(n),be(n,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
109
+ Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
110
+ See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
111
+ For further details.`);this.skipValidations=be(n,"skipValidations")?n.skipValidations:pi.skipValidations}}ed.DEFER_DEFINITION_ERRORS_HANDLING=!1,L5(ed,[h5,m5,$5,C5,A5,_5,x5,I5,N5,F5]);class M5 extends ed{constructor(e,n=pi){const r=qt(n);r.outputCst=!1,super(e,r)}}function Yo(t,e,n){return`${t.name}_${e}_${n}`}const ji=1,z5=2,YR=4,XR=5,qc=7,B5=8,q5=9,j5=10,U5=11,JR=12;class ny{constructor(e){this.target=e}isEpsilon(){return!1}}class ry extends ny{constructor(e,n){super(e),this.tokenType=n}}class ZR extends ny{constructor(e){super(e)}isEpsilon(){return!0}}class iy extends ny{constructor(e,n,r){super(e),this.rule=n,this.followState=r}isEpsilon(){return!0}}function W5(t){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};G5(e,t);const n=t.length;for(let r=0;r<n;r++){const i=t[r],s=Os(e,i,i);s!==void 0&&nq(e,i,s)}return e}function G5(t,e){const n=e.length;for(let r=0;r<n;r++){const i=e[r],s=Lt(t,i,void 0,{type:z5}),o=Lt(t,i,void 0,{type:qc});s.stop=o,t.ruleToStartState.set(i,s),t.ruleToStopState.set(i,o)}}function QR(t,e,n){return n instanceof ot?sy(t,e,n.terminalType,n):n instanceof an?tq(t,e,n):n instanceof Dn?X5(t,e,n):n instanceof Ut?J5(t,e,n):n instanceof vt?H5(t,e,n):n instanceof En?V5(t,e,n):n instanceof Pn?K5(t,e,n):n instanceof Nn?Y5(t,e,n):Os(t,e,n)}function H5(t,e,n){const r=Lt(t,e,n,{type:XR});Ui(t,r);const i=Xo(t,e,r,n,Os(t,e,n));return tS(t,e,n,i)}function V5(t,e,n){const r=Lt(t,e,n,{type:XR});Ui(t,r);const i=Xo(t,e,r,n,Os(t,e,n)),s=sy(t,e,n.separator,n);return tS(t,e,n,i,s)}function K5(t,e,n){const r=Lt(t,e,n,{type:YR});Ui(t,r);const i=Xo(t,e,r,n,Os(t,e,n));return eS(t,e,n,i)}function Y5(t,e,n){const r=Lt(t,e,n,{type:YR});Ui(t,r);const i=Xo(t,e,r,n,Os(t,e,n)),s=sy(t,e,n.separator,n);return eS(t,e,n,i,s)}function X5(t,e,n){const r=Lt(t,e,n,{type:ji});Ui(t,r);const i=de(n.definition,o=>QR(t,e,o));return Xo(t,e,r,n,...i)}function J5(t,e,n){const r=Lt(t,e,n,{type:ji});Ui(t,r);const i=Xo(t,e,r,n,Os(t,e,n));return Z5(t,e,n,i)}function Os(t,e,n){const r=xn(de(n.definition,i=>QR(t,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:eq(t,r)}function eS(t,e,n,r,i){const s=r.left,o=r.right,a=Lt(t,e,n,{type:U5});Ui(t,a);const c=Lt(t,e,n,{type:JR});return s.loopback=a,c.loopback=a,t.decisionMap[Yo(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",n.idx)]=a,Ct(o,a),i===void 0?(Ct(a,s),Ct(a,c)):(Ct(a,c),Ct(a,i.left),Ct(i.right,s)),{left:s,right:c}}function tS(t,e,n,r,i){const s=r.left,o=r.right,a=Lt(t,e,n,{type:j5});Ui(t,a);const c=Lt(t,e,n,{type:JR}),u=Lt(t,e,n,{type:q5});return a.loopback=u,c.loopback=u,Ct(a,s),Ct(a,c),Ct(o,u),i!==void 0?(Ct(u,c),Ct(u,i.left),Ct(i.right,s)):Ct(u,a),t.decisionMap[Yo(e,i?"RepetitionWithSeparator":"Repetition",n.idx)]=a,{left:a,right:c}}function Z5(t,e,n,r){const i=r.left,s=r.right;return Ct(i,s),t.decisionMap[Yo(e,"Option",n.idx)]=i,r}function Ui(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function Xo(t,e,n,r,...i){const s=Lt(t,e,r,{type:B5,start:n});n.end=s;for(const a of i)a!==void 0?(Ct(n,a.left),Ct(a.right,s)):Ct(n,s);const o={left:n,right:s};return t.decisionMap[Yo(e,Q5(r),r.idx)]=n,o}function Q5(t){if(t instanceof Dn)return"Alternation";if(t instanceof Ut)return"Option";if(t instanceof vt)return"Repetition";if(t instanceof En)return"RepetitionWithSeparator";if(t instanceof Pn)return"RepetitionMandatory";if(t instanceof Nn)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function eq(t,e){const n=e.length;for(let s=0;s<n-1;s++){const o=e[s];let a;o.left.transitions.length===1&&(a=o.left.transitions[0]);const c=a instanceof iy,u=a,l=e[s+1].left;o.left.type===ji&&o.right.type===ji&&a!==void 0&&(c&&u.followState===o.right||a.target===o.right)?(c?u.followState=l:a.target=l,rq(t,o.right)):Ct(o.right,l)}const r=e[0],i=e[n-1];return{left:r.left,right:i.right}}function sy(t,e,n,r){const i=Lt(t,e,r,{type:ji}),s=Lt(t,e,r,{type:ji});return oy(i,new ry(s,n)),{left:i,right:s}}function tq(t,e,n){const r=n.referencedRule,i=t.ruleToStartState.get(r),s=Lt(t,e,n,{type:ji}),o=Lt(t,e,n,{type:ji}),a=new iy(i,r,o);return oy(s,a),{left:s,right:o}}function nq(t,e,n){const r=t.ruleToStartState.get(e);Ct(r,n.left);const i=t.ruleToStopState.get(e);return Ct(n.right,i),{left:r,right:i}}function Ct(t,e){const n=new ZR(e);oy(t,n)}function Lt(t,e,n,r){const i=Object.assign({atn:t,production:n,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:t.states.length},r);return t.states.push(i),i}function oy(t,e){t.transitions.length===0&&(t.epsilonOnlyTransitions=e.isEpsilon()),t.transitions.push(e)}function rq(t,e){t.states.splice(t.states.indexOf(e),1)}const _f={};class ay{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const n=nS(e);n in this.map||(this.map[n]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return de(this.configs,e=>e.alt)}get key(){let e="";for(const n in this.map)e+=n+":";return e}}function nS(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(n=>n.stateNumber.toString()).join("_")}`}function iq(t,e){const n={};return r=>{const i=r.toString();let s=n[i];return s!==void 0||(s={atnStartState:t,decision:e,states:{}},n[i]=s),s}}class rS{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,n){this.predicates[e]=n}toString(){let e="";const n=this.predicates.length;for(let r=0;r<n;r++)e+=this.predicates[r]===!0?"1":"0";return e}}const iS=new rS;class sq extends ey{constructor(e){var n;super(),this.logging=(n=e?.logging)!==null&&n!==void 0?n:r=>console.log(r)}initialize(e){this.atn=W5(e.rules),this.dfas=oq(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:n,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,o=this.dfas,a=this.logging,c=Yo(r,"Alternation",n),l=this.atn.decisionMap[c].decision,d=de(RR({maxLookahead:1,occurrence:n,prodType:"Alternation",rule:r}),f=>de(f,h=>h[0]));if(sS(d,!1)&&!s){const f=on(d,(h,p,g)=>(ve(p,v=>{v&&(h[v.tokenTypeIdx]=g,ve(v.categoryMatches,m=>{h[m]=g}))}),h),{});return i?function(h){var p;const g=this.LA(1),v=f[g.tokenTypeIdx];if(h!==void 0&&v!==void 0){const m=(p=h[v])===null||p===void 0?void 0:p.GATE;if(m!==void 0&&m.call(this)===!1)return}return v}:function(){const h=this.LA(1);return f[h.tokenTypeIdx]}}else return i?function(f){const h=new rS,p=f===void 0?0:f.length;for(let v=0;v<p;v++){const m=f?.[v].GATE;h.set(v,m===void 0||m.call(this))}const g=cy.call(this,o,l,h,a);return typeof g=="number"?g:void 0}:function(){const f=cy.call(this,o,l,iS,a);return typeof f=="number"?f:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:n,rule:r,prodType:i,dynamicTokensEnabled:s}=e,o=this.dfas,a=this.logging,c=Yo(r,i,n),l=this.atn.decisionMap[c].decision,d=de(RR({maxLookahead:1,occurrence:n,prodType:i,rule:r}),f=>de(f,h=>h[0]));if(sS(d)&&d[0][0]&&!s){const f=d[0],h=Kn(f);if(h.length===1&&Ze(h[0].categoryMatches)){const g=h[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===g}}else{const p=on(h,(g,v)=>(v!==void 0&&(g[v.tokenTypeIdx]=!0,ve(v.categoryMatches,m=>{g[m]=!0})),g),{});return function(){const g=this.LA(1);return p[g.tokenTypeIdx]===!0}}}return function(){const f=cy.call(this,o,l,iS,a);return typeof f=="object"?!1:f===0}}}function sS(t,e=!0){const n=new Set;for(const r of t){const i=new Set;for(const s of r){if(s===void 0){if(e)break;return!1}const o=[s.tokenTypeIdx].concat(s.categoryMatches);for(const a of o)if(n.has(a)){if(!i.has(a))return!1}else n.add(a),i.add(a)}}return!0}function oq(t){const e=t.decisionStates.length,n=Array(e);for(let r=0;r<e;r++)n[r]=iq(t.decisionStates[r],r);return n}function cy(t,e,n,r){const i=t[e](n);let s=i.start;if(s===void 0){const a=yq(i.atnStartState);s=cS(i,oS(a)),i.start=s}return aq.apply(this,[i,s,n,r])}function aq(t,e,n,r){let i=e,s=1;const o=[];let a=this.LA(s++);for(;;){let c=hq(i,a);if(c===void 0&&(c=cq.apply(this,[t,i,a,s,n,r])),c===_f)return fq(o,i,a);if(c.isAcceptState===!0)return c.prediction;i=c,o.push(a),a=this.LA(s++)}}function cq(t,e,n,r,i,s){const o=pq(e.configs,n,i);if(o.size===0)return aS(t,e,n,_f),_f;let a=oS(o);const c=mq(o,i);if(c!==void 0)a.isAcceptState=!0,a.prediction=c,a.configs.uniqueAlt=c;else if(Eq(o)){const u=R4(o.alts);a.isAcceptState=!0,a.prediction=u,a.configs.uniqueAlt=u,uq.apply(this,[t,r,o.alts,s])}return a=aS(t,e,n,a),a}function uq(t,e,n,r){const i=[];for(let u=1;u<=e;u++)i.push(this.LA(u).tokenType);const s=t.atnStartState,o=s.rule,a=s.production,c=lq({topLevelRule:o,ambiguityIndices:n,production:a,prefixPath:i});r(c)}function lq(t){const e=de(t.prefixPath,i=>Vo(i)).join(", "),n=t.production.idx===0?"":t.production.idx;let r=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${dq(t.production)}${n}> inside <${t.topLevelRule.name}> Rule,
112
+ <${e}> may appears as a prefix path in all these alternatives.
113
+ `;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
114
+ For Further details.`,r}function dq(t){if(t instanceof an)return"SUBRULE";if(t instanceof Ut)return"OPTION";if(t instanceof Dn)return"OR";if(t instanceof Pn)return"AT_LEAST_ONE";if(t instanceof Nn)return"AT_LEAST_ONE_SEP";if(t instanceof En)return"MANY_SEP";if(t instanceof vt)return"MANY";if(t instanceof ot)return"CONSUME";throw Error("non exhaustive match")}function fq(t,e,n){const r=In(e.configs.elements,s=>s.state.transitions),i=N4(r.filter(s=>s instanceof ry).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:n,possibleTokenTypes:i,tokenPath:t}}function hq(t,e){return t.edges[e.tokenTypeIdx]}function pq(t,e,n){const r=new ay,i=[];for(const o of t.elements){if(n.is(o.alt)===!1)continue;if(o.state.type===qc){i.push(o);continue}const a=o.state.transitions.length;for(let c=0;c<a;c++){const u=o.state.transitions[c],l=gq(u,e);l!==void 0&&r.add({state:l,alt:o.alt,stack:o.stack})}}let s;if(i.length===0&&r.size===1&&(s=r),s===void 0){s=new ay;for(const o of r.elements)Af(o,s)}if(i.length>0&&!wq(s))for(const o of i)s.add(o);return s}function gq(t,e){if(t instanceof ry&&bR(e,t.tokenType))return t.target}function mq(t,e){let n;for(const r of t.elements)if(e.is(r.alt)===!0){if(n===void 0)n=r.alt;else if(n!==r.alt)return}return n}function oS(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function aS(t,e,n,r){return r=cS(t,r),e.edges[n.tokenTypeIdx]=r,r}function cS(t,e){if(e===_f)return e;const n=e.configs.key,r=t.states[n];return r!==void 0?r:(e.configs.finalize(),t.states[n]=e,e)}function yq(t){const e=new ay,n=t.transitions.length;for(let r=0;r<n;r++){const s={state:t.transitions[r].target,alt:r,stack:[]};Af(s,e)}return e}function Af(t,e){const n=t.state;if(n.type===qc){if(t.stack.length>0){const i=[...t.stack],o={state:i.pop(),alt:t.alt,stack:i};Af(o,e)}else e.add(t);return}n.epsilonOnlyTransitions||e.add(t);const r=n.transitions.length;for(let i=0;i<r;i++){const s=n.transitions[i],o=vq(t,s);o!==void 0&&Af(o,e)}}function vq(t,e){if(e instanceof ZR)return{state:e.target,alt:t.alt,stack:t.stack};if(e instanceof iy){const n=[...t.stack,e.followState];return{state:e.target,alt:t.alt,stack:n}}}function wq(t){for(const e of t.elements)if(e.state.type===qc)return!0;return!1}function bq(t){for(const e of t.elements)if(e.state.type!==qc)return!1;return!0}function Eq(t){if(bq(t))return!0;const e=Dq(t.elements);return Tq(e)&&!Rq(e)}function Dq(t){const e=new Map;for(const n of t){const r=nS(n,!1);let i=e.get(r);i===void 0&&(i={},e.set(r,i)),i[n.alt]=!0}return e}function Tq(t){for(const e of Array.from(t.values()))if(Object.keys(e).length>1)return!0;return!1}function Rq(t){for(const e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var uS;(function(t){function e(n){return typeof n=="string"}t.is=e})(uS||(uS={}));var uy;(function(t){function e(n){return typeof n=="string"}t.is=e})(uy||(uy={}));var lS;(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=e})(lS||(lS={}));var xf;(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=e})(xf||(xf={}));var He;(function(t){function e(r,i){return r===Number.MAX_VALUE&&(r=xf.MAX_VALUE),i===Number.MAX_VALUE&&(i=xf.MAX_VALUE),{line:r,character:i}}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&B.uinteger(i.line)&&B.uinteger(i.character)}t.is=n})(He||(He={}));var Le;(function(t){function e(r,i,s,o){if(B.uinteger(r)&&B.uinteger(i)&&B.uinteger(s)&&B.uinteger(o))return{start:He.create(r,i),end:He.create(s,o)};if(He.is(r)&&He.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${o}]`)}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&He.is(i.start)&&He.is(i.end)}t.is=n})(Le||(Le={}));var If;(function(t){function e(r,i){return{uri:r,range:i}}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&Le.is(i.range)&&(B.string(i.uri)||B.undefined(i.uri))}t.is=n})(If||(If={}));var dS;(function(t){function e(r,i,s,o){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:o}}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&Le.is(i.targetRange)&&B.string(i.targetUri)&&Le.is(i.targetSelectionRange)&&(Le.is(i.originSelectionRange)||B.undefined(i.originSelectionRange))}t.is=n})(dS||(dS={}));var ly;(function(t){function e(r,i,s,o){return{red:r,green:i,blue:s,alpha:o}}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&B.numberRange(i.red,0,1)&&B.numberRange(i.green,0,1)&&B.numberRange(i.blue,0,1)&&B.numberRange(i.alpha,0,1)}t.is=n})(ly||(ly={}));var fS;(function(t){function e(r,i){return{range:r,color:i}}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&Le.is(i.range)&&ly.is(i.color)}t.is=n})(fS||(fS={}));var hS;(function(t){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&B.string(i.label)&&(B.undefined(i.textEdit)||Rn.is(i))&&(B.undefined(i.additionalTextEdits)||B.typedArray(i.additionalTextEdits,Rn.is))}t.is=n})(hS||(hS={}));var pS;(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(pS||(pS={}));var gS;(function(t){function e(r,i,s,o,a,c){const u={startLine:r,endLine:i};return B.defined(s)&&(u.startCharacter=s),B.defined(o)&&(u.endCharacter=o),B.defined(a)&&(u.kind=a),B.defined(c)&&(u.collapsedText=c),u}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&B.uinteger(i.startLine)&&B.uinteger(i.startLine)&&(B.undefined(i.startCharacter)||B.uinteger(i.startCharacter))&&(B.undefined(i.endCharacter)||B.uinteger(i.endCharacter))&&(B.undefined(i.kind)||B.string(i.kind))}t.is=n})(gS||(gS={}));var dy;(function(t){function e(r,i){return{location:r,message:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&If.is(i.location)&&B.string(i.message)}t.is=n})(dy||(dy={}));var jc;(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(jc||(jc={}));var mS;(function(t){t.Unnecessary=1,t.Deprecated=2})(mS||(mS={}));var yS;(function(t){function e(n){const r=n;return B.objectLiteral(r)&&B.string(r.href)}t.is=e})(yS||(yS={}));var Pf;(function(t){function e(r,i,s,o,a,c){let u={range:r,message:i};return B.defined(s)&&(u.severity=s),B.defined(o)&&(u.code=o),B.defined(a)&&(u.source=a),B.defined(c)&&(u.relatedInformation=c),u}t.create=e;function n(r){var i;let s=r;return B.defined(s)&&Le.is(s.range)&&B.string(s.message)&&(B.number(s.severity)||B.undefined(s.severity))&&(B.integer(s.code)||B.string(s.code)||B.undefined(s.code))&&(B.undefined(s.codeDescription)||B.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(B.string(s.source)||B.undefined(s.source))&&(B.undefined(s.relatedInformation)||B.typedArray(s.relatedInformation,dy.is))}t.is=n})(Pf||(Pf={}));var Jo;(function(t){function e(r,i,...s){let o={title:r,command:i};return B.defined(s)&&s.length>0&&(o.arguments=s),o}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.title)&&B.string(i.command)}t.is=n})(Jo||(Jo={}));var Rn;(function(t){function e(s,o){return{range:s,newText:o}}t.replace=e;function n(s,o){return{range:{start:s,end:s},newText:o}}t.insert=n;function r(s){return{range:s,newText:""}}t.del=r;function i(s){const o=s;return B.objectLiteral(o)&&B.string(o.newText)&&Le.is(o.range)}t.is=i})(Rn||(Rn={}));var fy;(function(t){function e(r,i,s){const o={label:r};return i!==void 0&&(o.needsConfirmation=i),s!==void 0&&(o.description=s),o}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&B.string(i.label)&&(B.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(B.string(i.description)||i.description===void 0)}t.is=n})(fy||(fy={}));var Zo;(function(t){function e(n){const r=n;return B.string(r)}t.is=e})(Zo||(Zo={}));var vS;(function(t){function e(s,o,a){return{range:s,newText:o,annotationId:a}}t.replace=e;function n(s,o,a){return{range:{start:s,end:s},newText:o,annotationId:a}}t.insert=n;function r(s,o){return{range:s,newText:"",annotationId:o}}t.del=r;function i(s){const o=s;return Rn.is(o)&&(fy.is(o.annotationId)||Zo.is(o.annotationId))}t.is=i})(vS||(vS={}));var hy;(function(t){function e(r,i){return{textDocument:r,edits:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&vy.is(i.textDocument)&&Array.isArray(i.edits)}t.is=n})(hy||(hy={}));var py;(function(t){function e(r,i,s){let o={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(o.options=i),s!==void 0&&(o.annotationId=s),o}t.create=e;function n(r){let i=r;return i&&i.kind==="create"&&B.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||B.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||B.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Zo.is(i.annotationId))}t.is=n})(py||(py={}));var gy;(function(t){function e(r,i,s,o){let a={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(a.options=s),o!==void 0&&(a.annotationId=o),a}t.create=e;function n(r){let i=r;return i&&i.kind==="rename"&&B.string(i.oldUri)&&B.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||B.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||B.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Zo.is(i.annotationId))}t.is=n})(gy||(gy={}));var my;(function(t){function e(r,i,s){let o={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(o.options=i),s!==void 0&&(o.annotationId=s),o}t.create=e;function n(r){let i=r;return i&&i.kind==="delete"&&B.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||B.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||B.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||Zo.is(i.annotationId))}t.is=n})(my||(my={}));var yy;(function(t){function e(n){let r=n;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>B.string(i.kind)?py.is(i)||gy.is(i)||my.is(i):hy.is(i)))}t.is=e})(yy||(yy={}));var wS;(function(t){function e(r){return{uri:r}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.uri)}t.is=n})(wS||(wS={}));var bS;(function(t){function e(r,i){return{uri:r,version:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.uri)&&B.integer(i.version)}t.is=n})(bS||(bS={}));var vy;(function(t){function e(r,i){return{uri:r,version:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.uri)&&(i.version===null||B.integer(i.version))}t.is=n})(vy||(vy={}));var ES;(function(t){function e(r,i,s,o){return{uri:r,languageId:i,version:s,text:o}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.uri)&&B.string(i.languageId)&&B.integer(i.version)&&B.string(i.text)}t.is=n})(ES||(ES={}));var wy;(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(n){const r=n;return r===t.PlainText||r===t.Markdown}t.is=e})(wy||(wy={}));var Uc;(function(t){function e(n){const r=n;return B.objectLiteral(n)&&wy.is(r.kind)&&B.string(r.value)}t.is=e})(Uc||(Uc={}));var Xn;(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})(Xn||(Xn={}));var Nf;(function(t){t.PlainText=1,t.Snippet=2})(Nf||(Nf={}));var DS;(function(t){t.Deprecated=1})(DS||(DS={}));var TS;(function(t){function e(r,i,s){return{newText:r,insert:i,replace:s}}t.create=e;function n(r){const i=r;return i&&B.string(i.newText)&&Le.is(i.insert)&&Le.is(i.replace)}t.is=n})(TS||(TS={}));var RS;(function(t){t.asIs=1,t.adjustIndentation=2})(RS||(RS={}));var SS;(function(t){function e(n){const r=n;return r&&(B.string(r.detail)||r.detail===void 0)&&(B.string(r.description)||r.description===void 0)}t.is=e})(SS||(SS={}));var kS;(function(t){function e(n){return{label:n}}t.create=e})(kS||(kS={}));var $S;(function(t){function e(n,r){return{items:n||[],isIncomplete:!!r}}t.create=e})($S||($S={}));var Of;(function(t){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}t.fromPlainText=e;function n(r){const i=r;return B.string(i)||B.objectLiteral(i)&&B.string(i.language)&&B.string(i.value)}t.is=n})(Of||(Of={}));var CS;(function(t){function e(n){let r=n;return!!r&&B.objectLiteral(r)&&(Uc.is(r.contents)||Of.is(r.contents)||B.typedArray(r.contents,Of.is))&&(n.range===void 0||Le.is(n.range))}t.is=e})(CS||(CS={}));var _S;(function(t){function e(n,r){return r?{label:n,documentation:r}:{label:n}}t.create=e})(_S||(_S={}));var AS;(function(t){function e(n,r,...i){let s={label:n};return B.defined(r)&&(s.documentation=r),B.defined(i)?s.parameters=i:s.parameters=[],s}t.create=e})(AS||(AS={}));var xS;(function(t){t.Text=1,t.Read=2,t.Write=3})(xS||(xS={}));var IS;(function(t){function e(n,r){let i={range:n};return B.number(r)&&(i.kind=r),i}t.create=e})(IS||(IS={}));var pr;(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})(pr||(pr={}));var PS;(function(t){t.Deprecated=1})(PS||(PS={}));var NS;(function(t){function e(n,r,i,s,o){let a={name:n,kind:r,location:{uri:s,range:i}};return o&&(a.containerName=o),a}t.create=e})(NS||(NS={}));var OS;(function(t){function e(n,r,i,s){return s!==void 0?{name:n,kind:r,location:{uri:i,range:s}}:{name:n,kind:r,location:{uri:i}}}t.create=e})(OS||(OS={}));var FS;(function(t){function e(r,i,s,o,a,c){let u={name:r,detail:i,kind:s,range:o,selectionRange:a};return c!==void 0&&(u.children=c),u}t.create=e;function n(r){let i=r;return i&&B.string(i.name)&&B.number(i.kind)&&Le.is(i.range)&&Le.is(i.selectionRange)&&(i.detail===void 0||B.string(i.detail))&&(i.deprecated===void 0||B.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}t.is=n})(FS||(FS={}));var LS;(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"})(LS||(LS={}));var Ff;(function(t){t.Invoked=1,t.Automatic=2})(Ff||(Ff={}));var MS;(function(t){function e(r,i,s){let o={diagnostics:r};return i!=null&&(o.only=i),s!=null&&(o.triggerKind=s),o}t.create=e;function n(r){let i=r;return B.defined(i)&&B.typedArray(i.diagnostics,Pf.is)&&(i.only===void 0||B.typedArray(i.only,B.string))&&(i.triggerKind===void 0||i.triggerKind===Ff.Invoked||i.triggerKind===Ff.Automatic)}t.is=n})(MS||(MS={}));var zS;(function(t){function e(r,i,s){let o={title:r},a=!0;return typeof i=="string"?(a=!1,o.kind=i):Jo.is(i)?o.command=i:o.edit=i,a&&s!==void 0&&(o.kind=s),o}t.create=e;function n(r){let i=r;return i&&B.string(i.title)&&(i.diagnostics===void 0||B.typedArray(i.diagnostics,Pf.is))&&(i.kind===void 0||B.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Jo.is(i.command))&&(i.isPreferred===void 0||B.boolean(i.isPreferred))&&(i.edit===void 0||yy.is(i.edit))}t.is=n})(zS||(zS={}));var BS;(function(t){function e(r,i){let s={range:r};return B.defined(i)&&(s.data=i),s}t.create=e;function n(r){let i=r;return B.defined(i)&&Le.is(i.range)&&(B.undefined(i.command)||Jo.is(i.command))}t.is=n})(BS||(BS={}));var qS;(function(t){function e(r,i){return{tabSize:r,insertSpaces:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.uinteger(i.tabSize)&&B.boolean(i.insertSpaces)}t.is=n})(qS||(qS={}));var jS;(function(t){function e(r,i,s){return{range:r,target:i,data:s}}t.create=e;function n(r){let i=r;return B.defined(i)&&Le.is(i.range)&&(B.undefined(i.target)||B.string(i.target))}t.is=n})(jS||(jS={}));var US;(function(t){function e(r,i){return{range:r,parent:i}}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&Le.is(i.range)&&(i.parent===void 0||t.is(i.parent))}t.is=n})(US||(US={}));var Ge;(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"})(Ge||(Ge={}));var ft;(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"})(ft||(ft={}));var WS;(function(t){function e(n){const r=n;return B.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}t.is=e})(WS||(WS={}));var GS;(function(t){function e(r,i){return{range:r,text:i}}t.create=e;function n(r){const i=r;return i!=null&&Le.is(i.range)&&B.string(i.text)}t.is=n})(GS||(GS={}));var HS;(function(t){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}t.create=e;function n(r){const i=r;return i!=null&&Le.is(i.range)&&B.boolean(i.caseSensitiveLookup)&&(B.string(i.variableName)||i.variableName===void 0)}t.is=n})(HS||(HS={}));var VS;(function(t){function e(r,i){return{range:r,expression:i}}t.create=e;function n(r){const i=r;return i!=null&&Le.is(i.range)&&(B.string(i.expression)||i.expression===void 0)}t.is=n})(VS||(VS={}));var KS;(function(t){function e(r,i){return{frameId:r,stoppedLocation:i}}t.create=e;function n(r){const i=r;return B.defined(i)&&Le.is(r.stoppedLocation)}t.is=n})(KS||(KS={}));var by;(function(t){t.Type=1,t.Parameter=2;function e(n){return n===1||n===2}t.is=e})(by||(by={}));var Ey;(function(t){function e(r){return{value:r}}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&(i.tooltip===void 0||B.string(i.tooltip)||Uc.is(i.tooltip))&&(i.location===void 0||If.is(i.location))&&(i.command===void 0||Jo.is(i.command))}t.is=n})(Ey||(Ey={}));var YS;(function(t){function e(r,i,s){const o={position:r,label:i};return s!==void 0&&(o.kind=s),o}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&He.is(i.position)&&(B.string(i.label)||B.typedArray(i.label,Ey.is))&&(i.kind===void 0||by.is(i.kind))&&i.textEdits===void 0||B.typedArray(i.textEdits,Rn.is)&&(i.tooltip===void 0||B.string(i.tooltip)||Uc.is(i.tooltip))&&(i.paddingLeft===void 0||B.boolean(i.paddingLeft))&&(i.paddingRight===void 0||B.boolean(i.paddingRight))}t.is=n})(YS||(YS={}));var XS;(function(t){function e(n){return{kind:"snippet",value:n}}t.createSnippet=e})(XS||(XS={}));var JS;(function(t){function e(n,r,i,s){return{insertText:n,filterText:r,range:i,command:s}}t.create=e})(JS||(JS={}));var ZS;(function(t){function e(n){return{items:n}}t.create=e})(ZS||(ZS={}));var QS;(function(t){t.Invoked=0,t.Automatic=1})(QS||(QS={}));var e1;(function(t){function e(n,r){return{range:n,text:r}}t.create=e})(e1||(e1={}));var t1;(function(t){function e(n,r){return{triggerKind:n,selectedCompletionInfo:r}}t.create=e})(t1||(t1={}));var n1;(function(t){function e(n){const r=n;return B.objectLiteral(r)&&uy.is(r.uri)&&B.string(r.name)}t.is=e})(n1||(n1={}));var r1;(function(t){function e(s,o,a,c){return new Sq(s,o,a,c)}t.create=e;function n(s){let o=s;return!!(B.defined(o)&&B.string(o.uri)&&(B.undefined(o.languageId)||B.string(o.languageId))&&B.uinteger(o.lineCount)&&B.func(o.getText)&&B.func(o.positionAt)&&B.func(o.offsetAt))}t.is=n;function r(s,o){let a=s.getText(),c=i(o,(l,d)=>{let f=l.range.start.line-d.range.start.line;return f===0?l.range.start.character-d.range.start.character:f}),u=a.length;for(let l=c.length-1;l>=0;l--){let d=c[l],f=s.offsetAt(d.range.start),h=s.offsetAt(d.range.end);if(h<=u)a=a.substring(0,f)+d.newText+a.substring(h,a.length);else throw new Error("Overlapping edit");u=f}return a}t.applyEdits=r;function i(s,o){if(s.length<=1)return s;const a=s.length/2|0,c=s.slice(0,a),u=s.slice(a);i(c,o),i(u,o);let l=0,d=0,f=0;for(;l<c.length&&d<u.length;)o(c[l],u[d])<=0?s[f++]=c[l++]:s[f++]=u[d++];for(;l<c.length;)s[f++]=c[l++];for(;d<u.length;)s[f++]=u[d++];return s}})(r1||(r1={}));let Sq=class{constructor(e,n,r,i){this._uri=e,this._languageId=n,this._version=r,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 n=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(n,r)}return this._content}update(e,n){this._content=e.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],n=this._content,r=!0;for(let i=0;i<n.length;i++){r&&(e.push(i),r=!1);let s=n.charAt(i);r=s==="\r"||s===`
115
+ `,s==="\r"&&i+1<n.length&&n.charAt(i+1)===`
116
+ `&&i++}r&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return He.create(0,e);for(;r<i;){let o=Math.floor((r+i)/2);n[o]>e?i=o:r=o+1}let s=r-1;return He.create(s,e-n[s])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let r=n[e.line],i=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}};var B;(function(t){const e=Object.prototype.toString;function n(h){return typeof h<"u"}t.defined=n;function r(h){return typeof h>"u"}t.undefined=r;function i(h){return h===!0||h===!1}t.boolean=i;function s(h){return e.call(h)==="[object String]"}t.string=s;function o(h){return e.call(h)==="[object Number]"}t.number=o;function a(h,p,g){return e.call(h)==="[object Number]"&&p<=h&&h<=g}t.numberRange=a;function c(h){return e.call(h)==="[object Number]"&&-2147483648<=h&&h<=2147483647}t.integer=c;function u(h){return e.call(h)==="[object Number]"&&0<=h&&h<=2147483647}t.uinteger=u;function l(h){return e.call(h)==="[object Function]"}t.func=l;function d(h){return h!==null&&typeof h=="object"}t.objectLiteral=d;function f(h,p){return Array.isArray(h)&&h.every(p)}t.typedArray=f})(B||(B={}));class kq{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new s1(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const n=new Ty;return n.grammarSource=e,n.root=this.rootNode,this.current.content.push(n),this.nodeStack.push(n),n}buildLeafNode(e,n){const r=new Dy(e.startOffset,e.image.length,Dd(e),e.tokenType,!1);return r.grammarSource=n,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){const n=e.container;if(n){const r=n.content.indexOf(e);r>=0&&n.content.splice(r,1)}}construct(e){const n=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=n;const r=this.nodeStack.pop();r?.content.length===0&&this.removeNode(r)}addHiddenTokens(e){for(const n of e){const r=new Dy(n.startOffset,n.image.length,Dd(n),n.tokenType,!0);r.root=this.rootNode,this.addHiddenToken(this.rootNode,r)}}addHiddenToken(e,n){const{offset:r,end:i}=n;for(let s=0;s<e.content.length;s++){const o=e.content[s],{offset:a,end:c}=o;if(ri(o)&&r>a&&i<c){this.addHiddenToken(o,n);return}else if(i<=a){e.content.splice(s,0,n);return}}e.content.push(n)}}class i1{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,n;const r=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(n=this.container)===null||n===void 0?void 0:n.astNode;if(!r)throw new Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class Dy extends i1{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,n,r,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=n,this._range=r}}class Ty extends i1{constructor(){super(...arguments),this.content=new yb(this)}get children(){return this.content}get offset(){var e,n;return(n=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&n!==void 0?n:0}get length(){return this.end-this.offset}get end(){var e,n;return(n=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&n!==void 0?n:0}get range(){const e=this.firstNonHiddenNode,n=this.lastNonHiddenNode;if(e&&n){if(this._rangeCache===void 0){const{range:r}=e,{range:i}=n;this._rangeCache={start:r.start,end:i.end.line<r.start.line?r.start:i.end}}return this._rangeCache}else return{start:He.create(0,0),end:He.create(0,0)}}get firstNonHiddenNode(){for(const e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){const n=this.content[e];if(!n.hidden)return n}return this.content[this.content.length-1]}}class yb extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,yb.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,n,...r){return this.addParents(r),super.splice(e,n,...r)}addParents(e){for(const n of e)n.container=this.parent}}class s1 extends Ty{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const Ry=Symbol("Datatype");function Sy(t){return t.$type===Ry}const o1="\u200B",a1=t=>t.endsWith(o1)?t:t+o1;class c1{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const n=this.lexer.definition;this.wrapper=new xq(n,Object.assign(Object.assign({},e.parser.ParserConfig),{errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,n){this.wrapper.wrapOr(e,n)}optional(e,n){this.wrapper.wrapOption(e,n)}many(e,n){this.wrapper.wrapMany(e,n)}atLeastOne(e,n){this.wrapper.wrapAtLeastOne(e,n)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class $q extends c1{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new kq,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,n){const r=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(a1(e.name),this.startImplementation(r,n).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment){if(Ud(e))return Ry;{const n=$s(e);return n??e.name}}}parse(e,n={}){this.nodeBuilder.buildRootNode(e);const r=this.lexer.tokenize(e);this.wrapper.input=r.tokens;const i=n.rule?this.allRules.get(n.rule):this.mainRule;if(!i)throw new Error(n.rule?`No rule found with name '${n.rule}'`:"No main rule available.");const s=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(r.hidden),this.unorderedGroups.clear(),{value:s,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}startImplementation(e,n){return r=>{if(!this.isRecording()){const s={$type:e};this.stack.push(s),e===Ry&&(s.value="")}let i;try{i=n(r)}catch{i=void 0}return!this.isRecording()&&i===void 0&&(i=this.construct()),i}}consume(e,n,r){const i=this.wrapper.wrapConsume(e,n);if(!this.isRecording()&&this.isValidToken(i)){const s=this.nodeBuilder.buildLeafNode(i,r),{assignment:o,isCrossRef:a}=this.getAssignment(r),c=this.current;if(o){const u=Ar(r)?i.image:this.converter.convert(i.image,s);this.assign(o.operator,o.feature,u,s,a)}else if(Sy(c)){let u=i.image;Ar(r)||(u=this.converter.convert(u,s).toString()),c.value+=u}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,n,r,i){let s;this.isRecording()||(s=this.nodeBuilder.buildCompositeNode(r));const o=this.wrapper.wrapSubrule(e,n,i);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(o,r,s)}performSubruleAssignment(e,n,r){const{assignment:i,isCrossRef:s}=this.getAssignment(n);if(i)this.assign(i.operator,i.feature,e,r,s);else if(!i){const o=this.current;if(Sy(o))o.value+=e.toString();else if(typeof e=="object"&&e){const a=e.$type,c=this.assignWithoutOverride(e,o);a&&(c.$type=a);const u=c;this.stack.pop(),this.stack.push(u)}}}action(e,n){if(!this.isRecording()){let r=this.current;if(n.feature&&n.operator){r=this.construct(),this.nodeBuilder.buildCompositeNode(n).content.push(r.$cstNode);const s={$type:e};this.stack.push(s),this.assign(n.operator,n.feature,r,r.$cstNode,!1)}else r.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return Xg(e),this.nodeBuilder.construct(e),this.stack.pop(),Sy(e)?this.converter.convert(e.value,e.$cstNode):(Qg(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const n=vn(e,_r);this.assignmentMap.set(e,{assignment:n,isCrossRef:n?sc(n.terminal):!1})}return this.assignmentMap.get(e)}assign(e,n,r,i,s){const o=this.current;let a;switch(s&&typeof r=="string"?a=this.linker.buildReference(o,n,i,r):a=r,e){case"=":{o[n]=a;break}case"?=":{o[n]=!0;break}case"+=":Array.isArray(o[n])||(o[n]=[]),o[n].push(a)}}assignWithoutOverride(e,n){for(const[i,s]of Object.entries(n)){const o=e[i];o===void 0?e[i]=s:Array.isArray(o)&&Array.isArray(s)&&(s.push(...o),e[i]=s)}const r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class Cq{buildMismatchTokenMessage(e){return Ko.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Ko.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Ko.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Ko.buildEarlyExitMessage(e)}}class u1 extends Cq{buildMismatchTokenMessage({expected:e,actual:n}){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 \`${n.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class _q extends c1{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const n=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=n.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,n){const r=this.wrapper.DEFINE_RULE(a1(e.name),this.startImplementation(n).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return n=>{const r=this.keepStackSize();try{e(n)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,n,r){this.wrapper.wrapConsume(e,n),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,n,r,i){this.before(r),this.wrapper.wrapSubrule(e,n,i),this.after(r)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const n=this.elementStack.lastIndexOf(e);n>=0&&this.elementStack.splice(n)}}get currIdx(){return this.wrapper.currIdx}}const Aq={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new u1};class xq extends M5{constructor(e,n){const r=n&&"maxLookahead"in n;super(e,Object.assign(Object.assign(Object.assign({},Aq),{lookaheadStrategy:r?new ey({maxLookahead:n.maxLookahead}):new sq}),n))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,n){return this.RULE(e,n)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,n){return this.consume(e,n)}wrapSubrule(e,n,r){return this.subrule(e,n,{ARGS:[r]})}wrapOr(e,n){this.or(e,n)}wrapOption(e,n){this.option(e,n)}wrapMany(e,n){this.many(e,n)}wrapAtLeastOne(e,n){this.atLeastOne(e,n)}}function l1(t,e,n){return Iq({parser:e,tokens:n,ruleNames:new Map},t),e}function Iq(t,e){const n=im(e,!1),r=Xe(e.rules).filter(Kt).filter(i=>n.has(i));for(const i of r){const s=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});t.parser.rule(i,Fs(s,i.definition))}}function Fs(t,e,n=!1){let r;if(Ar(e))r=zq(t,e);else if(ks(e))r=Pq(t,e);else if(_r(e))r=Fs(t,e.terminal);else if(sc(e))r=d1(t,e);else if(si(e))r=Nq(t,e);else if(Kg(e))r=Fq(t,e);else if(Yg(e))r=Lq(t,e);else if(Fi(e))r=Mq(t,e);else if(kL(e)){const i=t.consume++;r=()=>t.parser.consume(i,Bi,e)}else throw new pD(e.$cstNode,`Unexpected element type: ${e.$type}`);return f1(t,n?void 0:Lf(e),r,e.cardinality)}function Pq(t,e){const n=Ec(e);return()=>t.parser.action(n,e)}function Nq(t,e){const n=e.rule.ref;if(Kt(n)){const r=t.subrule++,i=e.arguments.length>0?Oq(n,e.arguments):()=>({});return s=>t.parser.subrule(r,h1(t,n),e,i(s))}else if(ii(n)){const r=t.consume++,i=ky(t,n.name);return()=>t.parser.consume(r,i,e)}else if(n)Sd();else throw new pD(e.$cstNode,`Undefined rule type: ${e.$type}`)}function Oq(t,e){const n=e.map(r=>gi(r.value));return r=>{const i={};for(let s=0;s<n.length;s++){const o=t.parameters[s],a=n[s];i[o.name]=a(r)}return i}}function gi(t){if(wL(t)){const e=gi(t.left),n=gi(t.right);return r=>e(r)||n(r)}else if(vL(t)){const e=gi(t.left),n=gi(t.right);return r=>e(r)&&n(r)}else if(bL(t)){const e=gi(t.value);return n=>!e(n)}else if(EL(t)){const e=t.parameter.ref.name;return n=>n!==void 0&&n[e]===!0}else if(yL(t)){const e=!!t.true;return()=>e}Sd()}function Fq(t,e){if(e.elements.length===1)return Fs(t,e.elements[0]);{const n=[];for(const i of e.elements){const s={ALT:Fs(t,i,!0)},o=Lf(i);o&&(s.GATE=gi(o)),n.push(s)}const r=t.or++;return i=>t.parser.alternatives(r,n.map(s=>{const o={ALT:()=>s.ALT(i)},a=s.GATE;return a&&(o.GATE=()=>a(i)),o}))}}function Lq(t,e){if(e.elements.length===1)return Fs(t,e.elements[0]);const n=[];for(const a of e.elements){const c={ALT:Fs(t,a,!0)},u=Lf(a);u&&(c.GATE=gi(u)),n.push(c)}const r=t.or++,i=(a,c)=>{const u=c.getRuleStack().join("-");return`uGroup_${a}_${u}`},s=a=>t.parser.alternatives(r,n.map((c,u)=>{const l={ALT:()=>!0},d=t.parser;l.ALT=()=>{if(c.ALT(a),!d.isRecording()){const h=i(r,d);d.unorderedGroups.get(h)||d.unorderedGroups.set(h,[]);const p=d.unorderedGroups.get(h);typeof p?.[u]>"u"&&(p[u]=!0)}};const f=c.GATE;return f?l.GATE=()=>f(a):l.GATE=()=>{const h=d.unorderedGroups.get(i(r,d));return!h?.[u]},l})),o=f1(t,Lf(e),s,"*");return a=>{o(a),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(r,t.parser))}}function Mq(t,e){const n=e.elements.map(r=>Fs(t,r));return r=>n.forEach(i=>i(r))}function Lf(t){if(Fi(t))return t.guardCondition}function d1(t,e,n=e.terminal){if(n)if(si(n)&&Kt(n.rule.ref)){const r=t.subrule++;return i=>t.parser.subrule(r,h1(t,n.rule.ref),e,i)}else if(si(n)&&ii(n.rule.ref)){const r=t.consume++,i=ky(t,n.rule.ref.name);return()=>t.parser.consume(r,i,e)}else if(Ar(n)){const r=t.consume++,i=ky(t,n.value);return()=>t.parser.consume(r,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);const r=um(e.type.ref),i=r?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Ec(e.type.ref));return d1(t,e,i)}}function zq(t,e){const n=t.consume++,r=t.tokens[e.value];if(!r)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(n,r,e)}function f1(t,e,n,r){const i=e&&gi(e);if(!r)if(i){const s=t.or++;return o=>t.parser.alternatives(s,[{ALT:()=>n(o),GATE:()=>i(o)},{ALT:KR(),GATE:()=>!i(o)}])}else return n;if(r==="*"){const s=t.many++;return o=>t.parser.many(s,{DEF:()=>n(o),GATE:i?()=>i(o):void 0})}else if(r==="+"){const s=t.many++;if(i){const o=t.or++;return a=>t.parser.alternatives(o,[{ALT:()=>t.parser.atLeastOne(s,{DEF:()=>n(a)}),GATE:()=>i(a)},{ALT:KR(),GATE:()=>!i(a)}])}else return o=>t.parser.atLeastOne(s,{DEF:()=>n(o)})}else if(r==="?"){const s=t.optional++;return o=>t.parser.optional(s,{DEF:()=>n(o),GATE:i?()=>i(o):void 0})}else Sd()}function h1(t,e){const n=Bq(t,e),r=t.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function Bq(t,e){if(Kt(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let n=e,r=n.$container,i=e.$type;for(;!Kt(r);)(Fi(r)||Kg(r)||Yg(r))&&(i=r.elements.indexOf(n).toString()+":"+i),n=r,r=r.$container;return i=r.name+":"+i,t.ruleNames.set(e,i),i}}function ky(t,e){const n=t.tokens[e];if(!n)throw new Error(`Token "${e}" not found."`);return n}function qq(t){const e=t.Grammar,n=t.parser.Lexer,r=new _q(t);return l1(e,r,n.definition),r.finalize(),r}function jq(t){const e=Uq(t);return e.finalize(),e}function Uq(t){const e=t.Grammar,n=t.parser.Lexer,r=new $q(t);return l1(e,r,n.definition)}class Wq{constructor(){this.diagnostics=[]}buildTokens(e,n){const r=Xe(im(e,!1)),i=this.buildTerminalTokens(r),s=this.buildKeywordTokens(r,i,n);return i.forEach(o=>{const a=o.PATTERN;typeof a=="object"&&a&&"test"in a&&rm(a)?s.unshift(o):s.push(o)}),s}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(ii).filter(n=>!n.fragment).map(n=>this.buildTerminalToken(n)).toArray()}buildTerminalToken(e){const n=Dc(e),r=this.requiresCustomPattern(n)?this.regexPatternFunction(n):n,i={name:e.name,PATTERN:r,LINE_BREAKS:!0};return e.hidden&&(i.GROUP=rm(n)?Tn.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const n=new RegExp(e,e.flags+"y");return(r,i)=>(n.lastIndex=i,n.exec(r))}buildKeywordTokens(e,n,r){return e.filter(Kt).flatMap(i=>xr(i).filter(Ar)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,n,!!r?.caseInsensitive))}buildKeywordToken(e,n,r){return{name:e.value,PATTERN:this.buildKeywordPattern(e,r),LONGER_ALT:this.findLongerAlt(e,n)}}buildKeywordPattern(e,n){return n?new RegExp(qL(e.value)):e.value}findLongerAlt(e,n){return n.reduce((r,i)=>{const s=i?.PATTERN;return s?.source&&jL("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class Gq{convert(e,n){let r=n.grammarSource;if(sc(r)&&(r=sm(r)),si(r)){const i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,n)}return e}runConverter(e,n,r){var i;switch(e.name.toUpperCase()){case"INT":return mi.convertInt(n);case"STRING":return mi.convertString(n);case"ID":return mi.convertID(n)}switch((i=OD(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return mi.convertNumber(n);case"boolean":return mi.convertBoolean(n);case"bigint":return mi.convertBigint(n);case"date":return mi.convertDate(n);default:return n}}}var mi;(function(t){function e(u){let l="";for(let d=1;d<u.length-1;d++){const f=u.charAt(d);if(f==="\\"){const h=u.charAt(++d);l+=n(h)}else l+=f}return l}t.convertString=e;function n(u){switch(u){case"b":return"\b";case"f":return"\f";case"n":return`
117
+ `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return u}}function r(u){return u.charAt(0)==="^"?u.substring(1):u}t.convertID=r;function i(u){return parseInt(u)}t.convertInt=i;function s(u){return BigInt(u)}t.convertBigint=s;function o(u){return new Date(u)}t.convertDate=o;function a(u){return Number(u)}t.convertNumber=a;function c(u){return u.toLowerCase()==="true"}t.convertBoolean=c})(mi||(mi={}));var Ls={},Mf={},p1;function Ms(){if(p1)return Mf;p1=1,Object.defineProperty(Mf,"__esModule",{value:!0});let t;function e(){if(t===void 0)throw new Error("No runtime abstraction layer installed");return t}return function(n){function r(i){if(i===void 0)throw new Error("No runtime abstraction layer provided");t=i}n.install=r}(e||(e={})),Mf.default=e,Mf}var Wt={},g1;function Wc(){if(g1)return Wt;g1=1,Object.defineProperty(Wt,"__esModule",{value:!0}),Wt.stringArray=Wt.array=Wt.func=Wt.error=Wt.number=Wt.string=Wt.boolean=void 0;function t(a){return a===!0||a===!1}Wt.boolean=t;function e(a){return typeof a=="string"||a instanceof String}Wt.string=e;function n(a){return typeof a=="number"||a instanceof Number}Wt.number=n;function r(a){return a instanceof Error}Wt.error=r;function i(a){return typeof a=="function"}Wt.func=i;function s(a){return Array.isArray(a)}Wt.array=s;function o(a){return s(a)&&a.every(c=>e(c))}return Wt.stringArray=o,Wt}var zs={},m1;function Qo(){if(m1)return zs;m1=1,Object.defineProperty(zs,"__esModule",{value:!0}),zs.Emitter=zs.Event=void 0;const t=Ms();var e;(function(i){const s={dispose(){}};i.None=function(){return s}})(e||(zs.Event=e={}));class n{add(s,o=null,a){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(o),Array.isArray(a)&&a.push({dispose:()=>this.remove(s,o)})}remove(s,o=null){if(!this._callbacks)return;let a=!1;for(let c=0,u=this._callbacks.length;c<u;c++)if(this._callbacks[c]===s)if(this._contexts[c]===o){this._callbacks.splice(c,1),this._contexts.splice(c,1);return}else a=!0;if(a)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const o=[],a=this._callbacks.slice(0),c=this._contexts.slice(0);for(let u=0,l=a.length;u<l;u++)try{o.push(a[u].apply(c[u],s))}catch(d){(0,t.default)().console.error(d)}return o}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class r{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,o,a)=>{this._callbacks||(this._callbacks=new n),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,o);const c={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,o),c.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(a)&&a.push(c),c}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return zs.Emitter=r,r._noop=function(){},zs}var y1;function zf(){if(y1)return Ls;y1=1,Object.defineProperty(Ls,"__esModule",{value:!0}),Ls.CancellationTokenSource=Ls.CancellationToken=void 0;const t=Ms(),e=Wc(),n=Qo();var r;(function(a){a.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),a.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:n.Event.None});function c(u){const l=u;return l&&(l===a.None||l===a.Cancelled||e.boolean(l.isCancellationRequested)&&!!l.onCancellationRequested)}a.is=c})(r||(Ls.CancellationToken=r={}));const i=Object.freeze(function(a,c){const u=(0,t.default)().timer.setTimeout(a.bind(c),0);return{dispose(){u.dispose()}}});class s{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?i:(this._emitter||(this._emitter=new n.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class o{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=r.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=r.None}}return Ls.CancellationTokenSource=o,Ls}var ct=zf();function Hq(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}let v1=0,Vq=10;const Bf=Symbol("OperationCancelled");function qf(t){return t===Bf}async function Mt(t){if(t===ct.CancellationToken.None)return;const e=Date.now();if(e-v1>=Vq&&(v1=e,await Hq()),t.isCancellationRequested)throw Bf}class $y{constructor(){this.promise=new Promise((e,n)=>{this.resolve=r=>(e(r),this),this.reject=r=>(n(r),this)})}}class td{constructor(e,n,r,i){this._uri=e,this._languageId=n,this._version=r,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){const n=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(n,r)}return this._content}update(e,n){for(let r of e)if(td.isIncremental(r)){const i=b1(r.range),s=this.offsetAt(i.start),o=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(o,this._content.length);const a=Math.max(i.start.line,0),c=Math.max(i.end.line,0);let u=this._lineOffsets;const l=w1(r.text,!1,s);if(c-a===l.length)for(let f=0,h=l.length;f<h;f++)u[f+a+1]=l[f];else l.length<1e4?u.splice(a+1,c-a,...l):this._lineOffsets=u=u.slice(0,a+1).concat(l,u.slice(c+1));const d=r.text.length-(o-s);if(d!==0)for(let f=a+1+l.length,h=u.length;f<h;f++)u[f]=u[f]+d}else if(td.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=w1(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return{line:0,character:e};for(;r<i;){let o=Math.floor((r+i)/2);n[o]>e?i=o:r=o+1}let s=r-1;return{line:s,character:e-n[s]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let r=n[e.line],i=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}}var jf;(function(t){function e(i,s,o,a){return new td(i,s,o,a)}t.create=e;function n(i,s,o){if(i instanceof td)return i.update(s,o),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function r(i,s){let o=i.getText(),a=Cy(s.map(Kq),(l,d)=>{let f=l.range.start.line-d.range.start.line;return f===0?l.range.start.character-d.range.start.character:f}),c=0;const u=[];for(const l of a){let d=i.offsetAt(l.range.start);if(d<c)throw new Error("Overlapping edit");d>c&&u.push(o.substring(c,d)),l.newText.length&&u.push(l.newText),c=i.offsetAt(l.range.end)}return u.push(o.substr(c)),u.join("")}t.applyEdits=r})(jf||(jf={}));function Cy(t,e){if(t.length<=1)return t;const n=t.length/2|0,r=t.slice(0,n),i=t.slice(n);Cy(r,e),Cy(i,e);let s=0,o=0,a=0;for(;s<r.length&&o<i.length;)e(r[s],i[o])<=0?t[a++]=r[s++]:t[a++]=i[o++];for(;s<r.length;)t[a++]=r[s++];for(;o<i.length;)t[a++]=i[o++];return t}function w1(t,e,n=0){const r=e?[n]:[];for(let i=0;i<t.length;i++){let s=t.charCodeAt(i);(s===13||s===10)&&(s===13&&i+1<t.length&&t.charCodeAt(i+1)===10&&i++,r.push(n+i+1))}return r}function b1(t){const e=t.start,n=t.end;return e.line>n.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function Kq(t){const e=b1(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var E1;(()=>{var t={470:i=>{function s(c){if(typeof c!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(c))}function o(c,u){for(var l,d="",f=0,h=-1,p=0,g=0;g<=c.length;++g){if(g<c.length)l=c.charCodeAt(g);else{if(l===47)break;l=47}if(l===47){if(!(h===g-1||p===1))if(h!==g-1&&p===2){if(d.length<2||f!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){var v=d.lastIndexOf("/");if(v!==d.length-1){v===-1?(d="",f=0):f=(d=d.slice(0,v)).length-1-d.lastIndexOf("/"),h=g,p=0;continue}}else if(d.length===2||d.length===1){d="",f=0,h=g,p=0;continue}}u&&(d.length>0?d+="/..":d="..",f=2)}else d.length>0?d+="/"+c.slice(h+1,g):d=c.slice(h+1,g),f=g-h-1;h=g,p=0}else l===46&&p!==-1?++p:p=-1}return d}var a={resolve:function(){for(var c,u="",l=!1,d=arguments.length-1;d>=-1&&!l;d--){var f;d>=0?f=arguments[d]:(c===void 0&&(c=process.cwd()),f=c),s(f),f.length!==0&&(u=f+"/"+u,l=f.charCodeAt(0)===47)}return u=o(u,!l),l?u.length>0?"/"+u:"/":u.length>0?u:"."},normalize:function(c){if(s(c),c.length===0)return".";var u=c.charCodeAt(0)===47,l=c.charCodeAt(c.length-1)===47;return(c=o(c,!u)).length!==0||u||(c="."),c.length>0&&l&&(c+="/"),u?"/"+c:c},isAbsolute:function(c){return s(c),c.length>0&&c.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var c,u=0;u<arguments.length;++u){var l=arguments[u];s(l),l.length>0&&(c===void 0?c=l:c+="/"+l)}return c===void 0?".":a.normalize(c)},relative:function(c,u){if(s(c),s(u),c===u||(c=a.resolve(c))===(u=a.resolve(u)))return"";for(var l=1;l<c.length&&c.charCodeAt(l)===47;++l);for(var d=c.length,f=d-l,h=1;h<u.length&&u.charCodeAt(h)===47;++h);for(var p=u.length-h,g=f<p?f:p,v=-1,m=0;m<=g;++m){if(m===g){if(p>g){if(u.charCodeAt(h+m)===47)return u.slice(h+m+1);if(m===0)return u.slice(h+m)}else f>g&&(c.charCodeAt(l+m)===47?v=m:m===0&&(v=0));break}var w=c.charCodeAt(l+m);if(w!==u.charCodeAt(h+m))break;w===47&&(v=m)}var E="";for(m=l+v+1;m<=d;++m)m!==d&&c.charCodeAt(m)!==47||(E.length===0?E+="..":E+="/..");return E.length>0?E+u.slice(h+v):(h+=v,u.charCodeAt(h)===47&&++h,u.slice(h))},_makeLong:function(c){return c},dirname:function(c){if(s(c),c.length===0)return".";for(var u=c.charCodeAt(0),l=u===47,d=-1,f=!0,h=c.length-1;h>=1;--h)if((u=c.charCodeAt(h))===47){if(!f){d=h;break}}else f=!1;return d===-1?l?"/":".":l&&d===1?"//":c.slice(0,d)},basename:function(c,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');s(c);var l,d=0,f=-1,h=!0;if(u!==void 0&&u.length>0&&u.length<=c.length){if(u.length===c.length&&u===c)return"";var p=u.length-1,g=-1;for(l=c.length-1;l>=0;--l){var v=c.charCodeAt(l);if(v===47){if(!h){d=l+1;break}}else g===-1&&(h=!1,g=l+1),p>=0&&(v===u.charCodeAt(p)?--p==-1&&(f=l):(p=-1,f=g))}return d===f?f=g:f===-1&&(f=c.length),c.slice(d,f)}for(l=c.length-1;l>=0;--l)if(c.charCodeAt(l)===47){if(!h){d=l+1;break}}else f===-1&&(h=!1,f=l+1);return f===-1?"":c.slice(d,f)},extname:function(c){s(c);for(var u=-1,l=0,d=-1,f=!0,h=0,p=c.length-1;p>=0;--p){var g=c.charCodeAt(p);if(g!==47)d===-1&&(f=!1,d=p+1),g===46?u===-1?u=p:h!==1&&(h=1):u!==-1&&(h=-1);else if(!f){l=p+1;break}}return u===-1||d===-1||h===0||h===1&&u===d-1&&u===l+1?"":c.slice(u,d)},format:function(c){if(c===null||typeof c!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof c);return function(u,l){var d=l.dir||l.root,f=l.base||(l.name||"")+(l.ext||"");return d?d===l.root?d+f:d+"/"+f:f}(0,c)},parse:function(c){s(c);var u={root:"",dir:"",base:"",ext:"",name:""};if(c.length===0)return u;var l,d=c.charCodeAt(0),f=d===47;f?(u.root="/",l=1):l=0;for(var h=-1,p=0,g=-1,v=!0,m=c.length-1,w=0;m>=l;--m)if((d=c.charCodeAt(m))!==47)g===-1&&(v=!1,g=m+1),d===46?h===-1?h=m:w!==1&&(w=1):h!==-1&&(w=-1);else if(!v){p=m+1;break}return h===-1||g===-1||w===0||w===1&&h===g-1&&h===p+1?g!==-1&&(u.base=u.name=p===0&&f?c.slice(1,g):c.slice(p,g)):(p===0&&f?(u.name=c.slice(1,h),u.base=c.slice(1,g)):(u.name=c.slice(p,h),u.base=c.slice(p,g)),u.ext=c.slice(h,g)),p>0?u.dir=c.slice(0,p-1):f&&(u.dir="/"),u},sep:"/",delimiter:":",win32:null,posix:null};a.posix=a,i.exports=a}},e={};function n(i){var s=e[i];if(s!==void 0)return s.exports;var o=e[i]={exports:{}};return t[i](o,o.exports,n),o.exports}n.d=(i,s)=>{for(var o in s)n.o(s,o)&&!n.o(i,o)&&Object.defineProperty(i,o,{enumerable:!0,get:s[o]})},n.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),n.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var r={};(()=>{let i;n.r(r),n.d(r,{URI:()=>f,Utils:()=>N}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,o=/^\//,a=/^\/\//;function c(C,D){if(!C.scheme&&D)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${C.authority}", path: "${C.path}", query: "${C.query}", fragment: "${C.fragment}"}`);if(C.scheme&&!s.test(C.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(C.path){if(C.authority){if(!o.test(C.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(a.test(C.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const u="",l="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{static isUri(D){return D instanceof f||!!D&&typeof D.authority=="string"&&typeof D.fragment=="string"&&typeof D.path=="string"&&typeof D.query=="string"&&typeof D.scheme=="string"&&typeof D.fsPath=="string"&&typeof D.with=="function"&&typeof D.toString=="function"}scheme;authority;path;query;fragment;constructor(D,R,L,G,V,Z=!1){typeof D=="object"?(this.scheme=D.scheme||u,this.authority=D.authority||u,this.path=D.path||u,this.query=D.query||u,this.fragment=D.fragment||u):(this.scheme=function(Ne,se){return Ne||se?Ne:"file"}(D,Z),this.authority=R||u,this.path=function(Ne,se){switch(Ne){case"https":case"http":case"file":se?se[0]!==l&&(se=l+se):se=l}return se}(this.scheme,L||u),this.query=G||u,this.fragment=V||u,c(this,Z))}get fsPath(){return w(this)}with(D){if(!D)return this;let{scheme:R,authority:L,path:G,query:V,fragment:Z}=D;return R===void 0?R=this.scheme:R===null&&(R=u),L===void 0?L=this.authority:L===null&&(L=u),G===void 0?G=this.path:G===null&&(G=u),V===void 0?V=this.query:V===null&&(V=u),Z===void 0?Z=this.fragment:Z===null&&(Z=u),R===this.scheme&&L===this.authority&&G===this.path&&V===this.query&&Z===this.fragment?this:new p(R,L,G,V,Z)}static parse(D,R=!1){const L=d.exec(D);return L?new p(L[2]||u,I(L[4]||u),I(L[5]||u),I(L[7]||u),I(L[9]||u),R):new p(u,u,u,u,u)}static file(D){let R=u;if(i&&(D=D.replace(/\\/g,l)),D[0]===l&&D[1]===l){const L=D.indexOf(l,2);L===-1?(R=D.substring(2),D=l):(R=D.substring(2,L),D=D.substring(L)||l)}return new p("file",R,D,u,u)}static from(D){const R=new p(D.scheme,D.authority,D.path,D.query,D.fragment);return c(R,!0),R}toString(D=!1){return E(this,D)}toJSON(){return this}static revive(D){if(D){if(D instanceof f)return D;{const R=new p(D);return R._formatted=D.external,R._fsPath=D._sep===h?D.fsPath:null,R}}return D}}const h=i?1:void 0;class p extends f{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=w(this)),this._fsPath}toString(D=!1){return D?E(this,!0):(this._formatted||(this._formatted=E(this,!1)),this._formatted)}toJSON(){const D={$mid:1};return this._fsPath&&(D.fsPath=this._fsPath,D._sep=h),this._formatted&&(D.external=this._formatted),this.path&&(D.path=this.path),this.scheme&&(D.scheme=this.scheme),this.authority&&(D.authority=this.authority),this.query&&(D.query=this.query),this.fragment&&(D.fragment=this.fragment),D}}const g={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(C,D,R){let L,G=-1;for(let V=0;V<C.length;V++){const Z=C.charCodeAt(V);if(Z>=97&&Z<=122||Z>=65&&Z<=90||Z>=48&&Z<=57||Z===45||Z===46||Z===95||Z===126||D&&Z===47||R&&Z===91||R&&Z===93||R&&Z===58)G!==-1&&(L+=encodeURIComponent(C.substring(G,V)),G=-1),L!==void 0&&(L+=C.charAt(V));else{L===void 0&&(L=C.substr(0,V));const Ne=g[Z];Ne!==void 0?(G!==-1&&(L+=encodeURIComponent(C.substring(G,V)),G=-1),L+=Ne):G===-1&&(G=V)}}return G!==-1&&(L+=encodeURIComponent(C.substring(G))),L!==void 0?L:C}function m(C){let D;for(let R=0;R<C.length;R++){const L=C.charCodeAt(R);L===35||L===63?(D===void 0&&(D=C.substr(0,R)),D+=g[L]):D!==void 0&&(D+=C[R])}return D!==void 0?D:C}function w(C,D){let R;return R=C.authority&&C.path.length>1&&C.scheme==="file"?`//${C.authority}${C.path}`:C.path.charCodeAt(0)===47&&(C.path.charCodeAt(1)>=65&&C.path.charCodeAt(1)<=90||C.path.charCodeAt(1)>=97&&C.path.charCodeAt(1)<=122)&&C.path.charCodeAt(2)===58?C.path[1].toLowerCase()+C.path.substr(2):C.path,i&&(R=R.replace(/\//g,"\\")),R}function E(C,D){const R=D?m:v;let L="",{scheme:G,authority:V,path:Z,query:Ne,fragment:se}=C;if(G&&(L+=G,L+=":"),(V||G==="file")&&(L+=l,L+=l),V){let K=V.indexOf("@");if(K!==-1){const Te=V.substr(0,K);V=V.substr(K+1),K=Te.lastIndexOf(":"),K===-1?L+=R(Te,!1,!1):(L+=R(Te.substr(0,K),!1,!1),L+=":",L+=R(Te.substr(K+1),!1,!0)),L+="@"}V=V.toLowerCase(),K=V.lastIndexOf(":"),K===-1?L+=R(V,!1,!0):(L+=R(V.substr(0,K),!1,!0),L+=V.substr(K))}if(Z){if(Z.length>=3&&Z.charCodeAt(0)===47&&Z.charCodeAt(2)===58){const K=Z.charCodeAt(1);K>=65&&K<=90&&(Z=`/${String.fromCharCode(K+32)}:${Z.substr(3)}`)}else if(Z.length>=2&&Z.charCodeAt(1)===58){const K=Z.charCodeAt(0);K>=65&&K<=90&&(Z=`${String.fromCharCode(K+32)}:${Z.substr(2)}`)}L+=R(Z,!0,!1)}return Ne&&(L+="?",L+=R(Ne,!1,!1)),se&&(L+="#",L+=D?se:v(se,!1,!1)),L}function k(C){try{return decodeURIComponent(C)}catch{return C.length>3?C.substr(0,3)+k(C.substr(3)):C}}const A=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function I(C){return C.match(A)?C.replace(A,D=>k(D)):C}var x=n(470);const _=x.posix||x,P="/";var N;(function(C){C.joinPath=function(D,...R){return D.with({path:_.join(D.path,...R)})},C.resolvePath=function(D,...R){let L=D.path,G=!1;L[0]!==P&&(L=P+L,G=!0);let V=_.resolve(L,...R);return G&&V[0]===P&&!D.authority&&(V=V.substring(1)),D.with({path:V})},C.dirname=function(D){if(D.path.length===0||D.path===P)return D;let R=_.dirname(D.path);return R.length===1&&R.charCodeAt(0)===46&&(R=""),D.with({path:R})},C.basename=function(D){return _.basename(D.path)},C.extname=function(D){return _.extname(D.path)}})(N||(N={}))})(),E1=r})();const{URI:Yt,Utils:Gc}=E1;var Et;(function(t){t.basename=Gc.basename,t.dirname=Gc.dirname,t.extname=Gc.extname,t.joinPath=Gc.joinPath,t.resolvePath=Gc.resolvePath;function e(i,s){return i?.toString()===s?.toString()}t.equals=e;function n(i,s){const o=typeof i=="string"?i:i.path,a=typeof s=="string"?s:s.path,c=o.split("/").filter(h=>h.length>0),u=a.split("/").filter(h=>h.length>0);let l=0;for(;l<c.length&&c[l]===u[l];l++);const d="../".repeat(c.length-l),f=u.slice(l).join("/");return d+f}t.relative=n;function r(i){return Yt.parse(i.toString()).toString()}t.normalize=r})(Et||(Et={}));var Ve;(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"})(Ve||(Ve={}));class Yq{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,n=ct.CancellationToken.None){const r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,n)}fromTextDocument(e,n,r){return n=n??Yt.parse(e.uri),ct.CancellationToken.is(r)?this.createAsync(n,e,r):this.create(n,e,r)}fromString(e,n,r){return ct.CancellationToken.is(r)?this.createAsync(n,e,r):this.create(n,e,r)}fromModel(e,n){return this.create(n,{$model:e})}create(e,n,r){if(typeof n=="string"){const i=this.parse(e,n,r);return this.createLangiumDocument(i,e,void 0,n)}else if("$model"in n){const i={value:n.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{const i=this.parse(e,n.getText(),r);return this.createLangiumDocument(i,e,n)}}async createAsync(e,n,r){if(typeof n=="string"){const i=await this.parseAsync(e,n,r);return this.createLangiumDocument(i,e,void 0,n)}else{const i=await this.parseAsync(e,n.getText(),r);return this.createLangiumDocument(i,e,n)}}createLangiumDocument(e,n,r,i){let s;if(r)s={parseResult:e,uri:n,state:Ve.Parsed,references:[],textDocument:r};else{const o=this.createTextDocumentGetter(n,i);s={parseResult:e,uri:n,state:Ve.Parsed,references:[],get textDocument(){return o()}}}return e.value.$document=s,s}async update(e,n){var r,i;const s=(r=e.parseResult.value.$cstNode)===null||r===void 0?void 0:r.root.fullText,o=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),a=o?o.getText():await this.fileSystemProvider.readFile(e.uri);if(o)Object.defineProperty(e,"textDocument",{value:o});else{const c=this.createTextDocumentGetter(e.uri,a);Object.defineProperty(e,"textDocument",{get:c})}return s!==a&&(e.parseResult=await this.parseAsync(e.uri,a,n),e.parseResult.value.$document=e),e.state=Ve.Parsed,e}parse(e,n,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(n,r)}parseAsync(e,n,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(n,r)}createTextDocumentGetter(e,n){const r=this.serviceRegistry;let i;return()=>i??(i=jf.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,n??""))}}class Xq{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return Xe(this.documentMap.values())}addDocument(e){const n=e.uri.toString();if(this.documentMap.has(n))throw new Error(`A document with the URI '${n}' is already present.`);this.documentMap.set(n,e)}getDocument(e){const n=e.toString();return this.documentMap.get(n)}async getOrCreateDocument(e,n){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,n),this.addDocument(r),r)}createDocument(e,n,r){if(r)return this.langiumDocumentFactory.fromString(n,e,r).then(i=>(this.addDocument(i),i));{const i=this.langiumDocumentFactory.fromString(n,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const n=e.toString(),r=this.documentMap.get(n);return r&&(this.serviceRegistry.getServices(e).references.Linker.unlink(r),r.state=Ve.Changed,r.precomputedScopes=void 0,r.diagnostics=void 0),r}deleteDocument(e){const n=e.toString(),r=this.documentMap.get(n);return r&&(r.state=Ve.Changed,this.documentMap.delete(n)),r}}const _y=Symbol("ref_resolving");class Jq{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,n=ct.CancellationToken.None){for(const r of oi(e.parseResult.value))await Mt(n),Od(r).forEach(i=>this.doLink(i,e))}doLink(e,n){var r;const i=e.reference;if(i._ref===void 0){i._ref=_y;try{const s=this.getCandidate(e);if(bd(s))i._ref=s;else if(i._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){const o=this.loadAstNode(s);i._ref=o??this.createLinkingError(e,s)}else i._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${i.$refText}':`,s);const o=(r=s.message)!==null&&r!==void 0?r:String(s);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${o}`})}n.references.push(i)}}unlink(e){for(const n of e.references)delete n._ref,delete n._nodeDescription;e.references=[]}getCandidate(e){const r=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return r??this.createLinkingError(e)}buildReference(e,n,r,i){const s=this,o={$refNode:r,$refText:i,get ref(){var a;if(yt(this._ref))return this._ref;if(dL(this._nodeDescription)){const c=s.loadAstNode(this._nodeDescription);this._ref=c??s.createLinkingError({reference:o,container:e,property:n},this._nodeDescription)}else if(this._ref===void 0){this._ref=_y;const c=Nd(e).$document,u=s.getLinkedNode({reference:o,container:e,property:n});if(u.error&&c&&c.state<Ve.ComputedScopes)return this._ref=void 0;this._ref=(a=u.node)!==null&&a!==void 0?a:u.error,this._nodeDescription=u.descr,c?.references.push(this)}else if(this._ref===_y)throw new Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(e)}/${n} (symbol '${i}')`);return yt(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return bd(this._ref)?this._ref:void 0}};return o}getLinkedNode(e){var n;try{const r=this.getCandidate(e);if(bd(r))return{error:r};const i=this.loadAstNode(r);return i?{node:i,descr:r}:{descr:r,error:this.createLinkingError(e,r)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);const i=(n=r.message)!==null&&n!==void 0?n:String(r);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;const n=this.langiumDocuments().getDocument(e.documentUri);if(n)return this.astNodeLocator.getAstNode(n.parseResult.value,e.path)}createLinkingError(e,n){const r=Nd(e.container).$document;r&&r.state<Ve.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);const i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:n})}}function D1(t){return typeof t.name=="string"}class Zq{getName(e){if(D1(e))return e.name}getNameNode(e){return _n(e.$cstNode,"name")}}class Qq{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const n=_D(e),r=e.astNode;if(n&&r){const i=r[n.feature];if(Wn(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(Wn(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(r){const i=this.nameProvider.getNameNode(r);if(i&&(i===e||aD(e,i)))return r}}}findDeclarationNode(e){const n=this.findDeclaration(e);if(n?.$cstNode){const r=this.nameProvider.getNameNode(n);return r??n.$cstNode}}findReferences(e,n){const r=[];if(n.includeDeclaration){const s=this.getReferenceToSelf(e);s&&r.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return n.documentUri&&(i=i.filter(s=>Et.equals(s.sourceUri,n.documentUri))),r.push(...i),Xe(r)}getReferenceToSelf(e){const n=this.nameProvider.getNameNode(e);if(n){const r=rn(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:za(n),local:!0}}}}class Lr{constructor(e){if(this.map=new Map,e)for(const[n,r]of e)this.add(n,r)}get size(){return Fg.sum(Xe(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,n){if(n===void 0)return this.map.delete(e);{const r=this.map.get(e);if(r){const i=r.indexOf(n);if(i>=0)return r.length===1?this.map.delete(e):r.splice(i,1),!0}return!1}}get(e){var n;return(n=this.map.get(e))!==null&&n!==void 0?n:[]}has(e,n){if(n===void 0)return this.map.has(e);{const r=this.map.get(e);return r?r.indexOf(n)>=0:!1}}add(e,n){return this.map.has(e)?this.map.get(e).push(n):this.map.set(e,[n]),this}addAll(e,n){return this.map.has(e)?this.map.get(e).push(...n):this.map.set(e,Array.from(n)),this}forEach(e){this.map.forEach((n,r)=>n.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return Xe(this.map.entries()).flatMap(([e,n])=>n.map(r=>[e,r]))}keys(){return Xe(this.map.keys())}values(){return Xe(this.map.values()).flat()}entriesGroupedByKey(){return Xe(this.map.entries())}}class T1{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[n,r]of e)this.set(n,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,n){return this.map.set(e,n),this.inverse.set(n,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const n=this.map.get(e);return n!==void 0?(this.map.delete(e),this.inverse.delete(n),!0):!1}}class R1{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,n=ct.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,n)}async computeExportsForNode(e,n,r=vc,i=ct.CancellationToken.None){const s=[];this.exportNode(e,s,n);for(const o of r(e))await Mt(i),this.exportNode(o,s,n);return s}exportNode(e,n,r){const i=this.nameProvider.getName(e);i&&n.push(this.descriptions.createDescription(e,i,r))}async computeLocalScopes(e,n=ct.CancellationToken.None){const r=e.parseResult.value,i=new Lr;for(const s of xr(r))await Mt(n),this.processNode(s,e,i);return i}processNode(e,n,r){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&r.add(i,this.descriptions.createDescription(e,s,n))}}}class Hc{constructor(e,n,r){var i;this.elements=e,this.outerScope=n,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const n=this.caseInsensitive?this.elements.find(r=>r.name.toLowerCase()===e.toLowerCase()):this.elements.find(r=>r.name===e);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}}class S1{constructor(e,n,r){var i;this.elements=new Map,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const o=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(o,s)}this.outerScope=n}getElement(e){const n=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(n);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=Xe(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}const k1={getElement(){},getAllElements(){return No}};class $1{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")}}class ej extends $1{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,n){this.throwIfDisposed(),this.cache.set(e,n)}get(e,n){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(n){const r=n();return this.cache.set(e,r),r}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class tj extends $1{constructor(e){super(),this.cache=new Map,this.converter=e??(n=>n)}has(e,n){return this.throwIfDisposed(),this.cacheForContext(e).has(n)}set(e,n,r){this.throwIfDisposed(),this.cacheForContext(e).set(n,r)}get(e,n,r){this.throwIfDisposed();const i=this.cacheForContext(e);if(i.has(n))return i.get(n);if(r){const s=r();return i.set(n,s),s}else return}delete(e,n){return this.throwIfDisposed(),this.cacheForContext(e).delete(n)}clear(e){if(this.throwIfDisposed(),e){const n=this.converter(e);this.cache.delete(n)}else this.cache.clear()}cacheForContext(e){const n=this.converter(e);let r=this.cache.get(n);return r||(r=new Map,this.cache.set(n,r)),r}}class C1 extends ej{constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class _1{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 C1(e.shared)}getScope(e){const n=[],r=this.reflection.getReferenceType(e),i=rn(e.container).precomputedScopes;if(i){let o=e.container;do{const a=i.get(o);a.length>0&&n.push(Xe(a).filter(c=>this.reflection.isSubtype(c.type,r))),o=o.$container}while(o)}let s=this.getGlobalScope(r,e);for(let o=n.length-1;o>=0;o--)s=this.createScope(n[o],s);return s}createScope(e,n,r){return new Hc(Xe(e),n,r)}createScopeForNodes(e,n,r){const i=Xe(e).map(s=>{const o=this.nameProvider.getName(s);if(o)return this.descriptions.createDescription(s,o)}).nonNullable();return new Hc(i,n,r)}getGlobalScope(e,n){return this.globalScopeCache.get(e,()=>new S1(this.indexManager.allElements(e)))}}function nj(t){return typeof t.$comment=="string"}function A1(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}class rj{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,n){const r=n??{},i=n?.replacer,s=(a,c)=>this.replacer(a,c,r),o=i?(a,c)=>i(a,c,s):s;try{return this.currentDocument=rn(e),JSON.stringify(e,o,n?.space)}finally{this.currentDocument=void 0}}deserialize(e,n){const r=n??{},i=JSON.parse(e);return this.linkNode(i,i,r),i}replacer(e,n,{refText:r,sourceText:i,textRegions:s,comments:o,uriConverter:a}){var c,u,l,d;if(!this.ignoreProperties.has(e))if(Wn(n)){const f=n.ref,h=r?n.$refText:void 0;if(f){const p=rn(f);let g="";this.currentDocument&&this.currentDocument!==p&&(a?g=a(p.uri,n):g=p.uri.toString());const v=this.astNodeLocator.getAstNodePath(f);return{$ref:`${g}#${v}`,$refText:h}}else return{$error:(u=(c=n.error)===null||c===void 0?void 0:c.message)!==null&&u!==void 0?u:"Could not resolve reference",$refText:h}}else if(yt(n)){let f;if(s&&(f=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},n)),(!e||n.$document)&&f?.$textRegion&&(f.$textRegion.documentURI=(l=this.currentDocument)===null||l===void 0?void 0:l.uri.toString())),i&&!e&&(f??(f=Object.assign({},n)),f.$sourceText=(d=n.$cstNode)===null||d===void 0?void 0:d.text),o){f??(f=Object.assign({},n));const h=this.commentProvider.getComment(n);h&&(f.$comment=h.replace(/\r/g,""))}return f??n}else return n}addAstNodeRegionWithAssignmentsTo(e){const n=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(e.$cstNode){const r=e.$textRegion=n(e.$cstNode),i=r.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const o=Mo(e.$cstNode,s).map(n);o.length!==0&&(i[s]=o)}),e}}linkNode(e,n,r,i,s,o){for(const[c,u]of Object.entries(e))if(Array.isArray(u))for(let l=0;l<u.length;l++){const d=u[l];A1(d)?u[l]=this.reviveReference(e,c,n,d,r):yt(d)&&this.linkNode(d,n,r,e,c,l)}else A1(u)?e[c]=this.reviveReference(e,c,n,u,r):yt(u)&&this.linkNode(u,n,r,e,c);const a=e;a.$container=i,a.$containerProperty=s,a.$containerIndex=o}reviveReference(e,n,r,i,s){let o=i.$refText,a=i.$error;if(i.$ref){const c=this.getRefNode(r,i.$ref,s.uriConverter);if(yt(c))return o||(o=this.nameProvider.getName(c)),{$refText:o??"",ref:c};a=c}if(a){const c={$refText:o??""};return c.error={container:e,property:n,message:a,reference:c},c}else return}getRefNode(e,n,r){try{const i=n.indexOf("#");if(i===0){const c=this.astNodeLocator.getAstNode(e,n.substring(1));return c||"Could not resolve path: "+n}if(i<0){const c=r?r(n):Yt.parse(n),u=this.langiumDocuments.getDocument(c);return u?u.parseResult.value:"Could not find document for URI: "+n}const s=r?r(n.substring(0,i)):Yt.parse(n.substring(0,i)),o=this.langiumDocuments.getDocument(s);if(!o)return"Could not find document for URI: "+n;if(i===n.length-1)return o.parseResult.value;const a=this.astNodeLocator.getAstNode(o.parseResult.value,n.substring(i+1));return a||"Could not resolve URI: "+n}catch(i){return String(i)}}}class ij{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){const n=e.LanguageMetaData;for(const r of n.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileExtensionMap.set(r,e);this.languageIdMap.set(n.languageId,e),this.languageIdMap.size===1?this.singleton=e:this.singleton=void 0}getServices(e){var n,r;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const i=(r=(n=this.textDocuments)===null||n===void 0?void 0:n.get(e))===null||r===void 0?void 0:r.languageId;if(i!==void 0){const a=this.languageIdMap.get(i);if(a)return a}const s=Et.extname(e),o=this.fileExtensionMap.get(s);if(!o)throw i?new Error(`The service registry contains no services for the extension '${s}' for language '${i}'.`):new Error(`The service registry contains no services for the extension '${s}'.`);return o}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}function Vc(t){return{code:t}}var Uf;(function(t){t.all=["fast","slow","built-in"]})(Uf||(Uf={}));class sj{constructor(e){this.entries=new Lr,this.reflection=e.shared.AstReflection}register(e,n=this,r="fast"){if(r==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[i,s]of Object.entries(e)){const o=s;if(Array.isArray(o))for(const a of o){const c={check:this.wrapValidationException(a,n),category:r};this.addEntry(i,c)}else if(typeof o=="function"){const a={check:this.wrapValidationException(o,n),category:r};this.addEntry(i,a)}}}wrapValidationException(e,n){return async(r,i,s)=>{try{await e.call(n,r,i,s)}catch(o){if(qf(o))throw o;console.error("An error occurred during validation:",o);const a=o instanceof Error?o.message:String(o);o instanceof Error&&o.stack&&console.error(o.stack),i("error","An error occurred during validation: "+a,{node:r})}}}addEntry(e,n){if(e==="AstNode"){this.entries.add("AstNode",n);return}for(const r of this.reflection.getAllSubTypes(e))this.entries.add(r,n)}getChecks(e,n){let r=Xe(this.entries.get(e)).concat(this.entries.get("AstNode"));return n&&(r=r.filter(i=>n.includes(i.category))),r.map(i=>i.check)}}class oj{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,n={},r=ct.CancellationToken.None){const i=e.parseResult,s=[];if(await Mt(r),(!n.categories||n.categories.includes("built-in"))&&(this.processLexingErrors(i,s,n),n.stopAfterLexingErrors&&s.some(o=>{var a;return((a=o.data)===null||a===void 0?void 0:a.code)===gr.LexingError})||(this.processParsingErrors(i,s,n),n.stopAfterParsingErrors&&s.some(o=>{var a;return((a=o.data)===null||a===void 0?void 0:a.code)===gr.ParsingError}))||(this.processLinkingErrors(e,s,n),n.stopAfterLinkingErrors&&s.some(o=>{var a;return((a=o.data)===null||a===void 0?void 0:a.code)===gr.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,n,r))}catch(o){if(qf(o))throw o;console.error("An error occurred during validation:",o)}return await Mt(r),s}processLexingErrors(e,n,r){var i,s,o;const a=[...e.lexerErrors,...(s=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&s!==void 0?s:[]];for(const c of a){const u=(o=c.severity)!==null&&o!==void 0?o:"error",l={severity:Ay(u),range:{start:{line:c.line-1,character:c.column-1},end:{line:c.line-1,character:c.column+c.length-1}},message:c.message,data:cj(u),source:this.getSource()};n.push(l)}}processParsingErrors(e,n,r){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const o=i.previousToken;if(isNaN(o.startOffset)){const a={line:0,character:0};s={start:a,end:a}}else{const a={line:o.endLine-1,character:o.endColumn};s={start:a,end:a}}}}else s=Dd(i.token);if(s){const o={severity:Ay("error"),range:s,message:i.message,data:Vc(gr.ParsingError),source:this.getSource()};n.push(o)}}}processLinkingErrors(e,n,r){for(const i of e.references){const s=i.error;if(s){const o={node:s.container,property:s.property,index:s.index,data:{code:gr.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};n.push(this.toDiagnostic("error",s.message,o))}}}async validateAst(e,n,r=ct.CancellationToken.None){const i=[],s=(o,a,c)=>{i.push(this.toDiagnostic(o,a,c))};return await Promise.all(oi(e).map(async o=>{await Mt(r);const a=this.validationRegistry.getChecks(o.$type,n.categories);for(const c of a)await c(o,s,r)})),i}toDiagnostic(e,n,r){return{message:n,range:aj(r),severity:Ay(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function aj(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=_n(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=bc(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 Ay(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)}}function cj(t){switch(t){case"error":return Vc(gr.LexingError);case"warning":return Vc(gr.LexingWarning);case"info":return Vc(gr.LexingInfo);case"hint":return Vc(gr.LexingHint);default:throw new Error("Invalid diagnostic severity: "+t)}}var gr;(function(t){t.LexingError="lexing-error",t.LexingWarning="lexing-warning",t.LexingInfo="lexing-info",t.LexingHint="lexing-hint",t.ParsingError="parsing-error",t.LinkingError="linking-error"})(gr||(gr={}));class uj{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,n,r){const i=r??rn(e);n??(n=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!n)throw new Error(`Node at path ${s} has no name.`);let o;const a=()=>{var c;return o??(o=za((c=this.nameProvider.getNameNode(e))!==null&&c!==void 0?c:e.$cstNode))};return{node:e,name:n,get nameSegment(){return a()},selectionSegment:za(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class lj{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,n=ct.CancellationToken.None){const r=[],i=e.parseResult.value;for(const s of oi(i))await Mt(n),Od(s).filter(o=>!bd(o)).forEach(o=>{const a=this.createDescription(o);a&&r.push(a)});return r}createDescription(e){const n=e.reference.$nodeDescription,r=e.reference.$refNode;if(!n||!r)return;const i=rn(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:n.documentUri,targetPath:n.path,segment:za(r),local:Et.equals(n.documentUri,i)}}}class dj{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const n=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return n+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:n}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return n!==void 0?e+this.indexSeparator+n:e}getAstNode(e,n){return n.split(this.segmentSeparator).reduce((i,s)=>{if(!i||s.length===0)return i;const o=s.indexOf(this.indexSeparator);if(o>0){const a=s.substring(0,o),c=parseInt(s.substring(o+1)),u=i[a];return u?.[c]}return i[s]},e)}}var fj=Qo();class hj{constructor(e){this._ready=new $y,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new fj.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var n,r;this.workspaceConfig=(r=(n=e.capabilities.workspace)===null||n===void 0?void 0:n.configuration)!==null&&r!==void 0?r:!1}async initialized(e){if(this.workspaceConfig){if(e.register){const n=this.serviceRegistry.all;e.register({section:n.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const n=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(n);n.forEach((i,s)=>{this.updateSectionConfiguration(i.section,r[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(n=>{const r=e.settings[n];this.updateSectionConfiguration(n,r),this.onConfigurationSectionUpdateEmitter.fire({section:n,configuration:r})})}updateSectionConfiguration(e,n){this.settings[e]=n}async getConfiguration(e,n){await this.ready;const r=this.toSectionName(e);if(this.settings[r])return this.settings[r][n]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}var Bs;(function(t){function e(n){return{dispose:async()=>await n()}}t.create=e})(Bs||(Bs={}));class pj{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Lr,this.documentPhaseListeners=new Lr,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Ve.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,n={},r=ct.CancellationToken.None){var i,s;for(const o of e){const a=o.uri.toString();if(o.state===Ve.Validated){if(typeof n.validation=="boolean"&&n.validation)o.state=Ve.IndexedReferences,o.diagnostics=void 0,this.buildState.delete(a);else if(typeof n.validation=="object"){const c=this.buildState.get(a),u=(i=c?.result)===null||i===void 0?void 0:i.validationChecks;if(u){const d=((s=n.validation.categories)!==null&&s!==void 0?s:Uf.all).filter(f=>!u.includes(f));d.length>0&&(this.buildState.set(a,{completed:!1,options:{validation:Object.assign(Object.assign({},n.validation),{categories:d})},result:c.result}),o.state=Ve.IndexedReferences)}}}else this.buildState.delete(a)}this.currentState=Ve.Changed,await this.emitUpdate(e.map(o=>o.uri),[]),await this.buildDocuments(e,n,r)}async update(e,n,r=ct.CancellationToken.None){this.currentState=Ve.Changed;for(const o of n)this.langiumDocuments.deleteDocument(o),this.buildState.delete(o.toString()),this.indexManager.remove(o);for(const o of e){if(!this.langiumDocuments.invalidateDocument(o)){const c=this.langiumDocumentFactory.fromModel({$type:"INVALID"},o);c.state=Ve.Changed,this.langiumDocuments.addDocument(c)}this.buildState.delete(o.toString())}const i=Xe(e).concat(n).map(o=>o.toString()).toSet();this.langiumDocuments.all.filter(o=>!i.has(o.uri.toString())&&this.shouldRelink(o,i)).forEach(o=>{this.serviceRegistry.getServices(o.uri).references.Linker.unlink(o),o.state=Math.min(o.state,Ve.ComputedScopes),o.diagnostics=void 0}),await this.emitUpdate(e,n),await Mt(r);const s=this.sortDocuments(this.langiumDocuments.all.filter(o=>{var a;return o.state<Ve.Linked||!(!((a=this.buildState.get(o.uri.toString()))===null||a===void 0)&&a.completed)}).toArray());await this.buildDocuments(s,this.updateBuildOptions,r)}async emitUpdate(e,n){await Promise.all(this.updateListeners.map(r=>r(e,n)))}sortDocuments(e){let n=0,r=e.length-1;for(;n<r;){for(;n<e.length&&this.hasTextDocument(e[n]);)n++;for(;r>=0&&!this.hasTextDocument(e[r]);)r--;n<r&&([e[n],e[r]]=[e[r],e[n]])}return e}hasTextDocument(e){var n;return!!(!((n=this.textDocuments)===null||n===void 0)&&n.get(e.uri))}shouldRelink(e,n){return e.references.some(r=>r.error!==void 0)?!0:this.indexManager.isAffected(e,n)}onUpdate(e){return this.updateListeners.push(e),Bs.create(()=>{const n=this.updateListeners.indexOf(e);n>=0&&this.updateListeners.splice(n,1)})}async buildDocuments(e,n,r){this.prepareBuild(e,n),await this.runCancelable(e,Ve.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,Ve.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,Ve.ComputedScopes,r,async s=>{const o=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await o.computeLocalScopes(s,r)}),await this.runCancelable(e,Ve.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,Ve.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,Ve.Validated,r,s=>this.validate(s,r));for(const s of e){const o=this.buildState.get(s.uri.toString());o&&(o.completed=!0)}}prepareBuild(e,n){for(const r of e){const i=r.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:n,result:s?.result})}}async runCancelable(e,n,r,i){const s=e.filter(a=>a.state<n);for(const a of s)await Mt(r),await i(a),a.state=n,await this.notifyDocumentPhase(a,n,r);const o=e.filter(a=>a.state===n);await this.notifyBuildPhase(o,n,r),this.currentState=n}onBuildPhase(e,n){return this.buildPhaseListeners.add(e,n),Bs.create(()=>{this.buildPhaseListeners.delete(e,n)})}onDocumentPhase(e,n){return this.documentPhaseListeners.add(e,n),Bs.create(()=>{this.documentPhaseListeners.delete(e,n)})}waitUntil(e,n,r){let i;if(n&&"path"in n?i=n:r=n,r??(r=ct.CancellationToken.None),i){const s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(Bf):new Promise((s,o)=>{const a=this.onBuildPhase(e,()=>{if(a.dispose(),c.dispose(),i){const u=this.langiumDocuments.getDocument(i);s(u?.uri)}else s(void 0)}),c=r.onCancellationRequested(()=>{a.dispose(),c.dispose(),o(Bf)})})}async notifyDocumentPhase(e,n,r){const i=this.documentPhaseListeners.get(n);for(const s of i)try{await s(e,r)}catch(o){if(!qf(o))throw o}}async notifyBuildPhase(e,n,r){if(e.length===0)return;const i=this.buildPhaseListeners.get(n);for(const s of i)await Mt(r),await s(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,n){var r,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,o=this.getBuildOptions(e).validation,a=typeof o=="object"?o:void 0,c=await s.validateDocument(e,a,n);e.diagnostics?e.diagnostics.push(...c):e.diagnostics=c;const u=this.buildState.get(e.uri.toString());if(u){(r=u.result)!==null&&r!==void 0||(u.result={});const l=(i=a?.categories)!==null&&i!==void 0?i:Uf.all;u.result.validationChecks?u.result.validationChecks.push(...l):u.result.validationChecks=[...l]}}getBuildOptions(e){var n,r;return(r=(n=this.buildState.get(e.uri.toString()))===null||n===void 0?void 0:n.options)!==null&&r!==void 0?r:{}}}class gj{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new tj,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,n){const r=rn(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(o=>{Et.equals(o.targetUri,r)&&o.targetPath===n&&i.push(o)})}),Xe(i)}allElements(e,n){let r=Xe(this.symbolIndex.keys());return n&&(r=r.filter(i=>!n||n.has(i))),r.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,n){var r;return n?this.symbolByTypeIndex.get(e,n,()=>{var s;return((s=this.symbolIndex.get(e))!==null&&s!==void 0?s:[]).filter(a=>this.astReflection.isSubtype(a.type,n))}):(r=this.symbolIndex.get(e))!==null&&r!==void 0?r:[]}remove(e){const n=e.toString();this.symbolIndex.delete(n),this.symbolByTypeIndex.clear(n),this.referenceIndex.delete(n)}async updateContent(e,n=ct.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,n),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,n=ct.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,n);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,n){const r=this.referenceIndex.get(e.uri.toString());return r?r.some(i=>!i.local&&n.has(i.targetUri.toString())):!1}}class x1{constructor(e){this.initialBuildOptions={},this._ready=new $y,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 n;this.folders=(n=e.workspaceFolders)!==null&&n!==void 0?n:void 0}initialized(e){return this.mutex.write(n=>{var r;return this.initializeWorkspace((r=this.folders)!==null&&r!==void 0?r:[],n)})}async initializeWorkspace(e,n=ct.CancellationToken.None){const r=await this.performStartup(e);await Mt(n),await this.documentBuilder.build(r,this.initialBuildOptions,n)}async performStartup(e){const n=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),r=[],i=s=>{r.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,n,i))),this._ready.resolve(),r}loadAdditionalDocuments(e,n){return Promise.resolve()}getRootFolder(e){return Yt.parse(e.uri)}async traverseFolder(e,n,r,i){const s=await this.fileSystemProvider.readDirectory(n);await Promise.all(s.map(async o=>{if(this.includeEntry(e,o,r)){if(o.isDirectory)await this.traverseFolder(e,o.uri,r,i);else if(o.isFile){const a=await this.langiumDocuments.getOrCreateDocument(o.uri);i(a)}}}))}includeEntry(e,n,r){const i=Et.basename(n.uri);if(i.startsWith("."))return!1;if(n.isDirectory)return i!=="node_modules"&&i!=="out";if(n.isFile){const s=Et.extname(n.uri);return r.includes(s)}return!1}}const mj={mode:"full"};class yj{constructor(e){this.tokenBuilder=e.parser.TokenBuilder;const n=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(n);const r=P1(n)?Object.values(n):n;this.chevrotainLexer=new Tn(r,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e,n=mj){var r,i,s;const o=this.chevrotainLexer.tokenize(e);return{tokens:o.tokens,errors:o.errors,hidden:(r=o.groups.hidden)!==null&&r!==void 0?r:[],report:(s=(i=this.tokenBuilder).flushLexingReport)===null||s===void 0?void 0:s.call(i,e)}}toTokenTypeDictionary(e){if(P1(e))return e;const n=I1(e)?Object.values(e.modes).flat():e,r={};return n.forEach(i=>r[i.name]=i),r}}function vj(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function I1(t){return t&&"modes"in t&&"defaultMode"in t}function P1(t){return!vj(t)&&!I1(t)}function wj(t,e,n){let r,i;typeof t=="string"?(i=e,r=n):(i=t.range.start,r=e),i||(i=He.create(0,0));const s=N1(t),o=Iy(r),a=Dj({lines:s,position:i,options:o});return $j({index:0,tokens:a,position:i})}function bj(t,e){const n=Iy(e),r=N1(t);if(r.length===0)return!1;const i=r[0],s=r[r.length-1],o=n.start,a=n.end;return!!o?.exec(i)&&!!a?.exec(s)}function N1(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(SD)}const O1=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Ej=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function Dj(t){var e,n,r;const i=[];let s=t.position.line,o=t.position.character;for(let a=0;a<t.lines.length;a++){const c=a===0,u=a===t.lines.length-1;let l=t.lines[a],d=0;if(c&&t.options.start){const h=(e=t.options.start)===null||e===void 0?void 0:e.exec(l);h&&(d=h.index+h[0].length)}else{const h=(n=t.options.line)===null||n===void 0?void 0:n.exec(l);h&&(d=h.index+h[0].length)}if(u){const h=(r=t.options.end)===null||r===void 0?void 0:r.exec(l);h&&(l=l.substring(0,h.index))}if(l=l.substring(0,kj(l)),xy(l,d)>=l.length){if(i.length>0){const h=He.create(s,o);i.push({type:"break",content:"",range:Le.create(h,h)})}}else{O1.lastIndex=d;const h=O1.exec(l);if(h){const p=h[0],g=h[1],v=He.create(s,o+d),m=He.create(s,o+d+p.length);i.push({type:"tag",content:g,range:Le.create(v,m)}),d+=p.length,d=xy(l,d)}if(d<l.length){const p=l.substring(d),g=Array.from(p.matchAll(Ej));i.push(...Tj(g,p,s,o+d))}}s++,o=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function Tj(t,e,n,r){const i=[];if(t.length===0){const s=He.create(n,r),o=He.create(n,r+e.length);i.push({type:"text",content:e,range:Le.create(s,o)})}else{let s=0;for(const a of t){const c=a.index,u=e.substring(s,c);u.length>0&&i.push({type:"text",content:e.substring(s,c),range:Le.create(He.create(n,s+r),He.create(n,c+r))});let l=u.length+1;const d=a[1];if(i.push({type:"inline-tag",content:d,range:Le.create(He.create(n,s+l+r),He.create(n,s+l+d.length+r))}),l+=d.length,a.length===4){l+=a[2].length;const f=a[3];i.push({type:"text",content:f,range:Le.create(He.create(n,s+l+r),He.create(n,s+l+f.length+r))})}else i.push({type:"text",content:"",range:Le.create(He.create(n,s+l+r),He.create(n,s+l+r))});s=c+a[0].length}const o=e.substring(s);o.length>0&&i.push({type:"text",content:o,range:Le.create(He.create(n,s+r),He.create(n,s+r+o.length))})}return i}const Rj=/\S/,Sj=/\s*$/;function xy(t,e){const n=t.substring(e).match(Rj);return n?e+n.index:t.length}function kj(t){const e=t.match(Sj);if(e&&typeof e.index=="number")return e.index}function $j(t){var e,n,r,i;const s=He.create(t.position.line,t.position.character);if(t.tokens.length===0)return new z1([],Le.create(s,s));const o=[];for(;t.index<t.tokens.length;){const u=Cj(t,o[o.length-1]);u&&o.push(u)}const a=(n=(e=o[0])===null||e===void 0?void 0:e.range.start)!==null&&n!==void 0?n:s,c=(i=(r=o[o.length-1])===null||r===void 0?void 0:r.range.end)!==null&&i!==void 0?i:s;return new z1(o,Le.create(a,c))}function Cj(t,e){const n=t.tokens[t.index];if(n.type==="tag")return L1(t,!1);if(n.type==="text"||n.type==="inline-tag")return F1(t);_j(n,e),t.index++}function _j(t,e){if(e){const n=new B1("",t.range);"inlines"in e?e.inlines.push(n):e.content.inlines.push(n)}}function F1(t){let e=t.tokens[t.index];const n=e;let r=e;const i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push(Aj(t)),r=e,e=t.tokens[t.index];return new Oy(i,Le.create(n.range.start,r.range.end))}function Aj(t){return t.tokens[t.index].type==="inline-tag"?L1(t,!0):M1(t)}function L1(t,e){const n=t.tokens[t.index++],r=n.content.substring(1),i=t.tokens[t.index];if(i?.type==="text")if(e){const s=M1(t);return new Ny(r,new Oy([s],s.range),e,Le.create(n.range.start,s.range.end))}else{const s=F1(t);return new Ny(r,s,e,Le.create(n.range.start,s.range.end))}else{const s=n.range;return new Ny(r,new Oy([],s),e,s)}}function M1(t){const e=t.tokens[t.index++];return new B1(e.content,e.range)}function Iy(t){if(!t)return Iy({start:"/**",end:"*/",line:"*"});const{start:e,end:n,line:r}=t;return{start:Py(e,!0),end:Py(n,!1),line:Py(r,!0)}}function Py(t,e){if(typeof t=="string"||typeof t=="object"){const n=typeof t=="string"?qd(t):t.source;return e?new RegExp(`^\\s*${n}`):new RegExp(`\\s*${n}\\s*$`)}else return t}class z1{constructor(e,n){this.elements=e,this.range=n}getTag(e){return this.getAllTags().find(n=>n.name===e)}getTags(e){return this.getAllTags().filter(n=>n.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(const n of this.elements)if(e.length===0)e=n.toString();else{const r=n.toString();e+=q1(e)+r}return e.trim()}toMarkdown(e){let n="";for(const r of this.elements)if(n.length===0)n=r.toMarkdown(e);else{const i=r.toMarkdown(e);n+=q1(n)+i}return n.trim()}}class Ny{constructor(e,n,r,i){this.name=e,this.content=n,this.inline=r,this.range=i}toString(){let e=`@${this.name}`;const n=this.content.toString();return this.content.inlines.length===1?e=`${e} ${n}`:this.content.inlines.length>1&&(e=`${e}
118
+ ${n}`),this.inline?`{${e}}`:e}toMarkdown(e){var n,r;return(r=(n=e?.renderTag)===null||n===void 0?void 0:n.call(e,this))!==null&&r!==void 0?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){const n=this.content.toMarkdown(e);if(this.inline){const s=xj(this.name,n,e??{});if(typeof s=="string")return s}let r="";e?.tag==="italic"||e?.tag===void 0?r="*":e?.tag==="bold"?r="**":e?.tag==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} \u2014 ${n}`:this.content.inlines.length>1&&(i=`${i}
119
+ ${n}`),this.inline?`{${i}}`:i}}function xj(t,e,n){var r,i;if(t==="linkplain"||t==="linkcode"||t==="link"){const s=e.indexOf(" ");let o=e;if(s>0){const c=xy(e,s);o=e.substring(c),e=e.substring(0,s)}return(t==="linkcode"||t==="link"&&n.link==="code")&&(o=`\`${o}\``),(i=(r=n.renderLink)===null||r===void 0?void 0:r.call(n,e,o))!==null&&i!==void 0?i:Ij(e,o)}}function Ij(t,e){try{return Yt.parse(t,!0),`[${e}](${t})`}catch{return t}}class Oy{constructor(e,n){this.inlines=e,this.range=n}toString(){let e="";for(let n=0;n<this.inlines.length;n++){const r=this.inlines[n],i=this.inlines[n+1];e+=r.toString(),i&&i.range.start.line>r.range.start.line&&(e+=`
120
+ `)}return e}toMarkdown(e){let n="";for(let r=0;r<this.inlines.length;r++){const i=this.inlines[r],s=this.inlines[r+1];n+=i.toMarkdown(e),s&&s.range.start.line>i.range.start.line&&(n+=`
121
+ `)}return n}}class B1{constructor(e,n){this.text=e,this.range=n}toString(){return this.text}toMarkdown(){return this.text}}function q1(t){return t.endsWith(`
122
+ `)?`
123
+ `:`
124
+
125
+ `}class Pj{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const n=this.commentProvider.getComment(e);if(n&&bj(n))return wj(n).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,n,r){var i;const s=(i=this.findNameInPrecomputedScopes(e,n))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,n);if(s&&s.nameSegment){const o=s.nameSegment.range.start.line+1,a=s.nameSegment.range.start.character+1,c=s.documentUri.with({fragment:`L${o},${a}`});return`[${r}](${c.toString()})`}else return}documentationTagRenderer(e,n){}findNameInPrecomputedScopes(e,n){const i=rn(e).precomputedScopes;if(!i)return;let s=e;do{const a=i.get(s).find(c=>c.name===n);if(a)return a;s=s.$container}while(s)}findNameInGlobalScope(e,n){return this.indexManager.allElements().find(i=>i.name===n)}}class Nj{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var n;return nj(e)?e.$comment:(n=Td(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||n===void 0?void 0:n.text}}class Oj{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,n){return Promise.resolve(this.syncParser.parse(e))}}class Fj{constructor(){this.previousTokenSource=new ct.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const n=new ct.CancellationTokenSource;return this.previousTokenSource=n,this.enqueue(this.writeQueue,e,n.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,n,r=ct.CancellationToken.None){const i=new $y,s={action:n,deferred:i,cancellationToken:r};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const 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:n,deferred:r,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>n(i));r.resolve(s)}catch(s){qf(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Lj{constructor(e){this.grammarElementIdMap=new T1,this.tokenTypeIdMap=new T1,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(n=>Object.assign(Object.assign({},n),{message:n.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const n=new Map,r=new Map;for(const i of oi(e))n.set(i,{});if(e.$cstNode)for(const i of Ma(e.$cstNode))r.set(i,{});return{astNodes:n,cstNodes:r}}dehydrateAstNode(e,n){const r=n.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,n));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const o=[];r[i]=o;for(const a of s)yt(a)?o.push(this.dehydrateAstNode(a,n)):Wn(a)?o.push(this.dehydrateReference(a,n)):o.push(a)}else yt(s)?r[i]=this.dehydrateAstNode(s,n):Wn(s)?r[i]=this.dehydrateReference(s,n):s!==void 0&&(r[i]=s);return r}dehydrateReference(e,n){const r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=n.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,n){const r=n.cstNodes.get(e);return sD(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=n.astNodes.get(e.astNode),ri(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,n)):Ss(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){const n=e.value,r=this.createHydrationContext(n);return"$cstNode"in n&&this.hydrateCstNode(n.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(n,r)}}createHydrationContext(e){const n=new Map,r=new Map;for(const s of oi(e))n.set(s,{});let i;if(e.$cstNode)for(const s of Ma(e.$cstNode)){let o;"fullText"in s?(o=new s1(s.fullText),i=o):"content"in s?o=new Ty:"tokenType"in s&&(o=this.hydrateCstLeafNode(s)),o&&(r.set(s,o),o.root=i)}return{astNodes:n,cstNodes:r}}hydrateAstNode(e,n){const r=n.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=n.cstNodes.get(e.$cstNode));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const o=[];r[i]=o;for(const a of s)yt(a)?o.push(this.setParent(this.hydrateAstNode(a,n),r)):Wn(a)?o.push(this.hydrateReference(a,r,i,n)):o.push(a)}else yt(s)?r[i]=this.setParent(this.hydrateAstNode(s,n),r):Wn(s)?r[i]=this.hydrateReference(s,r,i,n):s!==void 0&&(r[i]=s);return r}setParent(e,n){return e.$container=n,e}hydrateReference(e,n,r,i){return this.linker.buildReference(n,r,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,n,r=0){const i=n.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=n.astNodes.get(e.astNode),ri(i))for(const s of e.content){const o=this.hydrateCstNode(s,n,r++);i.content.push(o)}return i}hydrateCstLeafNode(e){const n=this.getTokenType(e.tokenType),r=e.offset,i=e.length,s=e.startLine,o=e.startColumn,a=e.endLine,c=e.endColumn,u=e.hidden;return new Dy(r,i,{start:{line:s,character:o},end:{line:a,character:c}},n,u)}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();const n=this.grammarElementIdMap.getKey(e);if(n)return n;throw new Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(const n of oi(this.grammar))Ug(n)&&this.grammarElementIdMap.set(n,e++)}}function j1(t){return{documentation:{CommentProvider:e=>new Nj(e),DocumentationProvider:e=>new Pj(e)},parser:{AsyncParser:e=>new Oj(e),GrammarConfig:e=>ZL(e),LangiumParser:e=>jq(e),CompletionParser:e=>qq(e),ValueConverter:()=>new Gq,TokenBuilder:()=>new Wq,Lexer:e=>new yj(e),ParserErrorMessageProvider:()=>new u1},workspace:{AstNodeLocator:()=>new dj,AstNodeDescriptionProvider:e=>new uj(e),ReferenceDescriptionProvider:e=>new lj(e)},references:{Linker:e=>new Jq(e),NameProvider:()=>new Zq,ScopeProvider:e=>new _1(e),ScopeComputation:e=>new R1(e),References:e=>new Qq(e)},serializer:{Hydrator:e=>new Lj(e),JsonSerializer:e=>new rj(e)},validation:{DocumentValidator:e=>new oj(e),ValidationRegistry:e=>new sj(e)},shared:()=>t.shared}}function U1(t){return{ServiceRegistry:e=>new ij(e),workspace:{LangiumDocuments:e=>new Xq(e),LangiumDocumentFactory:e=>new Yq(e),DocumentBuilder:e=>new pj(e),IndexManager:e=>new gj(e),WorkspaceManager:e=>new x1(e),FileSystemProvider:e=>t.fileSystemProvider(e),WorkspaceLock:()=>new Fj,ConfigurationProvider:e=>new hj(e)}}}var Wf;(function(t){t.merge=(e,n)=>Hf(Hf({},e),n)})(Wf||(Wf={}));function Gf(t,e,n,r,i,s,o,a,c){const u=[t,e,n,r,i,s,o,a,c].reduce(Hf,{});return G1(u)}const W1=Symbol("isProxy");function Fy(t){if(t&&t[W1])for(const e of Object.values(t))Fy(e);return t}function G1(t,e){const n=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===W1?!0:V1(r,i,t,e||n),getOwnPropertyDescriptor:(r,i)=>(V1(r,i,t,e||n),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in t,ownKeys:()=>[...Object.getOwnPropertyNames(t)]});return n}const H1=Symbol();function V1(t,e,n,r){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]===H1)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in n){const i=n[e];t[e]=H1;try{t[e]=typeof i=="function"?i(r):G1(i,r)}catch(s){throw t[e]=s instanceof Error?s:void 0,s}return t[e]}else return}function Hf(t,e){if(e){for(const[n,r]of Object.entries(e))if(r!==void 0){const i=t[n];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?t[n]=Hf(i,r):t[n]=r}}return t}class Mj{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const K1={fileSystemProvider:()=>new Mj},zj={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Bj={AstReflection:()=>new bD};function qj(){const t=Gf(U1(K1),Bj),e=Gf(j1({shared:t}),zj);return t.ServiceRegistry.register(e),e}function jj(t){var e;const n=qj(),r=n.serializer.JsonSerializer.deserialize(t);return n.shared.workspace.LangiumDocumentFactory.fromModel(r,Yt.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}var Uj={done:!0,hasNext:!1},ea={done:!1,hasNext:!1},Y1=()=>Uj,Wj=t=>({hasNext:!0,next:t,done:!1});function Qe(t,...e){let n=t,r=e.map(s=>"lazy"in s?Gj(s):void 0),i=0;for(;i<e.length;){if(r[i]===void 0||!Hj(n)){let c=e[i];n=c(n),i+=1;continue}let s=[];for(let c=i;c<e.length;c++){let u=r[c];if(u===void 0||(s.push(u),u.isSingle))break}let o=[];for(let c of n)if(X1(c,o,s))break;let{isSingle:a}=s.at(-1);n=a?o[0]:o,i+=s.length}return n}function X1(t,e,n){if(n.length===0)return e.push(t),!1;let r=t,i=ea,s=!1;for(let[o,a]of n.entries()){let{index:c,items:u}=a;if(u.push(r),i=a(r,c,u),a.index+=1,i.hasNext){if(i.hasMany??!1){for(let l of i.next)if(X1(l,e,n.slice(o+1)))return!0;return s}r=i.next}if(!i.hasNext)break;i.done&&(s=!0)}return i.hasNext&&e.push(r),s}function Gj(t){let{lazy:e,lazyArgs:n}=t,r=e(...n);return Object.assign(r,{isSingle:e.single??!1,index:0,items:[]})}function Hj(t){return typeof t=="string"||typeof t=="object"&&t!==null&&Symbol.iterator in t}function Ly(t,e){let n=e.length-t.length;if(n===1){let[r,...i]=e;return Qe(r,{lazy:t,lazyArgs:i})}if(n===0){let r={lazy:t,lazyArgs:e};return Object.assign(i=>Qe(i,r),r)}throw new Error("Wrong number of arguments")}function Vj(t,e,n){let r=i=>t(i,...e);return n===void 0?r:Object.assign(r,{lazy:n,lazyArgs:e})}function Je(t,e,n){let r=t.length-e.length;if(r===0)return t(...e);if(r===1)return Vj(t,e,n);throw new Error("Wrong number of arguments")}function Vf(...t){return Je(Object.values,t)}function Mr(...t){return Ly(Kj,t)}function Kj(){let t=new Set;return e=>t.has(e)?ea:(t.add(e),{done:!1,hasNext:!0,next:e})}function Yj(...t){return Je(Xj,t,Jj)}var Xj=(t,e)=>e<0?[]:t.slice(0,e);function Jj(t){if(t<=0)return Y1;let e=t;return n=>(e-=1,{done:e<=0,hasNext:!0,next:n})}function zr(...t){return Je(Zj,t)}var Zj=(t,e)=>t.length>=e,J1={asc:(t,e)=>t>e,desc:(t,e)=>t<e};function Qj(t,e){let[n,...r]=e;if(!eU(n)){let s=My(...r);return t(n,s)}let i=My(n,...r);return s=>t(s,i)}function My(t,e,...n){let r=typeof t=="function"?t:t[0],i=typeof t=="function"?"asc":t[1],{[i]:s}=J1,o=e===void 0?void 0:My(e,...n);return(a,c)=>{let u=r(a),l=r(c);return s(u,l)?1:s(l,u)?-1:o?.(a,c)??0}}function eU(t){if(Z1(t))return!0;if(typeof t!="object"||!Array.isArray(t))return!1;let[e,n,...r]=t;return Z1(e)&&typeof n=="string"&&n in J1&&r.length===0}var Z1=t=>typeof t=="function"&&t.length===1;function Kc(...t){return Je(tU,t)}function tU(t,e){let n=[...t];return n.sort(e),n}function nU(...t){return Qj(rU,t)}var rU=(t,e)=>[...t].sort(e);function Q1(...t){return Je(iU,t)}var iU=(t,e,n)=>t.reduce(e,n);function ek(...t){return Je(sU,t)}function sU(t){return[...t].reverse()}function zy(...t){return e=>Qe(e,...t)}function Br(...t){return Je(oU,t)}var oU=(t,e)=>t[e];function tk(...t){return Je(aU,t)}function aU(t,e){let n={...t};for(let[r,i]of Object.entries(n))e(i,r,t)&&delete n[r];return n}function Sn(...t){return Je(cU,t)}var cU=t=>t.length===1?t[0]:void 0;function nk(...t){return Je(uU,t)}function uU(t,e){let n={};for(let r of e)r in t&&(n[r]=t[r]);return n}function rk(...t){return Je(lU,t)}function lU(t,e){if(!zr(e,1))return{...t};if(!zr(e,2)){let{[e[0]]:r,...i}=t;return i}let n={...t};for(let r of e)delete n[r];return n}function Yc(...t){return Je(dU,t)}var dU=t=>t.at(-1);function ht(...t){return Je(fU,t,hU)}var fU=(t,e)=>t.map(e),hU=t=>(e,n,r)=>({done:!1,hasNext:!0,next:t(e,n,r)});function yi(...t){return Je(pU,t)}function pU(t,e){let n={};for(let[r,i]of t.entries()){let[s,o]=e(i,r,t);n[s]=o}return n}function Wi(...t){return Je(gU,t)}function gU(t,e){let n={};for(let[r,i]of Object.entries(t)){let s=e(i,r,t);n[r]=s}return n}function Gi(t){return typeof t=="string"}function ce(t){return!!t}function mU(t){return t!==null}function qr(t){return t!=null}function _t(t){return t==null}function Kf(t){return typeof t=="number"&&!Number.isNaN(t)}function ik(t){return Array.isArray(t)}function Ot(t){return t!==void 0}function Hi(t){return t===void 0?!0:typeof t=="string"||Array.isArray(t)?t.length===0:Object.keys(t).length===0}function By(t){return t instanceof Error}function qy(...t){return Je(yU,t)}function yU(t,e){let n={};for(let[r,i]of t.entries()){let s=e(i,r,t);n[s]=i}return n}function vU(...t){return Ly(wU,t)}function wU(t){if(t.length===0)return Y1;let e=new Map;for(let n of t)e.set(n,(e.get(n)??0)+1);return n=>{let r=e.get(n);return r===void 0||r===0?ea:(r===1?e.delete(n):e.set(n,r-1),{hasNext:!0,next:n,done:e.size===0})}}function Vi(...t){return Je(bU,t,EU)}var bU=(t,e)=>t.flatMap(e),EU=t=>(e,n,r)=>{let i=t(e,n,r);return Array.isArray(i)?{done:!1,hasNext:!0,hasMany:!0,next:i}:{done:!1,hasNext:!0,next:i}};function DU(...t){return Je(TU,t,RU)}function TU(t,e){return t.forEach(e),t}var RU=t=>(e,n,r)=>(t(e,n,r),{done:!1,hasNext:!0,next:e});function Yf(...t){return Je(SU,t)}var SU=(t,e)=>{let n={};for(let[r,i]of t.entries()){let s=e(i,r,t);if(s!==void 0){let{[s]:o}=n;o===void 0&&(o=[],n[s]=o),o.push(i)}}return n};function tt(...t){return Je(kU,t,$U)}var kU=(t,e)=>t.filter(e),$U=t=>(e,n,r)=>t(e,n,r)?{done:!1,hasNext:!0,next:e}:ea,sk=t=>Object.assign(t,{single:!0});function ok(...t){return Je(CU,t,sk(_U))}var CU=(t,e)=>t.find(e),_U=t=>(e,n,r)=>t(e,n,r)?{done:!0,hasNext:!0,next:e}:ea;function AU(...t){return Je(xU,t)}var xU=(t,e)=>{for(let n=t.length-1;n>=0;n--){let r=t[n];if(e(r,n,t))return r}};function Xc(...t){return Je(IU,t,sk(PU))}var IU=([t])=>t,PU=()=>NU,NU=t=>({hasNext:!0,next:t,done:!0});function ta(...t){return Je(Object.entries,t)}function OU(t,{waitMs:e,timing:n="trailing",maxWaitMs:r}){if(r!==void 0&&e!==void 0&&r<e)throw new Error(`debounce: maxWaitMs (${r.toString()}) cannot be less than waitMs (${e.toString()})`);let i,s,o,a,c=()=>{if(s!==void 0){let f=s;s=void 0,clearTimeout(f)}if(o===void 0)throw new Error("REMEDA[debounce]: latestCallArgs was unexpectedly undefined.");let d=o;o=void 0,a=t(...d)},u=()=>{if(i===void 0)return;let d=i;i=void 0,clearTimeout(d),o!==void 0&&c()},l=d=>{o=d,r!==void 0&&s===void 0&&(s=setTimeout(c,r))};return{call:(...d)=>{if(i===void 0)n==="trailing"?l(d):a=t(...d);else{n!=="leading"&&l(d);let f=i;i=void 0,clearTimeout(f)}return i=setTimeout(u,e??r??0),a},cancel:()=>{if(i!==void 0){let d=i;i=void 0,clearTimeout(d)}if(s!==void 0){let d=s;s=void 0,clearTimeout(d)}o=void 0},flush:()=>(u(),a),get isPending(){return i!==void 0},get cachedValue(){return a}}}function FU(...t){return Ly(LU,t)}function LU(t){if(t.length===0)return Wj;let e=new Map;for(let n of t)e.set(n,(e.get(n)??0)+1);return n=>{let r=e.get(n);return r===void 0||r===0?{done:!1,hasNext:!0,next:n}:(e.set(n,r-1),ea)}}function ak(...t){return Je(MU,t)}var MU=(t,e)=>e.every(n=>n(t));function zU(...t){return Je(BU,t)}var BU=(t,e)=>e.some(n=>n(t));function qU(...t){return Je(jU,t)}function jU(t,e){if(e<1)throw new RangeError(`chunk: A chunk size of '${e.toString()}' would result in an infinite array`);if(t.length===0)return[];if(e>=t.length)return[[...t]];let n=Math.ceil(t.length/e),r=new Array(n);if(e===1)for(let[i,s]of t.entries())r[i]=[s];else for(let i=0;i<n;i+=1){let s=i*e;r[i]=t.slice(s,s+e)}return r}function ck(...t){return Je(UU,t)}var UU=(t,{min:e,max:n})=>e!==void 0&&t<e?e:n!==void 0&&t>n?n:t,WU={reset:[0,0],bold:[1,22,"\x1B[22m\x1B[1m"],dim:[2,22,"\x1B[22m\x1B[2m"],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]},GU=Object.entries(WU);function jy(t){return String(t)}jy.open="",jy.close="";function HU(t=!1){let e=typeof process<"u"?process:void 0,n=e?.env||{},r=e?.argv||[];return!("NO_COLOR"in n||r.includes("--no-color"))&&("FORCE_COLOR"in n||r.includes("--color")||e?.platform==="win32"||t&&n.TERM!=="dumb"||"CI"in n)||typeof window<"u"&&!!window.chrome}function VU(t=!1){let e=HU(t),n=(o,a,c,u)=>{let l="",d=0;do l+=o.substring(d,u)+c,d=u+a.length,u=o.indexOf(a,d);while(~u);return l+o.substring(d)},r=(o,a,c=o)=>{let u=l=>{let d=String(l),f=d.indexOf(a,o.length);return~f?o+n(d,a,c,f)+a:o+d+a};return u.open=o,u.close=a,u},i={isColorSupported:e},s=o=>`\x1B[${o}m`;for(let[o,a]of GU)i[o]=e?r(s(a[0]),s(a[1]),a[2]):jy;return i}var ut=VU(qN(1)),qs={};const KU=ui(jN);var Dt={},uk;function Uy(){if(uk)return Dt;uk=1,Object.defineProperty(Dt,"__esModule",{value:!0}),Dt.thenable=Dt.typedArray=Dt.stringArray=Dt.array=Dt.func=Dt.error=Dt.number=Dt.string=Dt.boolean=void 0;function t(u){return u===!0||u===!1}Dt.boolean=t;function e(u){return typeof u=="string"||u instanceof String}Dt.string=e;function n(u){return typeof u=="number"||u instanceof Number}Dt.number=n;function r(u){return u instanceof Error}Dt.error=r;function i(u){return typeof u=="function"}Dt.func=i;function s(u){return Array.isArray(u)}Dt.array=s;function o(u){return s(u)&&u.every(l=>e(l))}Dt.stringArray=o;function a(u,l){return Array.isArray(u)&&u.every(l)}Dt.typedArray=a;function c(u){return u&&i(u.then)}return Dt.thenable=c,Dt}var qe={},js={},Us={},Xf={};const YU=ui(c2);var Wy={},pe={},lk;function dk(){if(lk)return pe;lk=1,Object.defineProperty(pe,"__esModule",{value:!0}),pe.Message=pe.NotificationType9=pe.NotificationType8=pe.NotificationType7=pe.NotificationType6=pe.NotificationType5=pe.NotificationType4=pe.NotificationType3=pe.NotificationType2=pe.NotificationType1=pe.NotificationType0=pe.NotificationType=pe.RequestType9=pe.RequestType8=pe.RequestType7=pe.RequestType6=pe.RequestType5=pe.RequestType4=pe.RequestType3=pe.RequestType2=pe.RequestType1=pe.RequestType=pe.RequestType0=pe.AbstractMessageSignature=pe.ParameterStructures=pe.ResponseError=pe.ErrorCodes=void 0;const t=Wc();var e;(function(D){D.ParseError=-32700,D.InvalidRequest=-32600,D.MethodNotFound=-32601,D.InvalidParams=-32602,D.InternalError=-32603,D.jsonrpcReservedErrorRangeStart=-32099,D.serverErrorStart=-32099,D.MessageWriteError=-32099,D.MessageReadError=-32098,D.PendingResponseRejected=-32097,D.ConnectionInactive=-32096,D.ServerNotInitialized=-32002,D.UnknownErrorCode=-32001,D.jsonrpcReservedErrorRangeEnd=-32e3,D.serverErrorEnd=-32e3})(e||(pe.ErrorCodes=e={}));class n extends Error{constructor(R,L,G){super(L),this.code=t.number(R)?R:e.UnknownErrorCode,this.data=G,Object.setPrototypeOf(this,n.prototype)}toJson(){const R={code:this.code,message:this.message};return this.data!==void 0&&(R.data=this.data),R}}pe.ResponseError=n;class r{constructor(R){this.kind=R}static is(R){return R===r.auto||R===r.byName||R===r.byPosition}toString(){return this.kind}}pe.ParameterStructures=r,r.auto=new r("auto"),r.byPosition=new r("byPosition"),r.byName=new r("byName");class i{constructor(R,L){this.method=R,this.numberOfParams=L}get parameterStructures(){return r.auto}}pe.AbstractMessageSignature=i;class s extends i{constructor(R){super(R,0)}}pe.RequestType0=s;class o extends i{constructor(R,L=r.auto){super(R,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}pe.RequestType=o;class a extends i{constructor(R,L=r.auto){super(R,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}pe.RequestType1=a;class c extends i{constructor(R){super(R,2)}}pe.RequestType2=c;class u extends i{constructor(R){super(R,3)}}pe.RequestType3=u;class l extends i{constructor(R){super(R,4)}}pe.RequestType4=l;class d extends i{constructor(R){super(R,5)}}pe.RequestType5=d;class f extends i{constructor(R){super(R,6)}}pe.RequestType6=f;class h extends i{constructor(R){super(R,7)}}pe.RequestType7=h;class p extends i{constructor(R){super(R,8)}}pe.RequestType8=p;class g extends i{constructor(R){super(R,9)}}pe.RequestType9=g;class v extends i{constructor(R,L=r.auto){super(R,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}pe.NotificationType=v;class m extends i{constructor(R){super(R,0)}}pe.NotificationType0=m;class w extends i{constructor(R,L=r.auto){super(R,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}pe.NotificationType1=w;class E extends i{constructor(R){super(R,2)}}pe.NotificationType2=E;class k extends i{constructor(R){super(R,3)}}pe.NotificationType3=k;class A extends i{constructor(R){super(R,4)}}pe.NotificationType4=A;class I extends i{constructor(R){super(R,5)}}pe.NotificationType5=I;class x extends i{constructor(R){super(R,6)}}pe.NotificationType6=x;class _ extends i{constructor(R){super(R,7)}}pe.NotificationType7=_;class P extends i{constructor(R){super(R,8)}}pe.NotificationType8=P;class N extends i{constructor(R){super(R,9)}}pe.NotificationType9=N;var C;return function(D){function R(V){const Z=V;return Z&&t.string(Z.method)&&(t.string(Z.id)||t.number(Z.id))}D.isRequest=R;function L(V){const Z=V;return Z&&t.string(Z.method)&&V.id===void 0}D.isNotification=L;function G(V){const Z=V;return Z&&(Z.result!==void 0||!!Z.error)&&(t.string(Z.id)||t.number(Z.id)||Z.id===null)}D.isResponse=G}(C||(pe.Message=C={})),pe}var vi={},fk;function hk(){if(fk)return vi;fk=1;var t;Object.defineProperty(vi,"__esModule",{value:!0}),vi.LRUCache=vi.LinkedMap=vi.Touch=void 0;var e;(function(i){i.None=0,i.First=1,i.AsOld=i.First,i.Last=2,i.AsNew=i.Last})(e||(vi.Touch=e={}));class n{constructor(){this[t]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(s){return this._map.has(s)}get(s,o=e.None){const a=this._map.get(s);if(a)return o!==e.None&&this.touch(a,o),a.value}set(s,o,a=e.None){let c=this._map.get(s);if(c)c.value=o,a!==e.None&&this.touch(c,a);else{switch(c={key:s,value:o,next:void 0,previous:void 0},a){case e.None:this.addItemLast(c);break;case e.First:this.addItemFirst(c);break;case e.Last:this.addItemLast(c);break;default:this.addItemLast(c);break}this._map.set(s,c),this._size++}return this}delete(s){return!!this.remove(s)}remove(s){const o=this._map.get(s);if(o)return this._map.delete(s),this.removeItem(o),this._size--,o.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const s=this._head;return this._map.delete(s.key),this.removeItem(s),this._size--,s.value}forEach(s,o){const a=this._state;let c=this._head;for(;c;){if(o?s.bind(o)(c.value,c.key,this):s(c.value,c.key,this),this._state!==a)throw new Error("LinkedMap got modified during iteration.");c=c.next}}keys(){const s=this._state;let o=this._head;const a={[Symbol.iterator]:()=>a,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const c={value:o.key,done:!1};return o=o.next,c}else return{value:void 0,done:!0}}};return a}values(){const s=this._state;let o=this._head;const a={[Symbol.iterator]:()=>a,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const c={value:o.value,done:!1};return o=o.next,c}else return{value:void 0,done:!0}}};return a}entries(){const s=this._state;let o=this._head;const a={[Symbol.iterator]:()=>a,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const c={value:[o.key,o.value],done:!1};return o=o.next,c}else return{value:void 0,done:!0}}};return a}[(t=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(s){if(s>=this.size)return;if(s===0){this.clear();return}let o=this._head,a=this.size;for(;o&&a>s;)this._map.delete(o.key),o=o.next,a--;this._head=o,this._size=a,o&&(o.previous=void 0),this._state++}addItemFirst(s){if(!this._head&&!this._tail)this._tail=s;else if(this._head)s.next=this._head,this._head.previous=s;else throw new Error("Invalid list");this._head=s,this._state++}addItemLast(s){if(!this._head&&!this._tail)this._head=s;else if(this._tail)s.previous=this._tail,this._tail.next=s;else throw new Error("Invalid list");this._tail=s,this._state++}removeItem(s){if(s===this._head&&s===this._tail)this._head=void 0,this._tail=void 0;else if(s===this._head){if(!s.next)throw new Error("Invalid list");s.next.previous=void 0,this._head=s.next}else if(s===this._tail){if(!s.previous)throw new Error("Invalid list");s.previous.next=void 0,this._tail=s.previous}else{const o=s.next,a=s.previous;if(!o||!a)throw new Error("Invalid list");o.previous=a,a.next=o}s.next=void 0,s.previous=void 0,this._state++}touch(s,o){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(o!==e.First&&o!==e.Last)){if(o===e.First){if(s===this._head)return;const a=s.next,c=s.previous;s===this._tail?(c.next=void 0,this._tail=c):(a.previous=c,c.next=a),s.previous=void 0,s.next=this._head,this._head.previous=s,this._head=s,this._state++}else if(o===e.Last){if(s===this._tail)return;const a=s.next,c=s.previous;s===this._head?(a.previous=void 0,this._head=a):(a.previous=c,c.next=a),s.next=void 0,s.previous=this._tail,this._tail.next=s,this._tail=s,this._state++}}}toJSON(){const s=[];return this.forEach((o,a)=>{s.push([a,o])}),s}fromJSON(s){this.clear();for(const[o,a]of s)this.set(o,a)}}vi.LinkedMap=n;class r extends n{constructor(s,o=1){super(),this._limit=s,this._ratio=Math.min(Math.max(0,o),1)}get limit(){return this._limit}set limit(s){this._limit=s,this.checkTrim()}get ratio(){return this._ratio}set ratio(s){this._ratio=Math.min(Math.max(0,s),1),this.checkTrim()}get(s,o=e.AsNew){return super.get(s,o)}peek(s){return super.get(s,e.None)}set(s,o){return super.set(s,o,e.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}return vi.LRUCache=r,vi}var Jc={},pk;function XU(){if(pk)return Jc;pk=1,Object.defineProperty(Jc,"__esModule",{value:!0}),Jc.Disposable=void 0;var t;return function(e){function n(r){return{dispose:r}}e.create=n}(t||(Jc.Disposable=t={})),Jc}var Ws={},gk;function JU(){if(gk)return Ws;gk=1,Object.defineProperty(Ws,"__esModule",{value:!0}),Ws.SharedArrayReceiverStrategy=Ws.SharedArraySenderStrategy=void 0;const t=zf();var e;(function(o){o.Continue=0,o.Cancelled=1})(e||(e={}));class n{constructor(){this.buffers=new Map}enableCancellation(a){if(a.id===null)return;const c=new SharedArrayBuffer(4),u=new Int32Array(c,0,1);u[0]=e.Continue,this.buffers.set(a.id,c),a.$cancellationData=c}async sendCancellation(a,c){const u=this.buffers.get(c);if(u===void 0)return;const l=new Int32Array(u,0,1);Atomics.store(l,0,e.Cancelled)}cleanup(a){this.buffers.delete(a)}dispose(){this.buffers.clear()}}Ws.SharedArraySenderStrategy=n;class r{constructor(a){this.data=new Int32Array(a,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===e.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}}class i{constructor(a){this.token=new r(a)}cancel(){}dispose(){}}class s{constructor(){this.kind="request"}createCancellationTokenSource(a){const c=a.$cancellationData;return c===void 0?new t.CancellationTokenSource:new i(c)}}return Ws.SharedArrayReceiverStrategy=s,Ws}var wi={},Zc={},mk;function yk(){if(mk)return Zc;mk=1,Object.defineProperty(Zc,"__esModule",{value:!0}),Zc.Semaphore=void 0;const t=Ms();class e{constructor(r=1){if(r<=0)throw new Error("Capacity must be greater than 0");this._capacity=r,this._active=0,this._waiting=[]}lock(r){return new Promise((i,s)=>{this._waiting.push({thunk:r,resolve:i,reject:s}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,t.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;const r=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{const i=r.thunk();i instanceof Promise?i.then(s=>{this._active--,r.resolve(s),this.runNext()},s=>{this._active--,r.reject(s),this.runNext()}):(this._active--,r.resolve(i),this.runNext())}catch(i){this._active--,r.reject(i),this.runNext()}}}return Zc.Semaphore=e,Zc}var vk;function ZU(){if(vk)return wi;vk=1,Object.defineProperty(wi,"__esModule",{value:!0}),wi.ReadableStreamMessageReader=wi.AbstractMessageReader=wi.MessageReader=void 0;const t=Ms(),e=Wc(),n=Qo(),r=yk();var i;(function(c){function u(l){let d=l;return d&&e.func(d.listen)&&e.func(d.dispose)&&e.func(d.onError)&&e.func(d.onClose)&&e.func(d.onPartialMessage)}c.is=u})(i||(wi.MessageReader=i={}));class s{constructor(){this.errorEmitter=new n.Emitter,this.closeEmitter=new n.Emitter,this.partialMessageEmitter=new n.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(u){this.errorEmitter.fire(this.asError(u))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(u){this.partialMessageEmitter.fire(u)}asError(u){return u instanceof Error?u:new Error(`Reader received error. Reason: ${e.string(u.message)?u.message:"unknown"}`)}}wi.AbstractMessageReader=s;var o;(function(c){function u(l){let d,f;const h=new Map;let p;const g=new Map;if(l===void 0||typeof l=="string")d=l??"utf-8";else{if(d=l.charset??"utf-8",l.contentDecoder!==void 0&&(f=l.contentDecoder,h.set(f.name,f)),l.contentDecoders!==void 0)for(const v of l.contentDecoders)h.set(v.name,v);if(l.contentTypeDecoder!==void 0&&(p=l.contentTypeDecoder,g.set(p.name,p)),l.contentTypeDecoders!==void 0)for(const v of l.contentTypeDecoders)g.set(v.name,v)}return p===void 0&&(p=(0,t.default)().applicationJson.decoder,g.set(p.name,p)),{charset:d,contentDecoder:f,contentDecoders:h,contentTypeDecoder:p,contentTypeDecoders:g}}c.fromOptions=u})(o||(o={}));class a extends s{constructor(u,l){super(),this.readable=u,this.options=o.fromOptions(l),this.buffer=(0,t.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new r.Semaphore(1)}set partialMessageTimeout(u){this._partialMessageTimeout=u}get partialMessageTimeout(){return this._partialMessageTimeout}listen(u){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=u;const l=this.readable.onData(d=>{this.onData(d)});return this.readable.onError(d=>this.fireError(d)),this.readable.onClose(()=>this.fireClose()),l}onData(u){try{for(this.buffer.append(u);;){if(this.nextMessageLength===-1){const d=this.buffer.tryReadHeaders(!0);if(!d)return;const f=d.get("content-length");if(!f){this.fireError(new Error(`Header must provide a Content-Length property.
126
+ ${JSON.stringify(Object.fromEntries(d))}`));return}const h=parseInt(f);if(isNaN(h)){this.fireError(new Error(`Content-Length value must be a number. Got ${f}`));return}this.nextMessageLength=h}const l=this.buffer.tryReadBody(this.nextMessageLength);if(l===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{const d=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(l):l,f=await this.options.contentTypeDecoder.decode(d,this.options);this.callback(f)}).catch(d=>{this.fireError(d)})}}catch(l){this.fireError(l)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,t.default)().timer.setTimeout((u,l)=>{this.partialMessageTimer=void 0,u===this.messageToken&&(this.firePartialMessage({messageToken:u,waitingTime:l}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}return wi.ReadableStreamMessageReader=a,wi}var bi={},wk;function QU(){if(wk)return bi;wk=1,Object.defineProperty(bi,"__esModule",{value:!0}),bi.WriteableStreamMessageWriter=bi.AbstractMessageWriter=bi.MessageWriter=void 0;const t=Ms(),e=Wc(),n=yk(),r=Qo(),i="Content-Length: ",s=`\r
127
+ `;var o;(function(l){function d(f){let h=f;return h&&e.func(h.dispose)&&e.func(h.onClose)&&e.func(h.onError)&&e.func(h.write)}l.is=d})(o||(bi.MessageWriter=o={}));class a{constructor(){this.errorEmitter=new r.Emitter,this.closeEmitter=new r.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(d,f,h){this.errorEmitter.fire([this.asError(d),f,h])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(d){return d instanceof Error?d:new Error(`Writer received error. Reason: ${e.string(d.message)?d.message:"unknown"}`)}}bi.AbstractMessageWriter=a;var c;(function(l){function d(f){return f===void 0||typeof f=="string"?{charset:f??"utf-8",contentTypeEncoder:(0,t.default)().applicationJson.encoder}:{charset:f.charset??"utf-8",contentEncoder:f.contentEncoder,contentTypeEncoder:f.contentTypeEncoder??(0,t.default)().applicationJson.encoder}}l.fromOptions=d})(c||(c={}));class u extends a{constructor(d,f){super(),this.writable=d,this.options=c.fromOptions(f),this.errorCount=0,this.writeSemaphore=new n.Semaphore(1),this.writable.onError(h=>this.fireError(h)),this.writable.onClose(()=>this.fireClose())}async write(d){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(d,this.options).then(h=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(h):h).then(h=>{const p=[];return p.push(i,h.byteLength.toString(),s),p.push(s),this.doWrite(d,p,h)},h=>{throw this.fireError(h),h}))}async doWrite(d,f,h){try{return await this.writable.write(f.join(""),"ascii"),this.writable.write(h)}catch(p){return this.handleError(p,d),Promise.reject(p)}}handleError(d,f){this.errorCount++,this.fireError(d,f,this.errorCount)}end(){this.writable.end()}}return bi.WriteableStreamMessageWriter=u,bi}var Qc={},bk;function e9(){if(bk)return Qc;bk=1,Object.defineProperty(Qc,"__esModule",{value:!0}),Qc.AbstractMessageBuffer=void 0;const t=13,e=10,n=`\r
128
+ `;class r{constructor(s="utf-8"){this._encoding=s,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(s){const o=typeof s=="string"?this.fromString(s,this._encoding):s;this._chunks.push(o),this._totalLength+=o.byteLength}tryReadHeaders(s=!1){if(this._chunks.length===0)return;let o=0,a=0,c=0,u=0;e:for(;a<this._chunks.length;){const h=this._chunks[a];for(c=0;c<h.length;){switch(h[c]){case t:switch(o){case 0:o=1;break;case 2:o=3;break;default:o=0}break;case e:switch(o){case 1:o=2;break;case 3:o=4,c++;break e;default:o=0}break;default:o=0}c++}u+=h.byteLength,a++}if(o!==4)return;const l=this._read(u+c),d=new Map,f=this.toString(l,"ascii").split(n);if(f.length<2)return d;for(let h=0;h<f.length-2;h++){const p=f[h],g=p.indexOf(":");if(g===-1)throw new Error(`Message header must separate key and value using ':'
129
+ ${p}`);const v=p.substr(0,g),m=p.substr(g+1).trim();d.set(s?v.toLowerCase():v,m)}return d}tryReadBody(s){if(!(this._totalLength<s))return this._read(s)}get numberOfBytes(){return this._totalLength}_read(s){if(s===0)return this.emptyBuffer();if(s>this._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===s){const u=this._chunks[0];return this._chunks.shift(),this._totalLength-=s,this.asNative(u)}if(this._chunks[0].byteLength>s){const u=this._chunks[0],l=this.asNative(u,s);return this._chunks[0]=u.slice(s),this._totalLength-=s,l}const o=this.allocNative(s);let a=0,c=0;for(;s>0;){const u=this._chunks[c];if(u.byteLength>s){const l=u.slice(0,s);o.set(l,a),a+=s,this._chunks[c]=u.slice(s),this._totalLength-=s,s-=s}else o.set(u,a),a+=u.byteLength,this._chunks.shift(),this._totalLength-=u.byteLength,s-=u.byteLength}return o}}return Qc.AbstractMessageBuffer=r,Qc}var Gy={},Ek;function t9(){return Ek||(Ek=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.createMessageConnection=t.ConnectionOptions=t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.RequestCancellationReceiverStrategy=t.IdCancellationReceiverStrategy=t.ConnectionStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.Trace=t.NullLogger=t.ProgressType=t.ProgressToken=void 0;const e=Ms(),n=Wc(),r=dk(),i=hk(),s=Qo(),o=zf();var a;(function(R){R.type=new r.NotificationType("$/cancelRequest")})(a||(a={}));var c;(function(R){function L(G){return typeof G=="string"||typeof G=="number"}R.is=L})(c||(t.ProgressToken=c={}));var u;(function(R){R.type=new r.NotificationType("$/progress")})(u||(u={}));class l{constructor(){}}t.ProgressType=l;var d;(function(R){function L(G){return n.func(G)}R.is=L})(d||(d={})),t.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var f;(function(R){R[R.Off=0]="Off",R[R.Messages=1]="Messages",R[R.Compact=2]="Compact",R[R.Verbose=3]="Verbose"})(f||(t.Trace=f={}));var h;(function(R){R.Off="off",R.Messages="messages",R.Compact="compact",R.Verbose="verbose"})(h||(t.TraceValues=h={})),function(R){function L(V){if(!n.string(V))return R.Off;switch(V=V.toLowerCase(),V){case"off":return R.Off;case"messages":return R.Messages;case"compact":return R.Compact;case"verbose":return R.Verbose;default:return R.Off}}R.fromString=L;function G(V){switch(V){case R.Off:return"off";case R.Messages:return"messages";case R.Compact:return"compact";case R.Verbose:return"verbose";default:return"off"}}R.toString=G}(f||(t.Trace=f={}));var p;(function(R){R.Text="text",R.JSON="json"})(p||(t.TraceFormat=p={})),function(R){function L(G){return n.string(G)?(G=G.toLowerCase(),G==="json"?R.JSON:R.Text):R.Text}R.fromString=L}(p||(t.TraceFormat=p={}));var g;(function(R){R.type=new r.NotificationType("$/setTrace")})(g||(t.SetTraceNotification=g={}));var v;(function(R){R.type=new r.NotificationType("$/logTrace")})(v||(t.LogTraceNotification=v={}));var m;(function(R){R[R.Closed=1]="Closed",R[R.Disposed=2]="Disposed",R[R.AlreadyListening=3]="AlreadyListening"})(m||(t.ConnectionErrors=m={}));class w extends Error{constructor(L,G){super(G),this.code=L,Object.setPrototypeOf(this,w.prototype)}}t.ConnectionError=w;var E;(function(R){function L(G){const V=G;return V&&n.func(V.cancelUndispatched)}R.is=L})(E||(t.ConnectionStrategy=E={}));var k;(function(R){function L(G){const V=G;return V&&(V.kind===void 0||V.kind==="id")&&n.func(V.createCancellationTokenSource)&&(V.dispose===void 0||n.func(V.dispose))}R.is=L})(k||(t.IdCancellationReceiverStrategy=k={}));var A;(function(R){function L(G){const V=G;return V&&V.kind==="request"&&n.func(V.createCancellationTokenSource)&&(V.dispose===void 0||n.func(V.dispose))}R.is=L})(A||(t.RequestCancellationReceiverStrategy=A={}));var I;(function(R){R.Message=Object.freeze({createCancellationTokenSource(G){return new o.CancellationTokenSource}});function L(G){return k.is(G)||A.is(G)}R.is=L})(I||(t.CancellationReceiverStrategy=I={}));var x;(function(R){R.Message=Object.freeze({sendCancellation(G,V){return G.sendNotification(a.type,{id:V})},cleanup(G){}});function L(G){const V=G;return V&&n.func(V.sendCancellation)&&n.func(V.cleanup)}R.is=L})(x||(t.CancellationSenderStrategy=x={}));var _;(function(R){R.Message=Object.freeze({receiver:I.Message,sender:x.Message});function L(G){const V=G;return V&&I.is(V.receiver)&&x.is(V.sender)}R.is=L})(_||(t.CancellationStrategy=_={}));var P;(function(R){function L(G){const V=G;return V&&n.func(V.handleMessage)}R.is=L})(P||(t.MessageStrategy=P={}));var N;(function(R){function L(G){const V=G;return V&&(_.is(V.cancellationStrategy)||E.is(V.connectionStrategy)||P.is(V.messageStrategy))}R.is=L})(N||(t.ConnectionOptions=N={}));var C;(function(R){R[R.New=1]="New",R[R.Listening=2]="Listening",R[R.Closed=3]="Closed",R[R.Disposed=4]="Disposed"})(C||(C={}));function D(R,L,G,V){const Z=G!==void 0?G:t.NullLogger;let Ne=0,se=0,K=0;const Te="2.0";let at;const H=new Map;let Y;const Q=new Map,ne=new Map;let fe,Ee=new i.LinkedMap,me=new Map,ae=new Set,M=new Map,U=f.Off,oe=p.Text,W,Oe=C.New;const mt=new s.Emitter,pn=new s.Emitter,tr=new s.Emitter,nr=new s.Emitter,rr=new s.Emitter,zt=V&&V.cancellationStrategy?V.cancellationStrategy:_.Message;function Cn(S){if(S===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+S.toString()}function Yr(S){return S===null?"res-unknown-"+(++K).toString():"res-"+S.toString()}function Mn(){return"not-"+(++se).toString()}function gn(S,j){r.Message.isRequest(j)?S.set(Cn(j.id),j):r.Message.isResponse(j)?S.set(Yr(j.id),j):S.set(Mn(),j)}function zn(S){}function en(){return Oe===C.Listening}function X(){return Oe===C.Closed}function J(){return Oe===C.Disposed}function ue(){(Oe===C.New||Oe===C.Listening)&&(Oe=C.Closed,pn.fire(void 0))}function Bt(S){mt.fire([S,void 0,void 0])}function Ft(S){mt.fire(S)}R.onClose(ue),R.onError(Bt),L.onClose(ue),L.onError(Ft);function Tr(){fe||Ee.size===0||(fe=(0,e.default)().timer.setImmediate(()=>{fe=void 0,ls()}))}function Ci(S){r.Message.isRequest(S)?fs(S):r.Message.isNotification(S)?_i(S):r.Message.isResponse(S)?hs(S):Ai(S)}function ls(){if(Ee.size===0)return;const S=Ee.shift();try{const j=V?.messageStrategy;P.is(j)?j.handleMessage(S,Ci):Ci(S)}finally{Tr()}}const ds=S=>{try{if(r.Message.isNotification(S)&&S.method===a.type.method){const j=S.params.id,ee=Cn(j),ie=Ee.get(ee);if(r.Message.isRequest(ie)){const _e=V?.connectionStrategy,je=_e&&_e.cancelUndispatched?_e.cancelUndispatched(ie,zn):void 0;if(je&&(je.error!==void 0||je.result!==void 0)){Ee.delete(ee),M.delete(j),je.id=ie.id,Rr(je,S.method,Date.now()),L.write(je).catch(()=>Z.error("Sending response for canceled message failed."));return}}const xe=M.get(j);if(xe!==void 0){xe.cancel(),Xr(S);return}else ae.add(j)}gn(Ee,S)}finally{Tr()}};function fs(S){if(J())return;function j($e,Ye,Ue){const It={jsonrpc:Te,id:S.id};$e instanceof r.ResponseError?It.error=$e.toJson():It.result=$e===void 0?null:$e,Rr(It,Ye,Ue),L.write(It).catch(()=>Z.error("Sending response failed."))}function ee($e,Ye,Ue){const It={jsonrpc:Te,id:S.id,error:$e.toJson()};Rr(It,Ye,Ue),L.write(It).catch(()=>Z.error("Sending response failed."))}function ie($e,Ye,Ue){$e===void 0&&($e=null);const It={jsonrpc:Te,id:S.id,result:$e};Rr(It,Ye,Ue),L.write(It).catch(()=>Z.error("Sending response failed."))}ms(S);const xe=H.get(S.method);let _e,je;xe&&(_e=xe.type,je=xe.handler);const he=Date.now();if(je||at){const $e=S.id??String(Date.now()),Ye=k.is(zt.receiver)?zt.receiver.createCancellationTokenSource($e):zt.receiver.createCancellationTokenSource(S);S.id!==null&&ae.has(S.id)&&Ye.cancel(),S.id!==null&&M.set($e,Ye);try{let Ue;if(je)if(S.params===void 0){if(_e!==void 0&&_e.numberOfParams!==0){ee(new r.ResponseError(r.ErrorCodes.InvalidParams,`Request ${S.method} defines ${_e.numberOfParams} params but received none.`),S.method,he);return}Ue=je(Ye.token)}else if(Array.isArray(S.params)){if(_e!==void 0&&_e.parameterStructures===r.ParameterStructures.byName){ee(new r.ResponseError(r.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by name but received parameters by position`),S.method,he);return}Ue=je(...S.params,Ye.token)}else{if(_e!==void 0&&_e.parameterStructures===r.ParameterStructures.byPosition){ee(new r.ResponseError(r.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by position but received parameters by name`),S.method,he);return}Ue=je(S.params,Ye.token)}else at&&(Ue=at(S.method,S.params,Ye.token));const It=Ue;Ue?It.then?It.then(tn=>{M.delete($e),j(tn,S.method,he)},tn=>{M.delete($e),tn instanceof r.ResponseError?ee(tn,S.method,he):tn&&n.string(tn.message)?ee(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${tn.message}`),S.method,he):ee(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,he)}):(M.delete($e),j(Ue,S.method,he)):(M.delete($e),ie(Ue,S.method,he))}catch(Ue){M.delete($e),Ue instanceof r.ResponseError?j(Ue,S.method,he):Ue&&n.string(Ue.message)?ee(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${Ue.message}`),S.method,he):ee(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,he)}}else ee(new r.ResponseError(r.ErrorCodes.MethodNotFound,`Unhandled method ${S.method}`),S.method,he)}function hs(S){if(!J())if(S.id===null)S.error?Z.error(`Received response message without id: Error is:
130
+ ${JSON.stringify(S.error,void 0,4)}`):Z.error("Received response message without id. No further error information provided.");else{const j=S.id,ee=me.get(j);if(ys(S,ee),ee!==void 0){me.delete(j);try{if(S.error){const ie=S.error;ee.reject(new r.ResponseError(ie.code,ie.message,ie.data))}else if(S.result!==void 0)ee.resolve(S.result);else throw new Error("Should never happen.")}catch(ie){ie.message?Z.error(`Response handler '${ee.method}' failed with message: ${ie.message}`):Z.error(`Response handler '${ee.method}' failed unexpectedly.`)}}}}function _i(S){if(J())return;let j,ee;if(S.method===a.type.method){const ie=S.params.id;ae.delete(ie),Xr(S);return}else{const ie=Q.get(S.method);ie&&(ee=ie.handler,j=ie.type)}if(ee||Y)try{if(Xr(S),ee)if(S.params===void 0)j!==void 0&&j.numberOfParams!==0&&j.parameterStructures!==r.ParameterStructures.byName&&Z.error(`Notification ${S.method} defines ${j.numberOfParams} params but received none.`),ee();else if(Array.isArray(S.params)){const ie=S.params;S.method===u.type.method&&ie.length===2&&c.is(ie[0])?ee({token:ie[0],value:ie[1]}):(j!==void 0&&(j.parameterStructures===r.ParameterStructures.byName&&Z.error(`Notification ${S.method} defines parameters by name but received parameters by position`),j.numberOfParams!==S.params.length&&Z.error(`Notification ${S.method} defines ${j.numberOfParams} params but received ${ie.length} arguments`)),ee(...ie))}else j!==void 0&&j.parameterStructures===r.ParameterStructures.byPosition&&Z.error(`Notification ${S.method} defines parameters by position but received parameters by name`),ee(S.params);else Y&&Y(S.method,S.params)}catch(ie){ie.message?Z.error(`Notification handler '${S.method}' failed with message: ${ie.message}`):Z.error(`Notification handler '${S.method}' failed unexpectedly.`)}else tr.fire(S)}function Ai(S){if(!S){Z.error("Received empty message.");return}Z.error(`Received message which is neither a response nor a notification message:
131
+ ${JSON.stringify(S,null,4)}`);const j=S;if(n.string(j.id)||n.number(j.id)){const ee=j.id,ie=me.get(ee);ie&&ie.reject(new Error("The received response has neither a result nor an error property."))}}function mn(S){if(S!=null)switch(U){case f.Verbose:return JSON.stringify(S,null,4);case f.Compact:return JSON.stringify(S);default:return}}function ps(S){if(!(U===f.Off||!W))if(oe===p.Text){let j;(U===f.Verbose||U===f.Compact)&&S.params&&(j=`Params: ${mn(S.params)}
132
+
133
+ `),W.log(`Sending request '${S.method} - (${S.id})'.`,j)}else Bn("send-request",S)}function gs(S){if(!(U===f.Off||!W))if(oe===p.Text){let j;(U===f.Verbose||U===f.Compact)&&(S.params?j=`Params: ${mn(S.params)}
134
+
135
+ `:j=`No parameters provided.
136
+
137
+ `),W.log(`Sending notification '${S.method}'.`,j)}else Bn("send-notification",S)}function Rr(S,j,ee){if(!(U===f.Off||!W))if(oe===p.Text){let ie;(U===f.Verbose||U===f.Compact)&&(S.error&&S.error.data?ie=`Error data: ${mn(S.error.data)}
138
+
139
+ `:S.result?ie=`Result: ${mn(S.result)}
140
+
141
+ `:S.error===void 0&&(ie=`No result returned.
142
+
143
+ `)),W.log(`Sending response '${j} - (${S.id})'. Processing request took ${Date.now()-ee}ms`,ie)}else Bn("send-response",S)}function ms(S){if(!(U===f.Off||!W))if(oe===p.Text){let j;(U===f.Verbose||U===f.Compact)&&S.params&&(j=`Params: ${mn(S.params)}
144
+
145
+ `),W.log(`Received request '${S.method} - (${S.id})'.`,j)}else Bn("receive-request",S)}function Xr(S){if(!(U===f.Off||!W||S.method===v.type.method))if(oe===p.Text){let j;(U===f.Verbose||U===f.Compact)&&(S.params?j=`Params: ${mn(S.params)}
146
+
147
+ `:j=`No parameters provided.
148
+
149
+ `),W.log(`Received notification '${S.method}'.`,j)}else Bn("receive-notification",S)}function ys(S,j){if(!(U===f.Off||!W))if(oe===p.Text){let ee;if((U===f.Verbose||U===f.Compact)&&(S.error&&S.error.data?ee=`Error data: ${mn(S.error.data)}
150
+
151
+ `:S.result?ee=`Result: ${mn(S.result)}
152
+
153
+ `:S.error===void 0&&(ee=`No result returned.
154
+
155
+ `)),j){const ie=S.error?` Request failed: ${S.error.message} (${S.error.code}).`:"";W.log(`Received response '${j.method} - (${S.id})' in ${Date.now()-j.timerStart}ms.${ie}`,ee)}else W.log(`Received response ${S.id} without active response promise.`,ee)}else Bn("receive-response",S)}function Bn(S,j){if(!W||U===f.Off)return;const ee={isLSPMessage:!0,type:S,message:j,timestamp:Date.now()};W.log(ee)}function ir(){if(X())throw new w(m.Closed,"Connection is closed.");if(J())throw new w(m.Disposed,"Connection is disposed.")}function wo(){if(en())throw new w(m.AlreadyListening,"Connection is already listening")}function z(){if(!en())throw new Error("Call listen() first.")}function T(S){return S===void 0?null:S}function O(S){if(S!==null)return S}function y(S){return S!=null&&!Array.isArray(S)&&typeof S=="object"}function $(S,j){switch(S){case r.ParameterStructures.auto:return y(j)?O(j):[T(j)];case r.ParameterStructures.byName:if(!y(j))throw new Error("Received parameters by name but param is not an object literal.");return O(j);case r.ParameterStructures.byPosition:return[T(j)];default:throw new Error(`Unknown parameter structure ${S.toString()}`)}}function b(S,j){let ee;const ie=S.numberOfParams;switch(ie){case 0:ee=void 0;break;case 1:ee=$(S.parameterStructures,j[0]);break;default:ee=[];for(let xe=0;xe<j.length&&xe<ie;xe++)ee.push(T(j[xe]));if(j.length<ie)for(let xe=j.length;xe<ie;xe++)ee.push(null);break}return ee}const F={sendNotification:(S,...j)=>{ir();let ee,ie;if(n.string(S)){ee=S;const _e=j[0];let je=0,he=r.ParameterStructures.auto;r.ParameterStructures.is(_e)&&(je=1,he=_e);let $e=j.length;const Ye=$e-je;switch(Ye){case 0:ie=void 0;break;case 1:ie=$(he,j[je]);break;default:if(he===r.ParameterStructures.byName)throw new Error(`Received ${Ye} parameters for 'by Name' notification parameter structure.`);ie=j.slice(je,$e).map(Ue=>T(Ue));break}}else{const _e=j;ee=S.method,ie=b(S,_e)}const xe={jsonrpc:Te,method:ee,params:ie};return gs(xe),L.write(xe).catch(_e=>{throw Z.error("Sending notification failed."),_e})},onNotification:(S,j)=>{ir();let ee;return n.func(S)?Y=S:j&&(n.string(S)?(ee=S,Q.set(S,{type:void 0,handler:j})):(ee=S.method,Q.set(S.method,{type:S,handler:j}))),{dispose:()=>{ee!==void 0?Q.delete(ee):Y=void 0}}},onProgress:(S,j,ee)=>{if(ne.has(j))throw new Error(`Progress handler for token ${j} already registered`);return ne.set(j,ee),{dispose:()=>{ne.delete(j)}}},sendProgress:(S,j,ee)=>F.sendNotification(u.type,{token:j,value:ee}),onUnhandledProgress:nr.event,sendRequest:(S,...j)=>{ir(),z();let ee,ie,xe;if(n.string(S)){ee=S;const $e=j[0],Ye=j[j.length-1];let Ue=0,It=r.ParameterStructures.auto;r.ParameterStructures.is($e)&&(Ue=1,It=$e);let tn=j.length;o.CancellationToken.is(Ye)&&(tn=tn-1,xe=Ye);const Sr=tn-Ue;switch(Sr){case 0:ie=void 0;break;case 1:ie=$(It,j[Ue]);break;default:if(It===r.ParameterStructures.byName)throw new Error(`Received ${Sr} parameters for 'by Name' request parameter structure.`);ie=j.slice(Ue,tn).map(PN=>T(PN));break}}else{const $e=j;ee=S.method,ie=b(S,$e);const Ye=S.numberOfParams;xe=o.CancellationToken.is($e[Ye])?$e[Ye]:void 0}const _e=Ne++;let je;xe&&(je=xe.onCancellationRequested(()=>{const $e=zt.sender.sendCancellation(F,_e);return $e===void 0?(Z.log(`Received no promise from cancellation strategy when cancelling id ${_e}`),Promise.resolve()):$e.catch(()=>{Z.log(`Sending cancellation messages for id ${_e} failed`)})}));const he={jsonrpc:Te,id:_e,method:ee,params:ie};return ps(he),typeof zt.sender.enableCancellation=="function"&&zt.sender.enableCancellation(he),new Promise(async($e,Ye)=>{const Ue=Sr=>{$e(Sr),zt.sender.cleanup(_e),je?.dispose()},It=Sr=>{Ye(Sr),zt.sender.cleanup(_e),je?.dispose()},tn={method:ee,timerStart:Date.now(),resolve:Ue,reject:It};try{await L.write(he),me.set(_e,tn)}catch(Sr){throw Z.error("Sending request failed."),tn.reject(new r.ResponseError(r.ErrorCodes.MessageWriteError,Sr.message?Sr.message:"Unknown reason")),Sr}})},onRequest:(S,j)=>{ir();let ee=null;return d.is(S)?(ee=void 0,at=S):n.string(S)?(ee=null,j!==void 0&&(ee=S,H.set(S,{handler:j,type:void 0}))):j!==void 0&&(ee=S.method,H.set(S.method,{type:S,handler:j})),{dispose:()=>{ee!==null&&(ee!==void 0?H.delete(ee):at=void 0)}}},hasPendingResponse:()=>me.size>0,trace:async(S,j,ee)=>{let ie=!1,xe=p.Text;ee!==void 0&&(n.boolean(ee)?ie=ee:(ie=ee.sendNotification||!1,xe=ee.traceFormat||p.Text)),U=S,oe=xe,U===f.Off?W=void 0:W=j,ie&&!X()&&!J()&&await F.sendNotification(g.type,{value:f.toString(S)})},onError:mt.event,onClose:pn.event,onUnhandledNotification:tr.event,onDispose:rr.event,end:()=>{L.end()},dispose:()=>{if(J())return;Oe=C.Disposed,rr.fire(void 0);const S=new r.ResponseError(r.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(const j of me.values())j.reject(S);me=new Map,M=new Map,ae=new Set,Ee=new i.LinkedMap,n.func(L.dispose)&&L.dispose(),n.func(R.dispose)&&R.dispose()},listen:()=>{ir(),wo(),Oe=C.Listening,R.listen(ds)},inspect:()=>{(0,e.default)().console.log("inspect")}};return F.onNotification(v.type,S=>{if(U===f.Off||!W)return;const j=U===f.Verbose||U===f.Compact;W.log(S.message,j?S.verbose:void 0)}),F.onNotification(u.type,S=>{const j=ne.get(S.token);j?j(S.value):nr.fire(S)}),F}t.createMessageConnection=D}(Gy)),Gy}var Dk;function Hy(){return Dk||(Dk=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressType=t.ProgressToken=t.createMessageConnection=t.NullLogger=t.ConnectionOptions=t.ConnectionStrategy=t.AbstractMessageBuffer=t.WriteableStreamMessageWriter=t.AbstractMessageWriter=t.MessageWriter=t.ReadableStreamMessageReader=t.AbstractMessageReader=t.MessageReader=t.SharedArrayReceiverStrategy=t.SharedArraySenderStrategy=t.CancellationToken=t.CancellationTokenSource=t.Emitter=t.Event=t.Disposable=t.LRUCache=t.Touch=t.LinkedMap=t.ParameterStructures=t.NotificationType9=t.NotificationType8=t.NotificationType7=t.NotificationType6=t.NotificationType5=t.NotificationType4=t.NotificationType3=t.NotificationType2=t.NotificationType1=t.NotificationType0=t.NotificationType=t.ErrorCodes=t.ResponseError=t.RequestType9=t.RequestType8=t.RequestType7=t.RequestType6=t.RequestType5=t.RequestType4=t.RequestType3=t.RequestType2=t.RequestType1=t.RequestType0=t.RequestType=t.Message=t.RAL=void 0,t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.Trace=void 0;const e=dk();Object.defineProperty(t,"Message",{enumerable:!0,get:function(){return e.Message}}),Object.defineProperty(t,"RequestType",{enumerable:!0,get:function(){return e.RequestType}}),Object.defineProperty(t,"RequestType0",{enumerable:!0,get:function(){return e.RequestType0}}),Object.defineProperty(t,"RequestType1",{enumerable:!0,get:function(){return e.RequestType1}}),Object.defineProperty(t,"RequestType2",{enumerable:!0,get:function(){return e.RequestType2}}),Object.defineProperty(t,"RequestType3",{enumerable:!0,get:function(){return e.RequestType3}}),Object.defineProperty(t,"RequestType4",{enumerable:!0,get:function(){return e.RequestType4}}),Object.defineProperty(t,"RequestType5",{enumerable:!0,get:function(){return e.RequestType5}}),Object.defineProperty(t,"RequestType6",{enumerable:!0,get:function(){return e.RequestType6}}),Object.defineProperty(t,"RequestType7",{enumerable:!0,get:function(){return e.RequestType7}}),Object.defineProperty(t,"RequestType8",{enumerable:!0,get:function(){return e.RequestType8}}),Object.defineProperty(t,"RequestType9",{enumerable:!0,get:function(){return e.RequestType9}}),Object.defineProperty(t,"ResponseError",{enumerable:!0,get:function(){return e.ResponseError}}),Object.defineProperty(t,"ErrorCodes",{enumerable:!0,get:function(){return e.ErrorCodes}}),Object.defineProperty(t,"NotificationType",{enumerable:!0,get:function(){return e.NotificationType}}),Object.defineProperty(t,"NotificationType0",{enumerable:!0,get:function(){return e.NotificationType0}}),Object.defineProperty(t,"NotificationType1",{enumerable:!0,get:function(){return e.NotificationType1}}),Object.defineProperty(t,"NotificationType2",{enumerable:!0,get:function(){return e.NotificationType2}}),Object.defineProperty(t,"NotificationType3",{enumerable:!0,get:function(){return e.NotificationType3}}),Object.defineProperty(t,"NotificationType4",{enumerable:!0,get:function(){return e.NotificationType4}}),Object.defineProperty(t,"NotificationType5",{enumerable:!0,get:function(){return e.NotificationType5}}),Object.defineProperty(t,"NotificationType6",{enumerable:!0,get:function(){return e.NotificationType6}}),Object.defineProperty(t,"NotificationType7",{enumerable:!0,get:function(){return e.NotificationType7}}),Object.defineProperty(t,"NotificationType8",{enumerable:!0,get:function(){return e.NotificationType8}}),Object.defineProperty(t,"NotificationType9",{enumerable:!0,get:function(){return e.NotificationType9}}),Object.defineProperty(t,"ParameterStructures",{enumerable:!0,get:function(){return e.ParameterStructures}});const n=hk();Object.defineProperty(t,"LinkedMap",{enumerable:!0,get:function(){return n.LinkedMap}}),Object.defineProperty(t,"LRUCache",{enumerable:!0,get:function(){return n.LRUCache}}),Object.defineProperty(t,"Touch",{enumerable:!0,get:function(){return n.Touch}});const r=XU();Object.defineProperty(t,"Disposable",{enumerable:!0,get:function(){return r.Disposable}});const i=Qo();Object.defineProperty(t,"Event",{enumerable:!0,get:function(){return i.Event}}),Object.defineProperty(t,"Emitter",{enumerable:!0,get:function(){return i.Emitter}});const s=zf();Object.defineProperty(t,"CancellationTokenSource",{enumerable:!0,get:function(){return s.CancellationTokenSource}}),Object.defineProperty(t,"CancellationToken",{enumerable:!0,get:function(){return s.CancellationToken}});const o=JU();Object.defineProperty(t,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return o.SharedArraySenderStrategy}}),Object.defineProperty(t,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return o.SharedArrayReceiverStrategy}});const a=ZU();Object.defineProperty(t,"MessageReader",{enumerable:!0,get:function(){return a.MessageReader}}),Object.defineProperty(t,"AbstractMessageReader",{enumerable:!0,get:function(){return a.AbstractMessageReader}}),Object.defineProperty(t,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return a.ReadableStreamMessageReader}});const c=QU();Object.defineProperty(t,"MessageWriter",{enumerable:!0,get:function(){return c.MessageWriter}}),Object.defineProperty(t,"AbstractMessageWriter",{enumerable:!0,get:function(){return c.AbstractMessageWriter}}),Object.defineProperty(t,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return c.WriteableStreamMessageWriter}});const u=e9();Object.defineProperty(t,"AbstractMessageBuffer",{enumerable:!0,get:function(){return u.AbstractMessageBuffer}});const l=t9();Object.defineProperty(t,"ConnectionStrategy",{enumerable:!0,get:function(){return l.ConnectionStrategy}}),Object.defineProperty(t,"ConnectionOptions",{enumerable:!0,get:function(){return l.ConnectionOptions}}),Object.defineProperty(t,"NullLogger",{enumerable:!0,get:function(){return l.NullLogger}}),Object.defineProperty(t,"createMessageConnection",{enumerable:!0,get:function(){return l.createMessageConnection}}),Object.defineProperty(t,"ProgressToken",{enumerable:!0,get:function(){return l.ProgressToken}}),Object.defineProperty(t,"ProgressType",{enumerable:!0,get:function(){return l.ProgressType}}),Object.defineProperty(t,"Trace",{enumerable:!0,get:function(){return l.Trace}}),Object.defineProperty(t,"TraceValues",{enumerable:!0,get:function(){return l.TraceValues}}),Object.defineProperty(t,"TraceFormat",{enumerable:!0,get:function(){return l.TraceFormat}}),Object.defineProperty(t,"SetTraceNotification",{enumerable:!0,get:function(){return l.SetTraceNotification}}),Object.defineProperty(t,"LogTraceNotification",{enumerable:!0,get:function(){return l.LogTraceNotification}}),Object.defineProperty(t,"ConnectionErrors",{enumerable:!0,get:function(){return l.ConnectionErrors}}),Object.defineProperty(t,"ConnectionError",{enumerable:!0,get:function(){return l.ConnectionError}}),Object.defineProperty(t,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return l.CancellationReceiverStrategy}}),Object.defineProperty(t,"CancellationSenderStrategy",{enumerable:!0,get:function(){return l.CancellationSenderStrategy}}),Object.defineProperty(t,"CancellationStrategy",{enumerable:!0,get:function(){return l.CancellationStrategy}}),Object.defineProperty(t,"MessageStrategy",{enumerable:!0,get:function(){return l.MessageStrategy}});const d=Ms();t.RAL=d.default}(Wy)),Wy}var Tk;function n9(){if(Tk)return Xf;Tk=1,Object.defineProperty(Xf,"__esModule",{value:!0});const t=YU,e=Hy();class n extends e.AbstractMessageBuffer{constructor(c="utf-8"){super(c)}emptyBuffer(){return n.emptyBuffer}fromString(c,u){return Buffer.from(c,u)}toString(c,u){return c instanceof Buffer?c.toString(u):new t.TextDecoder(u).decode(c)}asNative(c,u){return u===void 0?c instanceof Buffer?c:Buffer.from(c):c instanceof Buffer?c.slice(0,u):Buffer.from(c,0,u)}allocNative(c){return Buffer.allocUnsafe(c)}}n.emptyBuffer=Buffer.allocUnsafe(0);class r{constructor(c){this.stream=c}onClose(c){return this.stream.on("close",c),e.Disposable.create(()=>this.stream.off("close",c))}onError(c){return this.stream.on("error",c),e.Disposable.create(()=>this.stream.off("error",c))}onEnd(c){return this.stream.on("end",c),e.Disposable.create(()=>this.stream.off("end",c))}onData(c){return this.stream.on("data",c),e.Disposable.create(()=>this.stream.off("data",c))}}class i{constructor(c){this.stream=c}onClose(c){return this.stream.on("close",c),e.Disposable.create(()=>this.stream.off("close",c))}onError(c){return this.stream.on("error",c),e.Disposable.create(()=>this.stream.off("error",c))}onEnd(c){return this.stream.on("end",c),e.Disposable.create(()=>this.stream.off("end",c))}write(c,u){return new Promise((l,d)=>{const f=h=>{h==null?l():d(h)};typeof c=="string"?this.stream.write(c,u,f):this.stream.write(c,f)})}end(){this.stream.end()}}const s=Object.freeze({messageBuffer:Object.freeze({create:a=>new n(a)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(a,c)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(a,void 0,0),c.charset))}catch(u){return Promise.reject(u)}}}),decoder:Object.freeze({name:"application/json",decode:(a,c)=>{try{return a instanceof Buffer?Promise.resolve(JSON.parse(a.toString(c.charset))):Promise.resolve(JSON.parse(new t.TextDecoder(c.charset).decode(a)))}catch(u){return Promise.reject(u)}}})}),stream:Object.freeze({asReadableStream:a=>new r(a),asWritableStream:a=>new i(a)}),console,timer:Object.freeze({setTimeout(a,c,...u){const l=setTimeout(a,c,...u);return{dispose:()=>clearTimeout(l)}},setImmediate(a,...c){const u=setImmediate(a,...c);return{dispose:()=>clearImmediate(u)}},setInterval(a,c,...u){const l=setInterval(a,c,...u);return{dispose:()=>clearInterval(l)}}})});function o(){return s}return function(a){function c(){e.RAL.install(s)}a.install=c}(o||(o={})),Xf.default=o,Xf}const eu=ui(e2),r9=ui(u2),Rk=ui(l2),i9=ui(d2);var Sk;function Gs(){return Sk||(Sk=1,function(t){var e=Us&&Us.__createBinding||(Object.create?function(C,D,R,L){L===void 0&&(L=R);var G=Object.getOwnPropertyDescriptor(D,R);(!G||("get"in G?!D.__esModule:G.writable||G.configurable))&&(G={enumerable:!0,get:function(){return D[R]}}),Object.defineProperty(C,L,G)}:function(C,D,R,L){L===void 0&&(L=R),C[L]=D[R]}),n=Us&&Us.__exportStar||function(C,D){for(var R in C)R!=="default"&&!Object.prototype.hasOwnProperty.call(D,R)&&e(D,C,R)};Object.defineProperty(t,"__esModule",{value:!0}),t.createMessageConnection=t.createServerSocketTransport=t.createClientSocketTransport=t.createServerPipeTransport=t.createClientPipeTransport=t.generateRandomPipeName=t.StreamMessageWriter=t.StreamMessageReader=t.SocketMessageWriter=t.SocketMessageReader=t.PortMessageWriter=t.PortMessageReader=t.IPCMessageWriter=t.IPCMessageReader=void 0;const r=n9();r.default.install();const i=eu,s=r9,o=Rk,a=i9,c=Hy();n(Hy(),t);class u extends c.AbstractMessageReader{constructor(D){super(),this.process=D;let R=this.process;R.on("error",L=>this.fireError(L)),R.on("close",()=>this.fireClose())}listen(D){return this.process.on("message",D),c.Disposable.create(()=>this.process.off("message",D))}}t.IPCMessageReader=u;class l extends c.AbstractMessageWriter{constructor(D){super(),this.process=D,this.errorCount=0;const R=this.process;R.on("error",L=>this.fireError(L)),R.on("close",()=>this.fireClose)}write(D){try{return typeof this.process.send=="function"&&this.process.send(D,void 0,void 0,R=>{R?(this.errorCount++,this.handleError(R,D)):this.errorCount=0}),Promise.resolve()}catch(R){return this.handleError(R,D),Promise.reject(R)}}handleError(D,R){this.errorCount++,this.fireError(D,R,this.errorCount)}end(){}}t.IPCMessageWriter=l;class d extends c.AbstractMessageReader{constructor(D){super(),this.onData=new c.Emitter,D.on("close",()=>this.fireClose),D.on("error",R=>this.fireError(R)),D.on("message",R=>{this.onData.fire(R)})}listen(D){return this.onData.event(D)}}t.PortMessageReader=d;class f extends c.AbstractMessageWriter{constructor(D){super(),this.port=D,this.errorCount=0,D.on("close",()=>this.fireClose()),D.on("error",R=>this.fireError(R))}write(D){try{return this.port.postMessage(D),Promise.resolve()}catch(R){return this.handleError(R,D),Promise.reject(R)}}handleError(D,R){this.errorCount++,this.fireError(D,R,this.errorCount)}end(){}}t.PortMessageWriter=f;class h extends c.ReadableStreamMessageReader{constructor(D,R="utf-8"){super((0,r.default)().stream.asReadableStream(D),R)}}t.SocketMessageReader=h;class p extends c.WriteableStreamMessageWriter{constructor(D,R){super((0,r.default)().stream.asWritableStream(D),R),this.socket=D}dispose(){super.dispose(),this.socket.destroy()}}t.SocketMessageWriter=p;class g extends c.ReadableStreamMessageReader{constructor(D,R){super((0,r.default)().stream.asReadableStream(D),R)}}t.StreamMessageReader=g;class v extends c.WriteableStreamMessageWriter{constructor(D,R){super((0,r.default)().stream.asWritableStream(D),R)}}t.StreamMessageWriter=v;const m=process.env.XDG_RUNTIME_DIR,w=new Map([["linux",107],["darwin",103]]);function E(){const C=(0,o.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${C}-sock`;let D;m?D=i.join(m,`vscode-ipc-${C}.sock`):D=i.join(s.tmpdir(),`vscode-${C}.sock`);const R=w.get(process.platform);return R!==void 0&&D.length>R&&(0,r.default)().console.warn(`WARNING: IPC handle "${D}" is longer than ${R} characters.`),D}t.generateRandomPipeName=E;function k(C,D="utf-8"){let R;const L=new Promise((G,V)=>{R=G});return new Promise((G,V)=>{let Z=(0,a.createServer)(Ne=>{Z.close(),R([new h(Ne,D),new p(Ne,D)])});Z.on("error",V),Z.listen(C,()=>{Z.removeListener("error",V),G({onConnected:()=>L})})})}t.createClientPipeTransport=k;function A(C,D="utf-8"){const R=(0,a.createConnection)(C);return[new h(R,D),new p(R,D)]}t.createServerPipeTransport=A;function I(C,D="utf-8"){let R;const L=new Promise((G,V)=>{R=G});return new Promise((G,V)=>{const Z=(0,a.createServer)(Ne=>{Z.close(),R([new h(Ne,D),new p(Ne,D)])});Z.on("error",V),Z.listen(C,"127.0.0.1",()=>{Z.removeListener("error",V),G({onConnected:()=>L})})})}t.createClientSocketTransport=I;function x(C,D="utf-8"){const R=(0,a.createConnection)(C,"127.0.0.1");return[new h(R,D),new p(R,D)]}t.createServerSocketTransport=x;function _(C){const D=C;return D.read!==void 0&&D.addListener!==void 0}function P(C){const D=C;return D.write!==void 0&&D.addListener!==void 0}function N(C,D,R,L){R||(R=c.NullLogger);const G=_(C)?new g(C):C,V=P(D)?new v(D):D;return c.ConnectionStrategy.is(L)&&(L={connectionStrategy:L}),(0,c.createMessageConnection)(G,V,R,L)}t.createMessageConnection=N}(Us)),Us}var Vy,kk;function $k(){return kk||(kk=1,Vy=Gs()),Vy}var Hs={};function Ck(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Jf={exports:{}},_k;function Ky(){return _k||(_k=1,function(t,e){(function(n){{var r=n(Ck,e);r!==void 0&&(t.exports=r)}})(function(n,r){Object.defineProperty(r,"__esModule",{value:!0}),r.TextDocument=r.EOL=r.WorkspaceFolder=r.InlineCompletionContext=r.SelectedCompletionInfo=r.InlineCompletionTriggerKind=r.InlineCompletionList=r.InlineCompletionItem=r.StringValue=r.InlayHint=r.InlayHintLabelPart=r.InlayHintKind=r.InlineValueContext=r.InlineValueEvaluatableExpression=r.InlineValueVariableLookup=r.InlineValueText=r.SemanticTokens=r.SemanticTokenModifiers=r.SemanticTokenTypes=r.SelectionRange=r.DocumentLink=r.FormattingOptions=r.CodeLens=r.CodeAction=r.CodeActionContext=r.CodeActionTriggerKind=r.CodeActionKind=r.DocumentSymbol=r.WorkspaceSymbol=r.SymbolInformation=r.SymbolTag=r.SymbolKind=r.DocumentHighlight=r.DocumentHighlightKind=r.SignatureInformation=r.ParameterInformation=r.Hover=r.MarkedString=r.CompletionList=r.CompletionItem=r.CompletionItemLabelDetails=r.InsertTextMode=r.InsertReplaceEdit=r.CompletionItemTag=r.InsertTextFormat=r.CompletionItemKind=r.MarkupContent=r.MarkupKind=r.TextDocumentItem=r.OptionalVersionedTextDocumentIdentifier=r.VersionedTextDocumentIdentifier=r.TextDocumentIdentifier=r.WorkspaceChange=r.WorkspaceEdit=r.DeleteFile=r.RenameFile=r.CreateFile=r.TextDocumentEdit=r.AnnotatedTextEdit=r.ChangeAnnotationIdentifier=r.ChangeAnnotation=r.TextEdit=r.Command=r.Diagnostic=r.CodeDescription=r.DiagnosticTag=r.DiagnosticSeverity=r.DiagnosticRelatedInformation=r.FoldingRange=r.FoldingRangeKind=r.ColorPresentation=r.ColorInformation=r.Color=r.LocationLink=r.Location=r.Range=r.Position=r.uinteger=r.integer=r.URI=r.DocumentUri=void 0;var i;(function(T){function O(y){return typeof y=="string"}T.is=O})(i||(r.DocumentUri=i={}));var s;(function(T){function O(y){return typeof y=="string"}T.is=O})(s||(r.URI=s={}));var o;(function(T){T.MIN_VALUE=-2147483648,T.MAX_VALUE=2147483647;function O(y){return typeof y=="number"&&T.MIN_VALUE<=y&&y<=T.MAX_VALUE}T.is=O})(o||(r.integer=o={}));var a;(function(T){T.MIN_VALUE=0,T.MAX_VALUE=2147483647;function O(y){return typeof y=="number"&&T.MIN_VALUE<=y&&y<=T.MAX_VALUE}T.is=O})(a||(r.uinteger=a={}));var c;(function(T){function O($,b){return $===Number.MAX_VALUE&&($=a.MAX_VALUE),b===Number.MAX_VALUE&&(b=a.MAX_VALUE),{line:$,character:b}}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&z.uinteger(b.line)&&z.uinteger(b.character)}T.is=y})(c||(r.Position=c={}));var u;(function(T){function O($,b,F,S){if(z.uinteger($)&&z.uinteger(b)&&z.uinteger(F)&&z.uinteger(S))return{start:c.create($,b),end:c.create(F,S)};if(c.is($)&&c.is(b))return{start:$,end:b};throw new Error("Range#create called with invalid arguments[".concat($,", ").concat(b,", ").concat(F,", ").concat(S,"]"))}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&c.is(b.start)&&c.is(b.end)}T.is=y})(u||(r.Range=u={}));var l;(function(T){function O($,b){return{uri:$,range:b}}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&u.is(b.range)&&(z.string(b.uri)||z.undefined(b.uri))}T.is=y})(l||(r.Location=l={}));var d;(function(T){function O($,b,F,S){return{targetUri:$,targetRange:b,targetSelectionRange:F,originSelectionRange:S}}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&u.is(b.targetRange)&&z.string(b.targetUri)&&u.is(b.targetSelectionRange)&&(u.is(b.originSelectionRange)||z.undefined(b.originSelectionRange))}T.is=y})(d||(r.LocationLink=d={}));var f;(function(T){function O($,b,F,S){return{red:$,green:b,blue:F,alpha:S}}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&z.numberRange(b.red,0,1)&&z.numberRange(b.green,0,1)&&z.numberRange(b.blue,0,1)&&z.numberRange(b.alpha,0,1)}T.is=y})(f||(r.Color=f={}));var h;(function(T){function O($,b){return{range:$,color:b}}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&u.is(b.range)&&f.is(b.color)}T.is=y})(h||(r.ColorInformation=h={}));var p;(function(T){function O($,b,F){return{label:$,textEdit:b,additionalTextEdits:F}}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&z.string(b.label)&&(z.undefined(b.textEdit)||x.is(b))&&(z.undefined(b.additionalTextEdits)||z.typedArray(b.additionalTextEdits,x.is))}T.is=y})(p||(r.ColorPresentation=p={}));var g;(function(T){T.Comment="comment",T.Imports="imports",T.Region="region"})(g||(r.FoldingRangeKind=g={}));var v;(function(T){function O($,b,F,S,j,ee){var ie={startLine:$,endLine:b};return z.defined(F)&&(ie.startCharacter=F),z.defined(S)&&(ie.endCharacter=S),z.defined(j)&&(ie.kind=j),z.defined(ee)&&(ie.collapsedText=ee),ie}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&z.uinteger(b.startLine)&&z.uinteger(b.startLine)&&(z.undefined(b.startCharacter)||z.uinteger(b.startCharacter))&&(z.undefined(b.endCharacter)||z.uinteger(b.endCharacter))&&(z.undefined(b.kind)||z.string(b.kind))}T.is=y})(v||(r.FoldingRange=v={}));var m;(function(T){function O($,b){return{location:$,message:b}}T.create=O;function y($){var b=$;return z.defined(b)&&l.is(b.location)&&z.string(b.message)}T.is=y})(m||(r.DiagnosticRelatedInformation=m={}));var w;(function(T){T.Error=1,T.Warning=2,T.Information=3,T.Hint=4})(w||(r.DiagnosticSeverity=w={}));var E;(function(T){T.Unnecessary=1,T.Deprecated=2})(E||(r.DiagnosticTag=E={}));var k;(function(T){function O(y){var $=y;return z.objectLiteral($)&&z.string($.href)}T.is=O})(k||(r.CodeDescription=k={}));var A;(function(T){function O($,b,F,S,j,ee){var ie={range:$,message:b};return z.defined(F)&&(ie.severity=F),z.defined(S)&&(ie.code=S),z.defined(j)&&(ie.source=j),z.defined(ee)&&(ie.relatedInformation=ee),ie}T.create=O;function y($){var b,F=$;return z.defined(F)&&u.is(F.range)&&z.string(F.message)&&(z.number(F.severity)||z.undefined(F.severity))&&(z.integer(F.code)||z.string(F.code)||z.undefined(F.code))&&(z.undefined(F.codeDescription)||z.string((b=F.codeDescription)===null||b===void 0?void 0:b.href))&&(z.string(F.source)||z.undefined(F.source))&&(z.undefined(F.relatedInformation)||z.typedArray(F.relatedInformation,m.is))}T.is=y})(A||(r.Diagnostic=A={}));var I;(function(T){function O($,b){for(var F=[],S=2;S<arguments.length;S++)F[S-2]=arguments[S];var j={title:$,command:b};return z.defined(F)&&F.length>0&&(j.arguments=F),j}T.create=O;function y($){var b=$;return z.defined(b)&&z.string(b.title)&&z.string(b.command)}T.is=y})(I||(r.Command=I={}));var x;(function(T){function O(F,S){return{range:F,newText:S}}T.replace=O;function y(F,S){return{range:{start:F,end:F},newText:S}}T.insert=y;function $(F){return{range:F,newText:""}}T.del=$;function b(F){var S=F;return z.objectLiteral(S)&&z.string(S.newText)&&u.is(S.range)}T.is=b})(x||(r.TextEdit=x={}));var _;(function(T){function O($,b,F){var S={label:$};return b!==void 0&&(S.needsConfirmation=b),F!==void 0&&(S.description=F),S}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&z.string(b.label)&&(z.boolean(b.needsConfirmation)||b.needsConfirmation===void 0)&&(z.string(b.description)||b.description===void 0)}T.is=y})(_||(r.ChangeAnnotation=_={}));var P;(function(T){function O(y){var $=y;return z.string($)}T.is=O})(P||(r.ChangeAnnotationIdentifier=P={}));var N;(function(T){function O(F,S,j){return{range:F,newText:S,annotationId:j}}T.replace=O;function y(F,S,j){return{range:{start:F,end:F},newText:S,annotationId:j}}T.insert=y;function $(F,S){return{range:F,newText:"",annotationId:S}}T.del=$;function b(F){var S=F;return x.is(S)&&(_.is(S.annotationId)||P.is(S.annotationId))}T.is=b})(N||(r.AnnotatedTextEdit=N={}));var C;(function(T){function O($,b){return{textDocument:$,edits:b}}T.create=O;function y($){var b=$;return z.defined(b)&&Te.is(b.textDocument)&&Array.isArray(b.edits)}T.is=y})(C||(r.TextDocumentEdit=C={}));var D;(function(T){function O($,b,F){var S={kind:"create",uri:$};return b!==void 0&&(b.overwrite!==void 0||b.ignoreIfExists!==void 0)&&(S.options=b),F!==void 0&&(S.annotationId=F),S}T.create=O;function y($){var b=$;return b&&b.kind==="create"&&z.string(b.uri)&&(b.options===void 0||(b.options.overwrite===void 0||z.boolean(b.options.overwrite))&&(b.options.ignoreIfExists===void 0||z.boolean(b.options.ignoreIfExists)))&&(b.annotationId===void 0||P.is(b.annotationId))}T.is=y})(D||(r.CreateFile=D={}));var R;(function(T){function O($,b,F,S){var j={kind:"rename",oldUri:$,newUri:b};return F!==void 0&&(F.overwrite!==void 0||F.ignoreIfExists!==void 0)&&(j.options=F),S!==void 0&&(j.annotationId=S),j}T.create=O;function y($){var b=$;return b&&b.kind==="rename"&&z.string(b.oldUri)&&z.string(b.newUri)&&(b.options===void 0||(b.options.overwrite===void 0||z.boolean(b.options.overwrite))&&(b.options.ignoreIfExists===void 0||z.boolean(b.options.ignoreIfExists)))&&(b.annotationId===void 0||P.is(b.annotationId))}T.is=y})(R||(r.RenameFile=R={}));var L;(function(T){function O($,b,F){var S={kind:"delete",uri:$};return b!==void 0&&(b.recursive!==void 0||b.ignoreIfNotExists!==void 0)&&(S.options=b),F!==void 0&&(S.annotationId=F),S}T.create=O;function y($){var b=$;return b&&b.kind==="delete"&&z.string(b.uri)&&(b.options===void 0||(b.options.recursive===void 0||z.boolean(b.options.recursive))&&(b.options.ignoreIfNotExists===void 0||z.boolean(b.options.ignoreIfNotExists)))&&(b.annotationId===void 0||P.is(b.annotationId))}T.is=y})(L||(r.DeleteFile=L={}));var G;(function(T){function O(y){var $=y;return $&&($.changes!==void 0||$.documentChanges!==void 0)&&($.documentChanges===void 0||$.documentChanges.every(function(b){return z.string(b.kind)?D.is(b)||R.is(b)||L.is(b):C.is(b)}))}T.is=O})(G||(r.WorkspaceEdit=G={}));var V=function(){function T(O,y){this.edits=O,this.changeAnnotations=y}return T.prototype.insert=function(O,y,$){var b,F;if($===void 0?b=x.insert(O,y):P.is($)?(F=$,b=N.insert(O,y,$)):(this.assertChangeAnnotations(this.changeAnnotations),F=this.changeAnnotations.manage($),b=N.insert(O,y,F)),this.edits.push(b),F!==void 0)return F},T.prototype.replace=function(O,y,$){var b,F;if($===void 0?b=x.replace(O,y):P.is($)?(F=$,b=N.replace(O,y,$)):(this.assertChangeAnnotations(this.changeAnnotations),F=this.changeAnnotations.manage($),b=N.replace(O,y,F)),this.edits.push(b),F!==void 0)return F},T.prototype.delete=function(O,y){var $,b;if(y===void 0?$=x.del(O):P.is(y)?(b=y,$=N.del(O,y)):(this.assertChangeAnnotations(this.changeAnnotations),b=this.changeAnnotations.manage(y),$=N.del(O,b)),this.edits.push($),b!==void 0)return b},T.prototype.add=function(O){this.edits.push(O)},T.prototype.all=function(){return this.edits},T.prototype.clear=function(){this.edits.splice(0,this.edits.length)},T.prototype.assertChangeAnnotations=function(O){if(O===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},T}(),Z=function(){function T(O){this._annotations=O===void 0?Object.create(null):O,this._counter=0,this._size=0}return T.prototype.all=function(){return this._annotations},Object.defineProperty(T.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),T.prototype.manage=function(O,y){var $;if(P.is(O)?$=O:($=this.nextId(),y=O),this._annotations[$]!==void 0)throw new Error("Id ".concat($," is already in use."));if(y===void 0)throw new Error("No annotation provided for id ".concat($));return this._annotations[$]=y,this._size++,$},T.prototype.nextId=function(){return this._counter++,this._counter.toString()},T}(),Ne=function(){function T(O){var y=this;this._textEditChanges=Object.create(null),O!==void 0?(this._workspaceEdit=O,O.documentChanges?(this._changeAnnotations=new Z(O.changeAnnotations),O.changeAnnotations=this._changeAnnotations.all(),O.documentChanges.forEach(function($){if(C.is($)){var b=new V($.edits,y._changeAnnotations);y._textEditChanges[$.textDocument.uri]=b}})):O.changes&&Object.keys(O.changes).forEach(function($){var b=new V(O.changes[$]);y._textEditChanges[$]=b})):this._workspaceEdit={}}return Object.defineProperty(T.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),T.prototype.getTextEditChange=function(O){if(Te.is(O)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var y={uri:O.uri,version:O.version},$=this._textEditChanges[y.uri];if(!$){var b=[],F={textDocument:y,edits:b};this._workspaceEdit.documentChanges.push(F),$=new V(b,this._changeAnnotations),this._textEditChanges[y.uri]=$}return $}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var $=this._textEditChanges[O];if(!$){var b=[];this._workspaceEdit.changes[O]=b,$=new V(b),this._textEditChanges[O]=$}return $}},T.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Z,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},T.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},T.prototype.createFile=function(O,y,$){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var b;_.is(y)||P.is(y)?b=y:$=y;var F,S;if(b===void 0?F=D.create(O,$):(S=P.is(b)?b:this._changeAnnotations.manage(b),F=D.create(O,$,S)),this._workspaceEdit.documentChanges.push(F),S!==void 0)return S},T.prototype.renameFile=function(O,y,$,b){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var F;_.is($)||P.is($)?F=$:b=$;var S,j;if(F===void 0?S=R.create(O,y,b):(j=P.is(F)?F:this._changeAnnotations.manage(F),S=R.create(O,y,b,j)),this._workspaceEdit.documentChanges.push(S),j!==void 0)return j},T.prototype.deleteFile=function(O,y,$){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var b;_.is(y)||P.is(y)?b=y:$=y;var F,S;if(b===void 0?F=L.create(O,$):(S=P.is(b)?b:this._changeAnnotations.manage(b),F=L.create(O,$,S)),this._workspaceEdit.documentChanges.push(F),S!==void 0)return S},T}();r.WorkspaceChange=Ne;var se;(function(T){function O($){return{uri:$}}T.create=O;function y($){var b=$;return z.defined(b)&&z.string(b.uri)}T.is=y})(se||(r.TextDocumentIdentifier=se={}));var K;(function(T){function O($,b){return{uri:$,version:b}}T.create=O;function y($){var b=$;return z.defined(b)&&z.string(b.uri)&&z.integer(b.version)}T.is=y})(K||(r.VersionedTextDocumentIdentifier=K={}));var Te;(function(T){function O($,b){return{uri:$,version:b}}T.create=O;function y($){var b=$;return z.defined(b)&&z.string(b.uri)&&(b.version===null||z.integer(b.version))}T.is=y})(Te||(r.OptionalVersionedTextDocumentIdentifier=Te={}));var at;(function(T){function O($,b,F,S){return{uri:$,languageId:b,version:F,text:S}}T.create=O;function y($){var b=$;return z.defined(b)&&z.string(b.uri)&&z.string(b.languageId)&&z.integer(b.version)&&z.string(b.text)}T.is=y})(at||(r.TextDocumentItem=at={}));var H;(function(T){T.PlainText="plaintext",T.Markdown="markdown";function O(y){var $=y;return $===T.PlainText||$===T.Markdown}T.is=O})(H||(r.MarkupKind=H={}));var Y;(function(T){function O(y){var $=y;return z.objectLiteral(y)&&H.is($.kind)&&z.string($.value)}T.is=O})(Y||(r.MarkupContent=Y={}));var Q;(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})(Q||(r.CompletionItemKind=Q={}));var ne;(function(T){T.PlainText=1,T.Snippet=2})(ne||(r.InsertTextFormat=ne={}));var fe;(function(T){T.Deprecated=1})(fe||(r.CompletionItemTag=fe={}));var Ee;(function(T){function O($,b,F){return{newText:$,insert:b,replace:F}}T.create=O;function y($){var b=$;return b&&z.string(b.newText)&&u.is(b.insert)&&u.is(b.replace)}T.is=y})(Ee||(r.InsertReplaceEdit=Ee={}));var me;(function(T){T.asIs=1,T.adjustIndentation=2})(me||(r.InsertTextMode=me={}));var ae;(function(T){function O(y){var $=y;return $&&(z.string($.detail)||$.detail===void 0)&&(z.string($.description)||$.description===void 0)}T.is=O})(ae||(r.CompletionItemLabelDetails=ae={}));var M;(function(T){function O(y){return{label:y}}T.create=O})(M||(r.CompletionItem=M={}));var U;(function(T){function O(y,$){return{items:y||[],isIncomplete:!!$}}T.create=O})(U||(r.CompletionList=U={}));var oe;(function(T){function O($){return $.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}T.fromPlainText=O;function y($){var b=$;return z.string(b)||z.objectLiteral(b)&&z.string(b.language)&&z.string(b.value)}T.is=y})(oe||(r.MarkedString=oe={}));var W;(function(T){function O(y){var $=y;return!!$&&z.objectLiteral($)&&(Y.is($.contents)||oe.is($.contents)||z.typedArray($.contents,oe.is))&&(y.range===void 0||u.is(y.range))}T.is=O})(W||(r.Hover=W={}));var Oe;(function(T){function O(y,$){return $?{label:y,documentation:$}:{label:y}}T.create=O})(Oe||(r.ParameterInformation=Oe={}));var mt;(function(T){function O(y,$){for(var b=[],F=2;F<arguments.length;F++)b[F-2]=arguments[F];var S={label:y};return z.defined($)&&(S.documentation=$),z.defined(b)?S.parameters=b:S.parameters=[],S}T.create=O})(mt||(r.SignatureInformation=mt={}));var pn;(function(T){T.Text=1,T.Read=2,T.Write=3})(pn||(r.DocumentHighlightKind=pn={}));var tr;(function(T){function O(y,$){var b={range:y};return z.number($)&&(b.kind=$),b}T.create=O})(tr||(r.DocumentHighlight=tr={}));var nr;(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})(nr||(r.SymbolKind=nr={}));var rr;(function(T){T.Deprecated=1})(rr||(r.SymbolTag=rr={}));var zt;(function(T){function O(y,$,b,F,S){var j={name:y,kind:$,location:{uri:F,range:b}};return S&&(j.containerName=S),j}T.create=O})(zt||(r.SymbolInformation=zt={}));var Cn;(function(T){function O(y,$,b,F){return F!==void 0?{name:y,kind:$,location:{uri:b,range:F}}:{name:y,kind:$,location:{uri:b}}}T.create=O})(Cn||(r.WorkspaceSymbol=Cn={}));var Yr;(function(T){function O($,b,F,S,j,ee){var ie={name:$,detail:b,kind:F,range:S,selectionRange:j};return ee!==void 0&&(ie.children=ee),ie}T.create=O;function y($){var b=$;return b&&z.string(b.name)&&z.number(b.kind)&&u.is(b.range)&&u.is(b.selectionRange)&&(b.detail===void 0||z.string(b.detail))&&(b.deprecated===void 0||z.boolean(b.deprecated))&&(b.children===void 0||Array.isArray(b.children))&&(b.tags===void 0||Array.isArray(b.tags))}T.is=y})(Yr||(r.DocumentSymbol=Yr={}));var Mn;(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"})(Mn||(r.CodeActionKind=Mn={}));var gn;(function(T){T.Invoked=1,T.Automatic=2})(gn||(r.CodeActionTriggerKind=gn={}));var zn;(function(T){function O($,b,F){var S={diagnostics:$};return b!=null&&(S.only=b),F!=null&&(S.triggerKind=F),S}T.create=O;function y($){var b=$;return z.defined(b)&&z.typedArray(b.diagnostics,A.is)&&(b.only===void 0||z.typedArray(b.only,z.string))&&(b.triggerKind===void 0||b.triggerKind===gn.Invoked||b.triggerKind===gn.Automatic)}T.is=y})(zn||(r.CodeActionContext=zn={}));var en;(function(T){function O($,b,F){var S={title:$},j=!0;return typeof b=="string"?(j=!1,S.kind=b):I.is(b)?S.command=b:S.edit=b,j&&F!==void 0&&(S.kind=F),S}T.create=O;function y($){var b=$;return b&&z.string(b.title)&&(b.diagnostics===void 0||z.typedArray(b.diagnostics,A.is))&&(b.kind===void 0||z.string(b.kind))&&(b.edit!==void 0||b.command!==void 0)&&(b.command===void 0||I.is(b.command))&&(b.isPreferred===void 0||z.boolean(b.isPreferred))&&(b.edit===void 0||G.is(b.edit))}T.is=y})(en||(r.CodeAction=en={}));var X;(function(T){function O($,b){var F={range:$};return z.defined(b)&&(F.data=b),F}T.create=O;function y($){var b=$;return z.defined(b)&&u.is(b.range)&&(z.undefined(b.command)||I.is(b.command))}T.is=y})(X||(r.CodeLens=X={}));var J;(function(T){function O($,b){return{tabSize:$,insertSpaces:b}}T.create=O;function y($){var b=$;return z.defined(b)&&z.uinteger(b.tabSize)&&z.boolean(b.insertSpaces)}T.is=y})(J||(r.FormattingOptions=J={}));var ue;(function(T){function O($,b,F){return{range:$,target:b,data:F}}T.create=O;function y($){var b=$;return z.defined(b)&&u.is(b.range)&&(z.undefined(b.target)||z.string(b.target))}T.is=y})(ue||(r.DocumentLink=ue={}));var Bt;(function(T){function O($,b){return{range:$,parent:b}}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&u.is(b.range)&&(b.parent===void 0||T.is(b.parent))}T.is=y})(Bt||(r.SelectionRange=Bt={}));var Ft;(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"})(Ft||(r.SemanticTokenTypes=Ft={}));var Tr;(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"})(Tr||(r.SemanticTokenModifiers=Tr={}));var Ci;(function(T){function O(y){var $=y;return z.objectLiteral($)&&($.resultId===void 0||typeof $.resultId=="string")&&Array.isArray($.data)&&($.data.length===0||typeof $.data[0]=="number")}T.is=O})(Ci||(r.SemanticTokens=Ci={}));var ls;(function(T){function O($,b){return{range:$,text:b}}T.create=O;function y($){var b=$;return b!=null&&u.is(b.range)&&z.string(b.text)}T.is=y})(ls||(r.InlineValueText=ls={}));var ds;(function(T){function O($,b,F){return{range:$,variableName:b,caseSensitiveLookup:F}}T.create=O;function y($){var b=$;return b!=null&&u.is(b.range)&&z.boolean(b.caseSensitiveLookup)&&(z.string(b.variableName)||b.variableName===void 0)}T.is=y})(ds||(r.InlineValueVariableLookup=ds={}));var fs;(function(T){function O($,b){return{range:$,expression:b}}T.create=O;function y($){var b=$;return b!=null&&u.is(b.range)&&(z.string(b.expression)||b.expression===void 0)}T.is=y})(fs||(r.InlineValueEvaluatableExpression=fs={}));var hs;(function(T){function O($,b){return{frameId:$,stoppedLocation:b}}T.create=O;function y($){var b=$;return z.defined(b)&&u.is($.stoppedLocation)}T.is=y})(hs||(r.InlineValueContext=hs={}));var _i;(function(T){T.Type=1,T.Parameter=2;function O(y){return y===1||y===2}T.is=O})(_i||(r.InlayHintKind=_i={}));var Ai;(function(T){function O($){return{value:$}}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&(b.tooltip===void 0||z.string(b.tooltip)||Y.is(b.tooltip))&&(b.location===void 0||l.is(b.location))&&(b.command===void 0||I.is(b.command))}T.is=y})(Ai||(r.InlayHintLabelPart=Ai={}));var mn;(function(T){function O($,b,F){var S={position:$,label:b};return F!==void 0&&(S.kind=F),S}T.create=O;function y($){var b=$;return z.objectLiteral(b)&&c.is(b.position)&&(z.string(b.label)||z.typedArray(b.label,Ai.is))&&(b.kind===void 0||_i.is(b.kind))&&b.textEdits===void 0||z.typedArray(b.textEdits,x.is)&&(b.tooltip===void 0||z.string(b.tooltip)||Y.is(b.tooltip))&&(b.paddingLeft===void 0||z.boolean(b.paddingLeft))&&(b.paddingRight===void 0||z.boolean(b.paddingRight))}T.is=y})(mn||(r.InlayHint=mn={}));var ps;(function(T){function O(y){return{kind:"snippet",value:y}}T.createSnippet=O})(ps||(r.StringValue=ps={}));var gs;(function(T){function O(y,$,b,F){return{insertText:y,filterText:$,range:b,command:F}}T.create=O})(gs||(r.InlineCompletionItem=gs={}));var Rr;(function(T){function O(y){return{items:y}}T.create=O})(Rr||(r.InlineCompletionList=Rr={}));var ms;(function(T){T.Invoked=0,T.Automatic=1})(ms||(r.InlineCompletionTriggerKind=ms={}));var Xr;(function(T){function O(y,$){return{range:y,text:$}}T.create=O})(Xr||(r.SelectedCompletionInfo=Xr={}));var ys;(function(T){function O(y,$){return{triggerKind:y,selectedCompletionInfo:$}}T.create=O})(ys||(r.InlineCompletionContext=ys={}));var Bn;(function(T){function O(y){var $=y;return z.objectLiteral($)&&s.is($.uri)&&z.string($.name)}T.is=O})(Bn||(r.WorkspaceFolder=Bn={})),r.EOL=[`
156
+ `,`\r
157
+ `,"\r"];var ir;(function(T){function O(F,S,j,ee){return new wo(F,S,j,ee)}T.create=O;function y(F){var S=F;return!!(z.defined(S)&&z.string(S.uri)&&(z.undefined(S.languageId)||z.string(S.languageId))&&z.uinteger(S.lineCount)&&z.func(S.getText)&&z.func(S.positionAt)&&z.func(S.offsetAt))}T.is=y;function $(F,S){for(var j=F.getText(),ee=b(S,function($e,Ye){var Ue=$e.range.start.line-Ye.range.start.line;return Ue===0?$e.range.start.character-Ye.range.start.character:Ue}),ie=j.length,xe=ee.length-1;xe>=0;xe--){var _e=ee[xe],je=F.offsetAt(_e.range.start),he=F.offsetAt(_e.range.end);if(he<=ie)j=j.substring(0,je)+_e.newText+j.substring(he,j.length);else throw new Error("Overlapping edit");ie=je}return j}T.applyEdits=$;function b(F,S){if(F.length<=1)return F;var j=F.length/2|0,ee=F.slice(0,j),ie=F.slice(j);b(ee,S),b(ie,S);for(var xe=0,_e=0,je=0;xe<ee.length&&_e<ie.length;){var he=S(ee[xe],ie[_e]);he<=0?F[je++]=ee[xe++]:F[je++]=ie[_e++]}for(;xe<ee.length;)F[je++]=ee[xe++];for(;_e<ie.length;)F[je++]=ie[_e++];return F}})(ir||(r.TextDocument=ir={}));var wo=function(){function T(O,y,$,b){this._uri=O,this._languageId=y,this._version=$,this._content=b,this._lineOffsets=void 0}return Object.defineProperty(T.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(T.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(T.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),T.prototype.getText=function(O){if(O){var y=this.offsetAt(O.start),$=this.offsetAt(O.end);return this._content.substring(y,$)}return this._content},T.prototype.update=function(O,y){this._content=O.text,this._version=y,this._lineOffsets=void 0},T.prototype.getLineOffsets=function(){if(this._lineOffsets===void 0){for(var O=[],y=this._content,$=!0,b=0;b<y.length;b++){$&&(O.push(b),$=!1);var F=y.charAt(b);$=F==="\r"||F===`
158
+ `,F==="\r"&&b+1<y.length&&y.charAt(b+1)===`
159
+ `&&b++}$&&y.length>0&&O.push(y.length),this._lineOffsets=O}return this._lineOffsets},T.prototype.positionAt=function(O){O=Math.max(Math.min(O,this._content.length),0);var y=this.getLineOffsets(),$=0,b=y.length;if(b===0)return c.create(0,O);for(;$<b;){var F=Math.floor(($+b)/2);y[F]>O?b=F:$=F+1}var S=$-1;return c.create(S,O-y[S])},T.prototype.offsetAt=function(O){var y=this.getLineOffsets();if(O.line>=y.length)return this._content.length;if(O.line<0)return 0;var $=y[O.line],b=O.line+1<y.length?y[O.line+1]:this._content.length;return Math.max(Math.min($+O.character,b),$)},Object.defineProperty(T.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),T}(),z;(function(T){var O=Object.prototype.toString;function y(he){return typeof he<"u"}T.defined=y;function $(he){return typeof he>"u"}T.undefined=$;function b(he){return he===!0||he===!1}T.boolean=b;function F(he){return O.call(he)==="[object String]"}T.string=F;function S(he){return O.call(he)==="[object Number]"}T.number=S;function j(he,$e,Ye){return O.call(he)==="[object Number]"&&$e<=he&&he<=Ye}T.numberRange=j;function ee(he){return O.call(he)==="[object Number]"&&-2147483648<=he&&he<=2147483647}T.integer=ee;function ie(he){return O.call(he)==="[object Number]"&&0<=he&&he<=2147483647}T.uinteger=ie;function xe(he){return O.call(he)==="[object Function]"}T.func=xe;function _e(he){return he!==null&&typeof he=="object"}T.objectLiteral=_e;function je(he,$e){return Array.isArray(he)&&he.every($e)}T.typedArray=je})(z||(z={}))})}(Jf,Jf.exports)),Jf.exports}var un={},Ak;function pt(){if(Ak)return un;Ak=1,Object.defineProperty(un,"__esModule",{value:!0}),un.ProtocolNotificationType=un.ProtocolNotificationType0=un.ProtocolRequestType=un.ProtocolRequestType0=un.RegistrationType=un.MessageDirection=void 0;const t=Gs();var e;(function(a){a.clientToServer="clientToServer",a.serverToClient="serverToClient",a.both="both"})(e||(un.MessageDirection=e={}));class n{constructor(c){this.method=c}}un.RegistrationType=n;class r extends t.RequestType0{constructor(c){super(c)}}un.ProtocolRequestType0=r;class i extends t.RequestType{constructor(c){super(c,t.ParameterStructures.byName)}}un.ProtocolRequestType=i;class s extends t.NotificationType0{constructor(c){super(c)}}un.ProtocolNotificationType0=s;class o extends t.NotificationType{constructor(c){super(c,t.ParameterStructures.byName)}}return un.ProtocolNotificationType=o,un}var Yy={},Tt={},xk;function Xy(){if(xk)return Tt;xk=1,Object.defineProperty(Tt,"__esModule",{value:!0}),Tt.objectLiteral=Tt.typedArray=Tt.stringArray=Tt.array=Tt.func=Tt.error=Tt.number=Tt.string=Tt.boolean=void 0;function t(u){return u===!0||u===!1}Tt.boolean=t;function e(u){return typeof u=="string"||u instanceof String}Tt.string=e;function n(u){return typeof u=="number"||u instanceof Number}Tt.number=n;function r(u){return u instanceof Error}Tt.error=r;function i(u){return typeof u=="function"}Tt.func=i;function s(u){return Array.isArray(u)}Tt.array=s;function o(u){return s(u)&&u.every(l=>e(l))}Tt.stringArray=o;function a(u,l){return Array.isArray(u)&&u.every(l)}Tt.typedArray=a;function c(u){return u!==null&&typeof u=="object"}return Tt.objectLiteral=c,Tt}var tu={},Ik;function s9(){if(Ik)return tu;Ik=1,Object.defineProperty(tu,"__esModule",{value:!0}),tu.ImplementationRequest=void 0;const t=pt();var e;return function(n){n.method="textDocument/implementation",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(tu.ImplementationRequest=e={})),tu}var nu={},Pk;function o9(){if(Pk)return nu;Pk=1,Object.defineProperty(nu,"__esModule",{value:!0}),nu.TypeDefinitionRequest=void 0;const t=pt();var e;return function(n){n.method="textDocument/typeDefinition",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(nu.TypeDefinitionRequest=e={})),nu}var Vs={},Nk;function a9(){if(Nk)return Vs;Nk=1,Object.defineProperty(Vs,"__esModule",{value:!0}),Vs.DidChangeWorkspaceFoldersNotification=Vs.WorkspaceFoldersRequest=void 0;const t=pt();var e;(function(r){r.method="workspace/workspaceFolders",r.messageDirection=t.MessageDirection.serverToClient,r.type=new t.ProtocolRequestType0(r.method)})(e||(Vs.WorkspaceFoldersRequest=e={}));var n;return function(r){r.method="workspace/didChangeWorkspaceFolders",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolNotificationType(r.method)}(n||(Vs.DidChangeWorkspaceFoldersNotification=n={})),Vs}var ru={},Ok;function c9(){if(Ok)return ru;Ok=1,Object.defineProperty(ru,"__esModule",{value:!0}),ru.ConfigurationRequest=void 0;const t=pt();var e;return function(n){n.method="workspace/configuration",n.messageDirection=t.MessageDirection.serverToClient,n.type=new t.ProtocolRequestType(n.method)}(e||(ru.ConfigurationRequest=e={})),ru}var Ks={},Fk;function u9(){if(Fk)return Ks;Fk=1,Object.defineProperty(Ks,"__esModule",{value:!0}),Ks.ColorPresentationRequest=Ks.DocumentColorRequest=void 0;const t=pt();var e;(function(r){r.method="textDocument/documentColor",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolRequestType(r.method)})(e||(Ks.DocumentColorRequest=e={}));var n;return function(r){r.method="textDocument/colorPresentation",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolRequestType(r.method)}(n||(Ks.ColorPresentationRequest=n={})),Ks}var Ys={},Lk;function l9(){if(Lk)return Ys;Lk=1,Object.defineProperty(Ys,"__esModule",{value:!0}),Ys.FoldingRangeRefreshRequest=Ys.FoldingRangeRequest=void 0;const t=pt();var e;(function(r){r.method="textDocument/foldingRange",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolRequestType(r.method)})(e||(Ys.FoldingRangeRequest=e={}));var n;return function(r){r.method="workspace/foldingRange/refresh",r.messageDirection=t.MessageDirection.serverToClient,r.type=new t.ProtocolRequestType0(r.method)}(n||(Ys.FoldingRangeRefreshRequest=n={})),Ys}var iu={},Mk;function d9(){if(Mk)return iu;Mk=1,Object.defineProperty(iu,"__esModule",{value:!0}),iu.DeclarationRequest=void 0;const t=pt();var e;return function(n){n.method="textDocument/declaration",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(iu.DeclarationRequest=e={})),iu}var su={},zk;function f9(){if(zk)return su;zk=1,Object.defineProperty(su,"__esModule",{value:!0}),su.SelectionRangeRequest=void 0;const t=pt();var e;return function(n){n.method="textDocument/selectionRange",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(su.SelectionRangeRequest=e={})),su}var Ei={},Bk;function h9(){if(Bk)return Ei;Bk=1,Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.WorkDoneProgressCancelNotification=Ei.WorkDoneProgressCreateRequest=Ei.WorkDoneProgress=void 0;const t=Gs(),e=pt();var n;(function(s){s.type=new t.ProgressType;function o(a){return a===s.type}s.is=o})(n||(Ei.WorkDoneProgress=n={}));var r;(function(s){s.method="window/workDoneProgress/create",s.messageDirection=e.MessageDirection.serverToClient,s.type=new e.ProtocolRequestType(s.method)})(r||(Ei.WorkDoneProgressCreateRequest=r={}));var i;return function(s){s.method="window/workDoneProgress/cancel",s.messageDirection=e.MessageDirection.clientToServer,s.type=new e.ProtocolNotificationType(s.method)}(i||(Ei.WorkDoneProgressCancelNotification=i={})),Ei}var Di={},qk;function p9(){if(qk)return Di;qk=1,Object.defineProperty(Di,"__esModule",{value:!0}),Di.CallHierarchyOutgoingCallsRequest=Di.CallHierarchyIncomingCallsRequest=Di.CallHierarchyPrepareRequest=void 0;const t=pt();var e;(function(i){i.method="textDocument/prepareCallHierarchy",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(e||(Di.CallHierarchyPrepareRequest=e={}));var n;(function(i){i.method="callHierarchy/incomingCalls",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(n||(Di.CallHierarchyIncomingCallsRequest=n={}));var r;return function(i){i.method="callHierarchy/outgoingCalls",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)}(r||(Di.CallHierarchyOutgoingCallsRequest=r={})),Di}var ln={},jk;function g9(){if(jk)return ln;jk=1,Object.defineProperty(ln,"__esModule",{value:!0}),ln.SemanticTokensRefreshRequest=ln.SemanticTokensRangeRequest=ln.SemanticTokensDeltaRequest=ln.SemanticTokensRequest=ln.SemanticTokensRegistrationType=ln.TokenFormat=void 0;const t=pt();var e;(function(a){a.Relative="relative"})(e||(ln.TokenFormat=e={}));var n;(function(a){a.method="textDocument/semanticTokens",a.type=new t.RegistrationType(a.method)})(n||(ln.SemanticTokensRegistrationType=n={}));var r;(function(a){a.method="textDocument/semanticTokens/full",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method),a.registrationMethod=n.method})(r||(ln.SemanticTokensRequest=r={}));var i;(function(a){a.method="textDocument/semanticTokens/full/delta",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method),a.registrationMethod=n.method})(i||(ln.SemanticTokensDeltaRequest=i={}));var s;(function(a){a.method="textDocument/semanticTokens/range",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method),a.registrationMethod=n.method})(s||(ln.SemanticTokensRangeRequest=s={}));var o;return function(a){a.method="workspace/semanticTokens/refresh",a.messageDirection=t.MessageDirection.serverToClient,a.type=new t.ProtocolRequestType0(a.method)}(o||(ln.SemanticTokensRefreshRequest=o={})),ln}var ou={},Uk;function m9(){if(Uk)return ou;Uk=1,Object.defineProperty(ou,"__esModule",{value:!0}),ou.ShowDocumentRequest=void 0;const t=pt();var e;return function(n){n.method="window/showDocument",n.messageDirection=t.MessageDirection.serverToClient,n.type=new t.ProtocolRequestType(n.method)}(e||(ou.ShowDocumentRequest=e={})),ou}var au={},Wk;function y9(){if(Wk)return au;Wk=1,Object.defineProperty(au,"__esModule",{value:!0}),au.LinkedEditingRangeRequest=void 0;const t=pt();var e;return function(n){n.method="textDocument/linkedEditingRange",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(au.LinkedEditingRangeRequest=e={})),au}var Gt={},Gk;function v9(){if(Gk)return Gt;Gk=1,Object.defineProperty(Gt,"__esModule",{value:!0}),Gt.WillDeleteFilesRequest=Gt.DidDeleteFilesNotification=Gt.DidRenameFilesNotification=Gt.WillRenameFilesRequest=Gt.DidCreateFilesNotification=Gt.WillCreateFilesRequest=Gt.FileOperationPatternKind=void 0;const t=pt();var e;(function(c){c.file="file",c.folder="folder"})(e||(Gt.FileOperationPatternKind=e={}));var n;(function(c){c.method="workspace/willCreateFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolRequestType(c.method)})(n||(Gt.WillCreateFilesRequest=n={}));var r;(function(c){c.method="workspace/didCreateFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolNotificationType(c.method)})(r||(Gt.DidCreateFilesNotification=r={}));var i;(function(c){c.method="workspace/willRenameFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolRequestType(c.method)})(i||(Gt.WillRenameFilesRequest=i={}));var s;(function(c){c.method="workspace/didRenameFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolNotificationType(c.method)})(s||(Gt.DidRenameFilesNotification=s={}));var o;(function(c){c.method="workspace/didDeleteFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolNotificationType(c.method)})(o||(Gt.DidDeleteFilesNotification=o={}));var a;return function(c){c.method="workspace/willDeleteFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolRequestType(c.method)}(a||(Gt.WillDeleteFilesRequest=a={})),Gt}var Ti={},Hk;function w9(){if(Hk)return Ti;Hk=1,Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.MonikerRequest=Ti.MonikerKind=Ti.UniquenessLevel=void 0;const t=pt();var e;(function(i){i.document="document",i.project="project",i.group="group",i.scheme="scheme",i.global="global"})(e||(Ti.UniquenessLevel=e={}));var n;(function(i){i.$import="import",i.$export="export",i.local="local"})(n||(Ti.MonikerKind=n={}));var r;return function(i){i.method="textDocument/moniker",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)}(r||(Ti.MonikerRequest=r={})),Ti}var Ri={},Vk;function b9(){if(Vk)return Ri;Vk=1,Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.TypeHierarchySubtypesRequest=Ri.TypeHierarchySupertypesRequest=Ri.TypeHierarchyPrepareRequest=void 0;const t=pt();var e;(function(i){i.method="textDocument/prepareTypeHierarchy",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(e||(Ri.TypeHierarchyPrepareRequest=e={}));var n;(function(i){i.method="typeHierarchy/supertypes",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(n||(Ri.TypeHierarchySupertypesRequest=n={}));var r;return function(i){i.method="typeHierarchy/subtypes",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)}(r||(Ri.TypeHierarchySubtypesRequest=r={})),Ri}var Xs={},Kk;function E9(){if(Kk)return Xs;Kk=1,Object.defineProperty(Xs,"__esModule",{value:!0}),Xs.InlineValueRefreshRequest=Xs.InlineValueRequest=void 0;const t=pt();var e;(function(r){r.method="textDocument/inlineValue",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolRequestType(r.method)})(e||(Xs.InlineValueRequest=e={}));var n;return function(r){r.method="workspace/inlineValue/refresh",r.messageDirection=t.MessageDirection.serverToClient,r.type=new t.ProtocolRequestType0(r.method)}(n||(Xs.InlineValueRefreshRequest=n={})),Xs}var Si={},Yk;function D9(){if(Yk)return Si;Yk=1,Object.defineProperty(Si,"__esModule",{value:!0}),Si.InlayHintRefreshRequest=Si.InlayHintResolveRequest=Si.InlayHintRequest=void 0;const t=pt();var e;(function(i){i.method="textDocument/inlayHint",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(e||(Si.InlayHintRequest=e={}));var n;(function(i){i.method="inlayHint/resolve",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(n||(Si.InlayHintResolveRequest=n={}));var r;return function(i){i.method="workspace/inlayHint/refresh",i.messageDirection=t.MessageDirection.serverToClient,i.type=new t.ProtocolRequestType0(i.method)}(r||(Si.InlayHintRefreshRequest=r={})),Si}var On={},Xk;function T9(){if(Xk)return On;Xk=1,Object.defineProperty(On,"__esModule",{value:!0}),On.DiagnosticRefreshRequest=On.WorkspaceDiagnosticRequest=On.DocumentDiagnosticRequest=On.DocumentDiagnosticReportKind=On.DiagnosticServerCancellationData=void 0;const t=Gs(),e=Xy(),n=pt();var r;(function(c){function u(l){const d=l;return d&&e.boolean(d.retriggerRequest)}c.is=u})(r||(On.DiagnosticServerCancellationData=r={}));var i;(function(c){c.Full="full",c.Unchanged="unchanged"})(i||(On.DocumentDiagnosticReportKind=i={}));var s;(function(c){c.method="textDocument/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new t.ProgressType})(s||(On.DocumentDiagnosticRequest=s={}));var o;(function(c){c.method="workspace/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new t.ProgressType})(o||(On.WorkspaceDiagnosticRequest=o={}));var a;return function(c){c.method="workspace/diagnostic/refresh",c.messageDirection=n.MessageDirection.serverToClient,c.type=new n.ProtocolRequestType0(c.method)}(a||(On.DiagnosticRefreshRequest=a={})),On}var gt={},Jk;function R9(){if(Jk)return gt;Jk=1,Object.defineProperty(gt,"__esModule",{value:!0}),gt.DidCloseNotebookDocumentNotification=gt.DidSaveNotebookDocumentNotification=gt.DidChangeNotebookDocumentNotification=gt.NotebookCellArrayChange=gt.DidOpenNotebookDocumentNotification=gt.NotebookDocumentSyncRegistrationType=gt.NotebookDocument=gt.NotebookCell=gt.ExecutionSummary=gt.NotebookCellKind=void 0;const t=Ky(),e=Xy(),n=pt();var r;(function(h){h.Markup=1,h.Code=2;function p(g){return g===1||g===2}h.is=p})(r||(gt.NotebookCellKind=r={}));var i;(function(h){function p(m,w){const E={executionOrder:m};return(w===!0||w===!1)&&(E.success=w),E}h.create=p;function g(m){const w=m;return e.objectLiteral(w)&&t.uinteger.is(w.executionOrder)&&(w.success===void 0||e.boolean(w.success))}h.is=g;function v(m,w){return m===w?!0:m==null||w===null||w===void 0?!1:m.executionOrder===w.executionOrder&&m.success===w.success}h.equals=v})(i||(gt.ExecutionSummary=i={}));var s;(function(h){function p(w,E){return{kind:w,document:E}}h.create=p;function g(w){const E=w;return e.objectLiteral(E)&&r.is(E.kind)&&t.DocumentUri.is(E.document)&&(E.metadata===void 0||e.objectLiteral(E.metadata))}h.is=g;function v(w,E){const k=new Set;return w.document!==E.document&&k.add("document"),w.kind!==E.kind&&k.add("kind"),w.executionSummary!==E.executionSummary&&k.add("executionSummary"),(w.metadata!==void 0||E.metadata!==void 0)&&!m(w.metadata,E.metadata)&&k.add("metadata"),(w.executionSummary!==void 0||E.executionSummary!==void 0)&&!i.equals(w.executionSummary,E.executionSummary)&&k.add("executionSummary"),k}h.diff=v;function m(w,E){if(w===E)return!0;if(w==null||E===null||E===void 0||typeof w!=typeof E||typeof w!="object")return!1;const k=Array.isArray(w),A=Array.isArray(E);if(k!==A)return!1;if(k&&A){if(w.length!==E.length)return!1;for(let I=0;I<w.length;I++)if(!m(w[I],E[I]))return!1}if(e.objectLiteral(w)&&e.objectLiteral(E)){const I=Object.keys(w),x=Object.keys(E);if(I.length!==x.length||(I.sort(),x.sort(),!m(I,x)))return!1;for(let _=0;_<I.length;_++){const P=I[_];if(!m(w[P],E[P]))return!1}}return!0}})(s||(gt.NotebookCell=s={}));var o;(function(h){function p(v,m,w,E){return{uri:v,notebookType:m,version:w,cells:E}}h.create=p;function g(v){const m=v;return e.objectLiteral(m)&&e.string(m.uri)&&t.integer.is(m.version)&&e.typedArray(m.cells,s.is)}h.is=g})(o||(gt.NotebookDocument=o={}));var a;(function(h){h.method="notebookDocument/sync",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.RegistrationType(h.method)})(a||(gt.NotebookDocumentSyncRegistrationType=a={}));var c;(function(h){h.method="notebookDocument/didOpen",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.ProtocolNotificationType(h.method),h.registrationMethod=a.method})(c||(gt.DidOpenNotebookDocumentNotification=c={}));var u;(function(h){function p(v){const m=v;return e.objectLiteral(m)&&t.uinteger.is(m.start)&&t.uinteger.is(m.deleteCount)&&(m.cells===void 0||e.typedArray(m.cells,s.is))}h.is=p;function g(v,m,w){const E={start:v,deleteCount:m};return w!==void 0&&(E.cells=w),E}h.create=g})(u||(gt.NotebookCellArrayChange=u={}));var l;(function(h){h.method="notebookDocument/didChange",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.ProtocolNotificationType(h.method),h.registrationMethod=a.method})(l||(gt.DidChangeNotebookDocumentNotification=l={}));var d;(function(h){h.method="notebookDocument/didSave",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.ProtocolNotificationType(h.method),h.registrationMethod=a.method})(d||(gt.DidSaveNotebookDocumentNotification=d={}));var f;return function(h){h.method="notebookDocument/didClose",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.ProtocolNotificationType(h.method),h.registrationMethod=a.method}(f||(gt.DidCloseNotebookDocumentNotification=f={})),gt}var cu={},Zk;function S9(){if(Zk)return cu;Zk=1,Object.defineProperty(cu,"__esModule",{value:!0}),cu.InlineCompletionRequest=void 0;const t=pt();var e;return function(n){n.method="textDocument/inlineCompletion",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(cu.InlineCompletionRequest=e={})),cu}var Qk;function k9(){return Qk||(Qk=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.WorkspaceSymbolRequest=t.CodeActionResolveRequest=t.CodeActionRequest=t.DocumentSymbolRequest=t.DocumentHighlightRequest=t.ReferencesRequest=t.DefinitionRequest=t.SignatureHelpRequest=t.SignatureHelpTriggerKind=t.HoverRequest=t.CompletionResolveRequest=t.CompletionRequest=t.CompletionTriggerKind=t.PublishDiagnosticsNotification=t.WatchKind=t.RelativePattern=t.FileChangeType=t.DidChangeWatchedFilesNotification=t.WillSaveTextDocumentWaitUntilRequest=t.WillSaveTextDocumentNotification=t.TextDocumentSaveReason=t.DidSaveTextDocumentNotification=t.DidCloseTextDocumentNotification=t.DidChangeTextDocumentNotification=t.TextDocumentContentChangeEvent=t.DidOpenTextDocumentNotification=t.TextDocumentSyncKind=t.TelemetryEventNotification=t.LogMessageNotification=t.ShowMessageRequest=t.ShowMessageNotification=t.MessageType=t.DidChangeConfigurationNotification=t.ExitNotification=t.ShutdownRequest=t.InitializedNotification=t.InitializeErrorCodes=t.InitializeRequest=t.WorkDoneProgressOptions=t.TextDocumentRegistrationOptions=t.StaticRegistrationOptions=t.PositionEncodingKind=t.FailureHandlingKind=t.ResourceOperationKind=t.UnregistrationRequest=t.RegistrationRequest=t.DocumentSelector=t.NotebookCellTextDocumentFilter=t.NotebookDocumentFilter=t.TextDocumentFilter=void 0,t.MonikerRequest=t.MonikerKind=t.UniquenessLevel=t.WillDeleteFilesRequest=t.DidDeleteFilesNotification=t.WillRenameFilesRequest=t.DidRenameFilesNotification=t.WillCreateFilesRequest=t.DidCreateFilesNotification=t.FileOperationPatternKind=t.LinkedEditingRangeRequest=t.ShowDocumentRequest=t.SemanticTokensRegistrationType=t.SemanticTokensRefreshRequest=t.SemanticTokensRangeRequest=t.SemanticTokensDeltaRequest=t.SemanticTokensRequest=t.TokenFormat=t.CallHierarchyPrepareRequest=t.CallHierarchyOutgoingCallsRequest=t.CallHierarchyIncomingCallsRequest=t.WorkDoneProgressCancelNotification=t.WorkDoneProgressCreateRequest=t.WorkDoneProgress=t.SelectionRangeRequest=t.DeclarationRequest=t.FoldingRangeRefreshRequest=t.FoldingRangeRequest=t.ColorPresentationRequest=t.DocumentColorRequest=t.ConfigurationRequest=t.DidChangeWorkspaceFoldersNotification=t.WorkspaceFoldersRequest=t.TypeDefinitionRequest=t.ImplementationRequest=t.ApplyWorkspaceEditRequest=t.ExecuteCommandRequest=t.PrepareRenameRequest=t.RenameRequest=t.PrepareSupportDefaultBehavior=t.DocumentOnTypeFormattingRequest=t.DocumentRangesFormattingRequest=t.DocumentRangeFormattingRequest=t.DocumentFormattingRequest=t.DocumentLinkResolveRequest=t.DocumentLinkRequest=t.CodeLensRefreshRequest=t.CodeLensResolveRequest=t.CodeLensRequest=t.WorkspaceSymbolResolveRequest=void 0,t.InlineCompletionRequest=t.DidCloseNotebookDocumentNotification=t.DidSaveNotebookDocumentNotification=t.DidChangeNotebookDocumentNotification=t.NotebookCellArrayChange=t.DidOpenNotebookDocumentNotification=t.NotebookDocumentSyncRegistrationType=t.NotebookDocument=t.NotebookCell=t.ExecutionSummary=t.NotebookCellKind=t.DiagnosticRefreshRequest=t.WorkspaceDiagnosticRequest=t.DocumentDiagnosticRequest=t.DocumentDiagnosticReportKind=t.DiagnosticServerCancellationData=t.InlayHintRefreshRequest=t.InlayHintResolveRequest=t.InlayHintRequest=t.InlineValueRefreshRequest=t.InlineValueRequest=t.TypeHierarchySupertypesRequest=t.TypeHierarchySubtypesRequest=t.TypeHierarchyPrepareRequest=void 0;const e=pt(),n=Ky(),r=Xy(),i=s9();Object.defineProperty(t,"ImplementationRequest",{enumerable:!0,get:function(){return i.ImplementationRequest}});const s=o9();Object.defineProperty(t,"TypeDefinitionRequest",{enumerable:!0,get:function(){return s.TypeDefinitionRequest}});const o=a9();Object.defineProperty(t,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return o.WorkspaceFoldersRequest}}),Object.defineProperty(t,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return o.DidChangeWorkspaceFoldersNotification}});const a=c9();Object.defineProperty(t,"ConfigurationRequest",{enumerable:!0,get:function(){return a.ConfigurationRequest}});const c=u9();Object.defineProperty(t,"DocumentColorRequest",{enumerable:!0,get:function(){return c.DocumentColorRequest}}),Object.defineProperty(t,"ColorPresentationRequest",{enumerable:!0,get:function(){return c.ColorPresentationRequest}});const u=l9();Object.defineProperty(t,"FoldingRangeRequest",{enumerable:!0,get:function(){return u.FoldingRangeRequest}}),Object.defineProperty(t,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return u.FoldingRangeRefreshRequest}});const l=d9();Object.defineProperty(t,"DeclarationRequest",{enumerable:!0,get:function(){return l.DeclarationRequest}});const d=f9();Object.defineProperty(t,"SelectionRangeRequest",{enumerable:!0,get:function(){return d.SelectionRangeRequest}});const f=h9();Object.defineProperty(t,"WorkDoneProgress",{enumerable:!0,get:function(){return f.WorkDoneProgress}}),Object.defineProperty(t,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return f.WorkDoneProgressCreateRequest}}),Object.defineProperty(t,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return f.WorkDoneProgressCancelNotification}});const h=p9();Object.defineProperty(t,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return h.CallHierarchyIncomingCallsRequest}}),Object.defineProperty(t,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return h.CallHierarchyOutgoingCallsRequest}}),Object.defineProperty(t,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return h.CallHierarchyPrepareRequest}});const p=g9();Object.defineProperty(t,"TokenFormat",{enumerable:!0,get:function(){return p.TokenFormat}}),Object.defineProperty(t,"SemanticTokensRequest",{enumerable:!0,get:function(){return p.SemanticTokensRequest}}),Object.defineProperty(t,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return p.SemanticTokensDeltaRequest}}),Object.defineProperty(t,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return p.SemanticTokensRangeRequest}}),Object.defineProperty(t,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return p.SemanticTokensRefreshRequest}}),Object.defineProperty(t,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return p.SemanticTokensRegistrationType}});const g=m9();Object.defineProperty(t,"ShowDocumentRequest",{enumerable:!0,get:function(){return g.ShowDocumentRequest}});const v=y9();Object.defineProperty(t,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return v.LinkedEditingRangeRequest}});const m=v9();Object.defineProperty(t,"FileOperationPatternKind",{enumerable:!0,get:function(){return m.FileOperationPatternKind}}),Object.defineProperty(t,"DidCreateFilesNotification",{enumerable:!0,get:function(){return m.DidCreateFilesNotification}}),Object.defineProperty(t,"WillCreateFilesRequest",{enumerable:!0,get:function(){return m.WillCreateFilesRequest}}),Object.defineProperty(t,"DidRenameFilesNotification",{enumerable:!0,get:function(){return m.DidRenameFilesNotification}}),Object.defineProperty(t,"WillRenameFilesRequest",{enumerable:!0,get:function(){return m.WillRenameFilesRequest}}),Object.defineProperty(t,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return m.DidDeleteFilesNotification}}),Object.defineProperty(t,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return m.WillDeleteFilesRequest}});const w=w9();Object.defineProperty(t,"UniquenessLevel",{enumerable:!0,get:function(){return w.UniquenessLevel}}),Object.defineProperty(t,"MonikerKind",{enumerable:!0,get:function(){return w.MonikerKind}}),Object.defineProperty(t,"MonikerRequest",{enumerable:!0,get:function(){return w.MonikerRequest}});const E=b9();Object.defineProperty(t,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return E.TypeHierarchyPrepareRequest}}),Object.defineProperty(t,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return E.TypeHierarchySubtypesRequest}}),Object.defineProperty(t,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return E.TypeHierarchySupertypesRequest}});const k=E9();Object.defineProperty(t,"InlineValueRequest",{enumerable:!0,get:function(){return k.InlineValueRequest}}),Object.defineProperty(t,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return k.InlineValueRefreshRequest}});const A=D9();Object.defineProperty(t,"InlayHintRequest",{enumerable:!0,get:function(){return A.InlayHintRequest}}),Object.defineProperty(t,"InlayHintResolveRequest",{enumerable:!0,get:function(){return A.InlayHintResolveRequest}}),Object.defineProperty(t,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return A.InlayHintRefreshRequest}});const I=T9();Object.defineProperty(t,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return I.DiagnosticServerCancellationData}}),Object.defineProperty(t,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return I.DocumentDiagnosticReportKind}}),Object.defineProperty(t,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return I.DocumentDiagnosticRequest}}),Object.defineProperty(t,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return I.WorkspaceDiagnosticRequest}}),Object.defineProperty(t,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return I.DiagnosticRefreshRequest}});const x=R9();Object.defineProperty(t,"NotebookCellKind",{enumerable:!0,get:function(){return x.NotebookCellKind}}),Object.defineProperty(t,"ExecutionSummary",{enumerable:!0,get:function(){return x.ExecutionSummary}}),Object.defineProperty(t,"NotebookCell",{enumerable:!0,get:function(){return x.NotebookCell}}),Object.defineProperty(t,"NotebookDocument",{enumerable:!0,get:function(){return x.NotebookDocument}}),Object.defineProperty(t,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return x.NotebookDocumentSyncRegistrationType}}),Object.defineProperty(t,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return x.DidOpenNotebookDocumentNotification}}),Object.defineProperty(t,"NotebookCellArrayChange",{enumerable:!0,get:function(){return x.NotebookCellArrayChange}}),Object.defineProperty(t,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return x.DidChangeNotebookDocumentNotification}}),Object.defineProperty(t,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return x.DidSaveNotebookDocumentNotification}}),Object.defineProperty(t,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return x.DidCloseNotebookDocumentNotification}});const _=S9();Object.defineProperty(t,"InlineCompletionRequest",{enumerable:!0,get:function(){return _.InlineCompletionRequest}});var P;(function(y){function $(b){const F=b;return r.string(F)||r.string(F.language)||r.string(F.scheme)||r.string(F.pattern)}y.is=$})(P||(t.TextDocumentFilter=P={}));var N;(function(y){function $(b){const F=b;return r.objectLiteral(F)&&(r.string(F.notebookType)||r.string(F.scheme)||r.string(F.pattern))}y.is=$})(N||(t.NotebookDocumentFilter=N={}));var C;(function(y){function $(b){const F=b;return r.objectLiteral(F)&&(r.string(F.notebook)||N.is(F.notebook))&&(F.language===void 0||r.string(F.language))}y.is=$})(C||(t.NotebookCellTextDocumentFilter=C={}));var D;(function(y){function $(b){if(!Array.isArray(b))return!1;for(let F of b)if(!r.string(F)&&!P.is(F)&&!C.is(F))return!1;return!0}y.is=$})(D||(t.DocumentSelector=D={}));var R;(function(y){y.method="client/registerCapability",y.messageDirection=e.MessageDirection.serverToClient,y.type=new e.ProtocolRequestType(y.method)})(R||(t.RegistrationRequest=R={}));var L;(function(y){y.method="client/unregisterCapability",y.messageDirection=e.MessageDirection.serverToClient,y.type=new e.ProtocolRequestType(y.method)})(L||(t.UnregistrationRequest=L={}));var G;(function(y){y.Create="create",y.Rename="rename",y.Delete="delete"})(G||(t.ResourceOperationKind=G={}));var V;(function(y){y.Abort="abort",y.Transactional="transactional",y.TextOnlyTransactional="textOnlyTransactional",y.Undo="undo"})(V||(t.FailureHandlingKind=V={}));var Z;(function(y){y.UTF8="utf-8",y.UTF16="utf-16",y.UTF32="utf-32"})(Z||(t.PositionEncodingKind=Z={}));var Ne;(function(y){function $(b){const F=b;return F&&r.string(F.id)&&F.id.length>0}y.hasId=$})(Ne||(t.StaticRegistrationOptions=Ne={}));var se;(function(y){function $(b){const F=b;return F&&(F.documentSelector===null||D.is(F.documentSelector))}y.is=$})(se||(t.TextDocumentRegistrationOptions=se={}));var K;(function(y){function $(F){const S=F;return r.objectLiteral(S)&&(S.workDoneProgress===void 0||r.boolean(S.workDoneProgress))}y.is=$;function b(F){const S=F;return S&&r.boolean(S.workDoneProgress)}y.hasWorkDoneProgress=b})(K||(t.WorkDoneProgressOptions=K={}));var Te;(function(y){y.method="initialize",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(Te||(t.InitializeRequest=Te={}));var at;(function(y){y.unknownProtocolVersion=1})(at||(t.InitializeErrorCodes=at={}));var H;(function(y){y.method="initialized",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolNotificationType(y.method)})(H||(t.InitializedNotification=H={}));var Y;(function(y){y.method="shutdown",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType0(y.method)})(Y||(t.ShutdownRequest=Y={}));var Q;(function(y){y.method="exit",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolNotificationType0(y.method)})(Q||(t.ExitNotification=Q={}));var ne;(function(y){y.method="workspace/didChangeConfiguration",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolNotificationType(y.method)})(ne||(t.DidChangeConfigurationNotification=ne={}));var fe;(function(y){y.Error=1,y.Warning=2,y.Info=3,y.Log=4,y.Debug=5})(fe||(t.MessageType=fe={}));var Ee;(function(y){y.method="window/showMessage",y.messageDirection=e.MessageDirection.serverToClient,y.type=new e.ProtocolNotificationType(y.method)})(Ee||(t.ShowMessageNotification=Ee={}));var me;(function(y){y.method="window/showMessageRequest",y.messageDirection=e.MessageDirection.serverToClient,y.type=new e.ProtocolRequestType(y.method)})(me||(t.ShowMessageRequest=me={}));var ae;(function(y){y.method="window/logMessage",y.messageDirection=e.MessageDirection.serverToClient,y.type=new e.ProtocolNotificationType(y.method)})(ae||(t.LogMessageNotification=ae={}));var M;(function(y){y.method="telemetry/event",y.messageDirection=e.MessageDirection.serverToClient,y.type=new e.ProtocolNotificationType(y.method)})(M||(t.TelemetryEventNotification=M={}));var U;(function(y){y.None=0,y.Full=1,y.Incremental=2})(U||(t.TextDocumentSyncKind=U={}));var oe;(function(y){y.method="textDocument/didOpen",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolNotificationType(y.method)})(oe||(t.DidOpenTextDocumentNotification=oe={}));var W;(function(y){function $(F){let S=F;return S!=null&&typeof S.text=="string"&&S.range!==void 0&&(S.rangeLength===void 0||typeof S.rangeLength=="number")}y.isIncremental=$;function b(F){let S=F;return S!=null&&typeof S.text=="string"&&S.range===void 0&&S.rangeLength===void 0}y.isFull=b})(W||(t.TextDocumentContentChangeEvent=W={}));var Oe;(function(y){y.method="textDocument/didChange",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolNotificationType(y.method)})(Oe||(t.DidChangeTextDocumentNotification=Oe={}));var mt;(function(y){y.method="textDocument/didClose",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolNotificationType(y.method)})(mt||(t.DidCloseTextDocumentNotification=mt={}));var pn;(function(y){y.method="textDocument/didSave",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolNotificationType(y.method)})(pn||(t.DidSaveTextDocumentNotification=pn={}));var tr;(function(y){y.Manual=1,y.AfterDelay=2,y.FocusOut=3})(tr||(t.TextDocumentSaveReason=tr={}));var nr;(function(y){y.method="textDocument/willSave",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolNotificationType(y.method)})(nr||(t.WillSaveTextDocumentNotification=nr={}));var rr;(function(y){y.method="textDocument/willSaveWaitUntil",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(rr||(t.WillSaveTextDocumentWaitUntilRequest=rr={}));var zt;(function(y){y.method="workspace/didChangeWatchedFiles",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolNotificationType(y.method)})(zt||(t.DidChangeWatchedFilesNotification=zt={}));var Cn;(function(y){y.Created=1,y.Changed=2,y.Deleted=3})(Cn||(t.FileChangeType=Cn={}));var Yr;(function(y){function $(b){const F=b;return r.objectLiteral(F)&&(n.URI.is(F.baseUri)||n.WorkspaceFolder.is(F.baseUri))&&r.string(F.pattern)}y.is=$})(Yr||(t.RelativePattern=Yr={}));var Mn;(function(y){y.Create=1,y.Change=2,y.Delete=4})(Mn||(t.WatchKind=Mn={}));var gn;(function(y){y.method="textDocument/publishDiagnostics",y.messageDirection=e.MessageDirection.serverToClient,y.type=new e.ProtocolNotificationType(y.method)})(gn||(t.PublishDiagnosticsNotification=gn={}));var zn;(function(y){y.Invoked=1,y.TriggerCharacter=2,y.TriggerForIncompleteCompletions=3})(zn||(t.CompletionTriggerKind=zn={}));var en;(function(y){y.method="textDocument/completion",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(en||(t.CompletionRequest=en={}));var X;(function(y){y.method="completionItem/resolve",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(X||(t.CompletionResolveRequest=X={}));var J;(function(y){y.method="textDocument/hover",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(J||(t.HoverRequest=J={}));var ue;(function(y){y.Invoked=1,y.TriggerCharacter=2,y.ContentChange=3})(ue||(t.SignatureHelpTriggerKind=ue={}));var Bt;(function(y){y.method="textDocument/signatureHelp",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(Bt||(t.SignatureHelpRequest=Bt={}));var Ft;(function(y){y.method="textDocument/definition",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(Ft||(t.DefinitionRequest=Ft={}));var Tr;(function(y){y.method="textDocument/references",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(Tr||(t.ReferencesRequest=Tr={}));var Ci;(function(y){y.method="textDocument/documentHighlight",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(Ci||(t.DocumentHighlightRequest=Ci={}));var ls;(function(y){y.method="textDocument/documentSymbol",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(ls||(t.DocumentSymbolRequest=ls={}));var ds;(function(y){y.method="textDocument/codeAction",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(ds||(t.CodeActionRequest=ds={}));var fs;(function(y){y.method="codeAction/resolve",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(fs||(t.CodeActionResolveRequest=fs={}));var hs;(function(y){y.method="workspace/symbol",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(hs||(t.WorkspaceSymbolRequest=hs={}));var _i;(function(y){y.method="workspaceSymbol/resolve",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(_i||(t.WorkspaceSymbolResolveRequest=_i={}));var Ai;(function(y){y.method="textDocument/codeLens",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(Ai||(t.CodeLensRequest=Ai={}));var mn;(function(y){y.method="codeLens/resolve",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(mn||(t.CodeLensResolveRequest=mn={}));var ps;(function(y){y.method="workspace/codeLens/refresh",y.messageDirection=e.MessageDirection.serverToClient,y.type=new e.ProtocolRequestType0(y.method)})(ps||(t.CodeLensRefreshRequest=ps={}));var gs;(function(y){y.method="textDocument/documentLink",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(gs||(t.DocumentLinkRequest=gs={}));var Rr;(function(y){y.method="documentLink/resolve",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(Rr||(t.DocumentLinkResolveRequest=Rr={}));var ms;(function(y){y.method="textDocument/formatting",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(ms||(t.DocumentFormattingRequest=ms={}));var Xr;(function(y){y.method="textDocument/rangeFormatting",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(Xr||(t.DocumentRangeFormattingRequest=Xr={}));var ys;(function(y){y.method="textDocument/rangesFormatting",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(ys||(t.DocumentRangesFormattingRequest=ys={}));var Bn;(function(y){y.method="textDocument/onTypeFormatting",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(Bn||(t.DocumentOnTypeFormattingRequest=Bn={}));var ir;(function(y){y.Identifier=1})(ir||(t.PrepareSupportDefaultBehavior=ir={}));var wo;(function(y){y.method="textDocument/rename",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(wo||(t.RenameRequest=wo={}));var z;(function(y){y.method="textDocument/prepareRename",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(z||(t.PrepareRenameRequest=z={}));var T;(function(y){y.method="workspace/executeCommand",y.messageDirection=e.MessageDirection.clientToServer,y.type=new e.ProtocolRequestType(y.method)})(T||(t.ExecuteCommandRequest=T={}));var O;(function(y){y.method="workspace/applyEdit",y.messageDirection=e.MessageDirection.serverToClient,y.type=new e.ProtocolRequestType("workspace/applyEdit")})(O||(t.ApplyWorkspaceEditRequest=O={}))}(Yy)),Yy}var uu={},e$;function $9(){if(e$)return uu;e$=1,Object.defineProperty(uu,"__esModule",{value:!0}),uu.createProtocolConnection=void 0;const t=Gs();function e(n,r,i,s){return t.ConnectionStrategy.is(s)&&(s={connectionStrategy:s}),(0,t.createMessageConnection)(n,r,i,s)}return uu.createProtocolConnection=e,uu}var t$;function C9(){return t$||(t$=1,function(t){var e=Hs&&Hs.__createBinding||(Object.create?function(s,o,a,c){c===void 0&&(c=a);var u=Object.getOwnPropertyDescriptor(o,a);(!u||("get"in u?!o.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return o[a]}}),Object.defineProperty(s,c,u)}:function(s,o,a,c){c===void 0&&(c=a),s[c]=o[a]}),n=Hs&&Hs.__exportStar||function(s,o){for(var a in s)a!=="default"&&!Object.prototype.hasOwnProperty.call(o,a)&&e(o,s,a)};Object.defineProperty(t,"__esModule",{value:!0}),t.LSPErrorCodes=t.createProtocolConnection=void 0,n(Gs(),t),n(Ky(),t),n(pt(),t),n(k9(),t);var r=$9();Object.defineProperty(t,"createProtocolConnection",{enumerable:!0,get:function(){return r.createProtocolConnection}});var i;(function(s){s.lspReservedErrorRangeStart=-32899,s.RequestFailed=-32803,s.ServerCancelled=-32802,s.ContentModified=-32801,s.RequestCancelled=-32800,s.lspReservedErrorRangeEnd=-32800})(i||(t.LSPErrorCodes=i={}))}(Hs)),Hs}var n$;function Rt(){return n$||(n$=1,function(t){var e=js&&js.__createBinding||(Object.create?function(s,o,a,c){c===void 0&&(c=a);var u=Object.getOwnPropertyDescriptor(o,a);(!u||("get"in u?!o.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return o[a]}}),Object.defineProperty(s,c,u)}:function(s,o,a,c){c===void 0&&(c=a),s[c]=o[a]}),n=js&&js.__exportStar||function(s,o){for(var a in s)a!=="default"&&!Object.prototype.hasOwnProperty.call(o,a)&&e(o,s,a)};Object.defineProperty(t,"__esModule",{value:!0}),t.createProtocolConnection=void 0;const r=$k();n($k(),t),n(C9(),t);function i(s,o,a,c){return(0,r.createMessageConnection)(s,o,a,c)}t.createProtocolConnection=i}(js)),js}var Fn={},r$;function i$(){if(r$)return Fn;r$=1,Object.defineProperty(Fn,"__esModule",{value:!0}),Fn.generateUuid=Fn.parse=Fn.isUUID=Fn.v4=Fn.empty=void 0;class t{constructor(c){this._value=c}asHex(){return this._value}equals(c){return this.asHex()===c.asHex()}}class e extends t{static _oneOf(c){return c[Math.floor(c.length*Math.random())]}static _randomHex(){return e._oneOf(e._chars)}constructor(){super([e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),"-",e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),"-","4",e._randomHex(),e._randomHex(),e._randomHex(),"-",e._oneOf(e._timeHighBits),e._randomHex(),e._randomHex(),e._randomHex(),"-",e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex()].join(""))}}e._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"],e._timeHighBits=["8","9","a","b"],Fn.empty=new t("00000000-0000-0000-0000-000000000000");function n(){return new e}Fn.v4=n;const r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function i(a){return r.test(a)}Fn.isUUID=i;function s(a){if(!i(a))throw new Error("invalid uuid");return new t(a)}Fn.parse=s;function o(){return n().asHex()}return Fn.generateUuid=o,Fn}var ki={},s$;function _9(){if(s$)return ki;s$=1,Object.defineProperty(ki,"__esModule",{value:!0}),ki.attachPartialResult=ki.ProgressFeature=ki.attachWorkDone=void 0;const t=Rt(),e=i$();class n{constructor(f,h){this._connection=f,this._token=h,n.Instances.set(this._token,this)}begin(f,h,p,g){let v={kind:"begin",title:f,percentage:h,message:p,cancellable:g};this._connection.sendProgress(t.WorkDoneProgress.type,this._token,v)}report(f,h){let p={kind:"report"};typeof f=="number"?(p.percentage=f,h!==void 0&&(p.message=h)):p.message=f,this._connection.sendProgress(t.WorkDoneProgress.type,this._token,p)}done(){n.Instances.delete(this._token),this._connection.sendProgress(t.WorkDoneProgress.type,this._token,{kind:"end"})}}n.Instances=new Map;class r extends n{constructor(f,h){super(f,h),this._source=new t.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}}class i{constructor(){}begin(){}report(){}done(){}}class s extends i{constructor(){super(),this._source=new t.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}}function o(d,f){if(f===void 0||f.workDoneToken===void 0)return new i;const h=f.workDoneToken;return delete f.workDoneToken,new n(d,h)}ki.attachWorkDone=o;const a=d=>class extends d{constructor(){super(),this._progressSupported=!1}initialize(f){super.initialize(f),f?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(t.WorkDoneProgressCancelNotification.type,h=>{let p=n.Instances.get(h.token);(p instanceof r||p instanceof s)&&p.cancel()}))}attachWorkDoneProgress(f){return f===void 0?new i:new n(this.connection,f)}createWorkDoneProgress(){if(this._progressSupported){const f=(0,e.generateUuid)();return this.connection.sendRequest(t.WorkDoneProgressCreateRequest.type,{token:f}).then(()=>new r(this.connection,f))}else return Promise.resolve(new s)}};ki.ProgressFeature=a;var c;(function(d){d.type=new t.ProgressType})(c||(c={}));class u{constructor(f,h){this._connection=f,this._token=h}report(f){this._connection.sendProgress(c.type,this._token,f)}}function l(d,f){if(f===void 0||f.partialResultToken===void 0)return;const h=f.partialResultToken;return delete f.partialResultToken,new u(d,h)}return ki.attachPartialResult=l,ki}var lu={},o$;function A9(){if(o$)return lu;o$=1,Object.defineProperty(lu,"__esModule",{value:!0}),lu.ConfigurationFeature=void 0;const t=Rt(),e=Uy(),n=r=>class extends r{getConfiguration(i){return i?e.string(i)?this._getConfiguration({section:i}):this._getConfiguration(i):this._getConfiguration({})}_getConfiguration(i){let s={items:Array.isArray(i)?i:[i]};return this.connection.sendRequest(t.ConfigurationRequest.type,s).then(o=>Array.isArray(o)?Array.isArray(i)?o:o[0]:Array.isArray(i)?[]:null)}};return lu.ConfigurationFeature=n,lu}var du={},a$;function x9(){if(a$)return du;a$=1,Object.defineProperty(du,"__esModule",{value:!0}),du.WorkspaceFoldersFeature=void 0;const t=Rt(),e=n=>class extends n{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(r){super.initialize(r);let i=r.workspace;i&&i.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new t.Emitter,this.connection.onNotification(t.DidChangeWorkspaceFoldersNotification.type,s=>{this._onDidChangeWorkspaceFolders.fire(s.event)}))}fillServerCapabilities(r){super.fillServerCapabilities(r);const i=r.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=i===!0||typeof i=="string"}getWorkspaceFolders(){return this.connection.sendRequest(t.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(t.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};return du.WorkspaceFoldersFeature=e,du}var fu={},c$;function I9(){if(c$)return fu;c$=1,Object.defineProperty(fu,"__esModule",{value:!0}),fu.CallHierarchyFeature=void 0;const t=Rt(),e=n=>class extends n{get callHierarchy(){return{onPrepare:r=>this.connection.onRequest(t.CallHierarchyPrepareRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),void 0)),onIncomingCalls:r=>{const i=t.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))},onOutgoingCalls:r=>{const i=t.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))}}}};return fu.CallHierarchyFeature=e,fu}var $i={},u$;function l$(){if(u$)return $i;u$=1,Object.defineProperty($i,"__esModule",{value:!0}),$i.SemanticTokensBuilder=$i.SemanticTokensDiff=$i.SemanticTokensFeature=void 0;const t=Rt(),e=i=>class extends i{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(t.SemanticTokensRefreshRequest.type),on:s=>{const o=t.SemanticTokensRequest.type;return this.connection.onRequest(o,(a,c)=>s(a,c,this.attachWorkDoneProgress(a),this.attachPartialResultProgress(o,a)))},onDelta:s=>{const o=t.SemanticTokensDeltaRequest.type;return this.connection.onRequest(o,(a,c)=>s(a,c,this.attachWorkDoneProgress(a),this.attachPartialResultProgress(o,a)))},onRange:s=>{const o=t.SemanticTokensRangeRequest.type;return this.connection.onRequest(o,(a,c)=>s(a,c,this.attachWorkDoneProgress(a),this.attachPartialResultProgress(o,a)))}}}};$i.SemanticTokensFeature=e;class n{constructor(s,o){this.originalSequence=s,this.modifiedSequence=o}computeDiff(){const s=this.originalSequence.length,o=this.modifiedSequence.length;let a=0;for(;a<o&&a<s&&this.originalSequence[a]===this.modifiedSequence[a];)a++;if(a<o&&a<s){let c=s-1,u=o-1;for(;c>=a&&u>=a&&this.originalSequence[c]===this.modifiedSequence[u];)c--,u--;(c<a||u<a)&&(c++,u++);const l=c-a+1,d=this.modifiedSequence.slice(a,u+1);return d.length===1&&d[0]===this.originalSequence[c]?[{start:a,deleteCount:l-1}]:[{start:a,deleteCount:l,data:d}]}else return a<o?[{start:a,deleteCount:0,data:this.modifiedSequence.slice(a)}]:a<s?[{start:a,deleteCount:s-a}]:[]}}$i.SemanticTokensDiff=n;class r{constructor(){this._prevData=void 0,this.initialize()}initialize(){this._id=Date.now(),this._prevLine=0,this._prevChar=0,this._data=[],this._dataLen=0}push(s,o,a,c,u){let l=s,d=o;this._dataLen>0&&(l-=this._prevLine,l===0&&(d-=this._prevChar)),this._data[this._dataLen++]=l,this._data[this._dataLen++]=d,this._data[this._dataLen++]=a,this._data[this._dataLen++]=c,this._data[this._dataLen++]=u,this._prevLine=s,this._prevChar=o}get id(){return this._id.toString()}previousResult(s){this.id===s&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new n(this._prevData,this._data).computeDiff()}:this.build()}}return $i.SemanticTokensBuilder=r,$i}var hu={},d$;function P9(){if(d$)return hu;d$=1,Object.defineProperty(hu,"__esModule",{value:!0}),hu.ShowDocumentFeature=void 0;const t=Rt(),e=n=>class extends n{showDocument(r){return this.connection.sendRequest(t.ShowDocumentRequest.type,r)}};return hu.ShowDocumentFeature=e,hu}var pu={},f$;function N9(){if(f$)return pu;f$=1,Object.defineProperty(pu,"__esModule",{value:!0}),pu.FileOperationsFeature=void 0;const t=Rt(),e=n=>class extends n{onDidCreateFiles(r){return this.connection.onNotification(t.DidCreateFilesNotification.type,i=>{r(i)})}onDidRenameFiles(r){return this.connection.onNotification(t.DidRenameFilesNotification.type,i=>{r(i)})}onDidDeleteFiles(r){return this.connection.onNotification(t.DidDeleteFilesNotification.type,i=>{r(i)})}onWillCreateFiles(r){return this.connection.onRequest(t.WillCreateFilesRequest.type,(i,s)=>r(i,s))}onWillRenameFiles(r){return this.connection.onRequest(t.WillRenameFilesRequest.type,(i,s)=>r(i,s))}onWillDeleteFiles(r){return this.connection.onRequest(t.WillDeleteFilesRequest.type,(i,s)=>r(i,s))}};return pu.FileOperationsFeature=e,pu}var gu={},h$;function O9(){if(h$)return gu;h$=1,Object.defineProperty(gu,"__esModule",{value:!0}),gu.LinkedEditingRangeFeature=void 0;const t=Rt(),e=n=>class extends n{onLinkedEditingRange(r){return this.connection.onRequest(t.LinkedEditingRangeRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),void 0))}};return gu.LinkedEditingRangeFeature=e,gu}var mu={},p$;function F9(){if(p$)return mu;p$=1,Object.defineProperty(mu,"__esModule",{value:!0}),mu.TypeHierarchyFeature=void 0;const t=Rt(),e=n=>class extends n{get typeHierarchy(){return{onPrepare:r=>this.connection.onRequest(t.TypeHierarchyPrepareRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),void 0)),onSupertypes:r=>{const i=t.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))},onSubtypes:r=>{const i=t.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))}}}};return mu.TypeHierarchyFeature=e,mu}var yu={},g$;function L9(){if(g$)return yu;g$=1,Object.defineProperty(yu,"__esModule",{value:!0}),yu.InlineValueFeature=void 0;const t=Rt(),e=n=>class extends n{get inlineValue(){return{refresh:()=>this.connection.sendRequest(t.InlineValueRefreshRequest.type),on:r=>this.connection.onRequest(t.InlineValueRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i)))}}};return yu.InlineValueFeature=e,yu}var vu={},m$;function M9(){if(m$)return vu;m$=1,Object.defineProperty(vu,"__esModule",{value:!0}),vu.FoldingRangeFeature=void 0;const t=Rt(),e=n=>class extends n{get foldingRange(){return{refresh:()=>this.connection.sendRequest(t.FoldingRangeRefreshRequest.type),on:r=>{const i=t.FoldingRangeRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))}}}};return vu.FoldingRangeFeature=e,vu}var wu={},y$;function z9(){if(y$)return wu;y$=1,Object.defineProperty(wu,"__esModule",{value:!0}),wu.InlayHintFeature=void 0;const t=Rt(),e=n=>class extends n{get inlayHint(){return{refresh:()=>this.connection.sendRequest(t.InlayHintRefreshRequest.type),on:r=>this.connection.onRequest(t.InlayHintRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i))),resolve:r=>this.connection.onRequest(t.InlayHintResolveRequest.type,(i,s)=>r(i,s))}}};return wu.InlayHintFeature=e,wu}var bu={},v$;function B9(){if(v$)return bu;v$=1,Object.defineProperty(bu,"__esModule",{value:!0}),bu.DiagnosticFeature=void 0;const t=Rt(),e=n=>class extends n{get diagnostics(){return{refresh:()=>this.connection.sendRequest(t.DiagnosticRefreshRequest.type),on:r=>this.connection.onRequest(t.DocumentDiagnosticRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t.DocumentDiagnosticRequest.partialResult,i))),onWorkspace:r=>this.connection.onRequest(t.WorkspaceDiagnosticRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t.WorkspaceDiagnosticRequest.partialResult,i)))}}};return bu.DiagnosticFeature=e,bu}var Js={},Eu={},w$;function b$(){if(w$)return Eu;w$=1,Object.defineProperty(Eu,"__esModule",{value:!0}),Eu.TextDocuments=void 0;const t=Rt();class e{constructor(r){this._configuration=r,this._syncedDocuments=new Map,this._onDidChangeContent=new t.Emitter,this._onDidOpen=new t.Emitter,this._onDidClose=new t.Emitter,this._onDidSave=new t.Emitter,this._onWillSave=new t.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(r){this._willSaveWaitUntil=r}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(r){return this._syncedDocuments.get(r)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(r){r.__textDocumentSync=t.TextDocumentSyncKind.Incremental;const i=[];return i.push(r.onDidOpenTextDocument(s=>{const o=s.textDocument,a=this._configuration.create(o.uri,o.languageId,o.version,o.text);this._syncedDocuments.set(o.uri,a);const c=Object.freeze({document:a});this._onDidOpen.fire(c),this._onDidChangeContent.fire(c)})),i.push(r.onDidChangeTextDocument(s=>{const o=s.textDocument,a=s.contentChanges;if(a.length===0)return;const{version:c}=o;if(c==null)throw new Error(`Received document change event for ${o.uri} without valid version identifier`);let u=this._syncedDocuments.get(o.uri);u!==void 0&&(u=this._configuration.update(u,a,c),this._syncedDocuments.set(o.uri,u),this._onDidChangeContent.fire(Object.freeze({document:u})))})),i.push(r.onDidCloseTextDocument(s=>{let o=this._syncedDocuments.get(s.textDocument.uri);o!==void 0&&(this._syncedDocuments.delete(s.textDocument.uri),this._onDidClose.fire(Object.freeze({document:o})))})),i.push(r.onWillSaveTextDocument(s=>{let o=this._syncedDocuments.get(s.textDocument.uri);o!==void 0&&this._onWillSave.fire(Object.freeze({document:o,reason:s.reason}))})),i.push(r.onWillSaveTextDocumentWaitUntil((s,o)=>{let a=this._syncedDocuments.get(s.textDocument.uri);return a!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:a,reason:s.reason}),o):[]})),i.push(r.onDidSaveTextDocument(s=>{let o=this._syncedDocuments.get(s.textDocument.uri);o!==void 0&&this._onDidSave.fire(Object.freeze({document:o}))})),t.Disposable.create(()=>{i.forEach(s=>s.dispose())})}}return Eu.TextDocuments=e,Eu}var E$;function D$(){if(E$)return Js;E$=1,Object.defineProperty(Js,"__esModule",{value:!0}),Js.NotebookDocuments=Js.NotebookSyncFeature=void 0;const t=Rt(),e=b$(),n=s=>class extends s{get synchronization(){return{onDidOpenNotebookDocument:o=>this.connection.onNotification(t.DidOpenNotebookDocumentNotification.type,a=>{o(a)}),onDidChangeNotebookDocument:o=>this.connection.onNotification(t.DidChangeNotebookDocumentNotification.type,a=>{o(a)}),onDidSaveNotebookDocument:o=>this.connection.onNotification(t.DidSaveNotebookDocumentNotification.type,a=>{o(a)}),onDidCloseNotebookDocument:o=>this.connection.onNotification(t.DidCloseNotebookDocumentNotification.type,a=>{o(a)})}}};Js.NotebookSyncFeature=n;class r{onDidOpenTextDocument(o){return this.openHandler=o,t.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(o){this.openHandler&&this.openHandler(o)}onDidChangeTextDocument(o){return this.changeHandler=o,t.Disposable.create(()=>{this.changeHandler=o})}changeTextDocument(o){this.changeHandler&&this.changeHandler(o)}onDidCloseTextDocument(o){return this.closeHandler=o,t.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(o){this.closeHandler&&this.closeHandler(o)}onWillSaveTextDocument(){return r.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return r.NULL_DISPOSE}onDidSaveTextDocument(){return r.NULL_DISPOSE}}r.NULL_DISPOSE=Object.freeze({dispose:()=>{}});class i{constructor(o){o instanceof e.TextDocuments?this._cellTextDocuments=o:this._cellTextDocuments=new e.TextDocuments(o),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new t.Emitter,this._onDidChange=new t.Emitter,this._onDidSave=new t.Emitter,this._onDidClose=new t.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(o){return this._cellTextDocuments.get(o.document)}getNotebookDocument(o){return this.notebookDocuments.get(o)}getNotebookCell(o){const a=this.notebookCellMap.get(o);return a&&a[0]}findNotebookDocumentForCell(o){const a=typeof o=="string"?o:o.document,c=this.notebookCellMap.get(a);return c&&c[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(o){const a=new r,c=[];return c.push(this.cellTextDocuments.listen(a)),c.push(o.notebooks.synchronization.onDidOpenNotebookDocument(u=>{this.notebookDocuments.set(u.notebookDocument.uri,u.notebookDocument);for(const l of u.cellTextDocuments)a.openTextDocument({textDocument:l});this.updateCellMap(u.notebookDocument),this._onDidOpen.fire(u.notebookDocument)})),c.push(o.notebooks.synchronization.onDidChangeNotebookDocument(u=>{const l=this.notebookDocuments.get(u.notebookDocument.uri);if(l===void 0)return;l.version=u.notebookDocument.version;const d=l.metadata;let f=!1;const h=u.change;h.metadata!==void 0&&(f=!0,l.metadata=h.metadata);const p=[],g=[],v=[],m=[];if(h.cells!==void 0){const I=h.cells;if(I.structure!==void 0){const x=I.structure.array;if(l.cells.splice(x.start,x.deleteCount,...x.cells!==void 0?x.cells:[]),I.structure.didOpen!==void 0)for(const _ of I.structure.didOpen)a.openTextDocument({textDocument:_}),p.push(_.uri);if(I.structure.didClose)for(const _ of I.structure.didClose)a.closeTextDocument({textDocument:_}),g.push(_.uri)}if(I.data!==void 0){const x=new Map(I.data.map(_=>[_.document,_]));for(let _=0;_<=l.cells.length;_++){const P=x.get(l.cells[_].document);if(P!==void 0){const N=l.cells.splice(_,1,P);if(v.push({old:N[0],new:P}),x.delete(P.document),x.size===0)break}}}if(I.textContent!==void 0)for(const x of I.textContent)a.changeTextDocument({textDocument:x.document,contentChanges:x.changes}),m.push(x.document.uri)}this.updateCellMap(l);const w={notebookDocument:l};f&&(w.metadata={old:d,new:l.metadata});const E=[];for(const I of p)E.push(this.getNotebookCell(I));const k=[];for(const I of g)k.push(this.getNotebookCell(I));const A=[];for(const I of m)A.push(this.getNotebookCell(I));(E.length>0||k.length>0||v.length>0||A.length>0)&&(w.cells={added:E,removed:k,changed:{data:v,textContent:A}}),(w.metadata!==void 0||w.cells!==void 0)&&this._onDidChange.fire(w)})),c.push(o.notebooks.synchronization.onDidSaveNotebookDocument(u=>{const l=this.notebookDocuments.get(u.notebookDocument.uri);l!==void 0&&this._onDidSave.fire(l)})),c.push(o.notebooks.synchronization.onDidCloseNotebookDocument(u=>{const l=this.notebookDocuments.get(u.notebookDocument.uri);if(l!==void 0){this._onDidClose.fire(l);for(const d of u.cellTextDocuments)a.closeTextDocument({textDocument:d});this.notebookDocuments.delete(u.notebookDocument.uri);for(const d of l.cells)this.notebookCellMap.delete(d.document)}})),t.Disposable.create(()=>{c.forEach(u=>u.dispose())})}updateCellMap(o){for(const a of o.cells)this.notebookCellMap.set(a.document,[a,o])}}return Js.NotebookDocuments=i,Js}var Du={},T$;function q9(){if(T$)return Du;T$=1,Object.defineProperty(Du,"__esModule",{value:!0}),Du.MonikerFeature=void 0;const t=Rt(),e=n=>class extends n{get moniker(){return{on:r=>{const i=t.MonikerRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))}}}};return Du.MonikerFeature=e,Du}var R$;function S$(){if(R$)return qe;R$=1,Object.defineProperty(qe,"__esModule",{value:!0}),qe.createConnection=qe.combineFeatures=qe.combineNotebooksFeatures=qe.combineLanguagesFeatures=qe.combineWorkspaceFeatures=qe.combineWindowFeatures=qe.combineClientFeatures=qe.combineTracerFeatures=qe.combineTelemetryFeatures=qe.combineConsoleFeatures=qe._NotebooksImpl=qe._LanguagesImpl=qe.BulkUnregistration=qe.BulkRegistration=qe.ErrorMessageTracker=void 0;const t=Rt(),e=Uy(),n=i$(),r=_9(),i=A9(),s=x9(),o=I9(),a=l$(),c=P9(),u=N9(),l=O9(),d=F9(),f=L9(),h=M9(),p=z9(),g=B9(),v=D$(),m=q9();function w(ae){if(ae!==null)return ae}class E{constructor(){this._messages=Object.create(null)}add(M){let U=this._messages[M];U||(U=0),U++,this._messages[M]=U}sendErrors(M){Object.keys(this._messages).forEach(U=>{M.window.showErrorMessage(U)})}}qe.ErrorMessageTracker=E;class k{constructor(){}rawAttach(M){this._rawConnection=M}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(M){}initialize(M){}error(M){this.send(t.MessageType.Error,M)}warn(M){this.send(t.MessageType.Warning,M)}info(M){this.send(t.MessageType.Info,M)}log(M){this.send(t.MessageType.Log,M)}debug(M){this.send(t.MessageType.Debug,M)}send(M,U){this._rawConnection&&this._rawConnection.sendNotification(t.LogMessageNotification.type,{type:M,message:U}).catch(()=>{(0,t.RAL)().console.error("Sending log message failed")})}}class A{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}showErrorMessage(M,...U){let oe={type:t.MessageType.Error,message:M,actions:U};return this.connection.sendRequest(t.ShowMessageRequest.type,oe).then(w)}showWarningMessage(M,...U){let oe={type:t.MessageType.Warning,message:M,actions:U};return this.connection.sendRequest(t.ShowMessageRequest.type,oe).then(w)}showInformationMessage(M,...U){let oe={type:t.MessageType.Info,message:M,actions:U};return this.connection.sendRequest(t.ShowMessageRequest.type,oe).then(w)}}const I=(0,c.ShowDocumentFeature)((0,r.ProgressFeature)(A));var x;(function(ae){function M(){return new _}ae.create=M})(x||(qe.BulkRegistration=x={}));class _{constructor(){this._registrations=[],this._registered=new Set}add(M,U){const oe=e.string(M)?M:M.method;if(this._registered.has(oe))throw new Error(`${oe} is already added to this registration`);const W=n.generateUuid();this._registrations.push({id:W,method:oe,registerOptions:U||{}}),this._registered.add(oe)}asRegistrationParams(){return{registrations:this._registrations}}}var P;(function(ae){function M(){return new N(void 0,[])}ae.create=M})(P||(qe.BulkUnregistration=P={}));class N{constructor(M,U){this._connection=M,this._unregistrations=new Map,U.forEach(oe=>{this._unregistrations.set(oe.method,oe)})}get isAttached(){return!!this._connection}attach(M){this._connection=M}add(M){this._unregistrations.set(M.method,M)}dispose(){let M=[];for(let oe of this._unregistrations.values())M.push(oe);let U={unregisterations:M};this._connection.sendRequest(t.UnregistrationRequest.type,U).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(M){const U=e.string(M)?M:M.method,oe=this._unregistrations.get(U);if(!oe)return!1;let W={unregisterations:[oe]};return this._connection.sendRequest(t.UnregistrationRequest.type,W).then(()=>{this._unregistrations.delete(U)},Oe=>{this._connection.console.info(`Un-registering request handler for ${oe.id} failed.`)}),!0}}class C{attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}register(M,U,oe){return M instanceof _?this.registerMany(M):M instanceof N?this.registerSingle1(M,U,oe):this.registerSingle2(M,U)}registerSingle1(M,U,oe){const W=e.string(U)?U:U.method,Oe=n.generateUuid();let mt={registrations:[{id:Oe,method:W,registerOptions:oe||{}}]};return M.isAttached||M.attach(this.connection),this.connection.sendRequest(t.RegistrationRequest.type,mt).then(pn=>(M.add({id:Oe,method:W}),M),pn=>(this.connection.console.info(`Registering request handler for ${W} failed.`),Promise.reject(pn)))}registerSingle2(M,U){const oe=e.string(M)?M:M.method,W=n.generateUuid();let Oe={registrations:[{id:W,method:oe,registerOptions:U||{}}]};return this.connection.sendRequest(t.RegistrationRequest.type,Oe).then(mt=>t.Disposable.create(()=>{this.unregisterSingle(W,oe).catch(()=>{this.connection.console.info(`Un-registering capability with id ${W} failed.`)})}),mt=>(this.connection.console.info(`Registering request handler for ${oe} failed.`),Promise.reject(mt)))}unregisterSingle(M,U){let oe={unregisterations:[{id:M,method:U}]};return this.connection.sendRequest(t.UnregistrationRequest.type,oe).catch(()=>{this.connection.console.info(`Un-registering request handler for ${M} failed.`)})}registerMany(M){let U=M.asRegistrationParams();return this.connection.sendRequest(t.RegistrationRequest.type,U).then(()=>new N(this._connection,U.registrations.map(oe=>({id:oe.id,method:oe.method}))),oe=>(this.connection.console.info("Bulk registration failed."),Promise.reject(oe)))}}class D{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}applyEdit(M){function U(W){return W&&!!W.edit}let oe=U(M)?M:{edit:M};return this.connection.sendRequest(t.ApplyWorkspaceEditRequest.type,oe)}}const R=(0,u.FileOperationsFeature)((0,s.WorkspaceFoldersFeature)((0,i.ConfigurationFeature)(D)));class L{constructor(){this._trace=t.Trace.Off}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}set trace(M){this._trace=M}log(M,U){this._trace!==t.Trace.Off&&this.connection.sendNotification(t.LogTraceNotification.type,{message:M,verbose:this._trace===t.Trace.Verbose?U:void 0}).catch(()=>{})}}class G{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}logEvent(M){this.connection.sendNotification(t.TelemetryEventNotification.type,M).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}}class V{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}attachWorkDoneProgress(M){return(0,r.attachWorkDone)(this.connection,M)}attachPartialResultProgress(M,U){return(0,r.attachPartialResult)(this.connection,U)}}qe._LanguagesImpl=V;const Z=(0,h.FoldingRangeFeature)((0,m.MonikerFeature)((0,g.DiagnosticFeature)((0,p.InlayHintFeature)((0,f.InlineValueFeature)((0,d.TypeHierarchyFeature)((0,l.LinkedEditingRangeFeature)((0,a.SemanticTokensFeature)((0,o.CallHierarchyFeature)(V)))))))));class Ne{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}attachWorkDoneProgress(M){return(0,r.attachWorkDone)(this.connection,M)}attachPartialResultProgress(M,U){return(0,r.attachPartialResult)(this.connection,U)}}qe._NotebooksImpl=Ne;const se=(0,v.NotebookSyncFeature)(Ne);function K(ae,M){return function(U){return M(ae(U))}}qe.combineConsoleFeatures=K;function Te(ae,M){return function(U){return M(ae(U))}}qe.combineTelemetryFeatures=Te;function at(ae,M){return function(U){return M(ae(U))}}qe.combineTracerFeatures=at;function H(ae,M){return function(U){return M(ae(U))}}qe.combineClientFeatures=H;function Y(ae,M){return function(U){return M(ae(U))}}qe.combineWindowFeatures=Y;function Q(ae,M){return function(U){return M(ae(U))}}qe.combineWorkspaceFeatures=Q;function ne(ae,M){return function(U){return M(ae(U))}}qe.combineLanguagesFeatures=ne;function fe(ae,M){return function(U){return M(ae(U))}}qe.combineNotebooksFeatures=fe;function Ee(ae,M){function U(W,Oe,mt){return W&&Oe?mt(W,Oe):W||Oe}return{__brand:"features",console:U(ae.console,M.console,K),tracer:U(ae.tracer,M.tracer,at),telemetry:U(ae.telemetry,M.telemetry,Te),client:U(ae.client,M.client,H),window:U(ae.window,M.window,Y),workspace:U(ae.workspace,M.workspace,Q),languages:U(ae.languages,M.languages,ne),notebooks:U(ae.notebooks,M.notebooks,fe)}}qe.combineFeatures=Ee;function me(ae,M,U){const oe=U&&U.console?new(U.console(k)):new k,W=ae(oe);oe.rawAttach(W);const Oe=U&&U.tracer?new(U.tracer(L)):new L,mt=U&&U.telemetry?new(U.telemetry(G)):new G,pn=U&&U.client?new(U.client(C)):new C,tr=U&&U.window?new(U.window(I)):new I,nr=U&&U.workspace?new(U.workspace(R)):new R,rr=U&&U.languages?new(U.languages(Z)):new Z,zt=U&&U.notebooks?new(U.notebooks(se)):new se,Cn=[oe,Oe,mt,pn,tr,nr,rr,zt];function Yr(X){return X instanceof Promise?X:e.thenable(X)?new Promise((J,ue)=>{X.then(Bt=>J(Bt),Bt=>ue(Bt))}):Promise.resolve(X)}let Mn,gn,zn,en={listen:()=>W.listen(),sendRequest:(X,...J)=>W.sendRequest(e.string(X)?X:X.method,...J),onRequest:(X,J)=>W.onRequest(X,J),sendNotification:(X,J)=>{const ue=e.string(X)?X:X.method;return W.sendNotification(ue,J)},onNotification:(X,J)=>W.onNotification(X,J),onProgress:W.onProgress,sendProgress:W.sendProgress,onInitialize:X=>(gn=X,{dispose:()=>{gn=void 0}}),onInitialized:X=>W.onNotification(t.InitializedNotification.type,X),onShutdown:X=>(Mn=X,{dispose:()=>{Mn=void 0}}),onExit:X=>(zn=X,{dispose:()=>{zn=void 0}}),get console(){return oe},get telemetry(){return mt},get tracer(){return Oe},get client(){return pn},get window(){return tr},get workspace(){return nr},get languages(){return rr},get notebooks(){return zt},onDidChangeConfiguration:X=>W.onNotification(t.DidChangeConfigurationNotification.type,X),onDidChangeWatchedFiles:X=>W.onNotification(t.DidChangeWatchedFilesNotification.type,X),__textDocumentSync:void 0,onDidOpenTextDocument:X=>W.onNotification(t.DidOpenTextDocumentNotification.type,X),onDidChangeTextDocument:X=>W.onNotification(t.DidChangeTextDocumentNotification.type,X),onDidCloseTextDocument:X=>W.onNotification(t.DidCloseTextDocumentNotification.type,X),onWillSaveTextDocument:X=>W.onNotification(t.WillSaveTextDocumentNotification.type,X),onWillSaveTextDocumentWaitUntil:X=>W.onRequest(t.WillSaveTextDocumentWaitUntilRequest.type,X),onDidSaveTextDocument:X=>W.onNotification(t.DidSaveTextDocumentNotification.type,X),sendDiagnostics:X=>W.sendNotification(t.PublishDiagnosticsNotification.type,X),onHover:X=>W.onRequest(t.HoverRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),void 0)),onCompletion:X=>W.onRequest(t.CompletionRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onCompletionResolve:X=>W.onRequest(t.CompletionResolveRequest.type,X),onSignatureHelp:X=>W.onRequest(t.SignatureHelpRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),void 0)),onDeclaration:X=>W.onRequest(t.DeclarationRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onDefinition:X=>W.onRequest(t.DefinitionRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onTypeDefinition:X=>W.onRequest(t.TypeDefinitionRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onImplementation:X=>W.onRequest(t.ImplementationRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onReferences:X=>W.onRequest(t.ReferencesRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onDocumentHighlight:X=>W.onRequest(t.DocumentHighlightRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onDocumentSymbol:X=>W.onRequest(t.DocumentSymbolRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onWorkspaceSymbol:X=>W.onRequest(t.WorkspaceSymbolRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onWorkspaceSymbolResolve:X=>W.onRequest(t.WorkspaceSymbolResolveRequest.type,X),onCodeAction:X=>W.onRequest(t.CodeActionRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onCodeActionResolve:X=>W.onRequest(t.CodeActionResolveRequest.type,(J,ue)=>X(J,ue)),onCodeLens:X=>W.onRequest(t.CodeLensRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onCodeLensResolve:X=>W.onRequest(t.CodeLensResolveRequest.type,(J,ue)=>X(J,ue)),onDocumentFormatting:X=>W.onRequest(t.DocumentFormattingRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),void 0)),onDocumentRangeFormatting:X=>W.onRequest(t.DocumentRangeFormattingRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),void 0)),onDocumentOnTypeFormatting:X=>W.onRequest(t.DocumentOnTypeFormattingRequest.type,(J,ue)=>X(J,ue)),onRenameRequest:X=>W.onRequest(t.RenameRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),void 0)),onPrepareRename:X=>W.onRequest(t.PrepareRenameRequest.type,(J,ue)=>X(J,ue)),onDocumentLinks:X=>W.onRequest(t.DocumentLinkRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onDocumentLinkResolve:X=>W.onRequest(t.DocumentLinkResolveRequest.type,(J,ue)=>X(J,ue)),onDocumentColor:X=>W.onRequest(t.DocumentColorRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onColorPresentation:X=>W.onRequest(t.ColorPresentationRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onFoldingRanges:X=>W.onRequest(t.FoldingRangeRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onSelectionRanges:X=>W.onRequest(t.SelectionRangeRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),(0,r.attachPartialResult)(W,J))),onExecuteCommand:X=>W.onRequest(t.ExecuteCommandRequest.type,(J,ue)=>X(J,ue,(0,r.attachWorkDone)(W,J),void 0)),dispose:()=>W.dispose()};for(let X of Cn)X.attach(en);return W.onRequest(t.InitializeRequest.type,X=>{M.initialize(X),e.string(X.trace)&&(Oe.trace=t.Trace.fromString(X.trace));for(let J of Cn)J.initialize(X.capabilities);if(gn){let J=gn(X,new t.CancellationTokenSource().token,(0,r.attachWorkDone)(W,X),void 0);return Yr(J).then(ue=>{if(ue instanceof t.ResponseError)return ue;let Bt=ue;Bt||(Bt={capabilities:{}});let Ft=Bt.capabilities;Ft||(Ft={},Bt.capabilities=Ft),Ft.textDocumentSync===void 0||Ft.textDocumentSync===null?Ft.textDocumentSync=e.number(en.__textDocumentSync)?en.__textDocumentSync:t.TextDocumentSyncKind.None:!e.number(Ft.textDocumentSync)&&!e.number(Ft.textDocumentSync.change)&&(Ft.textDocumentSync.change=e.number(en.__textDocumentSync)?en.__textDocumentSync:t.TextDocumentSyncKind.None);for(let Tr of Cn)Tr.fillServerCapabilities(Ft);return Bt})}else{let J={capabilities:{textDocumentSync:t.TextDocumentSyncKind.None}};for(let ue of Cn)ue.fillServerCapabilities(J.capabilities);return J}}),W.onRequest(t.ShutdownRequest.type,()=>{if(M.shutdownReceived=!0,Mn)return Mn(new t.CancellationTokenSource().token)}),W.onNotification(t.ExitNotification.type,()=>{try{zn&&zn()}finally{M.shutdownReceived?M.exit(0):M.exit(1)}}),W.onNotification(t.SetTraceNotification.type,X=>{Oe.trace=t.Trace.fromString(X.value)}),en}return qe.createConnection=me,qe}var dn={};const j9=ui(f2),Zf=ui(t2),k$=ui(QN);var $$;function U9(){if($$)return dn;$$=1,Object.defineProperty(dn,"__esModule",{value:!0}),dn.resolveModulePath=dn.FileSystem=dn.resolveGlobalYarnPath=dn.resolveGlobalNodePath=dn.resolve=dn.uriToFilePath=void 0;const t=j9,e=eu,n=Zf,r=k$;function i(d){let f=t.parse(d);if(f.protocol!=="file:"||!f.path)return;let h=f.path.split("/");for(var p=0,g=h.length;p<g;p++)h[p]=decodeURIComponent(h[p]);if(process.platform==="win32"&&h.length>1){let v=h[0],m=h[1];v.length===0&&m.length>1&&m[1]===":"&&h.shift()}return e.normalize(h.join("/"))}dn.uriToFilePath=i;function s(){return process.platform==="win32"}function o(d,f,h,p){const g="NODE_PATH",v=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((m,w)=>{let E=process.env,k=Object.create(null);Object.keys(E).forEach(A=>k[A]=E[A]),f&&n.existsSync(f)&&(k[g]?k[g]=f+e.delimiter+k[g]:k[g]=f,p&&p(`NODE_PATH value is: ${k[g]}`)),k.ELECTRON_RUN_AS_NODE="1";try{let A=(0,r.fork)("",[],{cwd:h,env:k,execArgv:["-e",v]});if(A.pid===void 0){w(new Error(`Starting process to resolve node module ${d} failed`));return}A.on("error",x=>{w(x)}),A.on("message",x=>{x.c==="r"&&(A.send({c:"e"}),x.s?m(x.r):w(new Error(`Failed to resolve module: ${d}`)))});let I={c:"rs",a:d};A.send(I)}catch(A){w(A)}})}dn.resolve=o;function a(d){let f="npm";const h=Object.create(null);Object.keys(process.env).forEach(v=>h[v]=process.env[v]),h.NO_UPDATE_NOTIFIER="true";const p={encoding:"utf8",env:h};s()&&(f="npm.cmd",p.shell=!0);let g=()=>{};try{process.on("SIGPIPE",g);let v=(0,r.spawnSync)(f,["config","get","prefix"],p).stdout;if(!v){d&&d("'npm config get prefix' didn't return a value.");return}let m=v.trim();return d&&d(`'npm config get prefix' value is: ${m}`),m.length>0?s()?e.join(m,"node_modules"):e.join(m,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",g)}}dn.resolveGlobalNodePath=a;function c(d){let f="yarn",h={encoding:"utf8"};s()&&(f="yarn.cmd",h.shell=!0);let p=()=>{};try{process.on("SIGPIPE",p);let g=(0,r.spawnSync)(f,["global","dir","--json"],h),v=g.stdout;if(!v){d&&(d("'yarn global dir' didn't return a value."),g.stderr&&d(g.stderr));return}let m=v.trim().split(/\r?\n/);for(let w of m)try{let E=JSON.parse(w);if(E.type==="log")return e.join(E.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",p)}}dn.resolveGlobalYarnPath=c;var u;(function(d){let f;function h(){return f!==void 0||(process.platform==="win32"?f=!1:f=!n.existsSync(__filename.toUpperCase())||!n.existsSync(__filename.toLowerCase())),f}d.isCaseSensitive=h;function p(g,v){return h()?e.normalize(v).indexOf(e.normalize(g))===0:e.normalize(v).toLowerCase().indexOf(e.normalize(g).toLowerCase())===0}d.isParent=p})(u||(dn.FileSystem=u={}));function l(d,f,h,p){return h?(e.isAbsolute(h)||(h=e.join(d,h)),o(f,h,h,p).then(g=>u.isParent(h,g)?g:Promise.reject(new Error(`Failed to load ${f} from node path location.`))).then(void 0,g=>o(f,a(p),d,p))):o(f,a(p),d,p)}return dn.resolveModulePath=l,dn}var Jy,C$;function _$(){return C$||(C$=1,Jy=Rt()),Jy}var Zs={},Tu={},A$;function W9(){if(A$)return Tu;A$=1,Object.defineProperty(Tu,"__esModule",{value:!0}),Tu.InlineCompletionFeature=void 0;const t=Rt(),e=n=>class extends n{get inlineCompletion(){return{on:r=>this.connection.onRequest(t.InlineCompletionRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i)))}}};return Tu.InlineCompletionFeature=e,Tu}var x$;function G9(){return x$||(x$=1,function(t){var e=Zs&&Zs.__createBinding||(Object.create?function(c,u,l,d){d===void 0&&(d=l);var f=Object.getOwnPropertyDescriptor(u,l);(!f||("get"in f?!u.__esModule:f.writable||f.configurable))&&(f={enumerable:!0,get:function(){return u[l]}}),Object.defineProperty(c,d,f)}:function(c,u,l,d){d===void 0&&(d=l),c[d]=u[l]}),n=Zs&&Zs.__exportStar||function(c,u){for(var l in c)l!=="default"&&!Object.prototype.hasOwnProperty.call(u,l)&&e(u,c,l)};Object.defineProperty(t,"__esModule",{value:!0}),t.ProposedFeatures=t.NotebookDocuments=t.TextDocuments=t.SemanticTokensBuilder=void 0;const r=l$();Object.defineProperty(t,"SemanticTokensBuilder",{enumerable:!0,get:function(){return r.SemanticTokensBuilder}});const i=W9();n(Rt(),t);const s=b$();Object.defineProperty(t,"TextDocuments",{enumerable:!0,get:function(){return s.TextDocuments}});const o=D$();Object.defineProperty(t,"NotebookDocuments",{enumerable:!0,get:function(){return o.NotebookDocuments}}),n(S$(),t);var a;(function(c){c.all={__brand:"features",languages:i.InlineCompletionFeature}})(a||(t.ProposedFeatures=a={}))}(Zs)),Zs}var I$;function H9(){return I$||(I$=1,function(t){var e=qs&&qs.__createBinding||(Object.create?function(m,w,E,k){k===void 0&&(k=E);var A=Object.getOwnPropertyDescriptor(w,E);(!A||("get"in A?!w.__esModule:A.writable||A.configurable))&&(A={enumerable:!0,get:function(){return w[E]}}),Object.defineProperty(m,k,A)}:function(m,w,E,k){k===void 0&&(k=E),m[k]=w[E]}),n=qs&&qs.__exportStar||function(m,w){for(var E in m)E!=="default"&&!Object.prototype.hasOwnProperty.call(w,E)&&e(w,m,E)};Object.defineProperty(t,"__esModule",{value:!0}),t.createConnection=t.Files=void 0;const r=KU,i=Uy(),s=S$(),o=U9(),a=_$();n(_$(),t),n(G9(),t);var c;(function(m){m.uriToFilePath=o.uriToFilePath,m.resolveGlobalNodePath=o.resolveGlobalNodePath,m.resolveGlobalYarnPath=o.resolveGlobalYarnPath,m.resolve=o.resolve,m.resolveModulePath=o.resolveModulePath})(c||(t.Files=c={}));function u(){}let l=!1,d;function f(){const m="--clientProcessId";function w(E){try{let k=parseInt(E);isNaN(k)||(d=setInterval(()=>{try{process.kill(k,0)}catch{process.exit(l?0:1)}},3e3))}catch{}}for(let E=2;E<process.argv.length;E++){let k=process.argv[E];if(k===m&&E+1<process.argv.length){w(process.argv[E+1]);return}else{let A=k.split("=");A[0]===m&&w(A[1])}}}f();const h={initialize:m=>{const w=m.processId;i.number(w)&&d===void 0&&setInterval(()=>{try{process.kill(w,0)}catch{process.exit(l?0:1)}},3e3)},get shutdownReceived(){return l},set shutdownReceived(m){l=m},exit:m=>{process.exit(m)}};function p(m,w,E,k){let A,I,x,_;return m!==void 0&&m.__brand==="features"&&(A=m,m=w,w=E,E=k),a.ConnectionStrategy.is(m)||a.ConnectionOptions.is(m)?_=m:(I=m,x=w,_=E),g(I,x,_,A)}t.createConnection=p;function g(m,w,E,k){let A=!1;if(!m&&!w&&process.argv.length>2){let P,N,C=process.argv.slice(2);for(let D=0;D<C.length;D++){let R=C[D];if(R==="--node-ipc"){m=new a.IPCMessageReader(process),w=new a.IPCMessageWriter(process);break}else if(R==="--stdio"){A=!0,m=process.stdin,w=process.stdout;break}else if(R==="--socket"){P=parseInt(C[D+1]);break}else if(R==="--pipe"){N=C[D+1];break}else{var I=R.split("=");if(I[0]==="--socket"){P=parseInt(I[1]);break}else if(I[0]==="--pipe"){N=I[1];break}}}if(P){let D=(0,a.createServerSocketTransport)(P);m=D[0],w=D[1]}else if(N){let D=(0,a.createServerPipeTransport)(N);m=D[0],w=D[1]}}var x="Use arguments of createConnection or set command line parameters: '--node-ipc', '--stdio' or '--socket={number}'";if(!m)throw new Error("Connection input stream is not set. "+x);if(!w)throw new Error("Connection output stream is not set. "+x);if(i.func(m.read)&&i.func(m.on)){let P=m;P.on("end",()=>{process.exit(l?0:1)}),P.on("close",()=>{process.exit(l?0:1)})}const _=P=>{const N=(0,a.createProtocolConnection)(m,w,P,E);return A&&v(P),N};return(0,s.createConnection)(_,h,k)}function v(m){function w(k){return k.map(A=>typeof A=="string"?A:(0,r.inspect)(A)).join(" ")}const E=new Map;console.assert=function(A,...I){if(!A)if(I.length===0)m.error("Assertion failed");else{const[x,..._]=I;m.error(`Assertion failed: ${x} ${w(_)}`)}},console.count=function(A="default"){const I=String(A);let x=E.get(I)??0;x+=1,E.set(I,x),m.log(`${I}: ${I}`)},console.countReset=function(A){A===void 0?E.clear():E.delete(String(A))},console.debug=function(...A){m.log(w(A))},console.dir=function(A,I){m.log((0,r.inspect)(A,I))},console.log=function(...A){m.log(w(A))},console.error=function(...A){m.error(w(A))},console.trace=function(...A){const I=new Error().stack.replace(/(.+\n){2}/,"");let x="Trace";A.length!==0&&(x+=`: ${w(A)}`),m.log(`${x}
160
+ ${I}`)},console.warn=function(...A){m.warn(w(A))}}}(qs)),qs}var ge=H9();function P$(t,e){const n={stacks:t,tokens:e};return V9(n),n.stacks.flat().forEach(i=>{i.property=void 0}),O$(n.stacks).map(i=>i[i.length-1])}function Zy(t){const{next:e,cardinalities:n,visited:r,plus:i}=t,s=[],o=e.feature;if(r.has(o))return[];r.add(o);let a,c=o;for(;c.$container;)if(Fi(c.$container)){a=c.$container;break}else if(Ug(c.$container))c=c.$container;else break;if(ID(c.cardinality)){const u=na({next:{feature:c,type:e.type},cardinalities:n,visited:r,plus:i});for(const l of u)i.add(l.feature);s.push(...u)}if(a){const u=a.elements.indexOf(c);u!==void 0&&u<a.elements.length-1&&s.push(...N$({feature:a,type:e.type},u+1,n,r,i)),s.every(l=>zo(l.feature.cardinality,l.feature)||zo(n.get(l.feature))||i.has(l.feature))&&s.push(...Zy({next:{feature:a,type:e.type},cardinalities:n,visited:r,plus:i}))}return s}function Qy(t){return yt(t)&&(t={feature:t}),na({next:t,cardinalities:new Map,visited:new Set,plus:new Set})}function na(t){var e,n,r;const{next:i,cardinalities:s,visited:o,plus:a}=t;if(i===void 0)return[];const{feature:c,type:u}=i;if(Fi(c)){if(o.has(c))return[];o.add(c)}if(Fi(c))return N$(i,0,s,o,a).map(l=>Qf(l,c.cardinality,s));if(Kg(c)||Yg(c))return c.elements.flatMap(l=>na({next:{feature:l,type:u,property:i.property},cardinalities:s,visited:o,plus:a})).map(l=>Qf(l,c.cardinality,s));if(_r(c)){const l={feature:c.terminal,type:u,property:(e=i.property)!==null&&e!==void 0?e:c.feature};return na({next:l,cardinalities:s,visited:o,plus:a}).map(d=>Qf(d,c.cardinality,s))}else{if(ks(c))return Zy({next:{feature:c,type:Ec(c),property:(n=i.property)!==null&&n!==void 0?n:c.feature},cardinalities:s,visited:o,plus:a});if(si(c)&&Kt(c.rule.ref)){const l=c.rule.ref,d={feature:l.definition,type:l.fragment||l.dataType?void 0:(r=$s(l))!==null&&r!==void 0?r:l.name,property:i.property};return na({next:d,cardinalities:s,visited:o,plus:a}).map(f=>Qf(f,c.cardinality,s))}else return[i]}}function Qf(t,e,n){return n.set(t.feature,e),t}function N$(t,e,n,r,i){var s;const o=[];let a;for(;e<t.feature.elements.length&&(a={feature:t.feature.elements[e++],type:t.type},o.push(...na({next:a,cardinalities:n,visited:r,plus:i})),!!zo((s=a.feature.cardinality)!==null&&s!==void 0?s:n.get(a.feature),a.feature)););return o}function V9(t){for(const e of t.tokens){const n=O$(t.stacks,e);t.stacks=n}}function O$(t,e){const n=[];for(const r of t)n.push(...K9(r,e));return n}function K9(t,e){const n=new Map,r=new Set(t.map(s=>s.feature).filter(Y9)),i=[];for(;t.length>0;){const s=t.pop(),o=Zy({next:s,cardinalities:n,plus:r,visited:new Set}).filter(a=>e?ev(a.feature,e):!0);for(const a of o)i.push([...t,a]);if(!o.every(a=>zo(a.feature.cardinality,a.feature)||zo(n.get(a.feature))))break}return i}function Y9(t){if(t.cardinality==="+")return!0;const e=vn(t,_r);return!!(e&&e.cardinality==="+")}function ev(t,e){if(Ar(t))return t.value===e.image;if(si(t))return X9(t.rule.ref,e);if(sc(t)){const n=sm(t);if(n)return ev(n,e)}return!1}function X9(t,e){return Kt(t)?Qy(t.definition).some(r=>ev(r.feature,e)):ii(t)?Dc(t).test(e.image):!1}function J9(t){const e=Array.from(new Set(t.flatMap(r=>{var i;return(i=r?.triggerCharacters)!==null&&i!==void 0?i:[]}))),n=Array.from(new Set(t.flatMap(r=>{var i;return(i=r?.allCommitCharacters)!==null&&i!==void 0?i:[]})));return{triggerCharacters:e.length>0?e:void 0,allCommitCharacters:n.length>0?n:void 0}}class F${constructor(e){this.scopeProvider=e.references.ScopeProvider,this.grammar=e.Grammar,this.completionParser=e.parser.CompletionParser,this.nameProvider=e.references.NameProvider,this.lexer=e.parser.Lexer,this.nodeKindProvider=e.shared.lsp.NodeKindProvider,this.fuzzyMatcher=e.shared.lsp.FuzzyMatcher,this.grammarConfig=e.parser.GrammarConfig,this.astReflection=e.shared.AstReflection,this.documentationProvider=e.documentation.DocumentationProvider}async getCompletion(e,n,r){const i=[],s=this.buildContexts(e,n.position),o=(u,l)=>{const d=this.fillCompletionItem(u,l);d&&i.push(d)},a=u=>Ar(u.feature)?u.feature.value:u.feature,c=[];for(const u of s)if(await Promise.all(Xe(u.features).distinct(a).exclude(c).map(l=>this.completionFor(u,l,o))),c.push(...u.features),!this.continueCompletion(i))break;return ge.CompletionList.create(this.deduplicateItems(i),!0)}deduplicateItems(e){return Xe(e).distinct(n=>`${n.kind}_${n.label}_${n.detail}`).toArray()}findFeaturesAt(e,n){const r=e.getText({start:ge.Position.create(0,0),end:e.positionAt(n)}),i=this.completionParser.parse(r),s=i.tokens;if(i.tokenIndex===0){const c=jd(this.grammar),u=Qy({feature:c.definition,type:$s(c)});return s.length>0?(s.shift(),P$(u.map(l=>[l]),s)):u}const o=[...s].splice(i.tokenIndex);return P$([i.elementStack.map(c=>({feature:c}))],o)}*buildContexts(e,n){var r,i;const s=e.parseResult.value.$cstNode;if(!s)return;const o=e.textDocument,a=o.getText(),c=o.offsetAt(n),u={document:e,textDocument:o,offset:c,position:n},l=this.findDataTypeRuleStart(s,c);if(l){const[w,E]=l,k=(r=Rd(s,w))===null||r===void 0?void 0:r.astNode;yield Object.assign(Object.assign({},u),{node:k,tokenOffset:w,tokenEndOffset:E,features:this.findFeaturesAt(o,w)})}const{nextTokenStart:d,nextTokenEnd:f,previousTokenStart:h,previousTokenEnd:p}=this.backtrackToAnyToken(a,c);let g=d;c<=d&&h!==void 0&&(g=h);const v=(i=Rd(s,g))===null||i===void 0?void 0:i.astNode;let m=!0;if(h!==void 0&&p!==void 0&&p===c&&(yield Object.assign(Object.assign({},u),{node:v,tokenOffset:h,tokenEndOffset:p,features:this.findFeaturesAt(o,h)}),m=this.performNextTokenCompletion(e,a.substring(h,p),h,p),m&&(yield Object.assign(Object.assign({},u),{node:v,tokenOffset:p,tokenEndOffset:p,features:this.findFeaturesAt(o,p)}))),v)m&&(yield Object.assign(Object.assign({},u),{node:v,tokenOffset:d,tokenEndOffset:f,features:this.findFeaturesAt(o,d)}));else{const w=jd(this.grammar);if(!w)throw new Error("Missing entry parser rule");yield Object.assign(Object.assign({},u),{tokenOffset:d,tokenEndOffset:f,features:Qy(w.definition)})}}performNextTokenCompletion(e,n,r,i){return new RegExp("\\P{L}$","u").test(n)}findDataTypeRuleStart(e,n){var r,i;let s=Oi(e,n,this.grammarConfig.nameRegexp),o=!!(!((r=vn(s?.grammarSource,Kt))===null||r===void 0)&&r.dataType);if(o){for(;o;)s=s?.container,o=!!(!((i=vn(s?.grammarSource,Kt))===null||i===void 0)&&i.dataType);if(s)return[s.offset,s.end]}}continueCompletion(e){return e.length===0}backtrackToAnyToken(e,n){const r=this.lexer.tokenize(e).tokens;if(r.length===0)return{nextTokenStart:n,nextTokenEnd:n};let i;for(const s of r){if(s.startOffset>=n)return{nextTokenStart:n,nextTokenEnd:n,previousTokenStart:i?i.startOffset:void 0,previousTokenEnd:i?i.endOffset+1:void 0};if(s.endOffset>=n)return{nextTokenStart:s.startOffset,nextTokenEnd:s.endOffset+1,previousTokenStart:i?i.startOffset:void 0,previousTokenEnd:i?i.endOffset+1:void 0};i=s}return{nextTokenStart:n,nextTokenEnd:n,previousTokenStart:i?i.startOffset:void 0,previousTokenEnd:i?i.endOffset+1:void 0}}completionFor(e,n,r){if(Ar(n.feature))return this.completionForKeyword(e,n.feature,r);if(sc(n.feature)&&e.node)return this.completionForCrossReference(e,n,r)}completionForCrossReference(e,n,r){const i=vn(n.feature,_r);let s=e.node;if(i&&s){n.type&&(s={$type:n.type,$container:s,$containerProperty:n.property},Qg(this.astReflection,s));const o={reference:{$refText:""},container:s,property:i.feature};try{for(const a of this.getReferenceCandidates(o,e))r(e,this.createReferenceCompletionItem(a))}catch(a){console.error(a)}}}getReferenceCandidates(e,n){return this.scopeProvider.getScope(e).getAllElements()}createReferenceCompletionItem(e){const n=this.nodeKindProvider.getCompletionItemKind(e),r=this.getReferenceDocumentation(e);return{nodeDescription:e,kind:n,documentation:r,detail:e.type,sortText:"0"}}getReferenceDocumentation(e){if(!e.node)return;const n=this.documentationProvider.getDocumentation(e.node);if(n)return{kind:"markdown",value:n}}completionForKeyword(e,n,r){this.filterKeyword(e,n)&&r(e,{label:n.value,kind:this.getKeywordCompletionItemKind(n),detail:"Keyword",sortText:"1"})}getKeywordCompletionItemKind(e){return ge.CompletionItemKind.Keyword}filterKeyword(e,n){return new RegExp("\\p{L}","u").test(n.value)}fillCompletionItem(e,n){var r,i;let s;if(typeof n.label=="string")s=n.label;else if("node"in n){const u=this.nameProvider.getName(n.node);if(!u)return;s=u}else if("nodeDescription"in n)s=n.nodeDescription.name;else return;let o;typeof((r=n.textEdit)===null||r===void 0?void 0:r.newText)=="string"?o=n.textEdit.newText:typeof n.insertText=="string"?o=n.insertText:o=s;const a=(i=n.textEdit)!==null&&i!==void 0?i:this.buildCompletionTextEdit(e,s,o);return a?{additionalTextEdits:n.additionalTextEdits,command:n.command,commitCharacters:n.commitCharacters,data:n.data,detail:n.detail,documentation:n.documentation,filterText:n.filterText,insertText:n.insertText,insertTextFormat:n.insertTextFormat,insertTextMode:n.insertTextMode,kind:n.kind,labelDetails:n.labelDetails,preselect:n.preselect,sortText:n.sortText,tags:n.tags,textEditText:n.textEditText,textEdit:a,label:s}:void 0}buildCompletionTextEdit(e,n,r){const s=e.textDocument.getText().substring(e.tokenOffset,e.offset);if(this.fuzzyMatcher.match(s,n)){const o=e.textDocument.positionAt(e.tokenOffset),a=e.position;return{newText:r,range:{start:o,end:a}}}else return}}class Z9{constructor(e){this.nameProvider=e.references.NameProvider,this.references=e.references.References,this.grammarConfig=e.parser.GrammarConfig}getDefinition(e,n,r){const i=e.parseResult.value;if(i.$cstNode){const s=i.$cstNode,o=Oi(s,e.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(o)return this.collectLocationLinks(o,n)}}collectLocationLinks(e,n){var r;const i=this.findLink(e);if(i)return[ge.LocationLink.create(i.targetDocument.textDocument.uri,((r=i.target.astNode.$cstNode)!==null&&r!==void 0?r:i.target).range,i.target.range,i.source.range)]}findLink(e){const n=this.references.findDeclarationNode(e);if(n?.astNode){const r=rn(n.astNode);if(n&&r)return{source:e,target:n,targetDocument:r}}}}class L${constructor(e){this.references=e.references.References,this.nameProvider=e.references.NameProvider,this.grammarConfig=e.parser.GrammarConfig}getDocumentHighlight(e,n,r){const i=e.parseResult.value.$cstNode;if(!i)return;const s=Oi(i,e.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(!s)return;const o=this.references.findDeclaration(s);if(o){const a=Et.equals(rn(o).uri,e.uri),c={documentUri:e.uri,includeDeclaration:a};return this.references.findReferences(o,c).map(l=>this.createDocumentHighlight(l)).toArray()}}createDocumentHighlight(e){return ge.DocumentHighlight.create(e.segment.range)}}class Q9{constructor(e){this.nameProvider=e.references.NameProvider,this.nodeKindProvider=e.shared.lsp.NodeKindProvider}getSymbols(e,n,r){return this.getSymbol(e,e.parseResult.value)}getSymbol(e,n){const r=n.$cstNode,i=this.nameProvider.getNameNode(n);if(i&&r){const s=this.nameProvider.getName(n);return[{kind:this.nodeKindProvider.getSymbolKind(n),name:s||i.text,range:r.range,selectionRange:i.range,children:this.getChildSymbols(e,n)}]}else return this.getChildSymbols(e,n)||[]}getChildSymbols(e,n){const r=[];for(const i of vc(n)){const s=this.getSymbol(e,i);r.push(...s)}if(r.length>0)return r}}class e7{constructor(e){this.workspaceManager=e.workspace.WorkspaceManager,this.documentBuilder=e.workspace.DocumentBuilder,this.workspaceLock=e.workspace.WorkspaceLock,this.serviceRegistry=e.ServiceRegistry;let n=!1;e.lsp.LanguageServer.onInitialize(r=>{var i,s;n=!!(!((s=(i=r.capabilities.workspace)===null||i===void 0?void 0:i.didChangeWatchedFiles)===null||s===void 0)&&s.dynamicRegistration)}),e.lsp.LanguageServer.onInitialized(r=>{n&&this.registerFileWatcher(e)})}registerFileWatcher(e){const n=Xe(e.ServiceRegistry.all).flatMap(r=>r.LanguageMetaData.fileExtensions).map(r=>r.startsWith(".")?r.substring(1):r).distinct().toArray();if(n.length>0){const r=e.lsp.Connection,i={watchers:[{globPattern:n.length===1?`**/*.${n[0]}`:`**/*.{${n.join(",")}}`}]};r?.client.register(ge.DidChangeWatchedFilesNotification.type,i)}}fireDocumentUpdate(e,n){e=e.filter(r=>this.serviceRegistry.hasServices(r)),this.workspaceManager.ready.then(()=>{this.workspaceLock.write(r=>this.documentBuilder.update(e,n,r))}).catch(r=>{console.error("Workspace initialization failed. Could not perform document update.",r)})}didChangeContent(e){this.fireDocumentUpdate([Yt.parse(e.document.uri)],[])}didChangeWatchedFiles(e){const n=Xe(e.changes).filter(i=>i.type!==ge.FileChangeType.Deleted).distinct(i=>i.uri).map(i=>Yt.parse(i.uri)).toArray(),r=Xe(e.changes).filter(i=>i.type===ge.FileChangeType.Deleted).distinct(i=>i.uri).map(i=>Yt.parse(i.uri)).toArray();this.fireDocumentUpdate(n,r)}}class t7{constructor(e){this.commentNames=e.parser.GrammarConfig.multilineCommentRules}getFoldingRanges(e,n,r){const i=[],s=o=>i.push(o);return this.collectFolding(e,s),i}collectFolding(e,n){var r;const i=(r=e.parseResult)===null||r===void 0?void 0:r.value;if(i){if(this.shouldProcessContent(i)){const s=xr(i).iterator();let o;do if(o=s.next(),!o.done){const a=o.value;this.shouldProcess(a)&&this.collectObjectFolding(e,a,n),this.shouldProcessContent(a)||s.prune()}while(!o.done)}this.collectCommentFolding(e,i,n)}}shouldProcess(e){return!0}shouldProcessContent(e){return!0}collectObjectFolding(e,n,r){const i=n.$cstNode;if(i){const s=this.toFoldingRange(e,i);s&&r(s)}}collectCommentFolding(e,n,r){const i=n.$cstNode;if(i){for(const s of oD(i))if(this.commentNames.includes(s.tokenType.name)){const o=this.toFoldingRange(e,s,ge.FoldingRangeKind.Comment);o&&r(o)}}}toFoldingRange(e,n,r){const i=n.range,s=i.start;let o=i.end;if(!(o.line-s.line<2))return this.includeLastFoldingLine(n,r)||(o=e.textDocument.positionAt(e.textDocument.offsetAt({line:o.line,character:0})-1)),ge.FoldingRange.create(s.line,o.line,s.character,o.character,r)}includeLastFoldingLine(e,n){if(n===ge.FoldingRangeKind.Comment)return!1;const r=e.text,i=r.charAt(r.length-1);return!(i==="}"||i===")"||i==="]")}}class n7{match(e,n){if(e.length===0)return!0;let r=!1,i,s=0;const o=n.length;for(let a=0;a<o;a++){const c=n.charCodeAt(a),u=e.charCodeAt(s);if((c===u||this.toUpperCharCode(c)===this.toUpperCharCode(u))&&(r||(r=i===void 0||this.isWordTransition(i,c)),r&&s++,s===e.length))return!0;i=c}return!1}isWordTransition(e,n){return M$<=e&&e<=z$&&r7<=n&&n<=i7||e===B$&&n!==B$}toUpperCharCode(e){return M$<=e&&e<=z$?e-32:e}}const M$=97,z$=122,r7=65,i7=90,B$=95;class q${constructor(e){this.references=e.references.References,this.grammarConfig=e.parser.GrammarConfig}getHoverContent(e,n){var r,i;const s=(i=(r=e.parseResult)===null||r===void 0?void 0:r.value)===null||i===void 0?void 0:i.$cstNode;if(s){const o=e.textDocument.offsetAt(n.position),a=Oi(s,o,this.grammarConfig.nameRegexp);if(a&&a.offset+a.length>o){const c=this.references.findDeclaration(a);if(c)return this.getAstNodeHoverContent(c)}}}}class s7 extends q${constructor(e){super(e),this.documentationProvider=e.documentation.DocumentationProvider}getAstNodeHoverContent(e){const n=this.documentationProvider.getDocumentation(e);if(n)return{contents:{kind:"markdown",value:n}}}}var eh=Rt();const o7={[ge.SemanticTokenTypes.class]:0,[ge.SemanticTokenTypes.comment]:1,[ge.SemanticTokenTypes.enum]:2,[ge.SemanticTokenTypes.enumMember]:3,[ge.SemanticTokenTypes.event]:4,[ge.SemanticTokenTypes.function]:5,[ge.SemanticTokenTypes.interface]:6,[ge.SemanticTokenTypes.keyword]:7,[ge.SemanticTokenTypes.macro]:8,[ge.SemanticTokenTypes.method]:9,[ge.SemanticTokenTypes.modifier]:10,[ge.SemanticTokenTypes.namespace]:11,[ge.SemanticTokenTypes.number]:12,[ge.SemanticTokenTypes.operator]:13,[ge.SemanticTokenTypes.parameter]:14,[ge.SemanticTokenTypes.property]:15,[ge.SemanticTokenTypes.regexp]:16,[ge.SemanticTokenTypes.string]:17,[ge.SemanticTokenTypes.struct]:18,[ge.SemanticTokenTypes.type]:19,[ge.SemanticTokenTypes.typeParameter]:20,[ge.SemanticTokenTypes.variable]:21,[ge.SemanticTokenTypes.decorator]:22},a7={[ge.SemanticTokenModifiers.abstract]:1,[ge.SemanticTokenModifiers.async]:2,[ge.SemanticTokenModifiers.declaration]:4,[ge.SemanticTokenModifiers.defaultLibrary]:8,[ge.SemanticTokenModifiers.definition]:16,[ge.SemanticTokenModifiers.deprecated]:32,[ge.SemanticTokenModifiers.documentation]:64,[ge.SemanticTokenModifiers.modification]:128,[ge.SemanticTokenModifiers.readonly]:256,[ge.SemanticTokenModifiers.static]:512};function c7(t){const e=[],n=[];let r=!0,i=!0,s=!0;for(const o of t)o&&(o.legend.tokenTypes.forEach((a,c)=>{const u=e[c];if(u&&u!==a)throw new Error(`Cannot merge '${u}' and '${a}' token types. They use the same index ${c}.`);e[c]=a}),o.legend.tokenModifiers.forEach((a,c)=>{const u=n[c];if(u&&u!==a)throw new Error(`Cannot merge '${u}' and '${a}' token modifier. They use the same index ${c}.`);n[c]=a}),o.full?typeof o.full=="object"&&!o.full.delta&&(i=!1):r=!1,o.range||(s=!1));return{legend:{tokenTypes:e,tokenModifiers:n},full:r&&{delta:i},range:s}}class u7 extends ge.SemanticTokensBuilder{constructor(){super(...arguments),this._tokens=[]}push(e,n,r,i,s){this._tokens.push({line:e,char:n,length:r,tokenType:i,tokenModifiers:s})}build(){return this.applyTokens(),super.build()}buildEdits(){return this.applyTokens(),super.buildEdits()}flush(){this.previousResult(this.id)}applyTokens(){for(const e of this._tokens.sort(this.compareTokens))super.push(e.line,e.char,e.length,e.tokenType,e.tokenModifiers);this._tokens=[]}compareTokens(e,n){return e.line===n.line?e.char-n.char:e.line-n.line}}class l7{constructor(e){this.tokensBuilders=new Map,e.shared.workspace.TextDocuments.onDidClose(n=>{this.tokensBuilders.delete(n.document.uri)}),e.shared.lsp.LanguageServer.onInitialize(n=>{var r;this.initialize((r=n.capabilities.textDocument)===null||r===void 0?void 0:r.semanticTokens)})}initialize(e){this.clientCapabilities=e}get tokenTypes(){return o7}get tokenModifiers(){return a7}get semanticTokensOptions(){return{legend:{tokenTypes:Object.keys(this.tokenTypes),tokenModifiers:Object.keys(this.tokenModifiers)},full:{delta:!0},range:!0}}async semanticHighlight(e,n,r=ct.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=e,this.currentTokensBuilder=this.getDocumentTokensBuilder(e),this.currentTokensBuilder.flush(),await this.computeHighlighting(e,this.createAcceptor(),r),this.currentTokensBuilder.build()}async semanticHighlightRange(e,n,r=ct.CancellationToken.None){return this.currentRange=n.range,this.currentDocument=e,this.currentTokensBuilder=this.getDocumentTokensBuilder(e),this.currentTokensBuilder.flush(),await this.computeHighlighting(e,this.createAcceptor(),r),this.currentTokensBuilder.build()}async semanticHighlightDelta(e,n,r=ct.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=e,this.currentTokensBuilder=this.getDocumentTokensBuilder(e),this.currentTokensBuilder.previousResult(n.previousResultId),await this.computeHighlighting(e,this.createAcceptor(),r),this.currentTokensBuilder.buildEdits()}createAcceptor(){return n=>{"line"in n?this.highlightToken({range:{start:{line:n.line,character:n.char},end:{line:n.line,character:n.char+n.length}},type:n.type,modifier:n.modifier}):"range"in n?this.highlightToken(n):"keyword"in n?this.highlightKeyword(n):"property"in n?this.highlightProperty(n):this.highlightNode({node:n.cst,type:n.type,modifier:n.modifier})}}getDocumentTokensBuilder(e){const n=this.tokensBuilders.get(e.uri.toString());if(n)return n;const r=new u7;return this.tokensBuilders.set(e.uri.toString(),r),r}async computeHighlighting(e,n,r){const i=e.parseResult.value,s=oi(i,{range:this.currentRange}).iterator();let o;do if(o=s.next(),!o.done){await Mt(r);const a=o.value;this.highlightElement(a,n)==="prune"&&s.prune()}while(!o.done)}highlightToken(e){var n;const{range:r,type:i}=e;let s=e.modifier;if(this.currentRange&&!Lg(r,this.currentRange)||!this.currentDocument||!this.currentTokensBuilder)return;const o=this.tokenTypes[i];let a=0;if(s!==void 0){typeof s=="string"&&(s=[s]);for(const l of s){const d=this.tokenModifiers[l];a|=d}}const c=r.start.line,u=r.end.line;if(c===u){const l=r.start.character,d=r.end.character-l;this.currentTokensBuilder.push(c,l,d,o,a)}else if(!((n=this.clientCapabilities)===null||n===void 0)&&n.multilineTokenSupport){const l=r.start.character,d=this.currentDocument.textDocument.offsetAt(r.start),f=this.currentDocument.textDocument.offsetAt(r.end);this.currentTokensBuilder.push(c,l,f-d,o,a)}else{const l=r.start;let d=this.currentDocument.textDocument.offsetAt({line:c+1,character:0});this.currentTokensBuilder.push(l.line,l.character,d-l.character-1,o,a);for(let f=c+1;f<u;f++){const h=d;d=this.currentDocument.textDocument.offsetAt({line:f+1,character:0}),this.currentTokensBuilder.push(f,0,d-h-1,o,a)}this.currentTokensBuilder.push(u,0,r.end.character,o,a)}}highlightProperty(e){const n=[];if(typeof e.index=="number"){const s=_n(e.node.$cstNode,e.property,e.index);s&&n.push(s)}else n.push(...Mo(e.node.$cstNode,e.property));const{type:r,modifier:i}=e;for(const s of n)this.highlightNode({node:s,type:r,modifier:i})}highlightKeyword(e){const{node:n,keyword:r,type:i,index:s,modifier:o}=e,a=[];if(typeof s=="number"){const c=bc(n.$cstNode,r,s);c&&a.push(c)}else a.push(...am(n.$cstNode,r));for(const c of a)this.highlightNode({node:c,type:i,modifier:o})}highlightNode(e){const{node:n,type:r,modifier:i}=e,s=n.range;this.highlightToken({range:s,type:r,modifier:i})}}var j$;(function(t){function e(r,i,s){const o=new Map;Object.entries(i).forEach(([u,l])=>o.set(l,u));let a=0,c=0;return n(r.data,5).map(u=>{a+=u[0],u[0]!==0&&(c=0),c+=u[1];const l=u[2];return{offset:s.textDocument.offsetAt({line:a,character:c}),tokenType:o.get(u[3]),tokenModifiers:u[4],text:s.textDocument.getText({start:{line:a,character:c},end:{line:a,character:c+l}})}})}t.decode=e;function n(r,i){const s=[];for(let o=0;o<r.length;o+=i){const a=r.slice(o,o+i);s.push(a)}return s}})(j$||(j$={}));function d7(t){const e=[],n=[];t.forEach(i=>{i?.triggerCharacters&&e.push(...i.triggerCharacters),i?.retriggerCharacters&&n.push(...i.retriggerCharacters)});const r={triggerCharacters:e.length>0?Array.from(new Set(e)).sort():void 0,retriggerCharacters:n.length>0?Array.from(new Set(n)).sort():void 0};return r.triggerCharacters?r:void 0}class f7{constructor(e){this.onInitializeEmitter=new eh.Emitter,this.onInitializedEmitter=new eh.Emitter,this.services=e}get onInitialize(){return this.onInitializeEmitter.event}get onInitialized(){return this.onInitializedEmitter.event}async initialize(e){return this.eagerLoadServices(),this.fireInitializeOnDefaultServices(e),this.onInitializeEmitter.fire(e),this.onInitializeEmitter.dispose(),this.buildInitializeResult(e)}eagerLoadServices(){Fy(this.services),this.services.ServiceRegistry.all.forEach(e=>Fy(e))}hasService(e){return this.services.ServiceRegistry.all.some(r=>e(r)!==void 0)}buildInitializeResult(e){var n,r,i,s;const o=this.services.lsp.DocumentUpdateHandler,a=(n=this.services.lsp.FileOperationHandler)===null||n===void 0?void 0:n.fileOperationOptions,c=this.services.ServiceRegistry.all,u=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.Formatter}),l=c.map(se=>{var K,Te;return(Te=(K=se.lsp)===null||K===void 0?void 0:K.Formatter)===null||Te===void 0?void 0:Te.formatOnTypeOptions}).find(se=>!!se),d=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.CodeActionProvider}),f=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.SemanticTokenProvider}),h=c7(c.map(se=>{var K,Te;return(Te=(K=se.lsp)===null||K===void 0?void 0:K.SemanticTokenProvider)===null||Te===void 0?void 0:Te.semanticTokensOptions})),p=(i=(r=this.services.lsp)===null||r===void 0?void 0:r.ExecuteCommandHandler)===null||i===void 0?void 0:i.commands,g=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DocumentLinkProvider}),v=d7(c.map(se=>{var K,Te;return(Te=(K=se.lsp)===null||K===void 0?void 0:K.SignatureHelp)===null||Te===void 0?void 0:Te.signatureHelpOptions})),m=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.TypeProvider}),w=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.ImplementationProvider}),E=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.CompletionProvider}),k=J9(c.map(se=>{var K,Te;return(Te=(K=se.lsp)===null||K===void 0?void 0:K.CompletionProvider)===null||Te===void 0?void 0:Te.completionOptions})),A=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.ReferencesProvider}),I=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DocumentSymbolProvider}),x=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DefinitionProvider}),_=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DocumentHighlightProvider}),P=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.FoldingRangeProvider}),N=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.HoverProvider}),C=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.RenameProvider}),D=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.CallHierarchyProvider}),R=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.TypeHierarchyProvider}),L=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.CodeLensProvider}),G=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DeclarationProvider}),V=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.InlayHintProvider}),Z=(s=this.services.lsp)===null||s===void 0?void 0:s.WorkspaceSymbolProvider;return{capabilities:{workspace:{workspaceFolders:{supported:!0},fileOperations:a},executeCommandProvider:p&&{commands:p},textDocumentSync:{change:eh.TextDocumentSyncKind.Incremental,openClose:!0,save:!!o.didSaveDocument,willSave:!!o.willSaveDocument,willSaveWaitUntil:!!o.willSaveDocumentWaitUntil},completionProvider:E?k:void 0,referencesProvider:A,documentSymbolProvider:I,definitionProvider:x,typeDefinitionProvider:m,documentHighlightProvider:_,codeActionProvider:d,documentFormattingProvider:u,documentRangeFormattingProvider:u,documentOnTypeFormattingProvider:l,foldingRangeProvider:P,hoverProvider:N,renameProvider:C?{prepareProvider:!0}:void 0,semanticTokensProvider:f?h:void 0,signatureHelpProvider:v,implementationProvider:w,callHierarchyProvider:D?{}:void 0,typeHierarchyProvider:R?{}:void 0,documentLinkProvider:g?{resolveProvider:!1}:void 0,codeLensProvider:L?{resolveProvider:!1}:void 0,declarationProvider:G,inlayHintProvider:V?{resolveProvider:!1}:void 0,workspaceSymbolProvider:Z?{resolveProvider:!!Z.resolveSymbol}:void 0}}}initialized(e){this.fireInitializedOnDefaultServices(e),this.onInitializedEmitter.fire(e),this.onInitializedEmitter.dispose()}fireInitializeOnDefaultServices(e){this.services.workspace.ConfigurationProvider.initialize(e),this.services.workspace.WorkspaceManager.initialize(e)}fireInitializedOnDefaultServices(e){const n=this.services.lsp.Connection,r=n?Object.assign(Object.assign({},e),{register:i=>n.client.register(eh.DidChangeConfigurationNotification.type,i),fetchConfiguration:i=>n.workspace.getConfiguration(i)}):e;this.services.workspace.ConfigurationProvider.initialized(r).catch(i=>console.error("Error in ConfigurationProvider initialization:",i)),this.services.workspace.WorkspaceManager.initialized(e).catch(i=>console.error("Error in WorkspaceManager initialization:",i))}}class h7{getSymbolKind(e){return ge.SymbolKind.Field}getCompletionItemKind(e){return ge.CompletionItemKind.Reference}}class p7{constructor(e){this.nameProvider=e.references.NameProvider,this.references=e.references.References,this.grammarConfig=e.parser.GrammarConfig}findReferences(e,n,r){const i=e.parseResult.value.$cstNode;if(!i)return[];const s=Oi(i,e.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);return s?this.getReferences(s,n,e):[]}getReferences(e,n,r){const i=[],s=this.references.findDeclaration(e);if(s){const o={includeDeclaration:n.context.includeDeclaration};this.references.findReferences(s,o).forEach(a=>{i.push(ge.Location.create(a.sourceUri.toString(),a.segment.range))})}return i}}class g7{constructor(e){this.references=e.references.References,this.nameProvider=e.references.NameProvider,this.grammarConfig=e.parser.GrammarConfig}async rename(e,n,r){const i={},s=e.parseResult.value.$cstNode;if(!s)return;const o=e.textDocument.offsetAt(n.position),a=Oi(s,o,this.grammarConfig.nameRegexp);if(!a)return;const c=this.references.findDeclaration(a);if(!c)return;const u={onlyLocal:!1,includeDeclaration:!0};return this.references.findReferences(c,u).forEach(d=>{const f=Rn.replace(d.segment.range,n.newName),h=d.sourceUri.toString();i[h]?i[h].push(f):i[h]=[f]}),{changes:i}}prepareRename(e,n,r){return this.renameNodeRange(e,n.position)}renameNodeRange(e,n){const r=e.parseResult.value.$cstNode,i=e.textDocument.offsetAt(n);if(r&&i){const s=Oi(r,i,this.grammarConfig.nameRegexp);if(!s)return;if(this.references.findDeclaration(s)||this.isNameNode(s))return s.range}}isNameNode(e){return e?.astNode&&D1(e.astNode)&&e===this.nameProvider.getNameNode(e.astNode)}}class U${constructor(e){this.indexManager=e.workspace.IndexManager,this.nodeKindProvider=e.lsp.NodeKindProvider,this.fuzzyMatcher=e.lsp.FuzzyMatcher}async getSymbols(e,n=ct.CancellationToken.None){const r=[],i=e.query.toLowerCase();for(const s of this.indexManager.allElements())if(await Mt(n),this.fuzzyMatcher.match(i,s.name)){const o=this.getWorkspaceSymbol(s);o&&r.push(o)}return r}getWorkspaceSymbol(e){const n=e.nameSegment;if(n)return{kind:this.nodeKindProvider.getSymbolKind(e),name:e.name,location:{range:n.range,uri:e.documentUri.toString()}}}}class m7{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new ge.Emitter,this._onDidOpen=new ge.Emitter,this._onDidClose=new ge.Emitter,this._onDidSave=new ge.Emitter,this._onWillSave=new ge.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(Et.normalize(e))}set(e){const n=Et.normalize(e.uri);let r=!0;this._syncedDocuments.has(n)&&(r=!1),this._syncedDocuments.set(n,e);const i=Object.freeze({document:e});return this._onDidOpen.fire(i),this._onDidChangeContent.fire(i),r}delete(e){const n=Et.normalize(typeof e=="object"&&"uri"in e?e.uri:e),r=this._syncedDocuments.get(n);r!==void 0&&(this._syncedDocuments.delete(n),this._onDidClose.fire(Object.freeze({document:r})))}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=ge.TextDocumentSyncKind.Incremental;const n=[];return n.push(e.onDidOpenTextDocument(r=>{const i=r.textDocument,s=Et.normalize(i.uri),o=this._configuration.create(s,i.languageId,i.version,i.text);this._syncedDocuments.set(s,o);const a=Object.freeze({document:o});this._onDidOpen.fire(a),this._onDidChangeContent.fire(a)})),n.push(e.onDidChangeTextDocument(r=>{const i=r.textDocument,s=r.contentChanges;if(s.length===0)return;const{version:o}=i;if(o==null)throw new Error(`Received document change event for ${i.uri} without valid version identifier`);const a=Et.normalize(i.uri);let c=this._syncedDocuments.get(a);c!==void 0&&(c=this._configuration.update(c,s,o),this._syncedDocuments.set(a,c),this._onDidChangeContent.fire(Object.freeze({document:c})))})),n.push(e.onDidCloseTextDocument(r=>{const i=Et.normalize(r.textDocument.uri),s=this._syncedDocuments.get(i);s!==void 0&&(this._syncedDocuments.delete(i),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(r=>{const i=this._syncedDocuments.get(Et.normalize(r.textDocument.uri));i!==void 0&&this._onWillSave.fire(Object.freeze({document:i,reason:r.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((r,i)=>{const s=this._syncedDocuments.get(Et.normalize(r.textDocument.uri));return s!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:s,reason:r.reason}),i):[]})),n.push(e.onDidSaveTextDocument(r=>{const i=this._syncedDocuments.get(Et.normalize(r.textDocument.uri));i!==void 0&&this._onDidSave.fire(Object.freeze({document:i}))})),ge.Disposable.create(()=>{n.forEach(r=>r.dispose())})}}function y7(t){return Wf.merge(j1(t),v7(t))}function v7(t){return{lsp:{CompletionProvider:e=>new F$(e),DocumentSymbolProvider:e=>new Q9(e),HoverProvider:e=>new s7(e),FoldingRangeProvider:e=>new t7(e),ReferencesProvider:e=>new p7(e),DefinitionProvider:e=>new Z9(e),DocumentHighlightProvider:e=>new L$(e),RenameProvider:e=>new g7(e)},shared:()=>t.shared}}function w7(t){return Wf.merge(U1(t),b7(t))}function b7(t){return{lsp:{Connection:()=>t.connection,LanguageServer:e=>new f7(e),DocumentUpdateHandler:e=>new e7(e),WorkspaceSymbolProvider:e=>new U$(e),NodeKindProvider:()=>new h7,FuzzyMatcher:()=>new n7},workspace:{TextDocuments:()=>new m7(jf)}}}class E7{constructor(){this.collector=()=>{}}getNodeFormatter(e){return new D7(e,this.collector)}formatDocument(e,n){const r=e.parseResult;return r.lexerErrors.length===0&&r.parserErrors.length===0?this.doDocumentFormat(e,n.options):[]}isFormatRangeErrorFree(e,n){const r=e.parseResult;return r.lexerErrors.length||r.parserErrors.length?Math.min(...r.lexerErrors.map(s=>{var o;return(o=s.line)!==null&&o!==void 0?o:Number.MAX_VALUE}),...r.parserErrors.map(s=>{var o;return(o=s.token.startLine)!==null&&o!==void 0?o:Number.MAX_VALUE}))>n.end.line:!0}formatDocumentRange(e,n){return this.isFormatRangeErrorFree(e,n.range)?this.doDocumentFormat(e,n.options,n.range):[]}formatDocumentOnType(e,n){const r={start:{character:0,line:n.position.line},end:n.position};return this.isFormatRangeErrorFree(e,r)?this.doDocumentFormat(e,n.options,r):[]}get formatOnTypeOptions(){}doDocumentFormat(e,n,r){const i=new Map,s=(a,c,u)=>{var l,d;const f=this.nodeModeToKey(a,c),h=i.get(f),p=(l=u.options.priority)!==null&&l!==void 0?l:0,g=(d=h?.options.priority)!==null&&d!==void 0?d:0;(!h||g<=p)&&i.set(f,u)};this.collector=s,this.iterateAstFormatting(e,r);const o=this.iterateCstFormatting(e,i,n,r);return this.avoidOverlappingEdits(e.textDocument,o)}avoidOverlappingEdits(e,n){const r=[];for(const i of n){let s=r[r.length-1];for(;s;){const o=e.offsetAt(i.range.start),a=e.offsetAt(s.range.end);if(o<a)r.pop(),s=r[r.length-1];else break}r.push(i)}return r.filter(i=>this.isNecessary(i,e))}iterateAstFormatting(e,n){const r=e.parseResult.value;this.format(r);const i=xr(r).iterator();let s;do if(s=i.next(),!s.done){const o=s.value;this.insideRange(o.$cstNode.range,n)?this.format(o):i.prune()}while(!s.done)}nodeModeToKey(e,n){return`${e.offset}:${e.end}:${n}`}insideRange(e,n){return!n||e.start.line<=n.start.line&&e.end.line>=n.end.line||e.start.line>=n.start.line&&e.end.line<=n.end.line||e.start.line<=n.end.line&&e.end.line>=n.end.line}isNecessary(e,n){return e.newText!==n.getText(e.range).replace(/\r/g,"")}iterateCstFormatting(e,n,r,i){const s={indentation:0,options:r,document:e.textDocument},o=[],c=this.iterateCstTree(e,s).iterator();let u,l;do if(l=c.next(),!l.done){const d=l.value,f=Ss(d),h=this.nodeModeToKey(d,"prepend"),p=n.get(h);if(n.delete(h),p){const m=this.createTextEdit(u,d,p,s);for(const w of m)w&&this.insideRange(w.range,i)&&o.push(w)}const g=this.nodeModeToKey(d,"append"),v=n.get(g);if(n.delete(g),v){const m=dD(d);if(m){const w=this.createTextEdit(d,m,v,s);for(const E of w)E&&this.insideRange(E.range,i)&&o.push(E)}}if(!p&&d.hidden){const m=this.createHiddenTextEdits(u,d,void 0,s);for(const w of m)w&&this.insideRange(w.range,i)&&o.push(w)}f&&(u=d)}while(!l.done);return o}createHiddenTextEdits(e,n,r,i){var s;const o=n.range.start.line;if(e&&e.range.end.line===o)return[];const a=[],c={start:{character:0,line:o},end:n.range.start},u=i.document.getText(c),l=this.findFittingMove(c,(s=r?.moves)!==null&&s!==void 0?s:[],i),d=this.getExistingIndentationCharacterCount(u,i),h=this.getIndentationCharacterCount(i,l)-d;if(h===0)return[];let p="";h>0&&(p=(i.options.insertSpaces?" ":" ").repeat(h));const g=n.text.split(`
161
+ `);g[0]=u+g[0];for(let v=0;v<g.length;v++){const m=o+v,w={character:0,line:m};if(h>0)a.push({newText:p,range:{start:w,end:w}});else{const E=g[v];let k=0;for(;k<E.length;k++){const A=E.charAt(k);if(A!==" "&&A!==" ")break}a.push({newText:"",range:{start:w,end:{line:m,character:Math.min(k,Math.abs(h))}}})}}return a}getExistingIndentationCharacterCount(e,n){const r=" ".repeat(n.options.tabSize);return(n.options.insertSpaces?e.replaceAll(" ",r):e.replaceAll(r," ")).length}getIndentationCharacterCount(e,n){let r=e.indentation;return n&&n.tabs&&(r+=n.tabs),(e.options.insertSpaces?e.options.tabSize:1)*r}createTextEdit(e,n,r,i){var s;if(n.hidden)return this.createHiddenTextEdits(e,n,r,i);if(e&&(e.range.end.line>n.range.start.line||e.range.end.line===n.range.start.line&&e.range.end.character>n.range.start.character))return[];const o={start:(s=e?.range.end)!==null&&s!==void 0?s:{character:0,line:0},end:n.range.start},a=this.findFittingMove(o,r.moves,i);if(!a)return[];const c=a.characters,u=a.lines,l=a.tabs,d=i.indentation;i.indentation+=l??0;const f=[];return c!==void 0?e?.hidden||f.push(this.createSpaceTextEdit(o,c,r.options)):u!==void 0?f.push(this.createLineTextEdit(o,u,i,r.options)):l!==void 0&&f.push(this.createTabTextEdit(o,!!e,i)),Ss(n)&&(i.indentation=d),f}createSpaceTextEdit(e,n,r){if(e.start.line===e.end.line){const s=e.end.character-e.start.character;n=this.fitIntoOptions(n,s,r)}return{newText:" ".repeat(n),range:e}}createLineTextEdit(e,n,r,i){const s=e.end.line-e.start.line;n=this.fitIntoOptions(n,s,i);const a=(r.options.insertSpaces?" ".repeat(r.options.tabSize):" ").repeat(r.indentation);return{newText:`${`
162
+ `.repeat(n)}${a}`,range:e}}createTabTextEdit(e,n,r){const s=(r.options.insertSpaces?" ".repeat(r.options.tabSize):" ").repeat(r.indentation),o=n?1:0,a=Math.max(e.end.line-e.start.line,o);return{newText:`${`
163
+ `.repeat(a)}${s}`,range:e}}fitIntoOptions(e,n,r){return r.allowMore?e=Math.max(n,e):r.allowLess&&(e=Math.min(n,e)),e}findFittingMove(e,n,r){if(n.length===0)return;if(n.length===1)return n[0];const i=e.end.line-e.start.line;for(const s of n){if(s.lines!==void 0&&i<=s.lines)return s;if(s.lines===void 0&&i===0)return s}return n[n.length-1]}iterateCstTree(e,n){const i=e.parseResult.value.$cstNode;return i?new Oo(i,s=>this.iterateCst(s,n)):No}iterateCst(e,n){if(!ri(e))return No;const r=n.indentation;return new xt(()=>({index:0}),i=>i.index<e.content.length?{done:!1,value:e.content[i.index++]}:(n.indentation=r,Vt))}}class D7{constructor(e,n){this.astNode=e,this.collector=n}node(e){return new Dr(e.$cstNode?[e.$cstNode]:[],this.collector)}nodes(...e){const n=[];for(const r of e)r.$cstNode&&n.push(r.$cstNode);return new Dr(n,this.collector)}property(e,n){const r=_n(this.astNode.$cstNode,e,n);return new Dr(r?[r]:[],this.collector)}properties(...e){const n=[];for(const r of e){const i=Mo(this.astNode.$cstNode,r);n.push(...i)}return new Dr(n,this.collector)}keyword(e,n){const r=bc(this.astNode.$cstNode,e,n);return new Dr(r?[r]:[],this.collector)}keywords(...e){const n=[];for(const r of e){const i=am(this.astNode.$cstNode,r);n.push(...i)}return new Dr(n,this.collector)}cst(e){return new Dr([...e],this.collector)}interior(e,n){const r=e.nodes,i=n.nodes;if(r.length!==1||i.length!==1)return new Dr([],this.collector);let s=r[0],o=i[0];if(s.offset>o.offset){const a=s;s=o,o=a}return new Dr(fD(s,o),this.collector)}}class Dr{constructor(e,n){this.nodes=e,this.collector=n}prepend(e){for(const n of this.nodes)this.collector(n,"prepend",e);return this}append(e){for(const n of this.nodes)this.collector(n,"append",e);return this}surround(e){for(const n of this.nodes)this.collector(n,"prepend",e),this.collector(n,"append",e);return this}slice(e,n){return new Dr(this.nodes.slice(e,n),this.collector)}}var Ki;(function(t){function e(...l){return{options:{},moves:l.flatMap(d=>d.moves).sort(u)}}t.fit=e;function n(l){return i(0,l)}t.noSpace=n;function r(l){return i(1,l)}t.oneSpace=r;function i(l,d){return{options:d??{},moves:[{characters:l}]}}t.spaces=i;function s(l){return o(1,l)}t.newLine=s;function o(l,d){return{options:d??{},moves:[{lines:l}]}}t.newLines=o;function a(l){return{options:l??{},moves:[{tabs:1,lines:1}]}}t.indent=a;function c(l){return{options:l??{},moves:[{tabs:0}]}}t.noIndent=c;function u(l,d){var f,h,p,g,v,m;const w=(f=l.lines)!==null&&f!==void 0?f:0,E=(h=d.lines)!==null&&h!==void 0?h:0,k=(p=l.tabs)!==null&&p!==void 0?p:0,A=(g=d.tabs)!==null&&g!==void 0?g:0,I=(v=l.characters)!==null&&v!==void 0?v:0,x=(m=d.characters)!==null&&m!==void 0?m:0;return w<E?-1:w>E?1:k<A?-1:k>A?1:I<x?-1:I>x?1:0}})(Ki||(Ki={}));class T7{constructor(){this.encoding="utf-8"}readFile(e){return Eb.promises.readFile(e.fsPath,this.encoding)}async readDirectory(e){return(await Eb.promises.readdir(e.fsPath,{withFileTypes:!0})).map(r=>({dirent:r,isFile:r.isFile(),isDirectory:r.isDirectory(),uri:Et.joinPath(e,r.name)}))}}const R7={fileSystemProvider:()=>new T7},Ke={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},W$={silent:{level:-1},fatal:{level:Ke.fatal},error:{level:Ke.error},warn:{level:Ke.warn},log:{level:Ke.log},info:{level:Ke.info},success:{level:Ke.success},fail:{level:Ke.fail},ready:{level:Ke.info},start:{level:Ke.info},box:{level:Ke.info},debug:{level:Ke.debug},trace:{level:Ke.trace},verbose:{level:Ke.verbose}};function tv(t){return t!==null&&typeof t=="object"}function nv(t,e,n=".",r){if(!tv(e))return nv(t,{},n);const i=Object.assign({},e);for(const s in t){if(s==="__proto__"||s==="constructor")continue;const o=t[s];o!=null&&(Array.isArray(o)&&Array.isArray(i[s])?i[s]=[...o,...i[s]]:tv(o)&&tv(i[s])?i[s]=nv(o,i[s],(n?`${n}.`:"")+s.toString()):i[s]=o)}return i}function S7(t){return(...e)=>e.reduce((n,r)=>nv(n,r,""),{})}const k7=S7();function $7(t){return Object.prototype.toString.call(t)==="[object Object]"}function C7(t){return!(!$7(t)||!t.message&&!t.args||t.stack)}let rv=!1;const G$=[];let fn=class AN{constructor(e={}){const n=e.types||W$;this.options=k7({...e,defaults:{...e.defaults},level:iv(e.level,n),reporters:[...e.reporters||[]]},{types:W$,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(const r in n){const i={type:r,...this.options.defaults,...n[r]};this[r]=this._wrapLogFn(i),this[r].raw=this._wrapLogFn(i,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(e){this.options.level=iv(e,this.options.types,this.options.level)}prompt(e,n){if(!this.options.prompt)throw new Error("prompt is not supported!");return this.options.prompt(e,n)}create(e){const n=new AN({...this.options,...e});return this._mockFn&&n.mockTypes(this._mockFn),n}withDefaults(e){return this.create({...this.options,defaults:{...this.options.defaults,...e}})}withTag(e){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+e:e})}addReporter(e){return this.options.reporters.push(e),this}removeReporter(e){if(e){const n=this.options.reporters.indexOf(e);if(n>=0)return this.options.reporters.splice(n,1)}else this.options.reporters.splice(0);return this}setReporters(e){return this.options.reporters=Array.isArray(e)?e:[e],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(const e in this.options.types)console["__"+e]||(console["__"+e]=console[e]),console[e]=this[e].raw}restoreConsole(){for(const e in this.options.types)console["__"+e]&&(console[e]=console["__"+e],delete console["__"+e])}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(e,n){e&&(e.__write||(e.__write=e.write),e.write=r=>{this[n].raw(String(r).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(e){e&&e.__write&&(e.write=e.__write,delete e.__write)}pauseLogs(){rv=!0}resumeLogs(){rv=!1;const e=G$.splice(0);for(const n of e)n[0]._logFn(n[1],n[2])}mockTypes(e){const n=e||this.options.mockFn;if(this._mockFn=n,typeof n=="function")for(const r in this.options.types)this[r]=n(r,this.options.types[r])||this[r],this[r].raw=this[r]}_wrapLogFn(e,n){return(...r)=>{if(rv){G$.push([this,e,r,n]);return}return this._logFn(e,r,n)}}_logFn(e,n,r){if((e.level||0)>this.level)return!1;const i={date:new Date,args:[],...e,level:iv(e.level,this.options.types)};!r&&n.length===1&&C7(n[0])?Object.assign(i,n[0]):i.args=[...n],i.message&&(i.args.unshift(i.message),delete i.message),i.additional&&(Array.isArray(i.additional)||(i.additional=i.additional.split(`
164
+ `)),i.args.push(`
165
+ `+i.additional.join(`
166
+ `)),delete i.additional),i.type=typeof i.type=="string"?i.type.toLowerCase():"log",i.tag=typeof i.tag=="string"?i.tag:"";const s=(a=!1)=>{const c=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&c>0){const u=[...this._lastLog.object.args];c>1&&u.push(`(repeated ${c} times)`),this._log({...this._lastLog.object,args:u}),this._lastLog.count=1}a&&(this._lastLog.object=i,this._log(i))};clearTimeout(this._lastLog.timeout);const o=this._lastLog.time&&i.date?i.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=i.date,o<this.options.throttle)try{const a=JSON.stringify([i.type,i.tag,i.args]),c=this._lastLog.serialized===a;if(this._lastLog.serialized=a,c&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(s,this.options.throttle);return}}catch{}s(!0)}_log(e){for(const n of this.options.reporters)n.log(e,{options:this.options})}};function iv(t,e={},n=3){return t===void 0?n:typeof t=="number"?t:e[t]&&e[t].level!==void 0?e[t].level:n}fn.prototype.add=fn.prototype.addReporter,fn.prototype.remove=fn.prototype.removeReporter,fn.prototype.clear=fn.prototype.removeReporter,fn.prototype.withScope=fn.prototype.withTag,fn.prototype.mock=fn.prototype.mockTypes,fn.prototype.pause=fn.prototype.pauseLogs,fn.prototype.resume=fn.prototype.resumeLogs;function _7(t={}){return new fn(t)}function H$(t){const e=process.cwd()+LN;return t.split(`
167
+ `).splice(1).map(n=>n.trim().replace("file://","").replace(e,""))}function A7(t,e){return(e.__write||e.write).call(e,t)}const sv=t=>t?`[${t}]`:"";let V$=class{formatStack(e,n){return" "+H$(e).join(`
168
+ `)}formatArgs(e,n){const r=e.map(i=>i&&typeof i.stack=="string"?i.message+`
169
+ `+this.formatStack(i.stack,n):i);return UN(n,...r)}formatDate(e,n){return n.date?e.toLocaleTimeString():""}filterAndJoin(e){return e.filter(Boolean).join(" ")}formatLogObj(e,n){const r=this.formatArgs(e.args,n);return e.type==="box"?`
170
+ `+[sv(e.tag),e.title&&e.title,...r.split(`
171
+ `)].filter(Boolean).map(i=>" > "+i).join(`
172
+ `)+`
173
+ `:this.filterAndJoin([sv(e.type),sv(e.tag),r])}log(e,n){const r=this.formatLogObj(e,{columns:n.options.stdout.columns||0,...n.options.formatOptions});return A7(r+`
174
+ `,e.level<2?n.options.stderr||process.stderr:n.options.stdout||process.stdout)}};const{env:Yi={},argv:K$=[],platform:x7=""}=typeof process>"u"?{}:process,I7="NO_COLOR"in Yi||K$.includes("--no-color"),P7="FORCE_COLOR"in Yi||K$.includes("--color"),N7=x7==="win32",Y$=Yi.TERM==="dumb",O7=Yp&&Yp.isatty&&Yp.isatty(1)&&Yi.TERM&&!Y$,F7="CI"in Yi&&("GITHUB_ACTIONS"in Yi||"GITLAB_CI"in Yi||"CIRCLECI"in Yi),L7=!I7&&(P7||N7&&!Y$||O7||F7);function X$(t,e,n,r,i=e.slice(0,Math.max(0,t))+r,s=e.slice(Math.max(0,t+n.length)),o=s.indexOf(n)){return i+(o<0?s:X$(o,s,n,r))}function M7(t,e,n,r,i){return t<0?n+e+r:n+X$(t,e,r,i)+r}function z7(t,e,n=t,r=t.length+1){return i=>i||!(i===""||i===void 0)?M7((""+i).indexOf(e,r),i,t,e,n):""}function ke(t,e,n){return z7(`\x1B[${t}m`,`\x1B[${e}m`,n)}const J$={reset:ke(0,0),bold:ke(1,22,"\x1B[22m\x1B[1m"),dim:ke(2,22,"\x1B[22m\x1B[2m"),italic:ke(3,23),underline:ke(4,24),inverse:ke(7,27),hidden:ke(8,28),strikethrough:ke(9,29),black:ke(30,39),red:ke(31,39),green:ke(32,39),yellow:ke(33,39),blue:ke(34,39),magenta:ke(35,39),cyan:ke(36,39),white:ke(37,39),gray:ke(90,39),bgBlack:ke(40,49),bgRed:ke(41,49),bgGreen:ke(42,49),bgYellow:ke(43,49),bgBlue:ke(44,49),bgMagenta:ke(45,49),bgCyan:ke(46,49),bgWhite:ke(47,49),blackBright:ke(90,39),redBright:ke(91,39),greenBright:ke(92,39),yellowBright:ke(93,39),blueBright:ke(94,39),magentaBright:ke(95,39),cyanBright:ke(96,39),whiteBright:ke(97,39),bgBlackBright:ke(100,49),bgRedBright:ke(101,49),bgGreenBright:ke(102,49),bgYellowBright:ke(103,49),bgBlueBright:ke(104,49),bgMagentaBright:ke(105,49),bgCyanBright:ke(106,49),bgWhiteBright:ke(107,49)};function B7(t=L7){return t?J$:Object.fromEntries(Object.keys(J$).map(e=>[e,String]))}const hn=B7();function q7(t,e="reset"){return hn[t]||hn[e]}const j7=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");function Ru(t){return t.replace(new RegExp(j7,"g"),"")}const Z$={solid:{tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502"},double:{tl:"\u2554",tr:"\u2557",bl:"\u255A",br:"\u255D",h:"\u2550",v:"\u2551"},doubleSingle:{tl:"\u2553",tr:"\u2556",bl:"\u2559",br:"\u255C",h:"\u2500",v:"\u2551"},doubleSingleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2551"},singleThick:{tl:"\u250F",tr:"\u2513",bl:"\u2517",br:"\u251B",h:"\u2501",v:"\u2503"},singleDouble:{tl:"\u2552",tr:"\u2555",bl:"\u2558",br:"\u255B",h:"\u2550",v:"\u2502"},singleDoubleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2550",v:"\u2502"},rounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2502"}},U7={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1};function W7(t,e={}){const n={...e,style:{...U7,...e.style}},r=t.split(`
175
+ `),i=[],s=q7(n.style.borderColor),o={...typeof n.style.borderStyle=="string"?Z$[n.style.borderStyle]||Z$.solid:n.style.borderStyle};if(s)for(const h in o)o[h]=s(o[h]);const a=n.style.padding%2===0?n.style.padding:n.style.padding+1,c=r.length+a,u=Math.max(...r.map(h=>h.length))+a,l=u+a,d=n.style.marginLeft>0?" ".repeat(n.style.marginLeft):"";if(n.style.marginTop>0&&i.push("".repeat(n.style.marginTop)),n.title){const h=o.h.repeat(Math.floor((u-Ru(n.title).length)/2)),p=o.h.repeat(u-Ru(n.title).length-Ru(h).length+a);i.push(`${d}${o.tl}${h}${n.title}${p}${o.tr}`)}else i.push(`${d}${o.tl}${o.h.repeat(l)}${o.tr}`);const f=n.style.valign==="center"?Math.floor((c-r.length)/2):n.style.valign==="top"?c-r.length-a:c-r.length;for(let h=0;h<c;h++)if(h<f||h>=f+r.length)i.push(`${d}${o.v}${" ".repeat(l)}${o.v}`);else{const p=r[h-f],g=" ".repeat(a),v=" ".repeat(u-Ru(p).length);i.push(`${d}${o.v}${g}${p}${v}${o.v}`)}return i.push(`${d}${o.bl}${o.h.repeat(l)}${o.br}`),n.style.marginBottom>0&&i.push("".repeat(n.style.marginBottom)),i.join(`
176
+ `)}const G7=[["APPVEYOR"],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"]];function H7(t){for(const e of G7){const n=e[1]||e[0];if(t[n])return{name:e[0].toLowerCase(),...e[2]}}return t.SHELL&&t.SHELL==="/bin/jsh"?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}const th=typeof process<"u"?process:{},Su=th.env||{},Q$=H7(Su),V7=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";th.platform,Q$.name;const K7=ku(Su.CI)||Q$.ci!==!1;ku(th.stdout&&th.stdout.isTTY);const Y7=ku(Su.DEBUG),eC=V7==="test"||ku(Su.TEST);ku(Su.MINIMAL);function ku(t){return t?t!=="false":!1}function X7({onlyFirst:t=!1}={}){const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}const J7=X7();function Z7(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(J7,"")}function tC(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var nC={exports:{}};(function(t){var e={};t.exports=e,e.eastAsianWidth=function(r){var i=r.charCodeAt(0),s=r.length==2?r.charCodeAt(1):0,o=i;return 55296<=i&&i<=56319&&56320<=s&&s<=57343&&(i&=1023,s&=1023,o=i<<10|s,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},e.characterLength=function(r){var i=this.eastAsianWidth(r);return i=="F"||i=="W"||i=="A"?2:1};function n(r){return r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(r){for(var i=n(r),s=0,o=0;o<i.length;o++)s=s+this.characterLength(i[o]);return s},e.slice=function(r,i,s){textLen=e.length(r),i=i||0,s=s||1,i<0&&(i=textLen+i),s<0&&(s=textLen+s);for(var o="",a=0,c=n(r),u=0;u<c.length;u++){var l=c[u],d=e.length(l);if(a>=i-(d==2?1:0))if(a+d<=s)o+=l;else break;a+=d}return o}})(nC);var Q7=nC.exports;const eW=tC(Q7),tW=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;function nW(t,e){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,countAnsiEscapeCodes:!1,...e},e.countAnsiEscapeCodes||(t=Z7(t)),t.length===0))return 0;const n=e.ambiguousIsNarrow?1:2;let r=0;for(const{segment:i}of new Intl.Segmenter().segment(t)){const s=i.codePointAt(0);if(!(s<=31||s>=127&&s<=159||s>=768&&s<=879)){if(tW().test(i)){r+=2;continue}switch(eW.eastAsianWidth(i)){case"F":case"W":{r+=2;break}case"A":{r+=n;break}default:r+=1}}}return r}function rC(){return Pe.platform!=="win32"?Pe.env.TERM!=="linux":!!Pe.env.CI||!!Pe.env.WT_SESSION||!!Pe.env.TERMINUS_SUBLIME||Pe.env.ConEmuTask==="{cmd::Cmder}"||Pe.env.TERM_PROGRAM==="Terminus-Sublime"||Pe.env.TERM_PROGRAM==="vscode"||Pe.env.TERM==="xterm-256color"||Pe.env.TERM==="alacritty"||Pe.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const rW={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},iW={0:"red",1:"yellow"},sW=rC(),jr=(t,e)=>sW?t:e,iC={error:jr("\u2716","\xD7"),fatal:jr("\u2716","\xD7"),ready:jr("\u2714","\u221A"),warn:jr("\u26A0","\u203C"),info:jr("\u2139","i"),success:jr("\u2714","\u221A"),debug:jr("\u2699","D"),trace:jr("\u2192","\u2192"),fail:jr("\u2716","\xD7"),start:jr("\u25D0","o"),log:""};function sC(t){return Intl.Segmenter?nW(t):Ru(t).length}class oW extends V${formatStack(e){return`
177
+ `+H$(e).map(n=>" "+n.replace(/^at +/,r=>hn.gray(r)).replace(/\((.+)\)/,(r,i)=>`(${hn.cyan(i)})`)).join(`
178
+ `)}formatType(e,n,r){const i=rW[e.type]||iW[e.level]||"gray";if(n)return cW(i)(hn.black(` ${e.type.toUpperCase()} `));const s=typeof iC[e.type]=="string"?iC[e.type]:e.icon||e.type;return s?aW(i)(s):""}formatLogObj(e,n){const[r,...i]=this.formatArgs(e.args,n).split(`
179
+ `);if(e.type==="box")return W7(nh(r+(i.length>0?`
180
+ `+i.join(`
181
+ `):"")),{title:e.title?nh(e.title):void 0,style:e.style});const s=this.formatDate(e.date,n),o=s&&hn.gray(s),a=e.badge??e.level<2,c=this.formatType(e,a,n),u=e.tag?hn.gray(e.tag):"";let l;const d=this.filterAndJoin([c,nh(r)]),f=this.filterAndJoin(n.columns?[u,o]:[u]),h=(n.columns||0)-sC(d)-sC(f)-2;if(l=h>0&&(n.columns||0)>=80?d+" ".repeat(h)+f:(f?`${hn.gray(`[${f}]`)} `:"")+d,l+=nh(i.length>0?`
182
+ `+i.join(`
183
+ `):""),e.type==="trace"){const p=new Error("Trace: "+e.message);l+=this.formatStack(p.stack||"")}return a?`
184
+ `+l+`
185
+ `:l}}function nh(t){return t.replace(/`([^`]+)`/gm,(e,n)=>hn.cyan(n)).replace(/\s+_([^_]+)_\s+/gm,(e,n)=>` ${hn.underline(n)} `)}function aW(t="white"){return hn[t]||hn.white}function cW(t="bgWhite"){return hn[`bg${t[0].toUpperCase()}${t.slice(1)}`]||hn.bgWhite}function oC(t={}){let e=uW();return process.env.CONSOLA_LEVEL&&(e=Number.parseInt(process.env.CONSOLA_LEVEL)??e),_7({level:e,defaults:{level:e},stdout:process.stdout,stderr:process.stderr,prompt:(...n)=>import("../chunks/prompt.mjs").then(r=>r.prompt(...n)),reporters:t.reporters||[t.fancy??!(K7||eC)?new oW:new V$],...t})}function uW(){return Y7?Ke.debug:eC?Ke.warn:Ke.info}oC();function lW(){return Ke.debug}const aC=lW(),nt=oC({level:aC,defaults:{level:aC},formatOptions:{colors:!0,compact:!1,date:!1}});function dW(t,e=1,n={}){const{indent:r=" ",includeEmptyLines:i=!1}=n;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(e<0)throw new RangeError(`Expected \`count\` to be at least 0, got \`${e}\``);if(typeof r!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r}\``);if(e===0)return t;const s=i?/^/gm:/^(?!\s*$)/gm;return t.replace(s,r.repeat(e))}function fW(t){for(var e=t.length,n=0,r=0;r<e;){var i=t.charCodeAt(r++);if(i&4294967168)if(!(i&4294965248))n+=2;else{if(i>=55296&&i<=56319&&r<e){var s=t.charCodeAt(r);(s&64512)===56320&&(++r,i=((i&1023)<<10)+(s&1023)+65536)}i&4294901760?n+=4:n+=3}else{n++;continue}}return n}function hW(t,e,n){for(var r=t.length,i=n,s=0;s<r;){var o=t.charCodeAt(s++);if(o&4294967168)if(!(o&4294965248))e[i++]=o>>6&31|192;else{if(o>=55296&&o<=56319&&s<r){var a=t.charCodeAt(s);(a&64512)===56320&&(++s,o=((o&1023)<<10)+(a&1023)+65536)}o&4294901760?(e[i++]=o>>18&7|240,e[i++]=o>>12&63|128,e[i++]=o>>6&63|128):(e[i++]=o>>12&15|224,e[i++]=o>>6&63|128)}else{e[i++]=o;continue}e[i++]=o&63|128}}var pW=new TextEncoder,gW=50;function mW(t,e,n){pW.encodeInto(t,e.subarray(n))}function yW(t,e,n){t.length>gW?mW(t,e,n):hW(t,e,n)}var vW=4096;function cC(t,e,n){for(var r=e,i=r+n,s=[],o="";r<i;){var a=t[r++];if(!(a&128))s.push(a);else if((a&224)===192){var c=t[r++]&63;s.push((a&31)<<6|c)}else if((a&240)===224){var c=t[r++]&63,u=t[r++]&63;s.push((a&31)<<12|c<<6|u)}else if((a&248)===240){var c=t[r++]&63,u=t[r++]&63,l=t[r++]&63,d=(a&7)<<18|c<<12|u<<6|l;d>65535&&(d-=65536,s.push(d>>>10&1023|55296),d=56320|d&1023),s.push(d)}else s.push(a);s.length>=vW&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return s.length>0&&(o+=String.fromCharCode.apply(String,s)),o}var wW=new TextDecoder,bW=200;function EW(t,e,n){var r=t.subarray(e,e+n);return wW.decode(r)}function DW(t,e,n){return n>bW?EW(t,e,n):cC(t,e,n)}var rh=function(){function t(e,n){this.type=e,this.data=n}return t}(),TW=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(r[s]=i[s])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ur=function(t){TW(e,t);function e(n){var r=t.call(this,n)||this,i=Object.create(e.prototype);return Object.setPrototypeOf(r,i),Object.defineProperty(r,"name",{configurable:!0,enumerable:!1,value:e.name}),r}return e}(Error),$u=4294967295;function RW(t,e,n){var r=n/4294967296,i=n;t.setUint32(e,r),t.setUint32(e+4,i)}function uC(t,e,n){var r=Math.floor(n/4294967296),i=n;t.setUint32(e,r),t.setUint32(e+4,i)}function lC(t,e){var n=t.getInt32(e),r=t.getUint32(e+4);return n*4294967296+r}function SW(t,e){var n=t.getUint32(e),r=t.getUint32(e+4);return n*4294967296+r}var kW=-1,$W=4294967296-1,CW=17179869184-1;function _W(t){var e=t.sec,n=t.nsec;if(e>=0&&n>=0&&e<=CW)if(n===0&&e<=$W){var r=new Uint8Array(4),i=new DataView(r.buffer);return i.setUint32(0,e),r}else{var s=e/4294967296,o=e&4294967295,r=new Uint8Array(8),i=new DataView(r.buffer);return i.setUint32(0,n<<2|s&3),i.setUint32(4,o),r}else{var r=new Uint8Array(12),i=new DataView(r.buffer);return i.setUint32(0,n),uC(i,4,e),r}}function AW(t){var e=t.getTime(),n=Math.floor(e/1e3),r=(e-n*1e3)*1e6,i=Math.floor(r/1e9);return{sec:n+i,nsec:r-i*1e9}}function xW(t){if(t instanceof Date){var e=AW(t);return _W(e)}else return null}function IW(t){var e=new DataView(t.buffer,t.byteOffset,t.byteLength);switch(t.byteLength){case 4:{var n=e.getUint32(0),r=0;return{sec:n,nsec:r}}case 8:{var i=e.getUint32(0),s=e.getUint32(4),n=(i&3)*4294967296+s,r=i>>>2;return{sec:n,nsec:r}}case 12:{var n=lC(e,4),r=e.getUint32(0);return{sec:n,nsec:r}}default:throw new Ur("Unrecognized data size for timestamp (expected 4, 8, or 12): ".concat(t.length))}}function PW(t){var e=IW(t);return new Date(e.sec*1e3+e.nsec/1e6)}var NW={type:kW,encode:xW,decode:PW},dC=function(){function t(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(NW)}return t.prototype.register=function(e){var n=e.type,r=e.encode,i=e.decode;if(n>=0)this.encoders[n]=r,this.decoders[n]=i;else{var s=1+n;this.builtInEncoders[s]=r,this.builtInDecoders[s]=i}},t.prototype.tryToEncode=function(e,n){for(var r=0;r<this.builtInEncoders.length;r++){var i=this.builtInEncoders[r];if(i!=null){var s=i(e,n);if(s!=null){var o=-1-r;return new rh(o,s)}}}for(var r=0;r<this.encoders.length;r++){var i=this.encoders[r];if(i!=null){var s=i(e,n);if(s!=null){var o=r;return new rh(o,s)}}}return e instanceof rh?e:null},t.prototype.decode=function(e,n,r){var i=n<0?this.builtInDecoders[-1-n]:this.decoders[n];return i?i(e,n,r):new rh(n,e)},t.defaultCodec=new t,t}();function ih(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t instanceof ArrayBuffer?new Uint8Array(t):Uint8Array.from(t)}function OW(t){if(t instanceof ArrayBuffer)return new DataView(t);var e=ih(t);return new DataView(e.buffer,e.byteOffset,e.byteLength)}var FW=100,LW=2048,MW=function(){function t(e){var n,r,i,s,o,a,c,u;this.extensionCodec=(n=e?.extensionCodec)!==null&&n!==void 0?n:dC.defaultCodec,this.context=e?.context,this.useBigInt64=(r=e?.useBigInt64)!==null&&r!==void 0?r:!1,this.maxDepth=(i=e?.maxDepth)!==null&&i!==void 0?i:FW,this.initialBufferSize=(s=e?.initialBufferSize)!==null&&s!==void 0?s:LW,this.sortKeys=(o=e?.sortKeys)!==null&&o!==void 0?o:!1,this.forceFloat32=(a=e?.forceFloat32)!==null&&a!==void 0?a:!1,this.ignoreUndefined=(c=e?.ignoreUndefined)!==null&&c!==void 0?c:!1,this.forceIntegerToFloat=(u=e?.forceIntegerToFloat)!==null&&u!==void 0?u:!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}return t.prototype.reinitializeState=function(){this.pos=0},t.prototype.encodeSharedRef=function(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)},t.prototype.encode=function(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)},t.prototype.doEncode=function(e,n){if(n>this.maxDepth)throw new Error("Too deep objects in depth ".concat(n));e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.forceIntegerToFloat?this.encodeNumberAsFloat(e):this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.useBigInt64&&typeof e=="bigint"?this.encodeBigInt64(e):this.encodeObject(e,n)},t.prototype.ensureBufferSizeToWrite=function(e){var n=this.pos+e;this.view.byteLength<n&&this.resizeBuffer(n*2)},t.prototype.resizeBuffer=function(e){var n=new ArrayBuffer(e),r=new Uint8Array(n),i=new DataView(n);r.set(this.bytes),this.view=i,this.bytes=r},t.prototype.encodeNil=function(){this.writeU8(192)},t.prototype.encodeBoolean=function(e){e===!1?this.writeU8(194):this.writeU8(195)},t.prototype.encodeNumber=function(e){!this.forceIntegerToFloat&&Number.isSafeInteger(e)?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(211),this.writeI64(e)):this.encodeNumberAsFloat(e)},t.prototype.encodeNumberAsFloat=function(e){this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))},t.prototype.encodeBigInt64=function(e){e>=BigInt(0)?(this.writeU8(207),this.writeBigUint64(e)):(this.writeU8(211),this.writeBigInt64(e))},t.prototype.writeStringHeader=function(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error("Too long string: ".concat(e," bytes in UTF-8"))},t.prototype.encodeString=function(e){var n=5,r=fW(e);this.ensureBufferSizeToWrite(n+r),this.writeStringHeader(r),yW(e,this.bytes,this.pos),this.pos+=r},t.prototype.encodeObject=function(e,n){var r=this.extensionCodec.tryToEncode(e,this.context);if(r!=null)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,n);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,n);else throw new Error("Unrecognized object: ".concat(Object.prototype.toString.apply(e)))},t.prototype.encodeBinary=function(e){var n=e.byteLength;if(n<256)this.writeU8(196),this.writeU8(n);else if(n<65536)this.writeU8(197),this.writeU16(n);else if(n<4294967296)this.writeU8(198),this.writeU32(n);else throw new Error("Too large binary: ".concat(n));var r=ih(e);this.writeU8a(r)},t.prototype.encodeArray=function(e,n){var r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else if(r<4294967296)this.writeU8(221),this.writeU32(r);else throw new Error("Too large array: ".concat(r));for(var i=0,s=e;i<s.length;i++){var o=s[i];this.doEncode(o,n+1)}},t.prototype.countWithoutUndefined=function(e,n){for(var r=0,i=0,s=n;i<s.length;i++){var o=s[i];e[o]!==void 0&&r++}return r},t.prototype.encodeMap=function(e,n){var r=Object.keys(e);this.sortKeys&&r.sort();var i=this.ignoreUndefined?this.countWithoutUndefined(e,r):r.length;if(i<16)this.writeU8(128+i);else if(i<65536)this.writeU8(222),this.writeU16(i);else if(i<4294967296)this.writeU8(223),this.writeU32(i);else throw new Error("Too large map object: ".concat(i));for(var s=0,o=r;s<o.length;s++){var a=o[s],c=e[a];this.ignoreUndefined&&c===void 0||(this.encodeString(a),this.doEncode(c,n+1))}},t.prototype.encodeExtension=function(e){var n=e.data.length;if(n===1)this.writeU8(212);else if(n===2)this.writeU8(213);else if(n===4)this.writeU8(214);else if(n===8)this.writeU8(215);else if(n===16)this.writeU8(216);else if(n<256)this.writeU8(199),this.writeU8(n);else if(n<65536)this.writeU8(200),this.writeU16(n);else if(n<4294967296)this.writeU8(201),this.writeU32(n);else throw new Error("Too large extension object: ".concat(n));this.writeI8(e.type),this.writeU8a(e.data)},t.prototype.writeU8=function(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++},t.prototype.writeU8a=function(e){var n=e.length;this.ensureBufferSizeToWrite(n),this.bytes.set(e,this.pos),this.pos+=n},t.prototype.writeI8=function(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++},t.prototype.writeU16=function(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2},t.prototype.writeI16=function(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2},t.prototype.writeU32=function(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4},t.prototype.writeI32=function(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4},t.prototype.writeF32=function(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4},t.prototype.writeF64=function(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8},t.prototype.writeU64=function(e){this.ensureBufferSizeToWrite(8),RW(this.view,this.pos,e),this.pos+=8},t.prototype.writeI64=function(e){this.ensureBufferSizeToWrite(8),uC(this.view,this.pos,e),this.pos+=8},t.prototype.writeBigUint64=function(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8},t.prototype.writeBigInt64=function(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8},t}();function zW(t,e){var n=new MW(e);return n.encodeSharedRef(t)}function ov(t){return"".concat(t<0?"-":"","0x").concat(Math.abs(t).toString(16).padStart(2,"0"))}var BW=16,qW=16,jW=function(){function t(e,n){e===void 0&&(e=BW),n===void 0&&(n=qW),this.maxKeyLength=e,this.maxLengthPerKey=n,this.hit=0,this.miss=0,this.caches=[];for(var r=0;r<this.maxKeyLength;r++)this.caches.push([])}return t.prototype.canBeCached=function(e){return e>0&&e<=this.maxKeyLength},t.prototype.find=function(e,n,r){var i=this.caches[r-1];e:for(var s=0,o=i;s<o.length;s++){for(var a=o[s],c=a.bytes,u=0;u<r;u++)if(c[u]!==e[n+u])continue e;return a.str}return null},t.prototype.store=function(e,n){var r=this.caches[e.length-1],i={bytes:e,str:n};r.length>=this.maxLengthPerKey?r[Math.random()*r.length|0]=i:r.push(i)},t.prototype.decode=function(e,n,r){var i=this.find(e,n,r);if(i!=null)return this.hit++,i;this.miss++;var s=cC(e,n,r),o=Uint8Array.prototype.slice.call(e,n,n+r);return this.store(o,s),s},t}(),UW=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(l){try{u(r.next(l))}catch(d){o(d)}}function c(l){try{u(r.throw(l))}catch(d){o(d)}}function u(l){l.done?s(l.value):i(l.value).then(a,c)}u((r=r.apply(t,e||[])).next())})},av=function(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(l){return c([u,l])}}function c(u){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(n=0)),n;)try{if(r=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=e.call(t,n)}catch(l){u=[6,l],i=0}finally{r=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},fC=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),i(a,c,o.done,o.value)})}}function i(s,o,a,c){Promise.resolve(c).then(function(u){s({value:u,done:a})},o)}},ra=function(t){return this instanceof ra?(this.v=t,this):new ra(t)},WW=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(f){r[f]&&(i[f]=function(h){return new Promise(function(p,g){s.push([f,h,p,g])>1||a(f,h)})})}function a(f,h){try{c(r[f](h))}catch(p){d(s[0][3],p)}}function c(f){f.value instanceof ra?Promise.resolve(f.value.v).then(u,l):d(s[0][2],f)}function u(f){a("next",f)}function l(f){a("throw",f)}function d(f,h){f(h),s.shift(),s.length&&a(s[0][0],s[0][1])}},hC="array",sh="map_key",GW="map_value",HW=function(t){return typeof t=="string"||typeof t=="number"},Cu=-1,cv=new DataView(new ArrayBuffer(0)),VW=new Uint8Array(cv.buffer);try{cv.getInt8(0)}catch(t){if(!(t instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var uv=RangeError,pC=new uv("Insufficient data"),KW=new jW,YW=function(){function t(e){var n,r,i,s,o,a,c;this.totalPos=0,this.pos=0,this.view=cv,this.bytes=VW,this.headByte=Cu,this.stack=[],this.extensionCodec=(n=e?.extensionCodec)!==null&&n!==void 0?n:dC.defaultCodec,this.context=e?.context,this.useBigInt64=(r=e?.useBigInt64)!==null&&r!==void 0?r:!1,this.maxStrLength=(i=e?.maxStrLength)!==null&&i!==void 0?i:$u,this.maxBinLength=(s=e?.maxBinLength)!==null&&s!==void 0?s:$u,this.maxArrayLength=(o=e?.maxArrayLength)!==null&&o!==void 0?o:$u,this.maxMapLength=(a=e?.maxMapLength)!==null&&a!==void 0?a:$u,this.maxExtLength=(c=e?.maxExtLength)!==null&&c!==void 0?c:$u,this.keyDecoder=e?.keyDecoder!==void 0?e.keyDecoder:KW}return t.prototype.reinitializeState=function(){this.totalPos=0,this.headByte=Cu,this.stack.length=0},t.prototype.setBuffer=function(e){this.bytes=ih(e),this.view=OW(this.bytes),this.pos=0},t.prototype.appendBuffer=function(e){if(this.headByte===Cu&&!this.hasRemaining(1))this.setBuffer(e);else{var n=this.bytes.subarray(this.pos),r=ih(e),i=new Uint8Array(n.length+r.length);i.set(n),i.set(r,n.length),this.setBuffer(i)}},t.prototype.hasRemaining=function(e){return this.view.byteLength-this.pos>=e},t.prototype.createExtraByteError=function(e){var n=this,r=n.view,i=n.pos;return new RangeError("Extra ".concat(r.byteLength-i," of ").concat(r.byteLength," byte(s) found at buffer[").concat(e,"]"))},t.prototype.decode=function(e){this.reinitializeState(),this.setBuffer(e);var n=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return n},t.prototype.decodeMulti=function(e){return av(this,function(n){switch(n.label){case 0:this.reinitializeState(),this.setBuffer(e),n.label=1;case 1:return this.hasRemaining(1)?[4,this.doDecodeSync()]:[3,3];case 2:return n.sent(),[3,1];case 3:return[2]}})},t.prototype.decodeAsync=function(e){var n,r,i,s,o,a,c;return UW(this,void 0,void 0,function(){var u,l,d,f,h,p,g,v;return av(this,function(m){switch(m.label){case 0:u=!1,m.label=1;case 1:m.trys.push([1,6,7,12]),n=!0,r=fC(e),m.label=2;case 2:return[4,r.next()];case 3:if(i=m.sent(),s=i.done,!!s)return[3,5];c=i.value,n=!1;try{if(d=c,u)throw this.createExtraByteError(this.totalPos);this.appendBuffer(d);try{l=this.doDecodeSync(),u=!0}catch(w){if(!(w instanceof uv))throw w}this.totalPos+=this.pos}finally{n=!0}m.label=4;case 4:return[3,2];case 5:return[3,12];case 6:return f=m.sent(),o={error:f},[3,12];case 7:return m.trys.push([7,,10,11]),!n&&!s&&(a=r.return)?[4,a.call(r)]:[3,9];case 8:m.sent(),m.label=9;case 9:return[3,11];case 10:if(o)throw o.error;return[7];case 11:return[7];case 12:if(u){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return[2,l]}throw h=this,p=h.headByte,g=h.pos,v=h.totalPos,new RangeError("Insufficient data in parsing ".concat(ov(p)," at ").concat(v," (").concat(g," in the current buffer)"))}})})},t.prototype.decodeArrayStream=function(e){return this.decodeMultiAsync(e,!0)},t.prototype.decodeStream=function(e){return this.decodeMultiAsync(e,!1)},t.prototype.decodeMultiAsync=function(e,n){return WW(this,arguments,function(){var i,s,o,a,c,u,l,d,f,h,p,g;return av(this,function(v){switch(v.label){case 0:i=n,s=-1,v.label=1;case 1:v.trys.push([1,15,16,21]),o=!0,a=fC(e),v.label=2;case 2:return[4,ra(a.next())];case 3:if(c=v.sent(),f=c.done,!!f)return[3,14];g=c.value,o=!1,v.label=4;case 4:if(v.trys.push([4,,12,13]),u=g,n&&s===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(u),i&&(s=this.readArraySize(),i=!1,this.complete()),v.label=5;case 5:v.trys.push([5,10,,11]),v.label=6;case 6:return[4,ra(this.doDecodeSync())];case 7:return[4,v.sent()];case 8:return v.sent(),--s===0?[3,9]:[3,6];case 9:return[3,11];case 10:if(l=v.sent(),!(l instanceof uv))throw l;return[3,11];case 11:return this.totalPos+=this.pos,[3,13];case 12:return o=!0,[7];case 13:return[3,2];case 14:return[3,21];case 15:return d=v.sent(),h={error:d},[3,21];case 16:return v.trys.push([16,,19,20]),!o&&!f&&(p=a.return)?[4,ra(p.call(a))]:[3,18];case 17:v.sent(),v.label=18;case 18:return[3,20];case 19:if(h)throw h.error;return[7];case 20:return[7];case 21:return[2]}})})},t.prototype.doDecodeSync=function(){e:for(;;){var e=this.readHeadByte(),n=void 0;if(e>=224)n=e-256;else if(e<192)if(e<128)n=e;else if(e<144){var r=e-128;if(r!==0){this.pushMapState(r),this.complete();continue e}else n={}}else if(e<160){var r=e-144;if(r!==0){this.pushArrayState(r),this.complete();continue e}else n=[]}else{var i=e-160;n=this.decodeUtf8String(i,0)}else if(e===192)n=null;else if(e===194)n=!1;else if(e===195)n=!0;else if(e===202)n=this.readF32();else if(e===203)n=this.readF64();else if(e===204)n=this.readU8();else if(e===205)n=this.readU16();else if(e===206)n=this.readU32();else if(e===207)this.useBigInt64?n=this.readU64AsBigInt():n=this.readU64();else if(e===208)n=this.readI8();else if(e===209)n=this.readI16();else if(e===210)n=this.readI32();else if(e===211)this.useBigInt64?n=this.readI64AsBigInt():n=this.readI64();else if(e===217){var i=this.lookU8();n=this.decodeUtf8String(i,1)}else if(e===218){var i=this.lookU16();n=this.decodeUtf8String(i,2)}else if(e===219){var i=this.lookU32();n=this.decodeUtf8String(i,4)}else if(e===220){var r=this.readU16();if(r!==0){this.pushArrayState(r),this.complete();continue e}else n=[]}else if(e===221){var r=this.readU32();if(r!==0){this.pushArrayState(r),this.complete();continue e}else n=[]}else if(e===222){var r=this.readU16();if(r!==0){this.pushMapState(r),this.complete();continue e}else n={}}else if(e===223){var r=this.readU32();if(r!==0){this.pushMapState(r),this.complete();continue e}else n={}}else if(e===196){var r=this.lookU8();n=this.decodeBinary(r,1)}else if(e===197){var r=this.lookU16();n=this.decodeBinary(r,2)}else if(e===198){var r=this.lookU32();n=this.decodeBinary(r,4)}else if(e===212)n=this.decodeExtension(1,0);else if(e===213)n=this.decodeExtension(2,0);else if(e===214)n=this.decodeExtension(4,0);else if(e===215)n=this.decodeExtension(8,0);else if(e===216)n=this.decodeExtension(16,0);else if(e===199){var r=this.lookU8();n=this.decodeExtension(r,1)}else if(e===200){var r=this.lookU16();n=this.decodeExtension(r,2)}else if(e===201){var r=this.lookU32();n=this.decodeExtension(r,4)}else throw new Ur("Unrecognized type byte: ".concat(ov(e)));this.complete();for(var s=this.stack;s.length>0;){var o=s[s.length-1];if(o.type===hC)if(o.array[o.position]=n,o.position++,o.position===o.size)s.pop(),n=o.array;else continue e;else if(o.type===sh){if(!HW(n))throw new Ur("The type of key must be string or number but "+typeof n);if(n==="__proto__")throw new Ur("The key __proto__ is not allowed");o.key=n,o.type=GW;continue e}else if(o.map[o.key]=n,o.readCount++,o.readCount===o.size)s.pop(),n=o.map;else{o.key=null,o.type=sh;continue e}}return n}},t.prototype.readHeadByte=function(){return this.headByte===Cu&&(this.headByte=this.readU8()),this.headByte},t.prototype.complete=function(){this.headByte=Cu},t.prototype.readArraySize=function(){var e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new Ur("Unrecognized array type byte: ".concat(ov(e)))}}},t.prototype.pushMapState=function(e){if(e>this.maxMapLength)throw new Ur("Max length exceeded: map length (".concat(e,") > maxMapLengthLength (").concat(this.maxMapLength,")"));this.stack.push({type:sh,size:e,key:null,readCount:0,map:{}})},t.prototype.pushArrayState=function(e){if(e>this.maxArrayLength)throw new Ur("Max length exceeded: array length (".concat(e,") > maxArrayLength (").concat(this.maxArrayLength,")"));this.stack.push({type:hC,size:e,array:new Array(e),position:0})},t.prototype.decodeUtf8String=function(e,n){var r;if(e>this.maxStrLength)throw new Ur("Max length exceeded: UTF-8 byte length (".concat(e,") > maxStrLength (").concat(this.maxStrLength,")"));if(this.bytes.byteLength<this.pos+n+e)throw pC;var i=this.pos+n,s;return this.stateIsMapKey()&&(!((r=this.keyDecoder)===null||r===void 0)&&r.canBeCached(e))?s=this.keyDecoder.decode(this.bytes,i,e):s=DW(this.bytes,i,e),this.pos+=n+e,s},t.prototype.stateIsMapKey=function(){if(this.stack.length>0){var e=this.stack[this.stack.length-1];return e.type===sh}return!1},t.prototype.decodeBinary=function(e,n){if(e>this.maxBinLength)throw new Ur("Max length exceeded: bin length (".concat(e,") > maxBinLength (").concat(this.maxBinLength,")"));if(!this.hasRemaining(e+n))throw pC;var r=this.pos+n,i=this.bytes.subarray(r,r+e);return this.pos+=n+e,i},t.prototype.decodeExtension=function(e,n){if(e>this.maxExtLength)throw new Ur("Max length exceeded: ext length (".concat(e,") > maxExtLength (").concat(this.maxExtLength,")"));var r=this.view.getInt8(this.pos+n),i=this.decodeBinary(e,n+1);return this.extensionCodec.decode(i,r,this.context)},t.prototype.lookU8=function(){return this.view.getUint8(this.pos)},t.prototype.lookU16=function(){return this.view.getUint16(this.pos)},t.prototype.lookU32=function(){return this.view.getUint32(this.pos)},t.prototype.readU8=function(){var e=this.view.getUint8(this.pos);return this.pos++,e},t.prototype.readI8=function(){var e=this.view.getInt8(this.pos);return this.pos++,e},t.prototype.readU16=function(){var e=this.view.getUint16(this.pos);return this.pos+=2,e},t.prototype.readI16=function(){var e=this.view.getInt16(this.pos);return this.pos+=2,e},t.prototype.readU32=function(){var e=this.view.getUint32(this.pos);return this.pos+=4,e},t.prototype.readI32=function(){var e=this.view.getInt32(this.pos);return this.pos+=4,e},t.prototype.readU64=function(){var e=SW(this.view,this.pos);return this.pos+=8,e},t.prototype.readI64=function(){var e=lC(this.view,this.pos);return this.pos+=8,e},t.prototype.readU64AsBigInt=function(){var e=this.view.getBigUint64(this.pos);return this.pos+=8,e},t.prototype.readI64AsBigInt=function(){var e=this.view.getBigInt64(this.pos);return this.pos+=8,e},t.prototype.readF32=function(){var e=this.view.getFloat32(this.pos);return this.pos+=4,e},t.prototype.readF64=function(){var e=this.view.getFloat64(this.pos);return this.pos+=8,e},t}();function XW(t,e){var n=new YW(e);return n.decode(t)}const JW=t=>typeof ArrayBuffer=="function"&&t instanceof ArrayBuffer||Object.prototype.toString.call(t)==="[object ArrayBuffer]",ZW=(t,e=0,n=t.byteLength-e)=>{if(!JW(t))throw new TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof t} (${t})`);return Qp.from(t,e,n)},gC=(t,e)=>{if(typeof t!="string")throw new TypeError(`The "input" argument must be of type string. Received type ${typeof t} (${t})`);return e?Qp.from(t,e):Qp.from(t)},QW=/^[A-Za-z0-9+/]*={0,2}$/,eG=t=>{if(t.length*3%4!==0)throw new TypeError("Incorrect padding on base64 string.");if(!QW.exec(t))throw new TypeError("Invalid base64 string.");const e=gC(t,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)},tG=t=>{const e=gC(t,"utf8");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT)},nG=t=>{let e;if(typeof t=="string"?e=tG(t):e=t,typeof e!="object"||typeof e.byteOffset!="number"||typeof e.byteLength!="number")throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");return ZW(e.buffer,e.byteOffset,e.byteLength).toString("base64")},rG=`likec4lib { icons {
186
+ aws:activate
187
+ aws:alexa-for-business
188
+ aws:amplify
189
+ aws:apache-mxnet-on-aws
190
+ aws:api-gateway
191
+ aws:app-config
192
+ aws:app-flow
193
+ aws:app-mesh
194
+ aws:app-runner
195
+ aws:app-stream
196
+ aws:app-sync
197
+ aws:application-auto-scaling
198
+ aws:application-composer
199
+ aws:application-cost-profiler
200
+ aws:application-discovery-service
201
+ aws:application-migration-service
202
+ aws:artifact
203
+ aws:athena
204
+ aws:audit-manager
205
+ aws:augmented-ai-a2i
206
+ aws:aurora
207
+ aws:auto-scaling
208
+ aws:backint-agent
209
+ aws:backup
210
+ aws:batch
211
+ aws:billing-conductor
212
+ aws:bottlerocket
213
+ aws:braket
214
+ aws:budgets
215
+ aws:certificate-manager
216
+ aws:chatbot
217
+ aws:chime
218
+ aws:chime-sdk
219
+ aws:chime-voice-connector
220
+ aws:clean-rooms
221
+ aws:client-vpn
222
+ aws:cloud-control-api
223
+ aws:cloud-development-kit
224
+ aws:cloud-directory
225
+ aws:cloud-formation
226
+ aws:cloud-front
227
+ aws:cloud-hsm
228
+ aws:cloud-map
229
+ aws:cloud-search
230
+ aws:cloud-shell
231
+ aws:cloud-trail
232
+ aws:cloud-wan
233
+ aws:cloud-watch
234
+ aws:cloud9
235
+ aws:code-artifact
236
+ aws:code-build
237
+ aws:code-catalyst
238
+ aws:code-commit
239
+ aws:code-deploy
240
+ aws:code-guru
241
+ aws:code-pipeline
242
+ aws:code-star
243
+ aws:code-whisperer
244
+ aws:cognito
245
+ aws:command-line-interface
246
+ aws:comprehend
247
+ aws:comprehend-medical
248
+ aws:compute-optimizer
249
+ aws:config
250
+ aws:connect
251
+ aws:console-mobile-application
252
+ aws:control-tower
253
+ aws:corretto
254
+ aws:cost-and-usage-report
255
+ aws:cost-explorer
256
+ aws:data-exchange
257
+ aws:data-pipeline
258
+ aws:data-sync
259
+ aws:data-zone
260
+ aws:database-migration-service
261
+ aws:deep-composer
262
+ aws:deep-learning-amis
263
+ aws:deep-learning-containers
264
+ aws:deep-lens
265
+ aws:deep-racer
266
+ aws:detective
267
+ aws:dev-ops-guru
268
+ aws:device-farm
269
+ aws:direct-connect
270
+ aws:directory-service
271
+ aws:distro-for-open-telemetry
272
+ aws:document-db
273
+ aws:dynamo-db
274
+ aws:ec2
275
+ aws:ec2-auto-scaling
276
+ aws:ec2-image-builder
277
+ aws:ecs-anywhere
278
+ aws:efs
279
+ aws:eks-anywhere
280
+ aws:eks-cloud
281
+ aws:eks-distro
282
+ aws:elasti-cache
283
+ aws:elastic-beanstalk
284
+ aws:elastic-block-store
285
+ aws:elastic-container-registry
286
+ aws:elastic-container-service
287
+ aws:elastic-disaster-recovery
288
+ aws:elastic-fabric-adapter
289
+ aws:elastic-inference
290
+ aws:elastic-kubernetes-service
291
+ aws:elastic-load-balancing
292
+ aws:elastic-transcoder
293
+ aws:elemental-appliances-software
294
+ aws:elemental-conductor
295
+ aws:elemental-delta
296
+ aws:elemental-link
297
+ aws:elemental-live
298
+ aws:elemental-media-connect
299
+ aws:elemental-media-convert
300
+ aws:elemental-media-live
301
+ aws:elemental-media-package
302
+ aws:elemental-media-store
303
+ aws:elemental-media-tailor
304
+ aws:elemental-server
305
+ aws:emr
306
+ aws:event-bridge
307
+ aws:express-workflows
308
+ aws:fargate
309
+ aws:fault-injection-simulator
310
+ aws:file-cache
311
+ aws:fin-space
312
+ aws:firewall-manager
313
+ aws:forecast
314
+ aws:fraud-detector
315
+ aws:free-rtos
316
+ aws:fsx
317
+ aws:fsx-for-lustre
318
+ aws:fsx-for-net-app-ontap
319
+ aws:fsx-for-open-zfs
320
+ aws:fsx-for-wfs
321
+ aws:game-kit
322
+ aws:game-lift
323
+ aws:game-sparks
324
+ aws:genomics-cli
325
+ aws:global-accelerator
326
+ aws:glue
327
+ aws:glue-data-brew
328
+ aws:glue-elastic-views
329
+ aws:ground-station
330
+ aws:guard-duty
331
+ aws:health-lake
332
+ aws:honeycode
333
+ aws:iam-identity-center
334
+ aws:identity-and-access-management
335
+ aws:inspector
336
+ aws:interactive-video-service
337
+ aws:io-t-1-click
338
+ aws:io-t-analytics
339
+ aws:io-t-button
340
+ aws:io-t-core
341
+ aws:io-t-device-defender
342
+ aws:io-t-device-management
343
+ aws:io-t-edu-kit
344
+ aws:io-t-events
345
+ aws:io-t-express-link
346
+ aws:io-t-fleet-wise
347
+ aws:io-t-greengrass
348
+ aws:io-t-robo-runner
349
+ aws:io-t-site-wise
350
+ aws:io-t-things-graph
351
+ aws:io-t-twin-maker
352
+ aws:iq
353
+ aws:kendra
354
+ aws:key-management-service
355
+ aws:keyspaces
356
+ aws:kinesis
357
+ aws:kinesis-data-analytics
358
+ aws:kinesis-data-streams
359
+ aws:kinesis-firehose
360
+ aws:kinesis-video-streams
361
+ aws:lake-formation
362
+ aws:lambda
363
+ aws:launch-wizard
364
+ aws:lex
365
+ aws:license-manager
366
+ aws:lightsail
367
+ aws:local-zones
368
+ aws:location-service
369
+ aws:lookout-for-equipment
370
+ aws:lookout-for-metrics
371
+ aws:lookout-for-vision
372
+ aws:lumberyard
373
+ aws:macie
374
+ aws:mainframe-modernization
375
+ aws:managed-blockchain
376
+ aws:managed-grafana
377
+ aws:managed-service-for-prometheus
378
+ aws:managed-services
379
+ aws:managed-streaming-for-apache-kafka
380
+ aws:managed-workflows-for-apache-airflow
381
+ aws:management-console
382
+ aws:marketplace-dark
383
+ aws:marketplace-light
384
+ aws:memory-db-for-redis
385
+ aws:migration-evaluator
386
+ aws:migration-hub
387
+ aws:monitron
388
+ aws:mq
389
+ aws:neptune
390
+ aws:network-firewall
391
+ aws:neuron
392
+ aws:nice-dcv
393
+ aws:nice-engin-frame
394
+ aws:nimble-studio
395
+ aws:nitro-enclaves
396
+ aws:omics
397
+ aws:open-3d-engine
398
+ aws:open-search-service
399
+ aws:ops-works
400
+ aws:organizations
401
+ aws:outposts-family
402
+ aws:outposts-rack
403
+ aws:outposts-servers
404
+ aws:panorama
405
+ aws:parallel-cluster
406
+ aws:personal-health-dashboard
407
+ aws:personalize
408
+ aws:pinpoint
409
+ aws:pinpoint-apis
410
+ aws:polly
411
+ aws:private-5g
412
+ aws:private-certificate-authority
413
+ aws:private-link
414
+ aws:professional-services
415
+ aws:proton
416
+ aws:quantum-ledger-database
417
+ aws:quick-sight
418
+ aws:rds
419
+ aws:rds-on-vmware
420
+ aws:re-post
421
+ aws:red-hat-open-shift-service-on-aws
422
+ aws:redshift
423
+ aws:rekognition
424
+ aws:reserved-instance-reporting
425
+ aws:resilience-hub
426
+ aws:resource-access-manager
427
+ aws:resource-explorer
428
+ aws:robo-maker
429
+ aws:route-53
430
+ aws:s3-on-outposts
431
+ aws:sage-maker
432
+ aws:sage-maker-ground-truth
433
+ aws:sage-maker-studio-lab
434
+ aws:savings-plans
435
+ aws:secrets-manager
436
+ aws:security-hub
437
+ aws:security-lake
438
+ aws:server-migration-service
439
+ aws:serverless-application-repository
440
+ aws:service-catalog
441
+ aws:service-management-connector
442
+ aws:shield
443
+ aws:signer
444
+ aws:sim-space-weaver
445
+ aws:simple-email-service
446
+ aws:simple-notification-service
447
+ aws:simple-queue-service
448
+ aws:simple-storage-service
449
+ aws:simple-storage-service-glacier
450
+ aws:site-to-site-vpn
451
+ aws:snowball
452
+ aws:snowball-edge
453
+ aws:snowcone
454
+ aws:snowmobile
455
+ aws:step-functions
456
+ aws:storage-gateway
457
+ aws:sumerian
458
+ aws:supply-chain
459
+ aws:support
460
+ aws:systems-manager
461
+ aws:tensor-flow-on-aws
462
+ aws:textract
463
+ aws:thinkbox-deadline
464
+ aws:thinkbox-frost
465
+ aws:thinkbox-krakatoa
466
+ aws:thinkbox-sequoia
467
+ aws:thinkbox-stoke
468
+ aws:thinkbox-xmesh
469
+ aws:timestream
470
+ aws:tools-and-sdks
471
+ aws:torch-serve
472
+ aws:training-certification
473
+ aws:transcribe
474
+ aws:transfer-family
475
+ aws:transit-gateway
476
+ aws:translate
477
+ aws:trusted-advisor
478
+ aws:verified-access
479
+ aws:verified-permissions
480
+ aws:virtual-private-cloud
481
+ aws:vmware-cloud-on-aws
482
+ aws:vpc-lattice
483
+ aws:waf
484
+ aws:wavelength
485
+ aws:well-architected-tool
486
+ aws:wickr
487
+ aws:work-docs
488
+ aws:work-docs-sdk
489
+ aws:work-link
490
+ aws:work-mail
491
+ aws:work-spaces-family
492
+ aws:x-ray
493
+ azure:abs-member
494
+ azure:active-directory-connect-health
495
+ azure:activity-log
496
+ azure:administrative-units
497
+ azure:advisor
498
+ azure:ai-studio
499
+ azure:aks-automatic
500
+ azure:aks-istio
501
+ azure:alerts
502
+ azure:all-resources
503
+ azure:analysis-services
504
+ azure:anomaly-detector
505
+ azure:api-center
506
+ azure:api-connections
507
+ azure:api-management-services
508
+ azure:api-proxy
509
+ azure:app-compliance-automation
510
+ azure:app-configuration
511
+ azure:app-registrations
512
+ azure:app-service-certificates
513
+ azure:app-service-domains
514
+ azure:app-service-environments
515
+ azure:app-service-plans
516
+ azure:app-services
517
+ azure:app-space
518
+ azure:app-space-component
519
+ azure:applens
520
+ azure:application-gateway-containers
521
+ azure:application-gateways
522
+ azure:application-group
523
+ azure:application-insights
524
+ azure:application-security-groups
525
+ azure:aquila
526
+ azure:arc-data-services
527
+ azure:arc-kubernetes
528
+ azure:arc-machines
529
+ azure:arc-postgre-sql
530
+ azure:arc-sql-managed-instance
531
+ azure:arc-sql-server
532
+ azure:atm-multistack
533
+ azure:auto-scale
534
+ azure:automanaged-vm
535
+ azure:automation-accounts
536
+ azure:availability-sets
537
+ azure:avs-vm
538
+ azure:azure-a
539
+ azure:azure-ad-b2c
540
+ azure:azure-api-for-fhir
541
+ azure:azure-applied-ai-services
542
+ azure:azure-arc
543
+ azure:azure-attestation
544
+ azure:azure-backup-center
545
+ azure:azure-blockchain-service
546
+ azure:azure-center-for-sap
547
+ azure:azure-chaos-studio
548
+ azure:azure-cloud-shell
549
+ azure:azure-communication-services
550
+ azure:azure-communications-gateway
551
+ azure:azure-compute-galleries
552
+ azure:azure-cosmos-db
553
+ azure:azure-data-catalog
554
+ azure:azure-data-explorer-clusters
555
+ azure:azure-database-maria-db-server
556
+ azure:azure-database-migration-services
557
+ azure:azure-database-my-sql-server
558
+ azure:azure-database-postgre-sql-server
559
+ azure:azure-database-postgre-sql-server-group
560
+ azure:azure-databox-gateway
561
+ azure:azure-databricks
562
+ azure:azure-deployment-environments
563
+ azure:azure-dev-ops
564
+ azure:azure-dev-tunnels
565
+ azure:azure-edge-hardware-center
566
+ azure:azure-experimentation-studio
567
+ azure:azure-fileshares
568
+ azure:azure-firewall-manager
569
+ azure:azure-firewall-policy
570
+ azure:azure-hcp-cache
571
+ azure:azure-hpc-workbenches
572
+ azure:azure-hybrid-center
573
+ azure:azure-information-protection
574
+ azure:azure-io-t-operations
575
+ azure:azure-lighthouse
576
+ azure:azure-load-testing
577
+ azure:azure-managed-grafana
578
+ azure:azure-maps-accounts
579
+ azure:azure-media-service
580
+ azure:azure-migrate
581
+ azure:azure-monitor-dashboard
582
+ azure:azure-monitor-pipeline
583
+ azure:azure-monitors-for-sap-solutions
584
+ azure:azure-net-app-files
585
+ azure:azure-network-function-manager
586
+ azure:azure-network-function-manager-functions
587
+ azure:azure-object-understanding
588
+ azure:azure-open-ai
589
+ azure:azure-operator-5g-core
590
+ azure:azure-operator-insights
591
+ azure:azure-operator-nexus
592
+ azure:azure-operator-service-manager
593
+ azure:azure-orbital
594
+ azure:azure-programmable-connectivity
595
+ azure:azure-purview-accounts
596
+ azure:azure-quotas
597
+ azure:azure-red-hat-open-shift
598
+ azure:azure-sentinel
599
+ azure:azure-service-bus
600
+ azure:azure-sphere
601
+ azure:azure-spring-apps
602
+ azure:azure-sql
603
+ azure:azure-sql-edge
604
+ azure:azure-sql-server-stretch-databases
605
+ azure:azure-sql-vm
606
+ azure:azure-stack
607
+ azure:azure-stack-edge
608
+ azure:azure-stack-hci-sizer
609
+ azure:azure-storage-mover
610
+ azure:azure-support-center-blue
611
+ azure:azure-sustainability
612
+ azure:azure-synapse-analytics
613
+ azure:azure-token-service
614
+ azure:azure-video-indexer
615
+ azure:azure-virtual-desktop
616
+ azure:azure-vmware-solution
617
+ azure:azure-workbooks
618
+ azure:azurite
619
+ azure:backlog
620
+ azure:backup-vault
621
+ azure:bare-metal-infrastructure
622
+ azure:bastions
623
+ azure:batch-accounts
624
+ azure:batch-ai
625
+ azure:biz-talk
626
+ azure:blob-block
627
+ azure:blob-page
628
+ azure:blockchain-applications
629
+ azure:blueprints
630
+ azure:bonsai
631
+ azure:bot-services
632
+ azure:branch
633
+ azure:browser
634
+ azure:bug
635
+ azure:builds
636
+ azure:business-process-tracking
637
+ azure:cache
638
+ azure:cache-redis
639
+ azure:capacity
640
+ azure:capacity-reservation-groups
641
+ azure:cdn-profiles
642
+ azure:central-service-instance-for-sap
643
+ azure:ceres
644
+ azure:change-analysis
645
+ azure:client-apps
646
+ azure:cloud-services-classic
647
+ azure:cloud-services-extended-support
648
+ azure:cloud-test
649
+ azure:code
650
+ azure:code-optimization
651
+ azure:cognitive-search
652
+ azure:cognitive-services
653
+ azure:cognitive-services-decisions
654
+ azure:collaborative-service
655
+ azure:commit
656
+ azure:community-images
657
+ azure:compliance
658
+ azure:compliance-center
659
+ azure:compute-fleet
660
+ azure:computer-vision
661
+ azure:conditional-access
662
+ azure:confidential-ledgers
663
+ azure:connected-cache
664
+ azure:connected-vehicle-platform
665
+ azure:connections
666
+ azure:consortium
667
+ azure:container-apps-environments
668
+ azure:container-instances
669
+ azure:container-registries
670
+ azure:container-services-deprecated
671
+ azure:content-moderators
672
+ azure:content-safety
673
+ azure:controls
674
+ azure:controls-horizontal
675
+ azure:cost-alerts
676
+ azure:cost-analysis
677
+ azure:cost-budgets
678
+ azure:cost-export
679
+ azure:cost-management
680
+ azure:cost-management-and-billing
681
+ azure:counter
682
+ azure:cubes
683
+ azure:custom-ip-prefix
684
+ azure:custom-vision
685
+ azure:customer-lockbox-for-microsoft-azure
686
+ azure:dashboard
687
+ azure:dashboard-hub
688
+ azure:data-box
689
+ azure:data-collection-rules
690
+ azure:data-factories
691
+ azure:data-lake-analytics
692
+ azure:data-lake-storage-gen1
693
+ azure:data-lake-store-gen1
694
+ azure:data-share-invitations
695
+ azure:data-shares
696
+ azure:database-instance-for-sap
697
+ azure:ddo-s-protection-plans
698
+ azure:dedicated-hsm
699
+ azure:defender-cm-local-manager
700
+ azure:defender-dcs-controller
701
+ azure:defender-distributer-control-system
702
+ azure:defender-engineering-station
703
+ azure:defender-external-management
704
+ azure:defender-freezer-monitor
705
+ azure:defender-historian
706
+ azure:defender-hmi
707
+ azure:defender-industrial-packaging-system
708
+ azure:defender-industrial-printer
709
+ azure:defender-industrial-robot
710
+ azure:defender-industrial-scale-system
711
+ azure:defender-marquee
712
+ azure:defender-meter
713
+ azure:defender-plc
714
+ azure:defender-pneumatic-device
715
+ azure:defender-programable-board
716
+ azure:defender-relay
717
+ azure:defender-robot-controller
718
+ azure:defender-rtu
719
+ azure:defender-sensor
720
+ azure:defender-slot
721
+ azure:defender-web-guiding-system
722
+ azure:detonation
723
+ azure:dev-console
724
+ azure:dev-ops-starter
725
+ azure:dev-test-labs
726
+ azure:device-compliance
727
+ azure:device-configuration
728
+ azure:device-enrollment
729
+ azure:device-provisioning-services
730
+ azure:device-security-apple
731
+ azure:device-security-google
732
+ azure:device-security-windows
733
+ azure:device-update-io-t-hub
734
+ azure:devices
735
+ azure:diagnostics-settings
736
+ azure:digital-twins
737
+ azure:disk-encryption-sets
738
+ azure:disk-pool
739
+ azure:disks
740
+ azure:disks-classic
741
+ azure:disks-snapshots
742
+ azure:dns-multistack
743
+ azure:dns-private-resolver
744
+ azure:dns-security-policy
745
+ azure:dns-zones
746
+ azure:download
747
+ azure:e-books
748
+ azure:edge-management
749
+ azure:education
750
+ azure:elastic-job-agents
751
+ azure:elastic-san
752
+ azure:endpoint-analytics
753
+ azure:enterprise-applications
754
+ azure:entra-connect
755
+ azure:entra-connect-health
756
+ azure:entra-connect-sync
757
+ azure:entra-domain-services
758
+ azure:entra-global-secure-access
759
+ azure:entra-id-protection
760
+ azure:entra-identity-custom-roles
761
+ azure:entra-identity-licenses
762
+ azure:entra-identity-risky-signins
763
+ azure:entra-identity-risky-users
764
+ azure:entra-identity-roles-and-administrators
765
+ azure:entra-internet-access
766
+ azure:entra-managed-identities
767
+ azure:entra-private-access
768
+ azure:entra-privleged-identity-management
769
+ azure:entra-verified-id
770
+ azure:error
771
+ azure:event-grid-domains
772
+ azure:event-grid-subscriptions
773
+ azure:event-grid-topics
774
+ azure:event-hub-clusters
775
+ azure:event-hubs
776
+ azure:exchange-access
777
+ azure:exchange-on-premises-access
778
+ azure:express-route-circuits
779
+ azure:express-route-direct
780
+ azure:express-route-traffic-collector
781
+ azure:extended-security-updates
782
+ azure:extensions
783
+ azure:external-identities
784
+ azure:face-apis
785
+ azure:feature-previews
786
+ azure:fhir-service
787
+ azure:fiji
788
+ azure:file
789
+ azure:files
790
+ azure:firewalls
791
+ azure:folder-blank
792
+ azure:folder-website
793
+ azure:form-recognizers
794
+ azure:free-services
795
+ azure:front-door-and-cdn-profiles
796
+ azure:ftp
797
+ azure:function-apps
798
+ azure:gear
799
+ azure:genomics
800
+ azure:genomics-accounts
801
+ azure:globe-error
802
+ azure:globe-success
803
+ azure:globe-warning
804
+ azure:groups
805
+ azure:guide
806
+ azure:hd-insight-clusters
807
+ azure:hdi-aks-cluster
808
+ azure:heart
809
+ azure:help-and-support
810
+ azure:host-groups
811
+ azure:host-pools
812
+ azure:hosts
813
+ azure:ic-m-troubleshooting
814
+ azure:identity-governance
815
+ azure:identity-multi-factor-authentication
816
+ azure:identity-secure-score
817
+ azure:image
818
+ azure:image-definitions
819
+ azure:image-templates
820
+ azure:image-versions
821
+ azure:images
822
+ azure:immersive-readers
823
+ azure:import-export-jobs
824
+ azure:industrial-io-t
825
+ azure:information
826
+ azure:infrastructure-backup
827
+ azure:input-output
828
+ azure:instance-pools
829
+ azure:integration-accounts
830
+ azure:integration-environments
831
+ azure:integration-service-environments
832
+ azure:internet-analyzer-profiles
833
+ azure:intune
834
+ azure:intune-app-protection
835
+ azure:intune-for-education
836
+ azure:intune-trends
837
+ azure:io-t-central-applications
838
+ azure:io-t-edge
839
+ azure:io-t-hub
840
+ azure:ip-address-manager
841
+ azure:ip-groups
842
+ azure:journey-hub
843
+ azure:key-vaults
844
+ azure:keys
845
+ azure:kubernetes-fleet-manager
846
+ azure:kubernetes-services
847
+ azure:lab-accounts
848
+ azure:lab-services
849
+ azure:language
850
+ azure:language-understanding
851
+ azure:launch-portal
852
+ azure:learn
853
+ azure:load-balancer-hub
854
+ azure:load-balancers
855
+ azure:load-test
856
+ azure:load-testing
857
+ azure:local-network-gateways
858
+ azure:location
859
+ azure:log-analytics-query-pack
860
+ azure:log-analytics-workspaces
861
+ azure:log-streaming
862
+ azure:logic-apps
863
+ azure:logic-apps-custom-connector
864
+ azure:machine-learning
865
+ azure:machine-learning-studio-classic-web-services
866
+ azure:machine-learning-studio-web-service-plans
867
+ azure:machine-learning-studio-workspaces
868
+ azure:machines-azure-arc
869
+ azure:maintenance-configuration
870
+ azure:managed-applications-center
871
+ azure:managed-database
872
+ azure:managed-desktop
873
+ azure:managed-dev-ops-pools
874
+ azure:managed-file-shares
875
+ azure:managed-identities
876
+ azure:managed-instance-apache-cassandra
877
+ azure:managed-service-fabric
878
+ azure:management-groups
879
+ azure:management-portal
880
+ azure:marketplace
881
+ azure:marketplace-management
882
+ azure:med-tech-service
883
+ azure:media
884
+ azure:media-file
885
+ azure:mesh-applications
886
+ azure:metrics
887
+ azure:metrics-advisor
888
+ azure:microsoft-defender-easm
889
+ azure:microsoft-defender-for-cloud
890
+ azure:microsoft-defender-for-io-t
891
+ azure:microsoft-dev-box
892
+ azure:mindaro
893
+ azure:mission-landing-zone
894
+ azure:mobile
895
+ azure:mobile-engagement
896
+ azure:mobile-networks
897
+ azure:modular-data-center
898
+ azure:module
899
+ azure:monitor
900
+ azure:monitor-health-models
901
+ azure:multi-tenancy
902
+ azure:multifactor-authentication
903
+ azure:my-customers
904
+ azure:nat
905
+ azure:network-interfaces
906
+ azure:network-managers
907
+ azure:network-security-groups
908
+ azure:network-security-perimeters
909
+ azure:network-watcher
910
+ azure:notification-hub-namespaces
911
+ azure:notification-hubs
912
+ azure:offers
913
+ azure:on-premises-data-gateways
914
+ azure:open-supply-chain-platform
915
+ azure:operation-log-classic
916
+ azure:oracle-database
917
+ azure:os-images-classic
918
+ azure:osconfig
919
+ azure:outbound-connection
920
+ azure:partner-namespace
921
+ azure:partner-registration
922
+ azure:partner-topic
923
+ azure:peering-service
924
+ azure:peerings
925
+ azure:personalizers
926
+ azure:plans
927
+ azure:policy
928
+ azure:power
929
+ azure:power-bi-embedded
930
+ azure:power-platform
931
+ azure:power-up
932
+ azure:powershell
933
+ azure:preview-features
934
+ azure:private-endpoints
935
+ azure:private-link
936
+ azure:private-link-service
937
+ azure:private-link-services
938
+ azure:process-explorer
939
+ azure:production-ready-database
940
+ azure:proximity-placement-groups
941
+ azure:public-ip-addresses
942
+ azure:public-ip-addresses-classic
943
+ azure:public-ip-prefixes
944
+ azure:qn-a-makers
945
+ azure:quickstart-center
946
+ azure:recent
947
+ azure:recovery-services-vaults
948
+ azure:region-management
949
+ azure:relays
950
+ azure:remote-rendering
951
+ azure:reservations
952
+ azure:reserved-capacity
953
+ azure:reserved-ip-addresses-classic
954
+ azure:resource-explorer
955
+ azure:resource-graph-explorer
956
+ azure:resource-group-list
957
+ azure:resource-groups
958
+ azure:resource-guard
959
+ azure:resource-linked
960
+ azure:resource-management-private-link
961
+ azure:resource-mover
962
+ azure:resources-provider
963
+ azure:restore-points
964
+ azure:restore-points-collections
965
+ azure:route-filters
966
+ azure:route-tables
967
+ azure:rtos
968
+ azure:savings-plans
969
+ azure:scheduler
970
+ azure:scheduler-job-collections
971
+ azure:scvmm-management-servers
972
+ azure:search
973
+ azure:search-grid
974
+ azure:security
975
+ azure:security-baselines
976
+ azure:send-grid-accounts
977
+ azure:server-farm
978
+ azure:serverless-search
979
+ azure:service-catalog-mad
980
+ azure:service-endpoint-policies
981
+ azure:service-fabric-clusters
982
+ azure:service-health
983
+ azure:service-providers
984
+ azure:shared-image-galleries
985
+ azure:signal-r
986
+ azure:software-as-a-service
987
+ azure:software-updates
988
+ azure:solutions
989
+ azure:sonic-dash
990
+ azure:spatial-anchor-accounts
991
+ azure:speech-services
992
+ azure:spot-vm
993
+ azure:spot-vmss
994
+ azure:sql-data-warehouses
995
+ azure:sql-database
996
+ azure:sql-elastic-pools
997
+ azure:sql-managed-instance
998
+ azure:sql-server
999
+ azure:sql-server-registries
1000
+ azure:ssd
1001
+ azure:ssh-keys
1002
+ azure:ssis-lift-and-shift-ir
1003
+ azure:stack-hci-premium
1004
+ azure:static-apps
1005
+ azure:stor-simple-data-managers
1006
+ azure:stor-simple-device-managers
1007
+ azure:storage-accounts
1008
+ azure:storage-accounts-classic
1009
+ azure:storage-actions
1010
+ azure:storage-azure-files
1011
+ azure:storage-container
1012
+ azure:storage-explorer
1013
+ azure:storage-functions
1014
+ azure:storage-queue
1015
+ azure:storage-sync-services
1016
+ azure:stream-analytics-jobs
1017
+ azure:subnet
1018
+ azure:subscriptions
1019
+ azure:system-topic
1020
+ azure:table
1021
+ azure:tag
1022
+ azure:tags
1023
+ azure:targets-management
1024
+ azure:template-specs
1025
+ azure:templates
1026
+ azure:tenant-properties
1027
+ azure:tenant-status
1028
+ azure:test-base
1029
+ azure:tfs-vc-repository
1030
+ azure:time-series-data-sets
1031
+ azure:time-series-insights-access-policies
1032
+ azure:time-series-insights-environments
1033
+ azure:time-series-insights-event-sources
1034
+ azure:toolbox
1035
+ azure:traffic-manager-profiles
1036
+ azure:translator-text
1037
+ azure:troubleshoot
1038
+ azure:universal-print
1039
+ azure:update-management-center
1040
+ azure:updates
1041
+ azure:user-privacy
1042
+ azure:user-settings
1043
+ azure:user-subscriptions
1044
+ azure:users
1045
+ azure:verifiable-credentials
1046
+ azure:verification-as-a-service
1047
+ azure:versions
1048
+ azure:video-analyzers
1049
+ azure:virtual-clusters
1050
+ azure:virtual-enclaves
1051
+ azure:virtual-instance-for-sap
1052
+ azure:virtual-machine
1053
+ azure:virtual-machines-classic
1054
+ azure:virtual-network-gateways
1055
+ azure:virtual-networks
1056
+ azure:virtual-networks-classic
1057
+ azure:virtual-router
1058
+ azure:virtual-visits-builder
1059
+ azure:virtual-wan-hub
1060
+ azure:virtual-wans
1061
+ azure:vm-app-definitions
1062
+ azure:vm-app-versions
1063
+ azure:vm-image-version
1064
+ azure:vm-images-classic
1065
+ azure:vm-scale-sets
1066
+ azure:wac
1067
+ azure:wac-installer
1068
+ azure:web-app-database
1069
+ azure:web-application-firewall-policies-waf
1070
+ azure:web-jobs
1071
+ azure:web-slots
1072
+ azure:web-test
1073
+ azure:website-power
1074
+ azure:website-staging
1075
+ azure:windows-notification-services
1076
+ azure:windows10-core-services
1077
+ azure:workbooks
1078
+ azure:worker-container-app
1079
+ azure:workflow
1080
+ azure:workspace-gateway
1081
+ azure:workspaces
1082
+ gcp:access-context-manager
1083
+ gcp:administration
1084
+ gcp:advanced-agent-modeling
1085
+ gcp:advanced-solutions-lab
1086
+ gcp:agent-assist
1087
+ gcp:ai-hub
1088
+ gcp:ai-platform
1089
+ gcp:ai-platform-unified
1090
+ gcp:analytics-hub
1091
+ gcp:anthos
1092
+ gcp:anthos-config-management
1093
+ gcp:anthos-service-mesh
1094
+ gcp:api
1095
+ gcp:api-analytics
1096
+ gcp:api-monetization
1097
+ gcp:apigee-api-platform
1098
+ gcp:apigee-sense
1099
+ gcp:app-engine
1100
+ gcp:artifact-registry
1101
+ gcp:asset-inventory
1102
+ gcp:assured-workloads
1103
+ gcp:auto-ml
1104
+ gcp:auto-ml-natural-language
1105
+ gcp:auto-ml-tables
1106
+ gcp:auto-ml-translation
1107
+ gcp:auto-ml-video-intelligence
1108
+ gcp:auto-ml-vision
1109
+ gcp:bare-metal-solutions
1110
+ gcp:batch
1111
+ gcp:beyondcorp
1112
+ gcp:big-query
1113
+ gcp:bigtable
1114
+ gcp:billing
1115
+ gcp:binary-authorization
1116
+ gcp:catalog
1117
+ gcp:certificate-authority-service
1118
+ gcp:certificate-manager
1119
+ gcp:cloud-api-gateway
1120
+ gcp:cloud-apis
1121
+ gcp:cloud-armor
1122
+ gcp:cloud-asset-inventory
1123
+ gcp:cloud-audit-logs
1124
+ gcp:cloud-build
1125
+ gcp:cloud-cdn
1126
+ gcp:cloud-code
1127
+ gcp:cloud-composer
1128
+ gcp:cloud-data-fusion
1129
+ gcp:cloud-deploy
1130
+ gcp:cloud-deployment-manager
1131
+ gcp:cloud-dns
1132
+ gcp:cloud-domains
1133
+ gcp:cloud-ekm
1134
+ gcp:cloud-endpoints
1135
+ gcp:cloud-external-ip-addresses
1136
+ gcp:cloud-firewall-rules
1137
+ gcp:cloud-for-marketing
1138
+ gcp:cloud-functions
1139
+ gcp:cloud-generic
1140
+ gcp:cloud-gpu
1141
+ gcp:cloud-healthcare-api
1142
+ gcp:cloud-healthcare-marketplace
1143
+ gcp:cloud-hsm
1144
+ gcp:cloud-ids
1145
+ gcp:cloud-inference-api
1146
+ gcp:cloud-interconnect
1147
+ gcp:cloud-jobs-api
1148
+ gcp:cloud-load-balancing
1149
+ gcp:cloud-logging
1150
+ gcp:cloud-media-edge
1151
+ gcp:cloud-monitoring
1152
+ gcp:cloud-nat
1153
+ gcp:cloud-natural-language-api
1154
+ gcp:cloud-network
1155
+ gcp:cloud-ops
1156
+ gcp:cloud-optimization-ai
1157
+ gcp:cloud-optimization-ai-fleet-routing-api
1158
+ gcp:cloud-router
1159
+ gcp:cloud-routes
1160
+ gcp:cloud-run
1161
+ gcp:cloud-run-for-anthos
1162
+ gcp:cloud-scheduler
1163
+ gcp:cloud-security-scanner
1164
+ gcp:cloud-shell
1165
+ gcp:cloud-spanner
1166
+ gcp:cloud-sql
1167
+ gcp:cloud-storage
1168
+ gcp:cloud-tasks
1169
+ gcp:cloud-test-lab
1170
+ gcp:cloud-tpu
1171
+ gcp:cloud-translation-api
1172
+ gcp:cloud-vision-api
1173
+ gcp:cloud-vpn
1174
+ gcp:compute-engine
1175
+ gcp:configuration-management
1176
+ gcp:connectivity-test
1177
+ gcp:connectors
1178
+ gcp:contact-center-ai
1179
+ gcp:container-optimized-os
1180
+ gcp:container-registry
1181
+ gcp:data-catalog
1182
+ gcp:data-labeling
1183
+ gcp:data-layers
1184
+ gcp:data-loss-prevention-api
1185
+ gcp:data-qn-a
1186
+ gcp:data-studio
1187
+ gcp:data-transfer
1188
+ gcp:database-migration-service
1189
+ gcp:dataflow
1190
+ gcp:datalab
1191
+ gcp:dataplex
1192
+ gcp:datapol
1193
+ gcp:dataprep
1194
+ gcp:dataproc
1195
+ gcp:dataproc-metastore
1196
+ gcp:datashare
1197
+ gcp:datastore
1198
+ gcp:datastream
1199
+ gcp:debugger
1200
+ gcp:developer-portal
1201
+ gcp:dialogflow
1202
+ gcp:dialogflow-cx
1203
+ gcp:dialogflow-insights
1204
+ gcp:document-ai
1205
+ gcp:early-access-center
1206
+ gcp:error-reporting
1207
+ gcp:eventarc
1208
+ gcp:filestore
1209
+ gcp:financial-services-marketplace
1210
+ gcp:firestore
1211
+ gcp:fleet-engine
1212
+ gcp:free-trial
1213
+ gcp:game-servers
1214
+ gcp:gce-systems-management
1215
+ gcp:genomics
1216
+ gcp:gke-on-prem
1217
+ gcp:google-cloud-marketplace
1218
+ gcp:google-kubernetes-engine
1219
+ gcp:google-maps-platform
1220
+ gcp:healthcare-nlp-api
1221
+ gcp:home
1222
+ gcp:identity-and-access-management
1223
+ gcp:identity-aware-proxy
1224
+ gcp:identity-platform
1225
+ gcp:iot-core
1226
+ gcp:iot-edge
1227
+ gcp:key-access-justifications
1228
+ gcp:key-management-service
1229
+ gcp:kuberun
1230
+ gcp:launcher
1231
+ gcp:local-ssd
1232
+ gcp:looker
1233
+ gcp:managed-service-for-microsoft-active-directory
1234
+ gcp:media-translation-api
1235
+ gcp:memorystore
1236
+ gcp:migrate-for-anthos
1237
+ gcp:migrate-for-compute-engine
1238
+ gcp:my-cloud
1239
+ gcp:network-connectivity-center
1240
+ gcp:network-intelligence-center
1241
+ gcp:network-security
1242
+ gcp:network-tiers
1243
+ gcp:network-topology
1244
+ gcp:onboarding
1245
+ gcp:os-configuration-management
1246
+ gcp:os-inventory-management
1247
+ gcp:os-patch-management
1248
+ gcp:partner-interconnect
1249
+ gcp:partner-portal
1250
+ gcp:performance-dashboard
1251
+ gcp:permissions
1252
+ gcp:persistent-disk
1253
+ gcp:phishing-protection
1254
+ gcp:policy-analyzer
1255
+ gcp:premium-network-tier
1256
+ gcp:private-connectivity
1257
+ gcp:private-service-connect
1258
+ gcp:producer-portal
1259
+ gcp:profiler
1260
+ gcp:project
1261
+ gcp:pub-sub
1262
+ gcp:quantum-engine
1263
+ gcp:quotas
1264
+ gcp:real-world-insights
1265
+ gcp:recommendations-ai
1266
+ gcp:release-notes
1267
+ gcp:retail-api
1268
+ gcp:risk-manager
1269
+ gcp:runtime-config
1270
+ gcp:secret-manager
1271
+ gcp:security
1272
+ gcp:security-command-center
1273
+ gcp:security-health-advisor
1274
+ gcp:security-key-enforcement
1275
+ gcp:service-discovery
1276
+ gcp:speech-to-text
1277
+ gcp:stackdriver
1278
+ gcp:standard-network-tier
1279
+ gcp:stream-suite
1280
+ gcp:support
1281
+ gcp:tensorflow-enterprise
1282
+ gcp:text-to-speech
1283
+ gcp:tools-for-powershell
1284
+ gcp:trace
1285
+ gcp:traffic-director
1286
+ gcp:transfer
1287
+ gcp:transfer-appliance
1288
+ gcp:user-preferences
1289
+ gcp:vertex-ai
1290
+ gcp:video-intelligence-api
1291
+ gcp:virtual-private-cloud
1292
+ gcp:visual-inspection
1293
+ gcp:vmware-engine
1294
+ gcp:web-risk
1295
+ gcp:web-security-scanner
1296
+ gcp:workflows
1297
+ gcp:workload-identity-pool
1298
+ tech:aarch64
1299
+ tech:adobe-illustrator
1300
+ tech:adobe-photoshop
1301
+ tech:adobe-premiere-pro
1302
+ tech:adobe-xd
1303
+ tech:adonis-js
1304
+ tech:after-effects
1305
+ tech:airflow
1306
+ tech:akka
1307
+ tech:algolia
1308
+ tech:alpine-js
1309
+ tech:amazon-web-services
1310
+ tech:anaconda
1311
+ tech:android
1312
+ tech:android-studio
1313
+ tech:angular
1314
+ tech:angular-js
1315
+ tech:ansible
1316
+ tech:ant-design
1317
+ tech:apache
1318
+ tech:apl
1319
+ tech:appcelerator
1320
+ tech:apple
1321
+ tech:apple-safari
1322
+ tech:appwrite
1323
+ tech:arch-linux
1324
+ tech:arduino
1325
+ tech:argo-cd
1326
+ tech:astro
1327
+ tech:atom
1328
+ tech:autodesk-maya
1329
+ tech:autodesk-shot-grid
1330
+ tech:awk
1331
+ tech:azios
1332
+ tech:azure
1333
+ tech:azure-devops
1334
+ tech:azure-sql-database
1335
+ tech:babel
1336
+ tech:backbone-js
1337
+ tech:ballerina
1338
+ tech:bamboo
1339
+ tech:bash
1340
+ tech:behance
1341
+ tech:bitbucket
1342
+ tech:blender
1343
+ tech:bootstrap
1344
+ tech:bower
1345
+ tech:browserstack
1346
+ tech:bulma
1347
+ tech:bun
1348
+ tech:c
1349
+ tech:cairo-graphics
1350
+ tech:cake-php
1351
+ tech:canva
1352
+ tech:capacitor
1353
+ tech:cassandra
1354
+ tech:cent-os
1355
+ tech:chrome
1356
+ tech:circle-ci
1357
+ tech:clarity
1358
+ tech:clion
1359
+ tech:clojure
1360
+ tech:clojure-script
1361
+ tech:cloudflare
1362
+ tech:cloudflare-workers
1363
+ tech:cmake
1364
+ tech:code-igniter
1365
+ tech:code-pen
1366
+ tech:codeac
1367
+ tech:codecov
1368
+ tech:coffee-script
1369
+ tech:composer
1370
+ tech:confluence
1371
+ tech:consul
1372
+ tech:contao
1373
+ tech:corejs
1374
+ tech:cosmosdb
1375
+ tech:couchdb
1376
+ tech:cplusplus
1377
+ tech:crystal
1378
+ tech:csharp
1379
+ tech:css3
1380
+ tech:cucumber
1381
+ tech:cypress
1382
+ tech:d3js
1383
+ tech:dart
1384
+ tech:data-grip
1385
+ tech:data-spell
1386
+ tech:dbeaver
1387
+ tech:debian
1388
+ tech:deno
1389
+ tech:devicon
1390
+ tech:digital-ocean
1391
+ tech:discord-js
1392
+ tech:django
1393
+ tech:django-rest
1394
+ tech:docker
1395
+ tech:doctrine
1396
+ tech:dropwizard
1397
+ tech:drupal
1398
+ tech:eclipse-ceylon
1399
+ tech:eclipse-ide
1400
+ tech:eclipse-vert-x
1401
+ tech:elasticbeats
1402
+ tech:elasticsearch
1403
+ tech:electron
1404
+ tech:eleventy-11ty
1405
+ tech:elixir
1406
+ tech:elm
1407
+ tech:embedded-c
1408
+ tech:ember-js
1409
+ tech:envoy
1410
+ tech:erlang
1411
+ tech:eslint
1412
+ tech:express
1413
+ tech:facebook
1414
+ tech:fast-api
1415
+ tech:fastify
1416
+ tech:fauna
1417
+ tech:feathers
1418
+ tech:fedora
1419
+ tech:figma
1420
+ tech:file-zilla
1421
+ tech:firebase
1422
+ tech:firefox
1423
+ tech:flask
1424
+ tech:flutter
1425
+ tech:fortran
1426
+ tech:foundation
1427
+ tech:fsharp
1428
+ tech:gatling
1429
+ tech:gatsby
1430
+ tech:gazebo
1431
+ tech:gcc
1432
+ tech:gentoo
1433
+ tech:ghost
1434
+ tech:gimp
1435
+ tech:git
1436
+ tech:gitbook
1437
+ tech:github
1438
+ tech:github-actions
1439
+ tech:github-codespaces
1440
+ tech:gitlab
1441
+ tech:gitpod
1442
+ tech:gitter
1443
+ tech:gnu-emacs
1444
+ tech:go
1445
+ tech:go-land
1446
+ tech:godot-engine
1447
+ tech:google
1448
+ tech:google-cloud
1449
+ tech:gradle
1450
+ tech:grafana
1451
+ tech:grails
1452
+ tech:graphql
1453
+ tech:groovy
1454
+ tech:grunt-js
1455
+ tech:gulp-js
1456
+ tech:hadoop
1457
+ tech:handlebars
1458
+ tech:hardhat
1459
+ tech:harvester
1460
+ tech:hashicorp-vault
1461
+ tech:haskell
1462
+ tech:haxe
1463
+ tech:helm
1464
+ tech:heroku
1465
+ tech:hibernate
1466
+ tech:homebrew
1467
+ tech:html5
1468
+ tech:hugo
1469
+ tech:ibm-spss-statistics
1470
+ tech:ie10
1471
+ tech:ifttt
1472
+ tech:influxdb
1473
+ tech:inkscape
1474
+ tech:insomnia
1475
+ tech:intellij-idea
1476
+ tech:ionic
1477
+ tech:jaeger
1478
+ tech:jamstack
1479
+ tech:jasmine
1480
+ tech:java
1481
+ tech:javascript
1482
+ tech:jeet
1483
+ tech:jekyll
1484
+ tech:jenkins
1485
+ tech:jest
1486
+ tech:jetbrains
1487
+ tech:jira
1488
+ tech:jira-align
1489
+ tech:jquery
1490
+ tech:json
1491
+ tech:jule
1492
+ tech:julia
1493
+ tech:junit
1494
+ tech:jupyter
1495
+ tech:k3os
1496
+ tech:k3s
1497
+ tech:kafka
1498
+ tech:kaggle
1499
+ tech:karate
1500
+ tech:karma
1501
+ tech:keras
1502
+ tech:kibana
1503
+ tech:knex-js
1504
+ tech:knockout
1505
+ tech:kotlin
1506
+ tech:krakenjs
1507
+ tech:ktor
1508
+ tech:kubernetes
1509
+ tech:labview
1510
+ tech:laravel
1511
+ tech:latex
1512
+ tech:less-js
1513
+ tech:linkedin
1514
+ tech:linux
1515
+ tech:liquibase
1516
+ tech:livewire
1517
+ tech:llvm
1518
+ tech:logstash
1519
+ tech:lua
1520
+ tech:lumen
1521
+ tech:magento
1522
+ tech:markdown
1523
+ tech:material-ui
1524
+ tech:materialize
1525
+ tech:matlab
1526
+ tech:matplotlib
1527
+ tech:maven
1528
+ tech:meteor-js
1529
+ tech:microsoft-sql-server
1530
+ tech:minitab
1531
+ tech:mob-x
1532
+ tech:mocha
1533
+ tech:modx
1534
+ tech:moleculer
1535
+ tech:mongodb
1536
+ tech:mongoose-js
1537
+ tech:moodle
1538
+ tech:ms-dos
1539
+ tech:mysql
1540
+ tech:nano
1541
+ tech:nerog
1542
+ tech:nestjs
1543
+ tech:net
1544
+ tech:net-core
1545
+ tech:network-x
1546
+ tech:new4j
1547
+ tech:nextjs
1548
+ tech:nginx
1549
+ tech:nhibernate
1550
+ tech:nim
1551
+ tech:nimble
1552
+ tech:nix
1553
+ tech:nodejs
1554
+ tech:nodemon
1555
+ tech:nodewebkit
1556
+ tech:npm
1557
+ tech:nuget
1558
+ tech:num-py
1559
+ tech:nuxt-js
1560
+ tech:objective-c
1561
+ tech:ocaml
1562
+ tech:oh-my-zsh
1563
+ tech:okta
1564
+ tech:open-al
1565
+ tech:open-api
1566
+ tech:open-cl
1567
+ tech:open-cv
1568
+ tech:open-gl
1569
+ tech:open-stack
1570
+ tech:open-suse
1571
+ tech:open-telemetry
1572
+ tech:opera
1573
+ tech:oracle
1574
+ tech:p5js
1575
+ tech:packer
1576
+ tech:pandas
1577
+ tech:perl
1578
+ tech:pf-sense
1579
+ tech:phalcon
1580
+ tech:phoenix-framework
1581
+ tech:photon-engine
1582
+ tech:php
1583
+ tech:php-storm
1584
+ tech:playwrite
1585
+ tech:ploty
1586
+ tech:podman
1587
+ tech:polygon
1588
+ tech:portainer
1589
+ tech:postcss
1590
+ tech:postgresql
1591
+ tech:postman
1592
+ tech:powershell
1593
+ tech:processing
1594
+ tech:prometheus
1595
+ tech:protractor
1596
+ tech:purescript
1597
+ tech:putty
1598
+ tech:pycharm
1599
+ tech:pyscript
1600
+ tech:pytest
1601
+ tech:python
1602
+ tech:python-poetry
1603
+ tech:pytorch
1604
+ tech:qodana
1605
+ tech:qt
1606
+ tech:quarkus
1607
+ tech:quasar
1608
+ tech:qwik
1609
+ tech:r
1610
+ tech:rabbitmq
1611
+ tech:rancher
1612
+ tech:raspberrypi
1613
+ tech:reach
1614
+ tech:react
1615
+ tech:react-bootstrap
1616
+ tech:realm
1617
+ tech:red-cube-s-epic-compiler-thingy-programming-re-ct
1618
+ tech:redhat
1619
+ tech:redis
1620
+ tech:redux
1621
+ tech:ren-py
1622
+ tech:rider
1623
+ tech:robot-operating-system-ros
1624
+ tech:rocksdb
1625
+ tech:rollup-js
1626
+ tech:rspec
1627
+ tech:rstudio
1628
+ tech:ruby
1629
+ tech:ruby-mine
1630
+ tech:ruby-on-rails
1631
+ tech:rust
1632
+ tech:salesforce
1633
+ tech:sanity
1634
+ tech:sass
1635
+ tech:scala
1636
+ tech:scalingo
1637
+ tech:sdl
1638
+ tech:selenium
1639
+ tech:sema-software
1640
+ tech:sequelize
1641
+ tech:shopware
1642
+ tech:sketch
1643
+ tech:slack
1644
+ tech:socket-io
1645
+ tech:solid-js
1646
+ tech:solidity
1647
+ tech:sonarqube
1648
+ tech:sourcetree
1649
+ tech:spark
1650
+ tech:splunk
1651
+ tech:spring
1652
+ tech:sql-developer
1653
+ tech:sqlalchemy
1654
+ tech:sqlite
1655
+ tech:ssh
1656
+ tech:stackoverflow
1657
+ tech:stata
1658
+ tech:storybook
1659
+ tech:streamlit
1660
+ tech:stylus
1661
+ tech:subversion
1662
+ tech:svelte
1663
+ tech:swagger
1664
+ tech:swift
1665
+ tech:symfony
1666
+ tech:tailwind-css
1667
+ tech:tauri
1668
+ tech:tensorflow
1669
+ tech:terraform
1670
+ tech:tex
1671
+ tech:the-algorithms
1672
+ tech:three-js
1673
+ tech:titanium-sdk
1674
+ tech:tomcat
1675
+ tech:tortoise-git
1676
+ tech:tower
1677
+ tech:traefik-mesh
1678
+ tech:traefik-proxy
1679
+ tech:travis-ci
1680
+ tech:trello
1681
+ tech:twitter
1682
+ tech:typescript
1683
+ tech:typo3
1684
+ tech:ubuntu
1685
+ tech:uml
1686
+ tech:unity
1687
+ tech:unix
1688
+ tech:unreal-engine
1689
+ tech:uwsgi
1690
+ tech:v8
1691
+ tech:vagrant
1692
+ tech:vala
1693
+ tech:vercel
1694
+ tech:veutify
1695
+ tech:vim
1696
+ tech:visualstudio
1697
+ tech:vite
1698
+ tech:vitejs
1699
+ tech:vscode
1700
+ tech:vsphere
1701
+ tech:vue
1702
+ tech:vue-storefront
1703
+ tech:vyper
1704
+ tech:webassembly
1705
+ tech:webflow
1706
+ tech:weblate
1707
+ tech:webpack
1708
+ tech:webstorm
1709
+ tech:windows8
1710
+ tech:windows11
1711
+ tech:woo-commerce
1712
+ tech:wordpress
1713
+ tech:xamarin
1714
+ tech:xcode
1715
+ tech:xml
1716
+ tech:yaml
1717
+ tech:yarn
1718
+ tech:yii-framework
1719
+ tech:yuno-host
1720
+ tech:zend-framework
1721
+ tech:zig
1722
+ }}`,mC="likec4builtin",iG=`${mC}:///likec4/lib/icons.c4`;var Qs=Gs();const sG=new Qs.NotificationType("likec4/onDidChangeModel"),oG=new Qs.RequestType0("likec4/fetchModel"),aG=new Qs.RequestType("likec4/fetchComputedModel"),cG=new Qs.RequestType("likec4/computeView"),uG=new Qs.RequestType("likec4/build"),lG=new Qs.RequestType("likec4/locate"),dG=new Qs.RequestType("likec4/change-view");var lv,yC;function fG(){return yC||(yC=1,lv=t=>{const e=t.match(/^[ \t]*(?=\S)/gm);return e?e.reduce((n,r)=>Math.min(n,r.length),1/0):0}),lv}var hG=fG();function dv(t){const e=hG(t);if(e===0)return t;const n=new RegExp(`^[ \\t]{${e}}`,"gm");return t.replace(n,"")}var fv,vC;function pG(){if(vC)return fv;vC=1;function t(e){for(var n=5381,r=e.length;r;)n=n*33^e.charCodeAt(--r);return n>>>0}return fv=t,fv}var gG=pG(),mG=Object.getOwnPropertyNames,yG=Object.getOwnPropertySymbols,vG=Object.prototype.hasOwnProperty;function wC(t,e){return function(r,i,s){return t(r,i,s)&&e(r,i,s)}}function oh(t){return function(n,r,i){if(!n||!r||typeof n!="object"||typeof r!="object")return t(n,r,i);var s=i.cache,o=s.get(n),a=s.get(r);if(o&&a)return o===r&&a===n;s.set(n,r),s.set(r,n);var c=t(n,r,i);return s.delete(n),s.delete(r),c}}function bC(t){return mG(t).concat(yG(t))}var EC=Object.hasOwn||function(t,e){return vG.call(t,e)};function ia(t,e){return t||e?t===e:t===e||t!==t&&e!==e}var DC="_owner",TC=Object.getOwnPropertyDescriptor,RC=Object.keys;function wG(t,e,n){var r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function bG(t,e){return ia(t.getTime(),e.getTime())}function SC(t,e,n){if(t.size!==e.size)return!1;for(var r={},i=t.entries(),s=0,o,a;(o=i.next())&&!o.done;){for(var c=e.entries(),u=!1,l=0;(a=c.next())&&!a.done;){var d=o.value,f=d[0],h=d[1],p=a.value,g=p[0],v=p[1];!u&&!r[l]&&(u=n.equals(f,g,s,l,t,e,n)&&n.equals(h,v,f,g,t,e,n))&&(r[l]=!0),l++}if(!u)return!1;s++}return!0}function EG(t,e,n){var r=RC(t),i=r.length;if(RC(e).length!==i)return!1;for(var s;i-- >0;)if(s=r[i],s===DC&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!EC(e,s)||!n.equals(t[s],e[s],s,s,t,e,n))return!1;return!0}function _u(t,e,n){var r=bC(t),i=r.length;if(bC(e).length!==i)return!1;for(var s,o,a;i-- >0;)if(s=r[i],s===DC&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!EC(e,s)||!n.equals(t[s],e[s],s,s,t,e,n)||(o=TC(t,s),a=TC(e,s),(o||a)&&(!o||!a||o.configurable!==a.configurable||o.enumerable!==a.enumerable||o.writable!==a.writable)))return!1;return!0}function DG(t,e){return ia(t.valueOf(),e.valueOf())}function TG(t,e){return t.source===e.source&&t.flags===e.flags}function kC(t,e,n){if(t.size!==e.size)return!1;for(var r={},i=t.values(),s,o;(s=i.next())&&!s.done;){for(var a=e.values(),c=!1,u=0;(o=a.next())&&!o.done;)!c&&!r[u]&&(c=n.equals(s.value,o.value,s.value,o.value,t,e,n))&&(r[u]=!0),u++;if(!c)return!1}return!0}function RG(t,e){var n=t.length;if(e.length!==n)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}var SG="[object Arguments]",kG="[object Boolean]",$G="[object Date]",CG="[object Map]",_G="[object Number]",AG="[object Object]",xG="[object RegExp]",IG="[object Set]",PG="[object String]",NG=Array.isArray,$C=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,CC=Object.assign,OG=Object.prototype.toString.call.bind(Object.prototype.toString);function FG(t){var e=t.areArraysEqual,n=t.areDatesEqual,r=t.areMapsEqual,i=t.areObjectsEqual,s=t.arePrimitiveWrappersEqual,o=t.areRegExpsEqual,a=t.areSetsEqual,c=t.areTypedArraysEqual;return function(l,d,f){if(l===d)return!0;if(l==null||d==null||typeof l!="object"||typeof d!="object")return l!==l&&d!==d;var h=l.constructor;if(h!==d.constructor)return!1;if(h===Object)return i(l,d,f);if(NG(l))return e(l,d,f);if($C!=null&&$C(l))return c(l,d,f);if(h===Date)return n(l,d,f);if(h===RegExp)return o(l,d,f);if(h===Map)return r(l,d,f);if(h===Set)return a(l,d,f);var p=OG(l);return p===$G?n(l,d,f):p===xG?o(l,d,f):p===CG?r(l,d,f):p===IG?a(l,d,f):p===AG?typeof l.then!="function"&&typeof d.then!="function"&&i(l,d,f):p===SG?i(l,d,f):p===kG||p===_G||p===PG?s(l,d,f):!1}}function LG(t){var e=t.circular,n=t.createCustomConfig,r=t.strict,i={areArraysEqual:r?_u:wG,areDatesEqual:bG,areMapsEqual:r?wC(SC,_u):SC,areObjectsEqual:r?_u:EG,arePrimitiveWrappersEqual:DG,areRegExpsEqual:TG,areSetsEqual:r?wC(kC,_u):kC,areTypedArraysEqual:r?_u:RG};if(n&&(i=CC({},i,n(i))),e){var s=oh(i.areArraysEqual),o=oh(i.areMapsEqual),a=oh(i.areObjectsEqual),c=oh(i.areSetsEqual);i=CC({},i,{areArraysEqual:s,areMapsEqual:o,areObjectsEqual:a,areSetsEqual:c})}return i}function MG(t){return function(e,n,r,i,s,o,a){return t(e,n,a)}}function zG(t){var e=t.circular,n=t.comparator,r=t.createState,i=t.equals,s=t.strict;if(r)return function(c,u){var l=r(),d=l.cache,f=d===void 0?e?new WeakMap:void 0:d,h=l.meta;return n(c,u,{cache:f,equals:i,meta:h,strict:s})};if(e)return function(c,u){return n(c,u,{cache:new WeakMap,equals:i,meta:void 0,strict:s})};var o={cache:void 0,equals:i,meta:void 0,strict:s};return function(c,u){return n(c,u,o)}}var _C=Xi();Xi({strict:!0}),Xi({circular:!0}),Xi({circular:!0,strict:!0}),Xi({createInternalComparator:function(){return ia}}),Xi({strict:!0,createInternalComparator:function(){return ia}}),Xi({circular:!0,createInternalComparator:function(){return ia}}),Xi({circular:!0,createInternalComparator:function(){return ia},strict:!0});function Xi(t){t===void 0&&(t={});var e=t.circular,n=e===void 0?!1:e,r=t.createInternalComparator,i=t.createState,s=t.strict,o=s===void 0?!1:s,a=LG(t),c=FG(a),u=r?r(c):MG(c);return zG({circular:n,comparator:c,createState:i,equals:u,strict:o})}var hv,AC;function pv(){if(AC)return hv;AC=1;var t="\0",e="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(l){l&&(this._isDirected=Object.hasOwn(l,"directed")?l.directed:!0,this._isMultigraph=Object.hasOwn(l,"multigraph")?l.multigraph:!1,this._isCompound=Object.hasOwn(l,"compound")?l.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[e]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(l){return this._label=l,this}graph(){return this._label}setDefaultNodeLabel(l){return this._defaultNodeLabelFn=l,typeof l!="function"&&(this._defaultNodeLabelFn=()=>l),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var l=this;return this.nodes().filter(d=>Object.keys(l._in[d]).length===0)}sinks(){var l=this;return this.nodes().filter(d=>Object.keys(l._out[d]).length===0)}setNodes(l,d){var f=arguments,h=this;return l.forEach(function(p){f.length>1?h.setNode(p,d):h.setNode(p)}),this}setNode(l,d){return Object.hasOwn(this._nodes,l)?(arguments.length>1&&(this._nodes[l]=d),this):(this._nodes[l]=arguments.length>1?d:this._defaultNodeLabelFn(l),this._isCompound&&(this._parent[l]=e,this._children[l]={},this._children[e][l]=!0),this._in[l]={},this._preds[l]={},this._out[l]={},this._sucs[l]={},++this._nodeCount,this)}node(l){return this._nodes[l]}hasNode(l){return Object.hasOwn(this._nodes,l)}removeNode(l){var d=this;if(Object.hasOwn(this._nodes,l)){var f=h=>d.removeEdge(d._edgeObjs[h]);delete this._nodes[l],this._isCompound&&(this._removeFromParentsChildList(l),delete this._parent[l],this.children(l).forEach(function(h){d.setParent(h)}),delete this._children[l]),Object.keys(this._in[l]).forEach(f),delete this._in[l],delete this._preds[l],Object.keys(this._out[l]).forEach(f),delete this._out[l],delete this._sucs[l],--this._nodeCount}return this}setParent(l,d){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(d===void 0)d=e;else{d+="";for(var f=d;f!==void 0;f=this.parent(f))if(f===l)throw new Error("Setting "+d+" as parent of "+l+" would create a cycle");this.setNode(d)}return this.setNode(l),this._removeFromParentsChildList(l),this._parent[l]=d,this._children[d][l]=!0,this}_removeFromParentsChildList(l){delete this._children[this._parent[l]][l]}parent(l){if(this._isCompound){var d=this._parent[l];if(d!==e)return d}}children(l=e){if(this._isCompound){var d=this._children[l];if(d)return Object.keys(d)}else{if(l===e)return this.nodes();if(this.hasNode(l))return[]}}predecessors(l){var d=this._preds[l];if(d)return Object.keys(d)}successors(l){var d=this._sucs[l];if(d)return Object.keys(d)}neighbors(l){var d=this.predecessors(l);if(d){const h=new Set(d);for(var f of this.successors(l))h.add(f);return Array.from(h.values())}}isLeaf(l){var d;return this.isDirected()?d=this.successors(l):d=this.neighbors(l),d.length===0}filterNodes(l){var d=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});d.setGraph(this.graph());var f=this;Object.entries(this._nodes).forEach(function([g,v]){l(g)&&d.setNode(g,v)}),Object.values(this._edgeObjs).forEach(function(g){d.hasNode(g.v)&&d.hasNode(g.w)&&d.setEdge(g,f.edge(g))});var h={};function p(g){var v=f.parent(g);return v===void 0||d.hasNode(v)?(h[g]=v,v):v in h?h[v]:p(v)}return this._isCompound&&d.nodes().forEach(g=>d.setParent(g,p(g))),d}setDefaultEdgeLabel(l){return this._defaultEdgeLabelFn=l,typeof l!="function"&&(this._defaultEdgeLabelFn=()=>l),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(l,d){var f=this,h=arguments;return l.reduce(function(p,g){return h.length>1?f.setEdge(p,g,d):f.setEdge(p,g),g}),this}setEdge(){var l,d,f,h,p=!1,g=arguments[0];typeof g=="object"&&g!==null&&"v"in g?(l=g.v,d=g.w,f=g.name,arguments.length===2&&(h=arguments[1],p=!0)):(l=g,d=arguments[1],f=arguments[3],arguments.length>2&&(h=arguments[2],p=!0)),l=""+l,d=""+d,f!==void 0&&(f=""+f);var v=o(this._isDirected,l,d,f);if(Object.hasOwn(this._edgeLabels,v))return p&&(this._edgeLabels[v]=h),this;if(f!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(l),this.setNode(d),this._edgeLabels[v]=p?h:this._defaultEdgeLabelFn(l,d,f);var m=a(this._isDirected,l,d,f);return l=m.v,d=m.w,Object.freeze(m),this._edgeObjs[v]=m,i(this._preds[d],l),i(this._sucs[l],d),this._in[d][v]=m,this._out[l][v]=m,this._edgeCount++,this}edge(l,d,f){var h=arguments.length===1?c(this._isDirected,arguments[0]):o(this._isDirected,l,d,f);return this._edgeLabels[h]}edgeAsObj(){const l=this.edge(...arguments);return typeof l!="object"?{label:l}:l}hasEdge(l,d,f){var h=arguments.length===1?c(this._isDirected,arguments[0]):o(this._isDirected,l,d,f);return Object.hasOwn(this._edgeLabels,h)}removeEdge(l,d,f){var h=arguments.length===1?c(this._isDirected,arguments[0]):o(this._isDirected,l,d,f),p=this._edgeObjs[h];return p&&(l=p.v,d=p.w,delete this._edgeLabels[h],delete this._edgeObjs[h],s(this._preds[d],l),s(this._sucs[l],d),delete this._in[d][h],delete this._out[l][h],this._edgeCount--),this}inEdges(l,d){var f=this._in[l];if(f){var h=Object.values(f);return d?h.filter(p=>p.v===d):h}}outEdges(l,d){var f=this._out[l];if(f){var h=Object.values(f);return d?h.filter(p=>p.w===d):h}}nodeEdges(l,d){var f=this.inEdges(l,d);if(f)return f.concat(this.outEdges(l,d))}}function i(u,l){u[l]?u[l]++:u[l]=1}function s(u,l){--u[l]||delete u[l]}function o(u,l,d,f){var h=""+l,p=""+d;if(!u&&h>p){var g=h;h=p,p=g}return h+n+p+n+(f===void 0?t:f)}function a(u,l,d,f){var h=""+l,p=""+d;if(!u&&h>p){var g=h;h=p,p=g}var v={v:h,w:p};return f&&(v.name=f),v}function c(u,l){return o(u,l.v,l.w,l.name)}return hv=r,hv}var gv,xC;function BG(){return xC||(xC=1,gv="2.2.4"),gv}var mv,IC;function qG(){return IC||(IC=1,mv={Graph:pv(),version:BG()}),mv}var yv,PC;function jG(){if(PC)return yv;PC=1;var t=pv();yv={write:e,read:i};function e(s){var o={options:{directed:s.isDirected(),multigraph:s.isMultigraph(),compound:s.isCompound()},nodes:n(s),edges:r(s)};return s.graph()!==void 0&&(o.value=structuredClone(s.graph())),o}function n(s){return s.nodes().map(function(o){var a=s.node(o),c=s.parent(o),u={v:o};return a!==void 0&&(u.value=a),c!==void 0&&(u.parent=c),u})}function r(s){return s.edges().map(function(o){var a=s.edge(o),c={v:o.v,w:o.w};return o.name!==void 0&&(c.name=o.name),a!==void 0&&(c.value=a),c})}function i(s){var o=new t(s.options).setGraph(s.value);return s.nodes.forEach(function(a){o.setNode(a.v,a.value),a.parent&&o.setParent(a.v,a.parent)}),s.edges.forEach(function(a){o.setEdge({v:a.v,w:a.w,name:a.name},a.value)}),o}return yv}var vv,NC;function UG(){if(NC)return vv;NC=1,vv=t;function t(e){var n={},r=[],i;function s(o){Object.hasOwn(n,o)||(n[o]=!0,i.push(o),e.successors(o).forEach(s),e.predecessors(o).forEach(s))}return e.nodes().forEach(function(o){i=[],s(o),i.length&&r.push(i)}),r}return vv}var wv,OC;function FC(){if(OC)return wv;OC=1;class t{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var r=this._keyIndices[n];if(r!==void 0)return this._arr[r].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,r){var i=this._keyIndices;if(n=String(n),!Object.hasOwn(i,n)){var s=this._arr,o=s.length;return i[n]=o,s.push({key:n,priority:r}),this._decrease(o),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,r){var i=this._keyIndices[n];if(r>this._arr[i].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[i].priority+" New: "+r);this._arr[i].priority=r,this._decrease(i)}_heapify(n){var r=this._arr,i=2*n,s=i+1,o=n;i<r.length&&(o=r[i].priority<r[o].priority?i:o,s<r.length&&(o=r[s].priority<r[o].priority?s:o),o!==n&&(this._swap(n,o),this._heapify(o)))}_decrease(n){for(var r=this._arr,i=r[n].priority,s;n!==0&&(s=n>>1,!(r[s].priority<i));)this._swap(n,s),n=s}_swap(n,r){var i=this._arr,s=this._keyIndices,o=i[n],a=i[r];i[n]=a,i[r]=o,s[a.key]=n,s[o.key]=r}}return wv=t,wv}var bv,LC;function MC(){if(LC)return bv;LC=1;var t=FC();bv=n;var e=()=>1;function n(i,s,o,a){return r(i,String(s),o||e,a||function(c){return i.outEdges(c)})}function r(i,s,o,a){var c={},u=new t,l,d,f=function(h){var p=h.v!==l?h.v:h.w,g=c[p],v=o(h),m=d.distance+v;if(v<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+v);m<g.distance&&(g.distance=m,g.predecessor=l,u.decrease(p,m))};for(i.nodes().forEach(function(h){var p=h===s?0:Number.POSITIVE_INFINITY;c[h]={distance:p},u.add(h,p)});u.size()>0&&(l=u.removeMin(),d=c[l],d.distance!==Number.POSITIVE_INFINITY);)a(l).forEach(f);return c}return bv}var Ev,zC;function WG(){if(zC)return Ev;zC=1;var t=MC();Ev=e;function e(n,r,i){return n.nodes().reduce(function(s,o){return s[o]=t(n,o,r,i),s},{})}return Ev}var Dv,BC;function qC(){if(BC)return Dv;BC=1,Dv=t;function t(e){var n=0,r=[],i={},s=[];function o(a){var c=i[a]={onStack:!0,lowlink:n,index:n++};if(r.push(a),e.successors(a).forEach(function(d){Object.hasOwn(i,d)?i[d].onStack&&(c.lowlink=Math.min(c.lowlink,i[d].index)):(o(d),c.lowlink=Math.min(c.lowlink,i[d].lowlink))}),c.lowlink===c.index){var u=[],l;do l=r.pop(),i[l].onStack=!1,u.push(l);while(a!==l);s.push(u)}}return e.nodes().forEach(function(a){Object.hasOwn(i,a)||o(a)}),s}return Dv}var Tv,jC;function GG(){if(jC)return Tv;jC=1;var t=qC();Tv=e;function e(n){return t(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return Tv}var Rv,UC;function HG(){if(UC)return Rv;UC=1,Rv=e;var t=()=>1;function e(r,i,s){return n(r,i||t,s||function(o){return r.outEdges(o)})}function n(r,i,s){var o={},a=r.nodes();return a.forEach(function(c){o[c]={},o[c][c]={distance:0},a.forEach(function(u){c!==u&&(o[c][u]={distance:Number.POSITIVE_INFINITY})}),s(c).forEach(function(u){var l=u.v===c?u.w:u.v,d=i(u);o[c][l]={distance:d,predecessor:c}})}),a.forEach(function(c){var u=o[c];a.forEach(function(l){var d=o[l];a.forEach(function(f){var h=d[c],p=u[f],g=d[f],v=h.distance+p.distance;v<g.distance&&(g.distance=v,g.predecessor=p.predecessor)})})}),o}return Rv}var Sv,WC;function GC(){if(WC)return Sv;WC=1;function t(n){var r={},i={},s=[];function o(a){if(Object.hasOwn(i,a))throw new e;Object.hasOwn(r,a)||(i[a]=!0,r[a]=!0,n.predecessors(a).forEach(o),delete i[a],s.push(a))}if(n.sinks().forEach(o),Object.keys(r).length!==n.nodeCount())throw new e;return s}class e extends Error{constructor(){super(...arguments)}}return Sv=t,t.CycleException=e,Sv}var kv,HC;function VG(){if(HC)return kv;HC=1;var t=GC();kv=e;function e(n){try{t(n)}catch(r){if(r instanceof t.CycleException)return!1;throw r}return!0}return kv}var $v,VC;function KC(){if(VC)return $v;VC=1,$v=t;function t(i,s,o){Array.isArray(s)||(s=[s]);var a=i.isDirected()?d=>i.successors(d):d=>i.neighbors(d),c=o==="post"?e:n,u=[],l={};return s.forEach(d=>{if(!i.hasNode(d))throw new Error("Graph does not have node: "+d);c(d,a,l,u)}),u}function e(i,s,o,a){for(var c=[[i,!1]];c.length>0;){var u=c.pop();u[1]?a.push(u[0]):Object.hasOwn(o,u[0])||(o[u[0]]=!0,c.push([u[0],!0]),r(s(u[0]),l=>c.push([l,!1])))}}function n(i,s,o,a){for(var c=[i];c.length>0;){var u=c.pop();Object.hasOwn(o,u)||(o[u]=!0,a.push(u),r(s(u),l=>c.push(l)))}}function r(i,s){for(var o=i.length;o--;)s(i[o],o,i);return i}return $v}var Cv,YC;function KG(){if(YC)return Cv;YC=1;var t=KC();Cv=e;function e(n,r){return t(n,r,"post")}return Cv}var _v,XC;function YG(){if(XC)return _v;XC=1;var t=KC();_v=e;function e(n,r){return t(n,r,"pre")}return _v}var Av,JC;function XG(){if(JC)return Av;JC=1;var t=pv(),e=FC();Av=n;function n(r,i){var s=new t,o={},a=new e,c;function u(d){var f=d.v===c?d.w:d.v,h=a.priority(f);if(h!==void 0){var p=i(d);p<h&&(o[f]=c,a.decrease(f,p))}}if(r.nodeCount()===0)return s;r.nodes().forEach(function(d){a.add(d,Number.POSITIVE_INFINITY),s.setNode(d)}),a.decrease(r.nodes()[0],0);for(var l=!1;a.size()>0;){if(c=a.removeMin(),Object.hasOwn(o,c))s.setEdge(c,o[c]);else{if(l)throw new Error("Input graph is not connected: "+r);l=!0}r.nodeEdges(c).forEach(u)}return s}return Av}var xv,ZC;function JG(){return ZC||(ZC=1,xv={components:UG(),dijkstra:MC(),dijkstraAll:WG(),findCycles:GG(),floydWarshall:HG(),isAcyclic:VG(),postorder:KG(),preorder:YG(),prim:XG(),tarjan:qC(),topsort:GC()}),xv}var Iv,QC;function mr(){if(QC)return Iv;QC=1;var t=qG();return Iv={Graph:t.Graph,json:jG(),alg:JG(),version:t.version},Iv}var Pv,e_;function ZG(){if(e_)return Pv;e_=1;class t{constructor(){let i={};i._next=i._prev=i,this._sentinel=i}dequeue(){let i=this._sentinel,s=i._prev;if(s!==i)return e(s),s}enqueue(i){let s=this._sentinel;i._prev&&i._next&&e(i),i._next=s._next,s._next._prev=i,s._next=i,i._prev=s}toString(){let i=[],s=this._sentinel,o=s._prev;for(;o!==s;)i.push(JSON.stringify(o,n)),o=o._prev;return"["+i.join(", ")+"]"}}function e(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}function n(r,i){if(r!=="_next"&&r!=="_prev")return i}return Pv=t,Pv}var Nv,t_;function QG(){if(t_)return Nv;t_=1;let t=mr().Graph,e=ZG();Nv=r;let n=()=>1;function r(u,l){if(u.nodeCount()<=1)return[];let d=o(u,l||n);return i(d.graph,d.buckets,d.zeroIdx).flatMap(h=>u.outEdges(h.v,h.w))}function i(u,l,d){let f=[],h=l[l.length-1],p=l[0],g;for(;u.nodeCount();){for(;g=p.dequeue();)s(u,l,d,g);for(;g=h.dequeue();)s(u,l,d,g);if(u.nodeCount()){for(let v=l.length-2;v>0;--v)if(g=l[v].dequeue(),g){f=f.concat(s(u,l,d,g,!0));break}}}return f}function s(u,l,d,f,h){let p=h?[]:void 0;return u.inEdges(f.v).forEach(g=>{let v=u.edge(g),m=u.node(g.v);h&&p.push({v:g.v,w:g.w}),m.out-=v,a(l,d,m)}),u.outEdges(f.v).forEach(g=>{let v=u.edge(g),m=g.w,w=u.node(m);w.in-=v,a(l,d,w)}),u.removeNode(f.v),p}function o(u,l){let d=new t,f=0,h=0;u.nodes().forEach(v=>{d.setNode(v,{v,in:0,out:0})}),u.edges().forEach(v=>{let m=d.edge(v.v,v.w)||0,w=l(v),E=m+w;d.setEdge(v.v,v.w,E),h=Math.max(h,d.node(v.v).out+=w),f=Math.max(f,d.node(v.w).in+=w)});let p=c(h+f+3).map(()=>new e),g=f+1;return d.nodes().forEach(v=>{a(p,g,d.node(v))}),{graph:d,buckets:p,zeroIdx:g}}function a(u,l,d){d.out?d.in?u[d.out-d.in+l].enqueue(d):u[u.length-1].enqueue(d):u[0].enqueue(d)}function c(u){const l=[];for(let d=0;d<u;d++)l.push(d);return l}return Nv}var Ov,n_;function At(){if(n_)return Ov;n_=1;let t=mr().Graph;Ov={addBorderNode:l,addDummyNode:e,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:a,intersectRect:o,mapValues:I,maxRank:p,normalizeRanks:c,notime:m,partition:g,pick:A,predecessorWeights:s,range:k,removeEmptyRanks:u,simplify:n,successorWeights:i,time:v,uniqueId:E,zipObject:x};function e(_,P,N,C){let D;do D=E(C);while(_.hasNode(D));return N.dummy=P,_.setNode(D,N),D}function n(_){let P=new t().setGraph(_.graph());return _.nodes().forEach(N=>P.setNode(N,_.node(N))),_.edges().forEach(N=>{let C=P.edge(N.v,N.w)||{weight:0,minlen:1},D=_.edge(N);P.setEdge(N.v,N.w,{weight:C.weight+D.weight,minlen:Math.max(C.minlen,D.minlen)})}),P}function r(_){let P=new t({multigraph:_.isMultigraph()}).setGraph(_.graph());return _.nodes().forEach(N=>{_.children(N).length||P.setNode(N,_.node(N))}),_.edges().forEach(N=>{P.setEdge(N,_.edge(N))}),P}function i(_){let P=_.nodes().map(N=>{let C={};return _.outEdges(N).forEach(D=>{C[D.w]=(C[D.w]||0)+_.edge(D).weight}),C});return x(_.nodes(),P)}function s(_){let P=_.nodes().map(N=>{let C={};return _.inEdges(N).forEach(D=>{C[D.v]=(C[D.v]||0)+_.edge(D).weight}),C});return x(_.nodes(),P)}function o(_,P){let N=_.x,C=_.y,D=P.x-N,R=P.y-C,L=_.width/2,G=_.height/2;if(!D&&!R)throw new Error("Not possible to find intersection inside of the rectangle");let V,Z;return Math.abs(R)*L>Math.abs(D)*G?(R<0&&(G=-G),V=G*D/R,Z=G):(D<0&&(L=-L),V=L,Z=L*R/D),{x:N+V,y:C+Z}}function a(_){let P=k(p(_)+1).map(()=>[]);return _.nodes().forEach(N=>{let C=_.node(N),D=C.rank;D!==void 0&&(P[D][C.order]=N)}),P}function c(_){let P=_.nodes().map(C=>{let D=_.node(C).rank;return D===void 0?Number.MAX_VALUE:D}),N=h(Math.min,P);_.nodes().forEach(C=>{let D=_.node(C);Object.hasOwn(D,"rank")&&(D.rank-=N)})}function u(_){let P=_.nodes().map(L=>_.node(L).rank),N=h(Math.min,P),C=[];_.nodes().forEach(L=>{let G=_.node(L).rank-N;C[G]||(C[G]=[]),C[G].push(L)});let D=0,R=_.graph().nodeRankFactor;Array.from(C).forEach((L,G)=>{L===void 0&&G%R!==0?--D:L!==void 0&&D&&L.forEach(V=>_.node(V).rank+=D)})}function l(_,P,N,C){let D={width:0,height:0};return arguments.length>=4&&(D.rank=N,D.order=C),e(_,"border",D,P)}function d(_,P=f){const N=[];for(let C=0;C<_.length;C+=P){const D=_.slice(C,C+P);N.push(D)}return N}const f=65535;function h(_,P){if(P.length>f){const N=d(P);return _.apply(null,N.map(C=>_.apply(null,C)))}else return _.apply(null,P)}function p(_){const N=_.nodes().map(C=>{let D=_.node(C).rank;return D===void 0?Number.MIN_VALUE:D});return h(Math.max,N)}function g(_,P){let N={lhs:[],rhs:[]};return _.forEach(C=>{P(C)?N.lhs.push(C):N.rhs.push(C)}),N}function v(_,P){let N=Date.now();try{return P()}finally{console.log(_+" time: "+(Date.now()-N)+"ms")}}function m(_,P){return P()}let w=0;function E(_){var P=++w;return toString(_)+P}function k(_,P,N=1){P==null&&(P=_,_=0);let C=R=>R<P;N<0&&(C=R=>P<R);const D=[];for(let R=_;C(R);R+=N)D.push(R);return D}function A(_,P){const N={};for(const C of P)_[C]!==void 0&&(N[C]=_[C]);return N}function I(_,P){let N=P;return typeof P=="string"&&(N=C=>C[P]),Object.entries(_).reduce((C,[D,R])=>(C[D]=N(R,D),C),{})}function x(_,P){return _.reduce((N,C,D)=>(N[C]=P[D],N),{})}return Ov}var Fv,r_;function eH(){if(r_)return Fv;r_=1;let t=QG(),e=At().uniqueId;Fv={run:n,undo:i};function n(s){(s.graph().acyclicer==="greedy"?t(s,a(s)):r(s)).forEach(c=>{let u=s.edge(c);s.removeEdge(c),u.forwardName=c.name,u.reversed=!0,s.setEdge(c.w,c.v,u,e("rev"))});function a(c){return u=>c.edge(u).weight}}function r(s){let o=[],a={},c={};function u(l){Object.hasOwn(c,l)||(c[l]=!0,a[l]=!0,s.outEdges(l).forEach(d=>{Object.hasOwn(a,d.w)?o.push(d):u(d.w)}),delete a[l])}return s.nodes().forEach(u),o}function i(s){s.edges().forEach(o=>{let a=s.edge(o);if(a.reversed){s.removeEdge(o);let c=a.forwardName;delete a.reversed,delete a.forwardName,s.setEdge(o.w,o.v,a,c)}})}return Fv}var Lv,i_;function tH(){if(i_)return Lv;i_=1;let t=At();Lv={run:e,undo:r};function e(i){i.graph().dummyChains=[],i.edges().forEach(s=>n(i,s))}function n(i,s){let o=s.v,a=i.node(o).rank,c=s.w,u=i.node(c).rank,l=s.name,d=i.edge(s),f=d.labelRank;if(u===a+1)return;i.removeEdge(s);let h,p,g;for(g=0,++a;a<u;++g,++a)d.points=[],p={width:0,height:0,edgeLabel:d,edgeObj:s,rank:a},h=t.addDummyNode(i,"edge",p,"_d"),a===f&&(p.width=d.width,p.height=d.height,p.dummy="edge-label",p.labelpos=d.labelpos),i.setEdge(o,h,{weight:d.weight},l),g===0&&i.graph().dummyChains.push(h),o=h;i.setEdge(o,c,{weight:d.weight},l)}function r(i){i.graph().dummyChains.forEach(s=>{let o=i.node(s),a=o.edgeLabel,c;for(i.setEdge(o.edgeObj,a);o.dummy;)c=i.successors(s)[0],i.removeNode(s),a.points.push({x:o.x,y:o.y}),o.dummy==="edge-label"&&(a.x=o.x,a.y=o.y,a.width=o.width,a.height=o.height),s=c,o=i.node(s)})}return Lv}var Mv,s_;function ah(){if(s_)return Mv;s_=1;const{applyWithChunking:t}=At();Mv={longestPath:e,slack:n};function e(r){var i={};function s(o){var a=r.node(o);if(Object.hasOwn(i,o))return a.rank;i[o]=!0;let c=r.outEdges(o).map(l=>l==null?Number.POSITIVE_INFINITY:s(l.w)-r.edge(l).minlen);var u=t(Math.min,c);return u===Number.POSITIVE_INFINITY&&(u=0),a.rank=u}r.sources().forEach(s)}function n(r,i){return r.node(i.w).rank-r.node(i.v).rank-r.edge(i).minlen}return Mv}var zv,o_;function a_(){if(o_)return zv;o_=1;var t=mr().Graph,e=ah().slack;zv=n;function n(o){var a=new t({directed:!1}),c=o.nodes()[0],u=o.nodeCount();a.setNode(c,{});for(var l,d;r(a,o)<u;)l=i(a,o),d=a.hasNode(l.v)?e(o,l):-e(o,l),s(a,o,d);return a}function r(o,a){function c(u){a.nodeEdges(u).forEach(l=>{var d=l.v,f=u===d?l.w:d;!o.hasNode(f)&&!e(a,l)&&(o.setNode(f,{}),o.setEdge(u,f,{}),c(f))})}return o.nodes().forEach(c),o.nodeCount()}function i(o,a){return a.edges().reduce((u,l)=>{let d=Number.POSITIVE_INFINITY;return o.hasNode(l.v)!==o.hasNode(l.w)&&(d=e(a,l)),d<u[0]?[d,l]:u},[Number.POSITIVE_INFINITY,null])[1]}function s(o,a,c){o.nodes().forEach(u=>a.node(u).rank+=c)}return zv}var Bv,c_;function nH(){if(c_)return Bv;c_=1;var t=a_(),e=ah().slack,n=ah().longestPath,r=mr().alg.preorder,i=mr().alg.postorder,s=At().simplify;Bv=o,o.initLowLimValues=l,o.initCutValues=a,o.calcCutValue=u,o.leaveEdge=f,o.enterEdge=h,o.exchangeEdges=p;function o(w){w=s(w),n(w);var E=t(w);l(E),a(E,w);for(var k,A;k=f(E);)A=h(E,w,k),p(E,w,k,A)}function a(w,E){var k=i(w,w.nodes());k=k.slice(0,k.length-1),k.forEach(A=>c(w,E,A))}function c(w,E,k){var A=w.node(k),I=A.parent;w.edge(k,I).cutvalue=u(w,E,k)}function u(w,E,k){var A=w.node(k),I=A.parent,x=!0,_=E.edge(k,I),P=0;return _||(x=!1,_=E.edge(I,k)),P=_.weight,E.nodeEdges(k).forEach(N=>{var C=N.v===k,D=C?N.w:N.v;if(D!==I){var R=C===x,L=E.edge(N).weight;if(P+=R?L:-L,v(w,k,D)){var G=w.edge(k,D).cutvalue;P+=R?-G:G}}}),P}function l(w,E){arguments.length<2&&(E=w.nodes()[0]),d(w,{},1,E)}function d(w,E,k,A,I){var x=k,_=w.node(A);return E[A]=!0,w.neighbors(A).forEach(P=>{Object.hasOwn(E,P)||(k=d(w,E,k,P,A))}),_.low=x,_.lim=k++,I?_.parent=I:delete _.parent,k}function f(w){return w.edges().find(E=>w.edge(E).cutvalue<0)}function h(w,E,k){var A=k.v,I=k.w;E.hasEdge(A,I)||(A=k.w,I=k.v);var x=w.node(A),_=w.node(I),P=x,N=!1;x.lim>_.lim&&(P=_,N=!0);var C=E.edges().filter(D=>N===m(w,w.node(D.v),P)&&N!==m(w,w.node(D.w),P));return C.reduce((D,R)=>e(E,R)<e(E,D)?R:D)}function p(w,E,k,A){var I=k.v,x=k.w;w.removeEdge(I,x),w.setEdge(A.v,A.w,{}),l(w),a(w,E),g(w,E)}function g(w,E){var k=w.nodes().find(I=>!E.node(I).parent),A=r(w,k);A=A.slice(1),A.forEach(I=>{var x=w.node(I).parent,_=E.edge(I,x),P=!1;_||(_=E.edge(x,I),P=!0),E.node(I).rank=E.node(x).rank+(P?_.minlen:-_.minlen)})}function v(w,E,k){return w.hasEdge(E,k)}function m(w,E,k){return k.low<=E.lim&&E.lim<=k.lim}return Bv}var qv,u_;function rH(){if(u_)return qv;u_=1;var t=ah(),e=t.longestPath,n=a_(),r=nH();qv=i;function i(c){switch(c.graph().ranker){case"network-simplex":a(c);break;case"tight-tree":o(c);break;case"longest-path":s(c);break;default:a(c)}}var s=e;function o(c){e(c),n(c)}function a(c){r(c)}return qv}var jv,l_;function iH(){if(l_)return jv;l_=1,jv=t;function t(r){let i=n(r);r.graph().dummyChains.forEach(s=>{let o=r.node(s),a=o.edgeObj,c=e(r,i,a.v,a.w),u=c.path,l=c.lca,d=0,f=u[d],h=!0;for(;s!==a.w;){if(o=r.node(s),h){for(;(f=u[d])!==l&&r.node(f).maxRank<o.rank;)d++;f===l&&(h=!1)}if(!h){for(;d<u.length-1&&r.node(f=u[d+1]).minRank<=o.rank;)d++;f=u[d]}r.setParent(s,f),s=r.successors(s)[0]}})}function e(r,i,s,o){let a=[],c=[],u=Math.min(i[s].low,i[o].low),l=Math.max(i[s].lim,i[o].lim),d,f;d=s;do d=r.parent(d),a.push(d);while(d&&(i[d].low>u||l>i[d].lim));for(f=d,d=o;(d=r.parent(d))!==f;)c.push(d);return{path:a.concat(c.reverse()),lca:f}}function n(r){let i={},s=0;function o(a){let c=s;r.children(a).forEach(o),i[a]={low:c,lim:s++}}return r.children().forEach(o),i}return jv}var Uv,d_;function sH(){if(d_)return Uv;d_=1;let t=At();Uv={run:e,cleanup:s};function e(o){let a=t.addDummyNode(o,"root",{},"_root"),c=r(o),u=Object.values(c),l=t.applyWithChunking(Math.max,u)-1,d=2*l+1;o.graph().nestingRoot=a,o.edges().forEach(h=>o.edge(h).minlen*=d);let f=i(o)+1;o.children().forEach(h=>n(o,a,d,f,l,c,h)),o.graph().nodeRankFactor=d}function n(o,a,c,u,l,d,f){let h=o.children(f);if(!h.length){f!==a&&o.setEdge(a,f,{weight:0,minlen:c});return}let p=t.addBorderNode(o,"_bt"),g=t.addBorderNode(o,"_bb"),v=o.node(f);o.setParent(p,f),v.borderTop=p,o.setParent(g,f),v.borderBottom=g,h.forEach(m=>{n(o,a,c,u,l,d,m);let w=o.node(m),E=w.borderTop?w.borderTop:m,k=w.borderBottom?w.borderBottom:m,A=w.borderTop?u:2*u,I=E!==k?1:l-d[f]+1;o.setEdge(p,E,{weight:A,minlen:I,nestingEdge:!0}),o.setEdge(k,g,{weight:A,minlen:I,nestingEdge:!0})}),o.parent(f)||o.setEdge(a,p,{weight:0,minlen:l+d[f]})}function r(o){var a={};function c(u,l){var d=o.children(u);d&&d.length&&d.forEach(f=>c(f,l+1)),a[u]=l}return o.children().forEach(u=>c(u,1)),a}function i(o){return o.edges().reduce((a,c)=>a+o.edge(c).weight,0)}function s(o){var a=o.graph();o.removeNode(a.nestingRoot),delete a.nestingRoot,o.edges().forEach(c=>{var u=o.edge(c);u.nestingEdge&&o.removeEdge(c)})}return Uv}var Wv,f_;function oH(){if(f_)return Wv;f_=1;let t=At();Wv=e;function e(r){function i(s){let o=r.children(s),a=r.node(s);if(o.length&&o.forEach(i),Object.hasOwn(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(let c=a.minRank,u=a.maxRank+1;c<u;++c)n(r,"borderLeft","_bl",s,a,c),n(r,"borderRight","_br",s,a,c)}}r.children().forEach(i)}function n(r,i,s,o,a,c){let u={width:0,height:0,rank:c,borderType:i},l=a[i][c-1],d=t.addDummyNode(r,"border",u,s);a[i][c]=d,r.setParent(d,o),l&&r.setEdge(l,d,{weight:1})}return Wv}var Gv,h_;function aH(){if(h_)return Gv;h_=1,Gv={adjust:t,undo:e};function t(c){let u=c.graph().rankdir.toLowerCase();(u==="lr"||u==="rl")&&n(c)}function e(c){let u=c.graph().rankdir.toLowerCase();(u==="bt"||u==="rl")&&i(c),(u==="lr"||u==="rl")&&(o(c),n(c))}function n(c){c.nodes().forEach(u=>r(c.node(u))),c.edges().forEach(u=>r(c.edge(u)))}function r(c){let u=c.width;c.width=c.height,c.height=u}function i(c){c.nodes().forEach(u=>s(c.node(u))),c.edges().forEach(u=>{let l=c.edge(u);l.points.forEach(s),Object.hasOwn(l,"y")&&s(l)})}function s(c){c.y=-c.y}function o(c){c.nodes().forEach(u=>a(c.node(u))),c.edges().forEach(u=>{let l=c.edge(u);l.points.forEach(a),Object.hasOwn(l,"x")&&a(l)})}function a(c){let u=c.x;c.x=c.y,c.y=u}return Gv}var Hv,p_;function cH(){if(p_)return Hv;p_=1;let t=At();Hv=e;function e(n){let r={},i=n.nodes().filter(l=>!n.children(l).length),s=i.map(l=>n.node(l).rank),o=t.applyWithChunking(Math.max,s),a=t.range(o+1).map(()=>[]);function c(l){if(r[l])return;r[l]=!0;let d=n.node(l);a[d.rank].push(l),n.successors(l).forEach(c)}return i.sort((l,d)=>n.node(l).rank-n.node(d).rank).forEach(c),a}return Hv}var Vv,g_;function uH(){if(g_)return Vv;g_=1;let t=At().zipObject;Vv=e;function e(r,i){let s=0;for(let o=1;o<i.length;++o)s+=n(r,i[o-1],i[o]);return s}function n(r,i,s){let o=t(s,s.map((f,h)=>h)),a=i.flatMap(f=>r.outEdges(f).map(h=>({pos:o[h.w],weight:r.edge(h).weight})).sort((h,p)=>h.pos-p.pos)),c=1;for(;c<s.length;)c<<=1;let u=2*c-1;c-=1;let l=new Array(u).fill(0),d=0;return a.forEach(f=>{let h=f.pos+c;l[h]+=f.weight;let p=0;for(;h>0;)h%2&&(p+=l[h+1]),h=h-1>>1,l[h]+=f.weight;d+=f.weight*p}),d}return Vv}var Kv,m_;function lH(){if(m_)return Kv;m_=1,Kv=t;function t(e,n=[]){return n.map(r=>{let i=e.inEdges(r);if(i.length){let s=i.reduce((o,a)=>{let c=e.edge(a),u=e.node(a.v);return{sum:o.sum+c.weight*u.order,weight:o.weight+c.weight}},{sum:0,weight:0});return{v:r,barycenter:s.sum/s.weight,weight:s.weight}}else return{v:r}})}return Kv}var Yv,y_;function dH(){if(y_)return Yv;y_=1;let t=At();Yv=e;function e(i,s){let o={};i.forEach((c,u)=>{let l=o[c.v]={indegree:0,in:[],out:[],vs:[c.v],i:u};c.barycenter!==void 0&&(l.barycenter=c.barycenter,l.weight=c.weight)}),s.edges().forEach(c=>{let u=o[c.v],l=o[c.w];u!==void 0&&l!==void 0&&(l.indegree++,u.out.push(o[c.w]))});let a=Object.values(o).filter(c=>!c.indegree);return n(a)}function n(i){let s=[];function o(c){return u=>{u.merged||(u.barycenter===void 0||c.barycenter===void 0||u.barycenter>=c.barycenter)&&r(c,u)}}function a(c){return u=>{u.in.push(c),--u.indegree===0&&i.push(u)}}for(;i.length;){let c=i.pop();s.push(c),c.in.reverse().forEach(o(c)),c.out.forEach(a(c))}return s.filter(c=>!c.merged).map(c=>t.pick(c,["vs","i","barycenter","weight"]))}function r(i,s){let o=0,a=0;i.weight&&(o+=i.barycenter*i.weight,a+=i.weight),s.weight&&(o+=s.barycenter*s.weight,a+=s.weight),i.vs=s.vs.concat(i.vs),i.barycenter=o/a,i.weight=a,i.i=Math.min(s.i,i.i),s.merged=!0}return Yv}var Xv,v_;function fH(){if(v_)return Xv;v_=1;let t=At();Xv=e;function e(i,s){let o=t.partition(i,p=>Object.hasOwn(p,"barycenter")),a=o.lhs,c=o.rhs.sort((p,g)=>g.i-p.i),u=[],l=0,d=0,f=0;a.sort(r(!!s)),f=n(u,c,f),a.forEach(p=>{f+=p.vs.length,u.push(p.vs),l+=p.barycenter*p.weight,d+=p.weight,f=n(u,c,f)});let h={vs:u.flat(!0)};return d&&(h.barycenter=l/d,h.weight=d),h}function n(i,s,o){let a;for(;s.length&&(a=s[s.length-1]).i<=o;)s.pop(),i.push(a.vs),o++;return o}function r(i){return(s,o)=>s.barycenter<o.barycenter?-1:s.barycenter>o.barycenter?1:i?o.i-s.i:s.i-o.i}return Xv}var Jv,w_;function hH(){if(w_)return Jv;w_=1;let t=lH(),e=dH(),n=fH();Jv=r;function r(o,a,c,u){let l=o.children(a),d=o.node(a),f=d?d.borderLeft:void 0,h=d?d.borderRight:void 0,p={};f&&(l=l.filter(w=>w!==f&&w!==h));let g=t(o,l);g.forEach(w=>{if(o.children(w.v).length){let E=r(o,w.v,c,u);p[w.v]=E,Object.hasOwn(E,"barycenter")&&s(w,E)}});let v=e(g,c);i(v,p);let m=n(v,u);if(f&&(m.vs=[f,m.vs,h].flat(!0),o.predecessors(f).length)){let w=o.node(o.predecessors(f)[0]),E=o.node(o.predecessors(h)[0]);Object.hasOwn(m,"barycenter")||(m.barycenter=0,m.weight=0),m.barycenter=(m.barycenter*m.weight+w.order+E.order)/(m.weight+2),m.weight+=2}return m}function i(o,a){o.forEach(c=>{c.vs=c.vs.flatMap(u=>a[u]?a[u].vs:u)})}function s(o,a){o.barycenter!==void 0?(o.barycenter=(o.barycenter*o.weight+a.barycenter*a.weight)/(o.weight+a.weight),o.weight+=a.weight):(o.barycenter=a.barycenter,o.weight=a.weight)}return Jv}var Zv,b_;function pH(){if(b_)return Zv;b_=1;let t=mr().Graph,e=At();Zv=n;function n(i,s,o){let a=r(i),c=new t({compound:!0}).setGraph({root:a}).setDefaultNodeLabel(u=>i.node(u));return i.nodes().forEach(u=>{let l=i.node(u),d=i.parent(u);(l.rank===s||l.minRank<=s&&s<=l.maxRank)&&(c.setNode(u),c.setParent(u,d||a),i[o](u).forEach(f=>{let h=f.v===u?f.w:f.v,p=c.edge(h,u),g=p!==void 0?p.weight:0;c.setEdge(h,u,{weight:i.edge(f).weight+g})}),Object.hasOwn(l,"minRank")&&c.setNode(u,{borderLeft:l.borderLeft[s],borderRight:l.borderRight[s]}))}),c}function r(i){for(var s;i.hasNode(s=e.uniqueId("_root")););return s}return Zv}var Qv,E_;function gH(){if(E_)return Qv;E_=1,Qv=t;function t(e,n,r){let i={},s;r.forEach(o=>{let a=e.parent(o),c,u;for(;a;){if(c=e.parent(a),c?(u=i[c],i[c]=a):(u=s,s=a),u&&u!==a){n.setEdge(u,a);return}a=c}})}return Qv}var ew,D_;function mH(){if(D_)return ew;D_=1;let t=cH(),e=uH(),n=hH(),r=pH(),i=gH(),s=mr().Graph,o=At();ew=a;function a(d,f){if(f&&typeof f.customOrder=="function"){f.customOrder(d,a);return}let h=o.maxRank(d),p=c(d,o.range(1,h+1),"inEdges"),g=c(d,o.range(h-1,-1,-1),"outEdges"),v=t(d);if(l(d,v),f&&f.disableOptimalOrderHeuristic)return;let m=Number.POSITIVE_INFINITY,w;for(let E=0,k=0;k<4;++E,++k){u(E%2?p:g,E%4>=2),v=o.buildLayerMatrix(d);let A=e(d,v);A<m&&(k=0,w=Object.assign({},v),m=A)}l(d,w)}function c(d,f,h){return f.map(function(p){return r(d,p,h)})}function u(d,f){let h=new s;d.forEach(function(p){let g=p.graph().root,v=n(p,g,h,f);v.vs.forEach((m,w)=>p.node(m).order=w),i(p,h,v.vs)})}function l(d,f){Object.values(f).forEach(h=>h.forEach((p,g)=>d.node(p).order=g))}return ew}var tw,T_;function yH(){if(T_)return tw;T_=1;let t=mr().Graph,e=At();tw={positionX:h,findType1Conflicts:n,findType2Conflicts:r,addConflict:s,hasConflict:o,verticalAlignment:a,horizontalCompaction:c,alignCoordinates:d,findSmallestWidthAlignment:l,balance:f};function n(v,m){let w={};function E(k,A){let I=0,x=0,_=k.length,P=A[A.length-1];return A.forEach((N,C)=>{let D=i(v,N),R=D?v.node(D).order:_;(D||N===P)&&(A.slice(x,C+1).forEach(L=>{v.predecessors(L).forEach(G=>{let V=v.node(G),Z=V.order;(Z<I||R<Z)&&!(V.dummy&&v.node(L).dummy)&&s(w,G,L)})}),x=C+1,I=R)}),A}return m.length&&m.reduce(E),w}function r(v,m){let w={};function E(A,I,x,_,P){let N;e.range(I,x).forEach(C=>{N=A[C],v.node(N).dummy&&v.predecessors(N).forEach(D=>{let R=v.node(D);R.dummy&&(R.order<_||R.order>P)&&s(w,D,N)})})}function k(A,I){let x=-1,_,P=0;return I.forEach((N,C)=>{if(v.node(N).dummy==="border"){let D=v.predecessors(N);D.length&&(_=v.node(D[0]).order,E(I,P,C,x,_),P=C,x=_)}E(I,P,I.length,_,A.length)}),I}return m.length&&m.reduce(k),w}function i(v,m){if(v.node(m).dummy)return v.predecessors(m).find(w=>v.node(w).dummy)}function s(v,m,w){if(m>w){let k=m;m=w,w=k}let E=v[m];E||(v[m]=E={}),E[w]=!0}function o(v,m,w){if(m>w){let E=m;m=w,w=E}return!!v[m]&&Object.hasOwn(v[m],w)}function a(v,m,w,E){let k={},A={},I={};return m.forEach(x=>{x.forEach((_,P)=>{k[_]=_,A[_]=_,I[_]=P})}),m.forEach(x=>{let _=-1;x.forEach(P=>{let N=E(P);if(N.length){N=N.sort((D,R)=>I[D]-I[R]);let C=(N.length-1)/2;for(let D=Math.floor(C),R=Math.ceil(C);D<=R;++D){let L=N[D];A[P]===P&&_<I[L]&&!o(w,P,L)&&(A[L]=P,A[P]=k[P]=k[L],_=I[L])}}})}),{root:k,align:A}}function c(v,m,w,E,k){let A={},I=u(v,m,w,k),x=k?"borderLeft":"borderRight";function _(C,D){let R=I.nodes(),L=R.pop(),G={};for(;L;)G[L]?C(L):(G[L]=!0,R.push(L),R=R.concat(D(L))),L=R.pop()}function P(C){A[C]=I.inEdges(C).reduce((D,R)=>Math.max(D,A[R.v]+I.edge(R)),0)}function N(C){let D=I.outEdges(C).reduce((L,G)=>Math.min(L,A[G.w]-I.edge(G)),Number.POSITIVE_INFINITY),R=v.node(C);D!==Number.POSITIVE_INFINITY&&R.borderType!==x&&(A[C]=Math.max(A[C],D))}return _(P,I.predecessors.bind(I)),_(N,I.successors.bind(I)),Object.keys(E).forEach(C=>A[C]=A[w[C]]),A}function u(v,m,w,E){let k=new t,A=v.graph(),I=p(A.nodesep,A.edgesep,E);return m.forEach(x=>{let _;x.forEach(P=>{let N=w[P];if(k.setNode(N),_){var C=w[_],D=k.edge(C,N);k.setEdge(C,N,Math.max(I(v,P,_),D||0))}_=P})}),k}function l(v,m){return Object.values(m).reduce((w,E)=>{let k=Number.NEGATIVE_INFINITY,A=Number.POSITIVE_INFINITY;Object.entries(E).forEach(([x,_])=>{let P=g(v,x)/2;k=Math.max(_+P,k),A=Math.min(_-P,A)});const I=k-A;return I<w[0]&&(w=[I,E]),w},[Number.POSITIVE_INFINITY,null])[1]}function d(v,m){let w=Object.values(m),E=e.applyWithChunking(Math.min,w),k=e.applyWithChunking(Math.max,w);["u","d"].forEach(A=>{["l","r"].forEach(I=>{let x=A+I,_=v[x];if(_===m)return;let P=Object.values(_),N=E-e.applyWithChunking(Math.min,P);I!=="l"&&(N=k-e.applyWithChunking(Math.max,P)),N&&(v[x]=e.mapValues(_,C=>C+N))})})}function f(v,m){return e.mapValues(v.ul,(w,E)=>{if(m)return v[m.toLowerCase()][E];{let k=Object.values(v).map(A=>A[E]).sort((A,I)=>A-I);return(k[1]+k[2])/2}})}function h(v){let m=e.buildLayerMatrix(v),w=Object.assign(n(v,m),r(v,m)),E={},k;["u","d"].forEach(I=>{k=I==="u"?m:Object.values(m).reverse(),["l","r"].forEach(x=>{x==="r"&&(k=k.map(C=>Object.values(C).reverse()));let _=(I==="u"?v.predecessors:v.successors).bind(v),P=a(v,k,w,_),N=c(v,k,P.root,P.align,x==="r");x==="r"&&(N=e.mapValues(N,C=>-C)),E[I+x]=N})});let A=l(v,E);return d(E,A),f(E,v.graph().align)}function p(v,m,w){return(E,k,A)=>{let I=E.node(k),x=E.node(A),_=0,P;if(_+=I.width/2,Object.hasOwn(I,"labelpos"))switch(I.labelpos.toLowerCase()){case"l":P=-I.width/2;break;case"r":P=I.width/2;break}if(P&&(_+=w?P:-P),P=0,_+=(I.dummy?m:v)/2,_+=(x.dummy?m:v)/2,_+=x.width/2,Object.hasOwn(x,"labelpos"))switch(x.labelpos.toLowerCase()){case"l":P=x.width/2;break;case"r":P=-x.width/2;break}return P&&(_+=w?P:-P),P=0,_}}function g(v,m){return v.node(m).width}return tw}var nw,R_;function vH(){if(R_)return nw;R_=1;let t=At(),e=yH().positionX;nw=n;function n(i){i=t.asNonCompoundGraph(i),r(i),Object.entries(e(i)).forEach(([s,o])=>i.node(s).x=o)}function r(i){let s=t.buildLayerMatrix(i),o=i.graph().ranksep,a=0;s.forEach(c=>{const u=c.reduce((l,d)=>{const f=i.node(d).height;return l>f?l:f},0);c.forEach(l=>i.node(l).y=a+u/2),a+=u+o})}return nw}var rw,S_;function wH(){if(S_)return rw;S_=1;let t=eH(),e=tH(),n=rH(),r=At().normalizeRanks,i=iH(),s=At().removeEmptyRanks,o=sH(),a=oH(),c=aH(),u=mH(),l=vH(),d=At(),f=mr().Graph;rw=h;function h(H,Y){let Q=Y&&Y.debugTiming?d.time:d.notime;Q("layout",()=>{let ne=Q(" buildLayoutGraph",()=>_(H));Q(" runLayout",()=>p(ne,Q,Y)),Q(" updateInputGraph",()=>g(H,ne))})}function p(H,Y,Q){Y(" makeSpaceForEdgeLabels",()=>P(H)),Y(" removeSelfEdges",()=>Ne(H)),Y(" acyclic",()=>t.run(H)),Y(" nestingGraph.run",()=>o.run(H)),Y(" rank",()=>n(d.asNonCompoundGraph(H))),Y(" injectEdgeLabelProxies",()=>N(H)),Y(" removeEmptyRanks",()=>s(H)),Y(" nestingGraph.cleanup",()=>o.cleanup(H)),Y(" normalizeRanks",()=>r(H)),Y(" assignRankMinMax",()=>C(H)),Y(" removeEdgeLabelProxies",()=>D(H)),Y(" normalize.run",()=>e.run(H)),Y(" parentDummyChains",()=>i(H)),Y(" addBorderSegments",()=>a(H)),Y(" order",()=>u(H,Q)),Y(" insertSelfEdges",()=>se(H)),Y(" adjustCoordinateSystem",()=>c.adjust(H)),Y(" position",()=>l(H)),Y(" positionSelfEdges",()=>K(H)),Y(" removeBorderNodes",()=>Z(H)),Y(" normalize.undo",()=>e.undo(H)),Y(" fixupEdgeLabelCoords",()=>G(H)),Y(" undoCoordinateSystem",()=>c.undo(H)),Y(" translateGraph",()=>R(H)),Y(" assignNodeIntersects",()=>L(H)),Y(" reversePoints",()=>V(H)),Y(" acyclic.undo",()=>t.undo(H))}function g(H,Y){H.nodes().forEach(Q=>{let ne=H.node(Q),fe=Y.node(Q);ne&&(ne.x=fe.x,ne.y=fe.y,ne.rank=fe.rank,Y.children(Q).length&&(ne.width=fe.width,ne.height=fe.height))}),H.edges().forEach(Q=>{let ne=H.edge(Q),fe=Y.edge(Q);ne.points=fe.points,Object.hasOwn(fe,"x")&&(ne.x=fe.x,ne.y=fe.y)}),H.graph().width=Y.graph().width,H.graph().height=Y.graph().height}let v=["nodesep","edgesep","ranksep","marginx","marginy"],m={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},w=["acyclicer","ranker","rankdir","align"],E=["width","height"],k={width:0,height:0},A=["minlen","weight","width","height","labeloffset"],I={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},x=["labelpos"];function _(H){let Y=new f({multigraph:!0,compound:!0}),Q=at(H.graph());return Y.setGraph(Object.assign({},m,Te(Q,v),d.pick(Q,w))),H.nodes().forEach(ne=>{let fe=at(H.node(ne));const Ee=Te(fe,E);Object.keys(k).forEach(me=>{Ee[me]===void 0&&(Ee[me]=k[me])}),Y.setNode(ne,Ee),Y.setParent(ne,H.parent(ne))}),H.edges().forEach(ne=>{let fe=at(H.edge(ne));Y.setEdge(ne,Object.assign({},I,Te(fe,A),d.pick(fe,x)))}),Y}function P(H){let Y=H.graph();Y.ranksep/=2,H.edges().forEach(Q=>{let ne=H.edge(Q);ne.minlen*=2,ne.labelpos.toLowerCase()!=="c"&&(Y.rankdir==="TB"||Y.rankdir==="BT"?ne.width+=ne.labeloffset:ne.height+=ne.labeloffset)})}function N(H){H.edges().forEach(Y=>{let Q=H.edge(Y);if(Q.width&&Q.height){let ne=H.node(Y.v),Ee={rank:(H.node(Y.w).rank-ne.rank)/2+ne.rank,e:Y};d.addDummyNode(H,"edge-proxy",Ee,"_ep")}})}function C(H){let Y=0;H.nodes().forEach(Q=>{let ne=H.node(Q);ne.borderTop&&(ne.minRank=H.node(ne.borderTop).rank,ne.maxRank=H.node(ne.borderBottom).rank,Y=Math.max(Y,ne.maxRank))}),H.graph().maxRank=Y}function D(H){H.nodes().forEach(Y=>{let Q=H.node(Y);Q.dummy==="edge-proxy"&&(H.edge(Q.e).labelRank=Q.rank,H.removeNode(Y))})}function R(H){let Y=Number.POSITIVE_INFINITY,Q=0,ne=Number.POSITIVE_INFINITY,fe=0,Ee=H.graph(),me=Ee.marginx||0,ae=Ee.marginy||0;function M(U){let oe=U.x,W=U.y,Oe=U.width,mt=U.height;Y=Math.min(Y,oe-Oe/2),Q=Math.max(Q,oe+Oe/2),ne=Math.min(ne,W-mt/2),fe=Math.max(fe,W+mt/2)}H.nodes().forEach(U=>M(H.node(U))),H.edges().forEach(U=>{let oe=H.edge(U);Object.hasOwn(oe,"x")&&M(oe)}),Y-=me,ne-=ae,H.nodes().forEach(U=>{let oe=H.node(U);oe.x-=Y,oe.y-=ne}),H.edges().forEach(U=>{let oe=H.edge(U);oe.points.forEach(W=>{W.x-=Y,W.y-=ne}),Object.hasOwn(oe,"x")&&(oe.x-=Y),Object.hasOwn(oe,"y")&&(oe.y-=ne)}),Ee.width=Q-Y+me,Ee.height=fe-ne+ae}function L(H){H.edges().forEach(Y=>{let Q=H.edge(Y),ne=H.node(Y.v),fe=H.node(Y.w),Ee,me;Q.points?(Ee=Q.points[0],me=Q.points[Q.points.length-1]):(Q.points=[],Ee=fe,me=ne),Q.points.unshift(d.intersectRect(ne,Ee)),Q.points.push(d.intersectRect(fe,me))})}function G(H){H.edges().forEach(Y=>{let Q=H.edge(Y);if(Object.hasOwn(Q,"x"))switch((Q.labelpos==="l"||Q.labelpos==="r")&&(Q.width-=Q.labeloffset),Q.labelpos){case"l":Q.x-=Q.width/2+Q.labeloffset;break;case"r":Q.x+=Q.width/2+Q.labeloffset;break}})}function V(H){H.edges().forEach(Y=>{let Q=H.edge(Y);Q.reversed&&Q.points.reverse()})}function Z(H){H.nodes().forEach(Y=>{if(H.children(Y).length){let Q=H.node(Y),ne=H.node(Q.borderTop),fe=H.node(Q.borderBottom),Ee=H.node(Q.borderLeft[Q.borderLeft.length-1]),me=H.node(Q.borderRight[Q.borderRight.length-1]);Q.width=Math.abs(me.x-Ee.x),Q.height=Math.abs(fe.y-ne.y),Q.x=Ee.x+Q.width/2,Q.y=ne.y+Q.height/2}}),H.nodes().forEach(Y=>{H.node(Y).dummy==="border"&&H.removeNode(Y)})}function Ne(H){H.edges().forEach(Y=>{if(Y.v===Y.w){var Q=H.node(Y.v);Q.selfEdges||(Q.selfEdges=[]),Q.selfEdges.push({e:Y,label:H.edge(Y)}),H.removeEdge(Y)}})}function se(H){var Y=d.buildLayerMatrix(H);Y.forEach(Q=>{var ne=0;Q.forEach((fe,Ee)=>{var me=H.node(fe);me.order=Ee+ne,(me.selfEdges||[]).forEach(ae=>{d.addDummyNode(H,"selfedge",{width:ae.label.width,height:ae.label.height,rank:me.rank,order:Ee+ ++ne,e:ae.e,label:ae.label},"_se")}),delete me.selfEdges})})}function K(H){H.nodes().forEach(Y=>{var Q=H.node(Y);if(Q.dummy==="selfedge"){var ne=H.node(Q.e.v),fe=ne.x+ne.width/2,Ee=ne.y,me=Q.x-fe,ae=ne.height/2;H.setEdge(Q.e,Q.label),H.removeNode(Y),Q.label.points=[{x:fe+2*me/3,y:Ee-ae},{x:fe+5*me/6,y:Ee-ae},{x:fe+me,y:Ee},{x:fe+5*me/6,y:Ee+ae},{x:fe+2*me/3,y:Ee+ae}],Q.label.x=Q.x,Q.label.y=Q.y}})}function Te(H,Y){return d.mapValues(d.pick(H,Y),Number)}function at(H){var Y={};return H&&Object.entries(H).forEach(([Q,ne])=>{typeof Q=="string"&&(Q=Q.toLowerCase()),Y[Q]=ne}),Y}return rw}var iw,k_;function bH(){if(k_)return iw;k_=1;let t=At(),e=mr().Graph;iw={debugOrdering:n};function n(r){let i=t.buildLayerMatrix(r),s=new e({compound:!0,multigraph:!0}).setGraph({});return r.nodes().forEach(o=>{s.setNode(o,{label:o}),s.setParent(o,"layer"+r.node(o).rank)}),r.edges().forEach(o=>s.setEdge(o.v,o.w,{},o.name)),i.forEach((o,a)=>{let c="layer"+a;s.setNode(c,{rank:"same"}),o.reduce((u,l)=>(s.setEdge(u,l,{style:"invis"}),l))}),s}return iw}var sw,$_;function EH(){return $_||($_=1,sw="1.1.4"),sw}var ow,C_;function DH(){return C_||(C_=1,ow={graphlib:mr(),layout:wH(),debug:bH(),util:{time:At().time,notime:At().notime},version:EH()}),ow}var ch=DH(),uh={exports:{}},__;function TH(){return __||(__=1,function(t,e){var n=Rk;e=t.exports=r;function r(d,f){return f=o(d,f),c(d,f)}e.sha1=function(d){return r(d)},e.keys=function(d){return r(d,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},e.MD5=function(d){return r(d,{algorithm:"md5",encoding:"hex"})},e.keysMD5=function(d){return r(d,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var i=n.getHashes?n.getHashes().slice():["sha1","md5"];i.push("passthrough");var s=["buffer","hex","binary","base64"];function o(d,f){f=f||{};var h={};if(h.algorithm=f.algorithm||"sha1",h.encoding=f.encoding||"hex",h.excludeValues=!!f.excludeValues,h.algorithm=h.algorithm.toLowerCase(),h.encoding=h.encoding.toLowerCase(),h.ignoreUnknown=f.ignoreUnknown===!0,h.respectType=f.respectType!==!1,h.respectFunctionNames=f.respectFunctionNames!==!1,h.respectFunctionProperties=f.respectFunctionProperties!==!1,h.unorderedArrays=f.unorderedArrays===!0,h.unorderedSets=f.unorderedSets!==!1,h.unorderedObjects=f.unorderedObjects!==!1,h.replacer=f.replacer||void 0,h.excludeKeys=f.excludeKeys||void 0,typeof d>"u")throw new Error("Object argument required.");for(var p=0;p<i.length;++p)i[p].toLowerCase()===h.algorithm.toLowerCase()&&(h.algorithm=i[p]);if(i.indexOf(h.algorithm)===-1)throw new Error('Algorithm "'+h.algorithm+'" not supported. supported values: '+i.join(", "));if(s.indexOf(h.encoding)===-1&&h.algorithm!=="passthrough")throw new Error('Encoding "'+h.encoding+'" not supported. supported values: '+s.join(", "));return h}function a(d){if(typeof d!="function")return!1;var f=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return f.exec(Function.prototype.toString.call(d))!=null}function c(d,f){var h;f.algorithm!=="passthrough"?h=n.createHash(f.algorithm):h=new l,typeof h.write>"u"&&(h.write=h.update,h.end=h.update);var p=u(f,h);if(p.dispatch(d),h.update||h.end(""),h.digest)return h.digest(f.encoding==="buffer"?void 0:f.encoding);var g=h.read();return f.encoding==="buffer"?g:g.toString(f.encoding)}e.writeToStream=function(d,f,h){return typeof h>"u"&&(h=f,f={}),f=o(d,f),u(f,h).dispatch(d)};function u(d,f,h){h=h||[];var p=function(g){return f.update?f.update(g,"utf8"):f.write(g,"utf8")};return{dispatch:function(g){d.replacer&&(g=d.replacer(g));var v=typeof g;return g===null&&(v="null"),this["_"+v](g)},_object:function(g){var v=/\[object (.*)\]/i,m=Object.prototype.toString.call(g),w=v.exec(m);w?w=w[1]:w="unknown:["+m+"]",w=w.toLowerCase();var E=null;if((E=h.indexOf(g))>=0)return this.dispatch("[CIRCULAR:"+E+"]");if(h.push(g),typeof Buffer<"u"&&Buffer.isBuffer&&Buffer.isBuffer(g))return p("buffer:"),p(g);if(w!=="object"&&w!=="function"&&w!=="asyncfunction")if(this["_"+w])this["_"+w](g);else{if(d.ignoreUnknown)return p("["+w+"]");throw new Error('Unknown object type "'+w+'"')}else{var k=Object.keys(g);d.unorderedObjects&&(k=k.sort()),d.respectType!==!1&&!a(g)&&k.splice(0,0,"prototype","__proto__","constructor"),d.excludeKeys&&(k=k.filter(function(I){return!d.excludeKeys(I)})),p("object:"+k.length+":");var A=this;return k.forEach(function(I){A.dispatch(I),p(":"),d.excludeValues||A.dispatch(g[I]),p(",")})}},_array:function(g,v){v=typeof v<"u"?v:d.unorderedArrays!==!1;var m=this;if(p("array:"+g.length+":"),!v||g.length<=1)return g.forEach(function(k){return m.dispatch(k)});var w=[],E=g.map(function(k){var A=new l,I=h.slice(),x=u(d,A,I);return x.dispatch(k),w=w.concat(I.slice(h.length)),A.read().toString()});return h=h.concat(w),E.sort(),this._array(E,!1)},_date:function(g){return p("date:"+g.toJSON())},_symbol:function(g){return p("symbol:"+g.toString())},_error:function(g){return p("error:"+g.toString())},_boolean:function(g){return p("bool:"+g.toString())},_string:function(g){p("string:"+g.length+":"),p(g.toString())},_function:function(g){p("fn:"),a(g)?this.dispatch("[native]"):this.dispatch(g.toString()),d.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(g.name)),d.respectFunctionProperties&&this._object(g)},_number:function(g){return p("number:"+g.toString())},_xml:function(g){return p("xml:"+g.toString())},_null:function(){return p("Null")},_undefined:function(){return p("Undefined")},_regexp:function(g){return p("regex:"+g.toString())},_uint8array:function(g){return p("uint8array:"),this.dispatch(Array.prototype.slice.call(g))},_uint8clampedarray:function(g){return p("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(g))},_int8array:function(g){return p("int8array:"),this.dispatch(Array.prototype.slice.call(g))},_uint16array:function(g){return p("uint16array:"),this.dispatch(Array.prototype.slice.call(g))},_int16array:function(g){return p("int16array:"),this.dispatch(Array.prototype.slice.call(g))},_uint32array:function(g){return p("uint32array:"),this.dispatch(Array.prototype.slice.call(g))},_int32array:function(g){return p("int32array:"),this.dispatch(Array.prototype.slice.call(g))},_float32array:function(g){return p("float32array:"),this.dispatch(Array.prototype.slice.call(g))},_float64array:function(g){return p("float64array:"),this.dispatch(Array.prototype.slice.call(g))},_arraybuffer:function(g){return p("arraybuffer:"),this.dispatch(new Uint8Array(g))},_url:function(g){return p("url:"+g.toString())},_map:function(g){p("map:");var v=Array.from(g);return this._array(v,d.unorderedSets!==!1)},_set:function(g){p("set:");var v=Array.from(g);return this._array(v,d.unorderedSets!==!1)},_file:function(g){return p("file:"),this.dispatch([g.name,g.size,g.type,g.lastModfied])},_blob:function(){if(d.ignoreUnknown)return p("[blob]");throw Error(`Hashing Blob objects is currently not supported
1723
+ (see https://github.com/puleos/object-hash/issues/26)
1724
+ Use "options.replacer" or "options.ignoreUnknown"
1725
+ `)},_domwindow:function(){return p("domwindow")},_bigint:function(g){return p("bigint:"+g.toString())},_process:function(){return p("process")},_timer:function(){return p("timer")},_pipe:function(){return p("pipe")},_tcp:function(){return p("tcp")},_udp:function(){return p("udp")},_tty:function(){return p("tty")},_statwatcher:function(){return p("statwatcher")},_securecontext:function(){return p("securecontext")},_connection:function(){return p("connection")},_zlib:function(){return p("zlib")},_context:function(){return p("context")},_nodescript:function(){return p("nodescript")},_httpparser:function(){return p("httpparser")},_dataview:function(){return p("dataview")},_signal:function(){return p("signal")},_fsevent:function(){return p("fsevent")},_tlswrap:function(){return p("tlswrap")}}}function l(){return{buf:"",write:function(d){this.buf+=d},end:function(d){this.buf+=d},read:function(){return this.buf}}}}(uh,uh.exports)),uh.exports}var RH=TH();function A_(t){const e={id:t.id,__:t.__??"element",autoLayout:t.autoLayout,nodes:Qe(t.nodes,ht(nk(["id","title","description","technology","shape","icon","children"])),yi(({id:n,icon:r,...i})=>[n,{...i,icon:ce(r)?"Y":"N"}])),edges:Qe(t.edges,ht(nk(["source","target","label","description","technology","dir","head","tail","line"])),yi(({source:n,target:r,...i})=>[`${n}:${r}`,i]))};return t.hash=RH(e,{ignoreUnknown:!0,respectType:!1}),t}function kn(t){if(ye.isElementWhere(t)){const e=kn(t.where.expr),n=Eo(t.where.condition);return r=>e(r)&&n(r)}if(ye.isWildcard(t))return()=>!0;if(ye.isElementKindExpr(t))return t.isEqual?e=>e.kind===t.elementKind:e=>e.kind!==t.elementKind;if(ye.isElementTagExpr(t))return t.isEqual?({tags:e})=>!!e&&e.includes(t.elementTag):({tags:e})=>_t(e)||!e.includes(t.elementTag);if(ye.isExpandedElementExpr(t))return e=>e.id===t.expanded||bt(e.id)===t.expanded;if(ye.isElementRef(t)){const{element:e,isDescedants:n}=t;return n?r=>r.id.startsWith(e+"."):r=>r.id===e}if(ye.isCustomElement(t))return kn(t.custom.expr);Me(t)}function x_(t,e){const n=t.flatMap(i=>"include"in i?i.include.filter(ye.isCustomElement):[]);if(n.length===0)return e;const r=[...e];for(const{custom:{expr:i,...s}}of n){const{border:o,opacity:a,...c}=tk(s,_t),u=!Hi(c),l=kn(i);r.forEach((d,f)=>{if(!l(d))return;u&&(d={...d,isCustomized:!0,...c});let h;o!==void 0&&(h={border:o}),a!==void 0&&(h={...h,opacity:a}),h&&(d={...d,isCustomized:!0,style:{...d.style,...h}}),r[f]=d})}return r}function I_(t){switch(!0){case ye.isRelationWhere(t):return I_(t.where.expr);case ye.isRelation(t):{const e=kn(t.source),n=kn(t.target);return r=>e(r.source)&&n(r.target)||!!t.isBidirectional&&e(r.target)&&n(r.source)}case ye.isInOut(t):{const e=kn(t.inout);return n=>e(n.source)||e(n.target)}case ye.isIncoming(t):{const e=kn(t.incoming);return n=>e(n.target)}case ye.isOutgoing(t):{const e=kn(t.outgoing);return n=>e(n.source)}default:Me(t)}}function SH(t,e,n){const r=t.flatMap(s=>"include"in s?s.include.filter(ye.isCustomRelationExpr):[]),i=Array.from(n);if(r.length===0||i.length===0)return i;for(const{customRelation:{relation:s,title:o,...a}}of r){const c=tk(a,_t),u=I_(s);i.forEach((l,d)=>{const f=e.find(p=>p.id===l.source),h=e.find(p=>p.id===l.target);!f||!h||u({source:f,target:h})&&(i[d]={...l,label:o??l.label,isCustomized:!0,...c})})}return i}function P_(t,e){const n=t.filter(C2);if(n.length===0)return e;for(const r of n){const i=[];for(const s of r.targets){if(ye.isWildcard(s)){i.push(()=>!0);break}i.push(kn(s))}tt(e,zU(i)).forEach(s=>{s.shape=r.style.shape??s.shape,s.color=r.style.color??s.color,Ot(r.style.icon)&&(s.icon=r.style.icon),Ot(r.notation)&&(s.notation=r.notation);let o;Ot(r.style.border)&&(o={border:r.style.border}),Ot(r.style.opacity)&&(o={...o,opacity:r.style.opacity}),o&&(s.style={...s.style,...o})})}return e}function kH(t,e){let n;for(;t.parent&&(n=e.get(t.parent));){const r=n.depth??1;if(n.depth=Math.max(r,(t.depth??0)+1),n.depth===r)break;t=n}}function N_(t){return Array.from(t).sort(dg).reduce((e,{id:n,color:r,shape:i,style:s,...o})=>{let a=bt(n),c=0;for(;a;){const l=e.get(a);if(l){l.children.length==0&&(l.depth=1,kH(l,e)),l.children.push(n),c=l.level+1;break}a=bt(a)}const u={...o,id:n,parent:a,level:c,color:r??_a,shape:i??eg,children:[],inEdges:[],outEdges:[],style:{...s}};return e.set(n,u),e},new Map)}function O_(t){return Qe(t,Yf(Br("notation")),Wi(zy(Yf(Br("shape")),Wi(zy(Yf(Br("color")),Wi(zy(ht(Br("kind")),Mr())),ta(),ht(([e,n])=>({kinds:n,color:e})))),ta(),Vi(([e,n])=>n.map(({color:r,kinds:i})=>({shape:e,color:r,kinds:i}))))),ta(),Vi(([e,n])=>n.map(({shape:r,color:i,kinds:s})=>({title:e,shape:r,color:i,kinds:s}))),nU(Br("shape"),Br("title"),[e=>e.kinds.length,"desc"]))}const F_=ch.graphlib.Graph,L_=ch.graphlib.alg.postorder,$H=ch.graphlib.alg.findCycles,CH=ch.graphlib.alg.isAcyclic;function _H(t){t.forEach(e=>{e.children.length>0&&(e.children=t.flatMap(n=>n.parent===e.id?n.id:[]))})}function AH({nodes:t,edges:e}){if(e.length===0)return t;const n=new F_({compound:!1,directed:!0,multigraph:!1}),r=a=>rt(t.find(c=>c.id===a),"Edge not found"),i=a=>rt(e.find(c=>c.id===a),"Edge not found");for(const a of[...e].sort(La))n.setEdge(a.source,a.target);for(const a of t)n.setNode(a.id,a.id),a.children.length>0&&a.inEdges.forEach(c=>{const u=i(c);u.target!==a.id&&r(u.source).children.length===0&&n.setEdge(u.source,a.id)}),a.parent&&n.setEdge(a.parent,a.id);let s=n.sources();s.length===0&&(s=Qe(t,Kc(dg),tt(a=>a.inEdges.length===0||a.parent===null),ht(a=>a.id)));const o=L_(n,s).reverse().map(r);if(o.length<t.length){const a=FU(t,o);o.push(...a)}return we(o.length===t.length,"Not all nodes were processed by graphlib"),_H(o),o}function xH(t){const e=Qe(t,Vi(n=>n.tags??[]),Mr(),Kc(cd));return ad(e,1)?e:null}const yr=()=>!0,aw=t=>t,cw=t=>t===yr?aw:tt(t),IH=t=>t===yr?aw:e=>t(e)?e:null;function PH(t,e=yr){const n=[...this.resolvedElements],r=cw(e)(t.isDescedants===!0?this.graph.childrenOrElement(t.element):[this.graph.element(t.element)]);if(r.length!==0&&(this.addElement(...r),r.length>1&&this.addEdges(this.graph.edgesWithin(r)),n.length>0&&r.length>0))for(const i of r)this.addEdges(this.graph.anyEdgesBetween(i,n))}function NH(t,e=yr){const n=[...this.resolvedElements].filter(ak([kn(t),e]));this.excludeElement(...n)}function OH(t,e=yr){const n=this.root;if(!n){const u=this.graph.rootElements.filter(e);if(u.length<=0)return;const l=[...this.resolvedElements];if(this.addElement(...u),this.addEdges(this.graph.edgesWithin(u)),l.length>0)for(const d of u)this.addEdges(this.graph.anyEdgesBetween(d,l));return}const r=[...this.resolvedElements],i=IH(e)(this.graph.element(n));i&&this.addElement(i);const s=cw(e),o=s(this.graph.children(n)),a=o.length>0;a?(this.addElement(...o),this.addEdges(this.graph.edgesWithin(o))):i&&o.push(i);const c=[...r,...s([...this.graph.siblings(n),...this.graph.ancestors(n).flatMap(u=>this.graph.siblings(u.id))])];for(const u of o)this.addEdges(this.graph.anyEdgesBetween(u,c));if(!a&&i&&this.graph.anyEdgesBetween(i,this.graph.siblings(n)).length===0){const u=bt(n),l=u&&this.graph.element(u);l&&e(l)&&this.addElement(l)}}function FH(t,e=yr){if(e!==yr){const r=[...this.resolvedElements].filter(e);this.excludeElement(...r);return}const n=this.root;n?(this.excludeElement(this.graph.element(n),...this.graph.children(n)),this.excludeRelation(...this.graph.connectedRelations(n))):this.reset()}function LH(t,e=yr){const n=cw(e),r=[...this.resolvedElements],i=this.graph.element(t.expanded);if(e(i)){this.addElement(i);const o=this.graph.anyEdgesBetween(i,r);this.addEdges(o)}const s=[];for(const o of n(this.graph.children(t.expanded))){this.addImplicit(o);const a=this.graph.anyEdgesBetween(o,r);a.length>0&&(this.addEdges(a),s.push(o))}s.length>1&&this.addEdges(this.graph.edgesWithin(s))}function MH(t,e=yr){const n=[...this.resolvedElements].filter(ak([kn(t),e]));this.excludeElement(...n)}const M_=t=>t.isEqual?ye.isElementKindExpr(t)?e=>e.kind===t.elementKind:({tags:e})=>!!e&&e.includes(t.elementTag):ye.isElementKindExpr(t)?e=>e.kind!==t.elementKind:({tags:e})=>_t(e)||e.length===0||!e.includes(t.elementTag);function zH(t,e=yr){const n=this.graph.elements.filter(M_(t)).filter(e);if(n.length>0){const r=[...this.resolvedElements];this.addElement(...n),this.addEdges(this.graph.edgesWithin(n));for(const i of n)this.addEdges(this.graph.anyEdgesBetween(i,r))}}function BH(t,e=yr){const n=[...this.resolvedElements].filter(M_(t)).filter(e);n.length>0&&this.excludeElement(...n)}function Au(t){return ye.isElementRef(t)?this.graph.ascendingSiblings(t.element):this.root?this.graph.ascendingSiblings(this.root):this.graph.rootElements}function lh(t){return ye.isWildcard(t)?this.root?[...this.graph.children(this.root),this.graph.element(this.root)]:this.graph.rootElements:ye.isElementKindExpr(t)?this.graph.elements.filter(e=>t.isEqual?e.kind===t.elementKind:e.kind!==t.elementKind):ye.isElementTagExpr(t)?this.graph.elements.filter(e=>{const n=e.tags;return t.isEqual?!!n&&n.includes(t.elementTag):_t(n)||n.length===0||!n.includes(t.elementTag)}):ye.isExpandedElementExpr(t)?[this.graph.element(t.expanded)]:ye.isElementRef(t)?this.root===t.element&&t.isDescedants!==!0?[...this.graph.children(this.root),this.graph.element(this.root)]:t.isDescedants?this.graph.childrenOrElement(t.element):[this.graph.element(t.element)]:Me(t)}function z_(t){if(ye.isWildcard(t)){if(!this.root)return[];const r=this.graph.ascendingSiblings(this.root),i=[...this.graph.children(this.root),this.graph.element(this.root)];return this.graph.edgesBetween(r,i)}const e=lh.call(this,t);if(e.length===0)return[];let n=[...this.resolvedElements];if(ye.isElementRef(t)||ye.isExpandedElementExpr(t)){const r=t.element??t.expanded,i=t.isDescedants??!1;n=n.filter(s=>!kr(r,s.id)||i&&bt(s.id)===r)}return n.length===0&&(n=Au.call(this,t)),this.graph.edgesBetween(n,e)}const xu=(t,e)=>e?Qe(t,ht(n=>({...n,relations:n.relations.filter(e)})),tt(n=>n.relations.length>0)):t,uw=(t,e)=>Qe(t,Vi(n=>n.relations),e?tt(e):aw,Mr());function qH(t,e){const n=xu(z_.call(this,t.incoming),e);n.length!==0&&(this.addEdges(n),this.addImplicit(...n.map(r=>r.target)))}function jH(t,e){let n=uw(z_.call(this,t.incoming),e);this.excludeRelation(...n)}function B_(t){if(ye.isWildcard(t)){if(!this.root)return[];const r=this.graph.ascendingSiblings(this.root),i=[...this.graph.children(this.root),this.graph.element(this.root)];return this.graph.edgesBetween(i,r)}const e=lh.call(this,t);if(e.length===0)return[];let n=[...this.resolvedElements];if(ye.isElementRef(t)||ye.isExpandedElementExpr(t)){const r=t.element??t.expanded,i=t.isDescedants??!1;n=n.filter(s=>!kr(r,s.id)||i&&bt(s.id)===r)}return n.length===0&&(n=Au.call(this,t)),this.graph.edgesBetween(e,n)}function UH(t,e){const n=xu(B_.call(this,t.outgoing),e);n.length!==0&&(this.addEdges(n),this.addImplicit(...n.map(r=>r.source)))}function WH(t,e){const n=uw(B_.call(this,t.outgoing),e);this.excludeRelation(...n)}var dh;(t=>{t.Empty={implicits:[],edges:[]}})(dh||(dh={}));function q_({inout:t},e){if(ye.isWildcard(t)){if(!this.root)return dh.Empty;const i=this.graph.ascendingSiblings(this.root);return{edges:xu(this.graph.anyEdgesBetween(this.graph.element(this.root),i),e),implicits:[]}}const n=lh.call(this,t);if(n.length===0)return dh.Empty;let r=[...this.resolvedElements];if(ye.isElementRef(t)||ye.isExpandedElementExpr(t)){const i=t.element??t.expanded,s=t.isDescedants??!1;r=r.filter(o=>!kr(i,o.id)||s&&bt(o.id)===i)}return r.length===0&&(r=Au.call(this,t)),n.reduce((i,s)=>{const o=xu(this.graph.anyEdgesBetween(s,r),e);return o.length>0&&(i.implicits.push(s),i.edges.push(...o)),i},{implicits:[],edges:[]})}function GH(t,e){const{implicits:n,edges:r}=q_.call(this,t,e);this.addEdges(r),this.addImplicit(...n)}function HH(t,e){const{edges:n}=q_.call(this,t,e);this.excludeRelation(...n.flatMap(r=>r.relations))}function fh(t){return ye.isElementRef(t)&&this.root===t.element&&t.isDescedants!==!0?[...this.graph.children(t.element),this.graph.element(t.element)]:ye.isExpandedElementExpr(t)&&this.root===t.expanded?[...this.graph.children(t.expanded),this.graph.element(t.expanded)]:lh.call(this,t)}function VH(t,e){let n,r;ye.isWildcard(t.source)&&!ye.isWildcard(t.target)?(n=Au.call(this,t.target),r=fh.call(this,t.target)):!ye.isWildcard(t.source)&&ye.isWildcard(t.target)?(n=fh.call(this,t.source),r=Au.call(this,t.source)):(n=fh.call(this,t.source),r=fh.call(this,t.target));const i=this.graph.edgesBetween(n,r);t.isBidirectional===!0&&i.push(...this.graph.edgesBetween(r,n)),this.addEdges(xu(i,e))}function KH(t,e){const n=kn(t.source),r=kn(t.target),i=a=>{let c=n(a.source)&&r(a.target);return!c&&t.isBidirectional&&(c=n(a.target)&&r(a.source)),c},s=this.edges.filter(i),o=uw(s,e);this.excludeRelation(...o)}function YH(t,e){return La({source:t.source.id,target:t.target.id},{source:e.source.id,target:e.target.id})}let XH=class xN{constructor(e,n){this.view=e,this.graph=n}explicits=new Set;implicits=new Set;ctxEdges=[];static elementView(e,n){return new xN(e,n).compute()}compute(){this.reset();const{docUri:e,rules:n,...r}=this.view,i=n.filter($2);this.root&&i.length==0&&this.addElement(this.graph.element(this.root)),this.processPredicates(i),this.removeRedundantImplicitEdges();const s=[...this.includedElements],o=N_(s),a=new Map,c=this.computeEdges();for(const p of c){a.set(p.id,p);const g=o.get(p.source),v=o.get(p.target);for(we(g,`Source node ${p.source} not found`),we(v,`Target node ${p.target} not found`);p.parent&&!o.has(p.parent);)p.parent=bt(p.parent);g.outEdges.push(p.id),v.inEdges.push(p.id);for(const m of sr(p.source)){if(m===p.parent)break;o.get(m)?.outEdges.push(p.id)}for(const m of sr(p.target)){if(m===p.parent)break;o.get(m)?.inEdges.push(p.id)}}const u=s.flatMap(p=>o.get(p.id)??[]),l=x_(n,P_(n,AH({nodes:u,edges:c}))),d=new Set([...l.flatMap(p=>p.children.length===0?p.outEdges.flatMap(g=>a.get(g)??[]):[]),...c]),f=this.view.rules.findLast(Yb),h=O_(l);return A_({...r,autoLayout:{direction:f?.direction??"TB",...f?.nodeSep&&{nodeSep:f.nodeSep},...f?.rankSep&&{rankSep:f.rankSep}},nodes:ht(l,rk(["notation"])),edges:SH(n,l,d),...h.length>0&&{notation:{elements:h}}})}get root(){return sg(this.view)?this.view.viewOf:null}computeEdges(){return this.ctxEdges.map(e=>{we(zr(e.relations,1),"Edge must have at least one relation");const n=Kc(e.relations,La),r=e.source.id,i=e.target.id,s={id:`${r}:${i}`,parent:Ts(r,i),source:r,target:i,label:null,relations:n.map(c=>c.id)};let o;if(o=Sn(n)??Qe(n,tt(c=>c.source===r&&c.target===i),Sn()),!o){const c=Qe(n,Q1((u,l)=>(ce(l.title)&&!u.title.includes(l.title)&&u.title.push(l.title),ce(l.description)&&!u.description.includes(l.description)&&u.description.push(l.description),ce(l.technology)&&!u.technology.includes(l.technology)&&u.technology.push(l.technology),ce(l.kind)&&!u.kind.includes(l.kind)&&u.kind.push(l.kind),ce(l.color)&&!u.color.includes(l.color)&&u.color.push(l.color),ce(l.line)&&!u.line.includes(l.line)&&u.line.push(l.line),ce(l.head)&&!u.head.includes(l.head)&&u.head.push(l.head),ce(l.tail)&&!u.tail.includes(l.tail)&&u.tail.push(l.tail),ce(l.navigateTo)&&!u.navigateTo.includes(l.navigateTo)&&u.navigateTo.push(l.navigateTo),u),{title:[],description:[],technology:[],kind:[],head:[],tail:[],color:[],line:[],navigateTo:[]}));o={title:Sn(c.title)??"[...]",description:Sn(c.description),technology:Sn(c.technology),kind:Sn(c.kind),head:Sn(c.head),tail:Sn(c.tail),color:Sn(c.color),line:Sn(c.line),navigateTo:Sn(c.navigateTo)}}const a=xH(n);return Object.assign(s,this.getEdgeLabel(o),ce(o.description)&&{description:o.description},ce(o.technology)&&{technology:o.technology},ce(o.kind)&&{kind:o.kind},o.color&&{color:o.color},o.line&&{line:o.line},o.head&&{head:o.head},o.tail&&{tail:o.tail},o.navigateTo&&{navigateTo:o.navigateTo},a&&{tags:a})})}get includedElements(){return new Set([...this.explicits,...this.ctxEdges.flatMap(e=>[e.source,e.target])])}get resolvedElements(){return new Set([...this.explicits,...this.implicits,...this.ctxEdges.flatMap(e=>[e.source,e.target])])}get edges(){return this.ctxEdges}addEdges(e){for(const n of e){if(!zr(n.relations,1))continue;const r=this.ctxEdges.find(i=>i.source.id===n.source.id&&i.target.id===n.target.id);if(r){r.relations=Mr([...r.relations,...n.relations]);continue}this.ctxEdges.push(n)}}addElement(...e){for(const n of e)this.explicits.add(n),this.implicits.add(n)}addImplicit(...e){for(const n of e)this.implicits.add(n)}excludeElement(...e){for(const n of e)this.ctxEdges=this.ctxEdges.filter(r=>r.source.id!==n.id&&r.target.id!==n.id),this.explicits.delete(n),this.implicits.delete(n)}excludeRelation(...e){if(e.length===0)return;const n=new Set,r=Qe(this.ctxEdges,ht(s=>{const o=s.relations.filter(a=>!e.includes(a));return o.length===0?(n.add(s.source),n.add(s.target),null):o.length!==s.relations.length?{...s,relations:o}:s}),tt(mU));if(n.size===0)return;this.ctxEdges=r;const i=this.includedElements;if(i.size===0){this.implicits.clear();return}for(const s of n)i.has(s)||this.implicits.delete(s)}reset(){this.explicits.clear(),this.implicits.clear(),this.ctxEdges=[]}removeRedundantImplicitEdges(){const e=new Set,n=s=>s.reduce((o,a)=>(e.has(a)||(o.push(a),e.add(a)),o),[]),r=s=>{const{source:o,target:a}=s;return c=>{const u=o.id===c.source.id,l=a.id===c.target.id;if(u&&l)return!0;const d=kr(o.id,c.source.id),f=kr(a.id,c.target.id);return d&&f||u&&f||l&&d}},i=[...this.ctxEdges].sort(YH).reverse();this.ctxEdges=i.reduce((s,o)=>{const a=n(o.relations);return a.length===0||s.length>0&&s.some(r(o))||s.push({source:o.source,target:o.target,relations:a}),s},[])}processPredicates(e){for(const n of e){const r="include"in n,i=n.include??n.exclude;for(const s of i){if(ye.isElementPredicateExpr(s)){this.processElementPredicate(s,r);continue}if(ye.isRelationPredicateExpr(s)){this.processRelationPredicate(s,r);continue}Me(s)}}return this}processElementPredicate(e,n,r){if(ye.isCustomElement(e))return n&&this.processElementPredicate(e.custom.expr,n),this;if(ye.isElementWhere(e)){const i=Eo(e.where.condition);return this.processElementPredicate(e.where.expr,n,i),this}if(ye.isExpandedElementExpr(e))return n?LH.call(this,e,r):MH.call(this,e,r),this;if(ye.isElementKindExpr(e)||ye.isElementTagExpr(e))return n?zH.call(this,e,r):BH.call(this,e,r),this;if(ye.isElementRef(e))return n?PH.call(this,e,r):NH.call(this,e,r),this;if(ye.isWildcard(e))return n?OH.call(this,e,r):FH.call(this,e,r),this;Me(e)}processRelationPredicate(e,n,r){if(ye.isCustomRelationExpr(e))return n&&this.processRelationPredicate(e.customRelation.relation,n),this;if(ye.isRelationWhere(e)){const i=Eo(e.where.condition);return this.processRelationPredicate(e.where.expr,n,i),this}if(ye.isIncoming(e))return n?qH.call(this,e,r):jH.call(this,e,r),this;if(ye.isOutgoing(e))return n?UH.call(this,e,r):WH.call(this,e,r),this;if(ye.isInOut(e))return n?GH.call(this,e,r):HH.call(this,e,r),this;if(ye.isRelation(e))return n?VH.call(this,e,r):KH.call(this,e,r),this;Me(e)}getEdgeLabel(e){const n=[];return ce(e.title)&&n.push(e.title),ce(e.technology)&&n.push(`[${e.technology}]`),n.length>0?{label:n.join(`
1726
+ `)}:{}}};function JH(t,e){return XH.elementView(t,e)}function j_(t,e){try{return{isSuccess:!0,view:JH(t,e)}}catch(n){return{isSuccess:!1,error:n instanceof Error?n:new Error(`Unknown error: ${n}`),view:void 0}}}let ZH=class IN{constructor(e,n){this.view=e,this.graph=n}explicits=new Set;steps=[];static compute(e,n){return new IN(e,n).compute()}addStep({source:e,target:n,title:r,isBackward:i,navigateTo:s,...o},a,c){const u=c?Jb(c,a):Jb(a),l=this.graph.element(e),d=this.graph.element(n);this.explicits.add(l),this.explicits.add(d);const{title:f,relations:h,tags:p,navigateTo:g}=this.findRelations(l,d),v=ce(s)&&s!==this.view.id?s:g;this.steps.push({id:u,...o,source:l,target:d,title:r??f,relations:h??[],isBackward:i??!1,...v?{navigateTo:v}:{},...p?{tags:p}:{}})}compute(){const{docUri:e,rules:n,steps:r,...i}=this.view;let s=1;for(const f of r){if(x2(f)){if(f.__parallel.length===0)continue;f.__parallel.length===1?this.addStep(f.__parallel[0],s):f.__parallel.forEach((h,p)=>this.addStep(h,p+1,s))}else this.addStep(f,s);s++}for(const f of n)if(A2(f))for(const h of f.include){const p=kn(h);this.graph.elements.filter(p).forEach(g=>this.explicits.add(g))}const o=[...this.explicits],a=N_(o),c=this.steps.map(({source:f,target:h,relations:p,title:g,isBackward:v,...m})=>{const w=rt(a.get(f.id),`Source node ${f.id} not found`),E=rt(a.get(h.id),`Target node ${h.id} not found`),k={parent:Ts(f.id,h.id),source:f.id,target:h.id,label:g,relations:p,color:bs,line:Vb,head:Do,...m};for(v&&(k.dir="back");k.parent&&!a.has(k.parent);)k.parent=bt(k.parent);w.outEdges.push(k.id),E.inEdges.push(k.id);for(const A of sr(k.source)){if(A===k.parent)break;a.get(A)?.outEdges.push(k.id)}for(const A of sr(k.target)){if(A===k.parent)break;a.get(A)?.inEdges.push(k.id)}return k}),u=x_(n,P_(n,o.map(f=>rt(a.get(f.id))))),l=n.findLast(Yb),d=O_(u);return A_({...i,autoLayout:{direction:l?.direction??"LR",...l?.nodeSep&&{nodeSep:l.nodeSep},...l?.rankSep&&{rankSep:l.rankSep}},nodes:ht(u,rk(["notation"])),edges:c,...d.length>0&&{notation:{elements:d}}})}findRelations(e,n){const r=Mr(this.graph.edgesBetween(e,n).flatMap(l=>l.relations));if(r.length===0)return{title:null,tags:null,relations:null,navigateTo:null};const i=Qe(r,Vi(l=>l.tags),tt(ce),Mr()),s=zr(i,1)?i:null,o=zr(r,1)?ht(r,l=>l.id):null,a=Sn(r)||r.find(l=>l.source===e.id&&l.target===n.id),c=ce(a?.title)?a.title:Qe(r,ht(l=>l.title),tt(ce),Mr(),Sn()),u=a?.navigateTo&&a.navigateTo!==this.view.id?a.navigateTo:Qe(r,ht(l=>l.navigateTo),tt(ce),tt(l=>l!==this.view.id),Mr(),Sn());return{title:c??null,tags:s,relations:o,navigateTo:u??null}}};function U_(t,e){try{return{isSuccess:!0,view:ZH.compute(t,e)}}catch(n){return{isSuccess:!1,error:n instanceof Error?n:new Error(`Unknown error: ${n}`),view:void 0}}}const lw=Set,dw=Map;function fw(t,e){return t.size===0||e.size===0?new Set:new Set([...t].filter(n=>e.has(n)))}let W_=class{#e=new Map;#t=new Map;#n=new Map;#r=new Set;#s=new Map;#i=new dw;#o=new dw;#a=new dw;#c=new Map;constructor({elements:e,relations:n}){for(const r of Object.values(e))this.addElement(r);for(const r of Object.values(n))this.addRelation(r)}get rootElements(){return[...this.#r]}get elements(){return[...this.#e.values()]}element(e){const n=this.#e.get(e);return we(n,`Element ${e} not found`),n}connectedRelations(e){return[...this._incomingTo(e),...this._outgoingFrom(e),...this._internalOf(e)]}children(e){return this._childrenOf(e).slice()}childrenOrElement(e){const n=this.children(e);return n.length>0?n:[this.element(e)]}siblings(e){const n=Gi(e)?e:e.id,r=bt(n);return(r?this._childrenOf(r):this.rootElements).filter(i=>i.id!==n)}ancestors(e){let n=Gi(e)?e:e.id;const r=[];let i;for(;i=this.#t.get(n);)r.push(i),n=i.id;return r}ascendingSiblings(e){const n=Gi(e)?e:e.id;let r=this.#c.get(n);return r||(r=[...this.siblings(n),...this.ancestors(n).flatMap(i=>this.siblings(i.id))],this.#c.set(n,r)),r.slice()}anyEdgesBetween(e,n){if(n.length===0)return[];const r=Gi(e)?this.element(e):e,i=this._incomingTo(r.id),s=this._outgoingFrom(r.id);if(i.size===0&&s.size===0)return[];const o=[];for(const a of n){const c=Gi(a)?this.element(a):a;if(!Ia(r,c)){if(s.size>0){const u=fw(this._incomingTo(c.id),s);u.size>0&&o.push({source:r,target:c,relations:[...u]})}if(i.size>0){const u=fw(this._outgoingFrom(c.id),i);u.size>0&&o.push({source:c,target:r,relations:[...u]})}}}return o}edgesWithin(e){return e.length<2?[]:e.reduce((n,r,i,s)=>(i===s.length-1||n.push(...this.anyEdgesBetween(r,s.slice(i+1))),n),[])}edgesBetween(e,n){const r=ik(e)?e:[e],i=ik(n)?n:[n];if(r.length===0||i.length===0)return[];const s=[];for(const o of r){const a=Gi(o)?this.element(o):o,c=this._outgoingFrom(a.id);if(c.size!==0)for(const u of i){const l=Gi(u)?this.element(u):u;if(Ia(a,l))continue;const d=this._incomingTo(l.id),f=fw(c,d);f.size>0&&s.push({source:a,target:l,relations:[...f]})}}return s}addElement(e){if(this.#e.has(e.id))throw new Error(`Element ${e.id} already exists`);this.#e.set(e.id,e);const n=bt(e.id);n?(this.#t.set(e.id,this.element(n)),this._childrenOf(n).push(e)):this.#r.add(e)}addRelation(e){if(this.#s.has(e.id))throw new Error(`Relation ${e.id} already exists`);this.#s.set(e.id,e),this._incomingTo(e.target).add(e),this._outgoingFrom(e.source).add(e);const n=Ts(e.source,e.target);if(n)for(const r of[n,...sr(n)])this._internalOf(r).add(e);for(const r of sr(e.source)){if(r===n)break;this._outgoingFrom(r).add(e)}for(const r of sr(e.target)){if(r===n)break;this._incomingTo(r).add(e)}}_childrenOf(e){let n=this.#n.get(e);return n||(n=[],this.#n.set(e,n)),n}_incomingTo(e){let n=this.#i.get(e);return n||(n=new lw,this.#i.set(e,n)),n}_outgoingFrom(e){let n=this.#o.get(e);return n||(n=new lw,this.#o.set(e,n)),n}_internalOf(e){let n=this.#a.get(e);return n||(n=new lw,this.#a.set(e,n)),n}};const QH=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,eV=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,tV=/^([/\\]\s*){2,}[^/\\]/;function G_(t){return["./","../"].some(e=>t.startsWith(e))}function hw(t,e={}){return typeof e=="boolean"&&(e={acceptRelative:e}),e.strict?QH.test(t):eV.test(t)||(e.acceptRelative?tV.test(t):!1)}function nV(t="",e){return t.endsWith("/")}function rV(t="",e){return(nV(t)?t.slice(0,-1):t)||"/"}function iV(t="",e){return t.endsWith("/")?t:t+"/"}function hh(t=""){return t.startsWith("/")}function H_(t=""){return(hh(t)?t.slice(1):t)||"/"}function sV(t=""){return hh(t)?t:"/"+t}function oV(t,e){if(aV(e))return t;const n=rV(e);if(!t.startsWith(n))return t;const r=t.slice(n.length);return r[0]==="/"?r:"/"+r}function aV(t){return!t||t==="/"}function ph(t=""){const[e="",n="",r=""]=(t.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:e,search:n,hash:r}}const gh="DynamicViewRule";function pw(t){return te.isInstance(t,gh)}const mh="ElementExpression";function gw(t){return te.isInstance(t,mh)}const yh="ElementPredicate";function cV(t){return te.isInstance(t,yh)}const vh="ElementPredicateOrWhere";function uV(t){return te.isInstance(t,vh)}const eo="ElementProperty";function lV(t){return te.isInstance(t,eo)}const to="LikeC4View";function mw(t){return te.isInstance(t,to)}const wh="MetadataProperty";function V_(t){return te.isInstance(t,wh)}const K_="Predicate",bh="RelationExpression";function yw(t){return te.isInstance(t,bh)}const Eh="RelationPredicate";function dV(t){return te.isInstance(t,Eh)}const Dh="RelationPredicateOrWhere";function fV(t){return te.isInstance(t,Dh)}const sa="RelationProperty";function hV(t){return te.isInstance(t,sa)}const Th="RelationshipStyleProperty";function pV(t){return te.isInstance(t,Th)}const oa="StringProperty";function gV(t){return te.isInstance(t,oa)}const Iu="StyleProperty";function Y_(t){return te.isInstance(t,Iu)}const Rh="ViewProperty";function mV(t){return te.isInstance(t,Rh)}const Sh="ViewRule";function yV(t){return te.isInstance(t,Sh)}const kh="ViewRulePredicate";function vw(t){return te.isInstance(t,kh)}const Pu="WhereElement";function X_(t){return te.isInstance(t,Pu)}const Nu="WhereElementExpression";function vV(t){return te.isInstance(t,Nu)}const J_="WhereExpression",$h="WhereKindEqual";function wV(t){return te.isInstance(t,$h)}const Ou="WhereRelation";function Z_(t){return te.isInstance(t,Ou)}const Fu="WhereRelationExpression";function bV(t){return te.isInstance(t,Fu)}const Ch="WhereTagEqual";function EV(t){return te.isInstance(t,Ch)}const Lu="ArrowProperty";function Mu(t){return te.isInstance(t,Lu)}const zu="BorderProperty";function _h(t){return te.isInstance(t,zu)}const Bu="ColorProperty";function no(t){return te.isInstance(t,Bu)}const ro="CustomColor",Ah="CustomElementProperties";function DV(t){return te.isInstance(t,Ah)}const xh="CustomRelationProperties";function TV(t){return te.isInstance(t,xh)}const qu="DirectedRelationExpression";function ww(t){return te.isInstance(t,qu)}const aa="DynamicView";function RV(t){return te.isInstance(t,aa)}const Ih="DynamicViewBody";function Q_(t){return te.isInstance(t,Ih)}const ju="DynamicViewIncludePredicate";function SV(t){return te.isInstance(t,ju)}const Ph="DynamicViewParallelSteps";function bw(t){return te.isInstance(t,Ph)}const Nh="DynamicViewPredicateIterator";function eA(t){return te.isInstance(t,Nh)}const Ew="DynamicViewRef",Oh="DynamicViewStep";function Dw(t){return te.isInstance(t,Oh)}const Wr="Element";function Gr(t){return te.isInstance(t,Wr)}const Fh="ElementBody";function ca(t){return te.isInstance(t,Fh)}const Uu="ElementDescedantsExpression";function Tw(t){return te.isInstance(t,Uu)}const Lh="ElementExpressionsIterator";function kV(t){return te.isInstance(t,Lh)}const Ji="ElementKind";function $V(t){return te.isInstance(t,Ji)}const Wu="ElementKindExpression";function Mh(t){return te.isInstance(t,Wu)}const Gu="ElementPredicateWhere";function Rw(t){return te.isInstance(t,Gu)}const Hu="ElementPredicateWith";function zh(t){return te.isInstance(t,Hu)}const Vu="ElementRef";function Ku(t){return te.isInstance(t,Vu)}const Yu="ElementStringProperty";function Sw(t){return te.isInstance(t,Yu)}const Xu="ElementStyleProperty";function Ju(t){return te.isInstance(t,Xu)}const Zu="ElementTagExpression";function Bh(t){return te.isInstance(t,Zu)}const ua="ElementView";function qh(t){return te.isInstance(t,ua)}const jh="ElementViewBody";function kw(t){return te.isInstance(t,jh)}const $w="ElementViewRef",Qu="ExcludePredicate";function Uh(t){return te.isInstance(t,Qu)}const el="ExpandElementExpression";function tA(t){return te.isInstance(t,el)}const la="ExtendElement";function da(t){return te.isInstance(t,la)}const Wh="ExtendElementBody";function Cw(t){return te.isInstance(t,Wh)}const Gh="FqnElementRef";function nA(t){return te.isInstance(t,Gh)}const tl="IconProperty";function Zi(t){return te.isInstance(t,tl)}const nl="IncludePredicate";function _w(t){return te.isInstance(t,nl)}const rl="IncomingRelationExpression";function rA(t){return te.isInstance(t,rl)}const il="InOutRelationExpression";function Aw(t){return te.isInstance(t,il)}const io="LibIcon";function CV(t){return te.isInstance(t,io)}const xw="LikeC4Grammar",Hh="LikeC4Lib";function iA(t){return te.isInstance(t,Hh)}const sl="LineProperty";function ol(t){return te.isInstance(t,sl)}const al="LinkProperty";function Vh(t){return te.isInstance(t,al)}const cl="MetadataAttribute";function _V(t){return te.isInstance(t,cl)}const ul="MetadataBody";function AV(t){return te.isInstance(t,ul)}const fa="Model";function Iw(t){return te.isInstance(t,fa)}const ha="ModelViews";function Pw(t){return te.isInstance(t,ha)}const Kh="NavigateToProperty";function Nw(t){return te.isInstance(t,Kh)}const ll="NotationProperty";function dl(t){return te.isInstance(t,ll)}const fl="NotesProperty";function sA(t){return te.isInstance(t,fl)}const hl="OpacityProperty";function Yh(t){return te.isInstance(t,hl)}const pl="OutgoingRelationExpression";function Ow(t){return te.isInstance(t,pl)}const Xh="Predicates";function oA(t){return te.isInstance(t,Xh)}const Jh="Relation";function Qi(t){return te.isInstance(t,Jh)}const Zh="RelationBody";function aA(t){return te.isInstance(t,Zh)}const gl="RelationNavigateToProperty";function Qh(t){return te.isInstance(t,gl)}const ml="RelationPredicateWhere";function cA(t){return te.isInstance(t,ml)}const yl="RelationPredicateWith";function Fw(t){return te.isInstance(t,yl)}const es="RelationshipKind";function xV(t){return te.isInstance(t,es)}const vl="RelationStringProperty";function ep(t){return te.isInstance(t,vl)}const wl="RelationStyleProperty";function Lw(t){return te.isInstance(t,wl)}const bl="ShapeProperty";function tp(t){return te.isInstance(t,bl)}const np="SpecificationColor";function rp(t){return te.isInstance(t,np)}const pa="SpecificationElementKind";function ga(t){return te.isInstance(t,pa)}const El="SpecificationElementStringProperty";function uA(t){return te.isInstance(t,El)}const ma="SpecificationRelationshipKind";function ya(t){return te.isInstance(t,ma)}const Dl="SpecificationRelationshipStringProperty";function lA(t){return te.isInstance(t,Dl)}const va="SpecificationRule";function Mw(t){return te.isInstance(t,va)}const wa="SpecificationTag";function ip(t){return te.isInstance(t,wa)}const ts="Tag";function dA(t){return te.isInstance(t,ts)}const sp="Tags";function zw(t){return te.isInstance(t,sp)}const Bw="ViewRef",Tl="ViewRuleAutoLayout";function op(t){return te.isInstance(t,Tl)}const Rl="ViewRuleStyle";function ba(t){return te.isInstance(t,Rl)}const Sl="ViewStringProperty";function IV(t){return te.isInstance(t,Sl)}const kl="WhereBinaryExpression";function PV(t){return te.isInstance(t,kl)}const $l="WhereElementKind";function NV(t){return te.isInstance(t,$l)}const Cl="WhereElementNegation";function fA(t){return te.isInstance(t,Cl)}const _l="WhereElementTag";function OV(t){return te.isInstance(t,_l)}const Al="WhereRelationKind";function hA(t){return te.isInstance(t,Al)}const xl="WhereRelationNegation";function pA(t){return te.isInstance(t,xl)}const Il="WhereRelationTag";function FV(t){return te.isInstance(t,Il)}const Pl="WildcardExpression";function Ea(t){return te.isInstance(t,Pl)}class gA extends iD{getAllTypes(){return[Lu,zu,Bu,ro,Ah,xh,qu,aa,Ih,ju,Ph,Nh,Ew,gh,Oh,Wr,Fh,Uu,mh,Lh,Ji,Wu,yh,vh,Gu,Hu,eo,Vu,Yu,Xu,Zu,ua,jh,$w,Qu,el,la,Wh,Gh,tl,il,nl,rl,io,xw,Hh,to,sl,al,cl,ul,wh,fa,ha,Kh,ll,fl,hl,pl,K_,Xh,Jh,Zh,bh,gl,Eh,Dh,ml,yl,sa,vl,wl,es,Th,bl,np,pa,El,ma,Dl,va,wa,oa,Iu,ts,sp,Rh,Bw,Sh,Tl,kh,Rl,Sl,kl,Pu,Nu,$l,Cl,_l,J_,$h,Ou,Fu,Al,xl,Il,Ch,Pl]}computeIsSubtype(e,n){switch(e){case Lu:case sl:return this.isSubtype(Th,n);case zu:case hl:case bl:return this.isSubtype(Iu,n);case Bu:return this.isSubtype(Th,n)||this.isSubtype(Iu,n);case qu:case rl:case il:case pl:return this.isSubtype(bh,n);case aa:case ua:return this.isSubtype(to,n);case ju:return this.isSubtype(gh,n);case Uu:case Wu:case Vu:case Zu:case el:case Pl:return this.isSubtype(mh,n);case mh:case Gu:return this.isSubtype(vh,n);case yh:case Eh:return this.isSubtype(K_,n);case vh:case Hu:return this.isSubtype(yh,n);case Yu:return this.isSubtype(eo,n)||this.isSubtype(oa,n);case Xu:return this.isSubtype(eo,n);case Qu:case nl:return this.isSubtype(kh,n);case tl:return this.isSubtype(eo,n)||this.isSubtype(Iu,n);case al:return this.isSubtype(eo,n)||this.isSubtype(sa,n)||this.isSubtype(Rh,n);case cl:case ll:case fl:case El:case Dl:return this.isSubtype(oa,n);case ul:return this.isSubtype(wh,n);case wh:return this.isSubtype(eo,n)||this.isSubtype(sa,n);case bh:case ml:return this.isSubtype(Dh,n);case gl:case wl:return this.isSubtype(sa,n);case Dh:case yl:return this.isSubtype(Eh,n);case vl:return this.isSubtype(sa,n)||this.isSubtype(oa,n);case Tl:case Rl:return this.isSubtype(gh,n)||this.isSubtype(Sh,n);case kh:return this.isSubtype(Sh,n);case Sl:return this.isSubtype(oa,n)||this.isSubtype(Rh,n);case kl:return this.isSubtype(Nu,n)||this.isSubtype(Fu,n);case Pu:case Cl:return this.isSubtype(Nu,n);case Nu:case Fu:return this.isSubtype(J_,n);case $l:return this.isSubtype(Pu,n)||this.isSubtype($h,n);case _l:return this.isSubtype(Pu,n)||this.isSubtype(Ch,n);case Ou:case xl:return this.isSubtype(Fu,n);case Al:return this.isSubtype($h,n)||this.isSubtype(Ou,n);case Il:return this.isSubtype(Ou,n)||this.isSubtype(Ch,n);default:return!1}}getReferenceType(e){const n=`${e.container.$type}:${e.property}`;switch(n){case"ColorProperty:customColor":return ro;case"DynamicViewRef:view":return aa;case"DynamicViewStep:kind":case"OutgoingRelationExpression:kind":case"Relation:kind":case"WhereRelationKind:value":return es;case"Element:kind":case"ElementKindExpression:kind":case"WhereElementKind:value":return Ji;case"ElementRef:el":case"FqnElementRef:el":return Wr;case"ElementTagExpression:tag":case"Tags:values":case"WhereElementTag:value":case"WhereRelationTag:value":return ts;case"ElementViewRef:view":return ua;case"IconProperty:libicon":return io;case"ViewRef:view":return to;default:throw new Error(`${n} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Lu:return{name:Lu,properties:[{name:"key"},{name:"value"}]};case zu:return{name:zu,properties:[{name:"key"},{name:"value"}]};case Bu:return{name:Bu,properties:[{name:"customColor"},{name:"key"},{name:"themeColor"}]};case ro:return{name:ro,properties:[{name:"name"}]};case Ah:return{name:Ah,properties:[{name:"props",defaultValue:[]}]};case xh:return{name:xh,properties:[{name:"props",defaultValue:[]}]};case qu:return{name:qu,properties:[{name:"source"},{name:"target"}]};case aa:return{name:aa,properties:[{name:"body"},{name:"name"}]};case Ih:return{name:Ih,properties:[{name:"props",defaultValue:[]},{name:"rules",defaultValue:[]},{name:"steps",defaultValue:[]},{name:"tags"}]};case ju:return{name:ju,properties:[{name:"predicates"}]};case Ph:return{name:Ph,properties:[{name:"steps",defaultValue:[]}]};case Nh:return{name:Nh,properties:[{name:"prev"},{name:"value"}]};case Ew:return{name:Ew,properties:[{name:"view"}]};case Oh:return{name:Oh,properties:[{name:"custom"},{name:"isBackward",defaultValue:!1},{name:"kind"},{name:"source"},{name:"target"},{name:"title"}]};case Wr:return{name:Wr,properties:[{name:"body"},{name:"kind"},{name:"name"},{name:"props",defaultValue:[]}]};case Fh:return{name:Fh,properties:[{name:"elements",defaultValue:[]},{name:"props",defaultValue:[]},{name:"tags"}]};case Uu:return{name:Uu,properties:[{name:"parent"}]};case Lh:return{name:Lh,properties:[{name:"prev"},{name:"value"}]};case Ji:return{name:Ji,properties:[{name:"name"}]};case Wu:return{name:Wu,properties:[{name:"isEqual",defaultValue:!1},{name:"kind"}]};case Gu:return{name:Gu,properties:[{name:"subject"},{name:"where"}]};case Hu:return{name:Hu,properties:[{name:"custom"},{name:"subject"}]};case Vu:return{name:Vu,properties:[{name:"el"},{name:"parent"}]};case Yu:return{name:Yu,properties:[{name:"key"},{name:"value"}]};case Xu:return{name:Xu,properties:[{name:"key"},{name:"props",defaultValue:[]}]};case Zu:return{name:Zu,properties:[{name:"isEqual",defaultValue:!1},{name:"tag"}]};case ua:return{name:ua,properties:[{name:"body"},{name:"extends"},{name:"name"},{name:"viewOf"}]};case jh:return{name:jh,properties:[{name:"props",defaultValue:[]},{name:"rules",defaultValue:[]},{name:"tags"}]};case $w:return{name:$w,properties:[{name:"view"}]};case Qu:return{name:Qu,properties:[{name:"predicates"}]};case el:return{name:el,properties:[{name:"expand"}]};case la:return{name:la,properties:[{name:"body"},{name:"element"}]};case Wh:return{name:Wh,properties:[{name:"elements",defaultValue:[]}]};case Gh:return{name:Gh,properties:[{name:"el"},{name:"parent"}]};case tl:return{name:tl,properties:[{name:"key"},{name:"libicon"},{name:"value"}]};case nl:return{name:nl,properties:[{name:"predicates"}]};case rl:return{name:rl,properties:[{name:"to"}]};case il:return{name:il,properties:[{name:"inout"}]};case io:return{name:io,properties:[{name:"name"}]};case xw:return{name:xw,properties:[{name:"likec4lib",defaultValue:[]},{name:"models",defaultValue:[]},{name:"specifications",defaultValue:[]},{name:"views",defaultValue:[]}]};case Hh:return{name:Hh,properties:[{name:"icons",defaultValue:[]}]};case sl:return{name:sl,properties:[{name:"key"},{name:"value"}]};case al:return{name:al,properties:[{name:"key"},{name:"title"},{name:"value"}]};case cl:return{name:cl,properties:[{name:"key"},{name:"value"}]};case ul:return{name:ul,properties:[{name:"props",defaultValue:[]}]};case fa:return{name:fa,properties:[{name:"elements",defaultValue:[]},{name:"name"}]};case ha:return{name:ha,properties:[{name:"name"},{name:"styles",defaultValue:[]},{name:"views",defaultValue:[]}]};case Kh:return{name:Kh,properties:[{name:"key"},{name:"value"}]};case ll:return{name:ll,properties:[{name:"key"},{name:"value"}]};case fl:return{name:fl,properties:[{name:"key"},{name:"value"}]};case hl:return{name:hl,properties:[{name:"key"},{name:"value"}]};case pl:return{name:pl,properties:[{name:"from"},{name:"isBidirectional",defaultValue:!1},{name:"kind"}]};case Xh:return{name:Xh,properties:[{name:"prev"},{name:"value"}]};case Jh:return{name:Jh,properties:[{name:"body"},{name:"kind"},{name:"source"},{name:"tags"},{name:"target"},{name:"technology"},{name:"title"}]};case Zh:return{name:Zh,properties:[{name:"props",defaultValue:[]},{name:"tags"}]};case gl:return{name:gl,properties:[{name:"key"},{name:"value"}]};case ml:return{name:ml,properties:[{name:"subject"},{name:"where"}]};case yl:return{name:yl,properties:[{name:"custom"},{name:"subject"}]};case es:return{name:es,properties:[{name:"name"}]};case vl:return{name:vl,properties:[{name:"key"},{name:"value"}]};case wl:return{name:wl,properties:[{name:"key"},{name:"props",defaultValue:[]}]};case bl:return{name:bl,properties:[{name:"key"},{name:"value"}]};case np:return{name:np,properties:[{name:"color"},{name:"name"}]};case pa:return{name:pa,properties:[{name:"kind"},{name:"props",defaultValue:[]}]};case El:return{name:El,properties:[{name:"key"},{name:"value"}]};case ma:return{name:ma,properties:[{name:"kind"},{name:"props",defaultValue:[]}]};case Dl:return{name:Dl,properties:[{name:"key"},{name:"value"}]};case va:return{name:va,properties:[{name:"colors",defaultValue:[]},{name:"elements",defaultValue:[]},{name:"name"},{name:"relationships",defaultValue:[]},{name:"tags",defaultValue:[]}]};case wa:return{name:wa,properties:[{name:"tag"}]};case ts:return{name:ts,properties:[{name:"name"}]};case sp:return{name:sp,properties:[{name:"prev"},{name:"values",defaultValue:[]}]};case Bw:return{name:Bw,properties:[{name:"view"}]};case Tl:return{name:Tl,properties:[{name:"direction"},{name:"nodeSep"},{name:"rankSep"}]};case Rl:return{name:Rl,properties:[{name:"props",defaultValue:[]},{name:"target"}]};case Sl:return{name:Sl,properties:[{name:"key"},{name:"value"}]};case kl:return{name:kl,properties:[{name:"left"},{name:"operator"},{name:"right"}]};case $l:return{name:$l,properties:[{name:"not",defaultValue:!1},{name:"operator"},{name:"value"}]};case Cl:return{name:Cl,properties:[{name:"value"}]};case _l:return{name:_l,properties:[{name:"not",defaultValue:!1},{name:"operator"},{name:"value"}]};case Al:return{name:Al,properties:[{name:"not",defaultValue:!1},{name:"operator"},{name:"value"}]};case xl:return{name:xl,properties:[{name:"value"}]};case Il:return{name:Il,properties:[{name:"not",defaultValue:!1},{name:"operator"},{name:"value"}]};case Pl:return{name:Pl,properties:[{name:"isWildcard",defaultValue:!1}]};default:return{name:e,properties:[]}}}}const te=new gA;let mA;const LV=()=>mA??(mA=jj(`{"$type":"Grammar","isDeclared":true,"name":"LikeC4","rules":[{"$type":"ParserRule","name":"LikeC4Grammar","entry":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"specifications","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"models","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Assignment","feature":"views","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@32"},"arguments":[]}},{"$type":"Assignment","feature":"likec4lib","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LikeC4Lib","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"likec4lib"},{"$type":"Keyword","value":"{"},{"$type":"Keyword","value":"icons"},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"icons","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},"cardinality":"+"},{"$type":"Keyword","value":"}"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LibIcon","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@105"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementKind","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Tag","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationshipKind","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomColor","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@109"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationRule","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"specification"}},{"$type":"Keyword","value":"{"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"relationships","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"colors","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationElementKind","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"element"},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@96"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationElementStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"technology"},{"$type":"Keyword","value":"notation"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationTag","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"tag"},{"$type":"Assignment","feature":"tag","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationColor","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"color"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"color","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@104"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationRelationshipKind","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"relationship"},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@99"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationRelationshipStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"technology"},{"$type":"Keyword","value":"notation"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Model","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"model"}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":true},"calledByName":false}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Element","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@3"},"deprecatedSyntax":false}},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@126"},"arguments":[]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@3"},"deprecatedSyntax":false}}]}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}],"cardinality":"?"}],"cardinality":"?"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"cardinality":"*"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@96"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@88"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@91"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"title"},{"$type":"Keyword","value":"technology"},{"$type":"Keyword","value":"description"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ExtendElement","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"extend"},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ExtendElementBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":true},"calledByName":false}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"FqnElementRef","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@15"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"FqnElementRef"},"feature":"parent","operator":"="},{"$type":"RuleCall","rule":{"$ref":"#/rules@123"},"arguments":[]},{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@15"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]},"deprecatedSyntax":false}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementRef","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@15"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementRef"},"feature":"parent","operator":"="},{"$type":"RuleCall","rule":{"$ref":"#/rules@123"},"arguments":[]},{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@15"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]},"deprecatedSyntax":false}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Tags","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"values","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@107"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"+"},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"Tags"},"feature":"prev","operator":"="},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"values","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@107"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"*"}],"cardinality":"*"},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Relation","parameters":[{"$type":"Parameter","name":"isExplicit"}],"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","guardCondition":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@24/parameters@0"}},"elements":[{"$type":"Assignment","feature":"source","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}]},{"$type":"Group","guardCondition":{"$type":"Negation","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@24/parameters@0"}}},"elements":[{"$type":"Assignment","feature":"source","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},"cardinality":"?"}]}]},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@108"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-["},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"deprecatedSyntax":false}},{"$type":"Keyword","value":"]->"}]},{"$type":"Keyword","value":"->"}]},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Assignment","feature":"technology","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"RelationBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@26"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@87"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@88"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"title"},{"$type":"Keyword","value":"technology"},{"$type":"Keyword","value":"description"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationStyleProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"style"}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@99"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"MetadataProperty","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"metadata"},{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"MetadataBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"MetadataAttribute","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@129"},"arguments":[]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ModelViews","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"views"}},{"$type":"Keyword","value":"{"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"views","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@33"},"arguments":[]}},{"$type":"Assignment","feature":"styles","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@80"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LikeC4ViewRule","returnType":{"$ref":"#/types@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@34"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementView","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"view"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"extends"},{"$type":"Assignment","feature":"extends","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"of"},{"$type":"Assignment","feature":"viewOf","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}]}],"cardinality":"?"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicView","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"dynamic"},{"$type":"Keyword","value":"view"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@40"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRef","definition":{"$type":"Assignment","feature":"view","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/types@0"},"deprecatedSyntax":false}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementViewRef","definition":{"$type":"Assignment","feature":"view","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@34"},"deprecatedSyntax":false}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewRef","definition":{"$type":"Assignment","feature":"view","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@35"},"deprecatedSyntax":false}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementViewBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]},"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@44"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]},"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"steps","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@46"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]}]}},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@45"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@42"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@88"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"title"},{"$type":"Keyword","value":"description"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewLayoutDirection","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"TopBottom"},{"$type":"Keyword","value":"LeftRight"},{"$type":"Keyword","value":"BottomTop"},{"$type":"Keyword","value":"RightLeft"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRule","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@80"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@81"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewRule","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@78"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@80"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@81"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewParallelSteps","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"parallel"},{"$type":"Keyword","value":"par"}]},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"steps","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewStep","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"source","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"isBackward","operator":"?=","terminal":{"$type":"Keyword","value":"<-"}},{"$type":"Keyword","value":"->"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-["},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"deprecatedSyntax":false}},{"$type":"Keyword","value":"]->"}]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@108"},"arguments":[]},"deprecatedSyntax":false}}]},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"custom","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@85"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRulePredicate","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"IncludePredicate"}},{"$type":"Keyword","value":"include"},{"$type":"Assignment","feature":"predicates","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@49"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ExcludePredicate"}},{"$type":"Keyword","value":"exclude"},{"$type":"Assignment","feature":"predicates","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@49"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Predicates","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"Predicates"},"feature":"prev","operator":"="},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},"cardinality":"?"}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Predicate","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@63"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementPredicate","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementPredicates","inferredType":{"$type":"InferredType","name":"ElementPredicate"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementPredicateWith"},"feature":"subject","operator":"="},{"$type":"Keyword","value":"with"},{"$type":"Assignment","feature":"custom","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@84"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementPredicateOrWhere","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@60"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementPredicateWhere"},"feature":"subject","operator":"="},{"$type":"Keyword","value":"where"},{"$type":"Assignment","feature":"where","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@54"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementExpression","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@55"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementOr","inferredType":{"$type":"InferredType","name":"WhereElementExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@56"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereBinaryExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"or"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@56"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementAnd","inferredType":{"$type":"InferredType","name":"WhereElementExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@57"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereBinaryExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"and"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@57"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementPrimary","inferredType":{"$type":"InferredType","name":"WhereElementExpression"},"definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$ref":"#/rules@54"},"arguments":[]},{"$type":"Keyword","value":")"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@58"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@59"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementNegation","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"not"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@54"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElement","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereElementTag"}},{"$type":"Keyword","value":"tag"},{"$type":"RuleCall","rule":{"$ref":"#/rules@111"},"arguments":[]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@107"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereElementKind"}},{"$type":"Keyword","value":"kind"},{"$type":"RuleCall","rule":{"$ref":"#/rules@111"},"arguments":[]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@3"},"deprecatedSyntax":false},"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementExpression","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@61"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@62"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementSelectorExpression","inferredType":{"$type":"InferredType","name":"ElementExpression"},"definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WildcardExpression"}},{"$type":"Assignment","feature":"isWildcard","operator":"?=","terminal":{"$type":"Keyword","value":"*"}}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementTagExpression"}},{"$type":"Keyword","value":"element.tag"},{"$type":"RuleCall","rule":{"$ref":"#/rules@112"},"arguments":[]},{"$type":"Assignment","feature":"tag","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@107"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementKindExpression"}},{"$type":"Keyword","value":"element.kind"},{"$type":"RuleCall","rule":{"$ref":"#/rules@112"},"arguments":[]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@3"},"deprecatedSyntax":false},"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementDescedantsExpression","inferredType":{"$type":"InferredType","name":"ElementExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ExpandElementExpression"},"feature":"expand","operator":"="},{"$type":"RuleCall","rule":{"$ref":"#/rules@120"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementDescedantsExpression"},"feature":"parent","operator":"="},{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]}]}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationPredicate","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@64"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationPredicates","inferredType":{"$type":"InferredType","name":"RelationPredicate"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@65"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"RelationPredicateWith"},"feature":"subject","operator":"="},{"$type":"Keyword","value":"with"},{"$type":"Assignment","feature":"custom","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@85"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationPredicateOrWhere","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"RelationPredicateWhere"},"feature":"subject","operator":"="},{"$type":"Keyword","value":"where"},{"$type":"Assignment","feature":"where","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@66"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationExpression","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@67"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationOr","inferredType":{"$type":"InferredType","name":"WhereRelationExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@68"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereBinaryExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"or"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@68"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationAnd","inferredType":{"$type":"InferredType","name":"WhereRelationExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@69"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereBinaryExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"and"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@69"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationPrimary","inferredType":{"$type":"InferredType","name":"WhereRelationExpression"},"definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$ref":"#/rules@66"},"arguments":[]},{"$type":"Keyword","value":")"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationNegation","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"not"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@66"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelation","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereRelationTag"}},{"$type":"Keyword","value":"tag"},{"$type":"RuleCall","rule":{"$ref":"#/rules@111"},"arguments":[]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@107"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereRelationKind"}},{"$type":"Keyword","value":"kind"},{"$type":"RuleCall","rule":{"$ref":"#/rules@111"},"arguments":[]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"deprecatedSyntax":false},"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationExpression","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"InOutRelationExpressions","inferredType":{"$type":"InferredType","name":"RelationExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@74"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"InOutRelationExpression"},"feature":"inout","operator":"="},{"$type":"Keyword","value":"->"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IncomingRelationExpression","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"->"},{"$type":"Assignment","feature":"to","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@60"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DirectedRelationExpressions","inferredType":{"$type":"InferredType","name":"RelationExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@76"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"DirectedRelationExpression"},"feature":"source","operator":"="},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@60"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"OutgoingRelationExpression","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"from","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@60"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"isBidirectional","operator":"?=","terminal":{"$type":"Keyword","value":"<->"}},{"$type":"Keyword","value":"->"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-["},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"deprecatedSyntax":false}},{"$type":"Keyword","value":"]->"}]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@108"},"arguments":[]},"deprecatedSyntax":false}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementExpressionsIterator","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@60"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementExpressionsIterator"},"feature":"prev","operator":"="},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@60"},"arguments":[]},"cardinality":"?"}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewIncludePredicate","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"include"},{"$type":"Assignment","feature":"predicates","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@79"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewPredicateIterator","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"DynamicViewPredicateIterator"},"feature":"prev","operator":"="},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},"cardinality":"?"}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleStyle","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"style"},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@77"},"arguments":[]}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@95"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@82"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleAutoLayout","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"autoLayout"},{"$type":"Assignment","feature":"direction","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@43"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"rankSep","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@130"},"arguments":[]}},{"$type":"Assignment","feature":"nodeSep","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@130"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NotationProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"notation"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NotesProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"notes"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomElementProperties","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@86"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@82"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@95"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomRelationProperties","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@87"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@82"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@83"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@99"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NavigateToProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"navigateTo"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@36"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationNavigateToProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"navigateTo"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@38"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LinkProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"link"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@106"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]},"cardinality":"?"},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ColorProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"color"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"themeColor","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@102"},"arguments":[]}},{"$type":"Assignment","feature":"customColor","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@6"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@109"},"arguments":[]},"deprecatedSyntax":false}}]},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"OpacityProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"opacity"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@127"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IconProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"icon"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"libicon","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@105"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@106"},"arguments":[]}}]},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ShapeProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"shape"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@103"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"BorderStyleValue","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@100"},"arguments":[]},{"$type":"Keyword","value":"none"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"BorderProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"border"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@93"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"StyleProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@89"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@92"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@94"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@90"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@91"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementStyleProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"style"}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@95"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LineProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"line"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@100"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArrowProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"head"},{"$type":"Keyword","value":"tail"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@101"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationshipStyleProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@89"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@97"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@98"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LineOptions","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"solid"},{"$type":"Keyword","value":"dashed"},{"$type":"Keyword","value":"dotted"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArrowType","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"none"},{"$type":"Keyword","value":"normal"},{"$type":"Keyword","value":"onormal"},{"$type":"Keyword","value":"dot"},{"$type":"Keyword","value":"odot"},{"$type":"Keyword","value":"diamond"},{"$type":"Keyword","value":"odiamond"},{"$type":"Keyword","value":"crow"},{"$type":"Keyword","value":"open"},{"$type":"Keyword","value":"vee"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ThemeColor","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"primary"},{"$type":"Keyword","value":"secondary"},{"$type":"Keyword","value":"muted"},{"$type":"Keyword","value":"slate"},{"$type":"Keyword","value":"blue"},{"$type":"Keyword","value":"indigo"},{"$type":"Keyword","value":"sky"},{"$type":"Keyword","value":"red"},{"$type":"Keyword","value":"gray"},{"$type":"Keyword","value":"green"},{"$type":"Keyword","value":"amber"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementShape","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"rectangle"},{"$type":"Keyword","value":"person"},{"$type":"Keyword","value":"browser"},{"$type":"Keyword","value":"mobile"},{"$type":"Keyword","value":"cylinder"},{"$type":"Keyword","value":"storage"},{"$type":"Keyword","value":"queue"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomColorValue","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@122"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@131"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@130"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IconId","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@117"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Uri","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@118"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@119"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TagId","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@122"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DotId","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@124"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomColorId","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@129"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@103"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@101"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@100"},"arguments":[]},{"$type":"Keyword","value":"element"},{"$type":"Keyword","value":"model"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Id","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@129"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@103"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@102"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@101"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@100"},"arguments":[]},{"$type":"Keyword","value":"element"},{"$type":"Keyword","value":"model"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EqOperator","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@126"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@125"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"is"}},{"$type":"Assignment","feature":"not","operator":"?=","terminal":{"$type":"Keyword","value":"not"},"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IsEqual","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"isEqual","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@126"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@125"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","hidden":true,"name":"BLOCK_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\/[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/[\\\\r\\\\n]+/"},"fragment":false},{"$type":"TerminalRule","name":"LIB_ICON","definition":{"$type":"RegexToken","regex":"/(aws|azure|gcp|tech):[-\\\\w]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"URI_WITH_SCHEMA","definition":{"$type":"RegexToken","regex":"/\\\\w+:\\\\/\\\\/\\\\S+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"URI_RELATIVE","definition":{"$type":"RegexToken","regex":"/\\\\.{0,2}\\\\/[^\\\\/]\\\\S+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"DotUnderscore","definition":{"$type":"RegexToken","regex":"/\\\\b\\\\._/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"DotWildcard","definition":{"$type":"RegexToken","regex":"/\\\\b\\\\.\\\\*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Hash","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"#"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"StickyDot","definition":{"$type":"RegexToken","regex":"/\\\\b\\\\./"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Dot","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"."}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NotEqual","definition":{"$type":"RegexToken","regex":"/\\\\!\\\\={1,2}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Eq","definition":{"$type":"RegexToken","regex":"/\\\\={1,2}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Percent","definition":{"$type":"RegexToken","regex":"/\\\\b\\\\d+%/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"String","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"IdTerminal","definition":{"$type":"RegexToken","regex":"/[_]*[a-zA-Z][-\\\\w]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Number","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/\\\\b\\\\d+\\\\b/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Hex","definition":{"$type":"RegexToken","regex":"/\\\\b[a-zA-Z0-9]+\\\\b/"},"fragment":false,"hidden":false}],"types":[{"$type":"Type","name":"LikeC4View","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@34"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@35"}}]}},{"$type":"Type","name":"StringProperty","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@18"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@42"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@27"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@31"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@9"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@13"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@82"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@83"}}]}},{"$type":"Type","name":"WhereTagEqual","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@59/definition/elements@0/elements@0/inferredType"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@71/definition/elements@0/elements@0/inferredType"}}]}},{"$type":"Type","name":"WhereKindEqual","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@59/definition/elements@1/elements@0/inferredType"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@71/definition/elements@1/elements@0/inferredType"}}]}},{"$type":"Type","name":"WhereExpression","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@54"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@66"}}]}}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"interfaces":[],"usedGrammars":[]}`)),yA={languageId:"likec4",fileExtensions:[".c4",".likec4",".like-c4"],caseInsensitive:!1},MV={skipValidations:!0,recoveryEnabled:!0,nodeLocationTracking:"full"},zV={AstReflection:()=>new gA},BV={Grammar:()=>LV(),LanguageMetaData:()=>yA,parser:{ParserConfig:()=>MV}},Fe=nt.withTag("lsp");function Xt(t){Fe.error(t)}function St(t){if(t instanceof Error){Fe.warn(t.stack??t.message);return}Fe.warn(t)}function qV(t){Fe.level=Ke[t]}function jV(t){const e={log:({level:n,...r},i)=>{if(n!==Ke.error&&n!==Ke.fatal)return;const s=r.tag||"",o=r.args.map(c=>By(c)?c.stack??c.message:typeof c=="string"?c:""+c);s&&o.unshift(`[${s}]`);const a=o.join(" ");t.telemetry.logEvent({eventName:"error",error:a})}};nt.addReporter(e),Fe.setReporters(nt.options.reporters)}function UV(t){const e={log:({level:n,...r},i)=>{const s=r.tag||"",o=r.args.map(c=>By(c)?c.stack??c.message:typeof c=="string"?c:""+c);s&&o.unshift(`[${s}]`);const a=o.join(" ");switch(!0){case n>=Ke.debug:{t.console.debug(a);break}case n>=Ke.log:{t.console.info(a);break}case n>=Ke.warn:{t.console.warn(a);break}case n>=Ke.fatal:{t.console.error(a);break}default:t.console.log(a)}}};nt.setReporters([e]),Fe.setReporters(nt.options.reporters)}function $n(t){return t.el.ref}function ap(t){const e=[t.el.$refText];let n=t.parent;for(;n;)e.push(n.el.$refText),n=n.parent;return e.length===1?e[0]:e.reverse().join(".")}const Nl=Symbol.for("idattr"),qw={writeId(t,e){return t[Nl]=e,t},readId(t){return t[Nl]}},vA={writeId(t,e){return _t(e)?t[Nl]=void 0:t[Nl]=e,t},readId(t){return t[Nl]}};function WV(t){return Object.assign(t,{c4Specification:{tags:new Set,elements:{},relationships:{},colors:{}},c4Elements:[],c4Relations:[],c4Views:[]})}function cp(t){return t.textDocument.languageId===yA.languageId}function wA(t){return cp(t)&&t.state>=Ve.IndexedContent&&!!t.c4fqnIndex}function Ol(t){return cp(t)&&t.state==Ve.Validated&&!!t.c4Specification&&!!t.c4Elements&&!!t.c4Relations&&!!t.c4Views&&!!t.c4fqnIndex}function GV(t){return e=>t.some(n=>n(e))}const HV=GV([eA,zh,Fw,gw,yw,bw,Dw,mV,Y_,zw,yV,pw,kw,Q_,mw,hV,aA,Qi,lV,ca,Gr,Cw,da,ga,ya,ip,rp,Mw,Pw,Iw]),VV=t=>{let e=t;for(;e;){if(HV(e))return e;e=e.$container}};function KV(t){const e=t.diagnostics?.filter(r=>r.severity===jc.Error)??[],n=new WeakSet(e.flatMap(r=>VV(r.node)??[]));return{isValid:r=>!n.has(r),invalidNodes:n}}function*YV(t,e){const n=t.parseResult.value.models.flatMap(s=>s.elements),r=[];let i;for(;i=n.shift();)if(e(i)){if(Qi(i)){r.push(i);continue}if(da(i)){i.body&&i.body.elements.length>0&&n.push(...i.body.elements);continue}i.body&&i.body.elements.length>0&&n.push(...i.body.elements),yield i}for(const s of r)yield s}function XV(t){const e=$n(t.target);if(!e)throw new Error("RelationRefError: Invalid reference to target");if(Ot(t.source)){const n=$n(t.source);if(!n)throw new Error("RelationRefError: Invalid reference to source");return{source:n,target:e}}if(!ca(t.$container))throw new Error("RelationRefError: Invalid container for sourceless relation");return{source:t.$container.$container,target:e}}function bA({value:t}){const e=parseFloat(t);return isNaN(e)?100:ck(e,{min:0,max:100})}function jw(t,e){const n={};if(!t||t.length===0)return n;for(const r of t)if(e(r))switch(!0){case _h(r):{ce(r.value)&&(n.border=r.value);break}case no(r):{const i=Fl(r);ce(i)&&(n.color=i);break}case tp(r):{ce(r.value)&&(n.shape=r.value);break}case Zi(r):{const i=r.libicon?.ref?.name??r.value;ce(i)&&(n.icon=i);break}case Yh(r):{n.opacity=bA(r);break}default:Me(r.$type)}return n}function JV(t){const e={};if(!t||t.length===0)return e;for(const n of t){if(no(n)){const r=Fl(n);ce(r)&&(e.color=r);continue}if(ol(n)){e.line=n.value;continue}if(Mu(n)){switch(n.key){case"head":{e.head=n.value;break}case"tail":{e.tail=n.value;break}default:Me(n)}continue}Me(n)}return e}function EA(t){const{color:e,line:n,head:r,tail:i}=JV(t?.filter(pV));return{...e&&e!==bs?{color:e}:{},...n&&n!==Vb?{line:n}:{},...r&&r!==Do?{head:r}:{},...i?{tail:i}:{}}}function Fl(t){return t?.themeColor??t?.customColor?.$refText}function DA(t){const e=t.rankSep,n=t.nodeSep;let r;switch(t.direction){case"TopBottom":{r="TB";break}case"BottomTop":{r="BT";break}case"LeftRight":{r="LR";break}case"RightLeft":{r="RL";break}default:Me(t.direction)}return{direction:r,...n&&{nodeSep:n},...e&&{rankSep:e}}}function ZV(t){switch(t){case"TB":return"TopBottom";case"BT":return"BottomTop";case"LR":return"LeftRight";case"RL":return"RightLeft";default:Me(t)}}function TA(t){if(gw(t))return t;if(Rw(t))return t.subject;if(zh(t))return TA(t.subject);Me(t)}class QV{constructor(e){this.services=e}async provideCodeLens(e,n,r){return e.state!==Ve.Validated&&(Fe.debug(`Waiting for document ${e.uri.path} to be validated`),await this.services.shared.workspace.DocumentBuilder.waitUntil(Ve.Validated,e.uri,r),Fe.debug(`Document ${e.uri.path} is validated`)),Ol(e)?e.parseResult.value.views.flatMap(i=>i.views).flatMap(i=>{const s=qw.readId(i),o=i.$cstNode?.range;return!o||!s?[]:{range:{start:o.start,end:{line:o.start.line,character:o.start.character+4}},command:{command:"likec4.open-preview",arguments:[s],title:"open preview"}}}):void 0}}class eK extends F${completionOptions={triggerCharacters:["."]};completionForKeyword(e,n,r){if(this.filterKeyword(e,n)){if(["views","specification","model"].includes(n.value))return r(e,{label:n.value,detail:`Insert ${n.value} block`,kind:Xn.Module,insertTextFormat:Nf.Snippet,insertText:`${n.value} {
1727
+ $0
1728
+ }`});if(n.value==="dynamic")return r(e,{label:n.value,detail:"Insert dynamic view",kind:Xn.Class,insertTextFormat:Nf.Snippet,insertText:["dynamic view ${1:view_${TM_FILENAME_BASE}_${CURRENT_SECOND}} {"," title '${2:Untitled}'"," "," $0","}"].join(`
1729
+ `)});r(e,{label:n.value,kind:this.getKeywordCompletionItemKind(n),detail:"Keyword",sortText:"1"})}}}class tK extends L${createDocumentHighlight(e){return ge.DocumentHighlight.create(e.segment.range,ge.DocumentHighlightKind.Read)}}class nK{constructor(e){this.services=e}getDocumentLinks(e,n){return Ol(e)?xr(e.parseResult.value).filter(Vh).map(r=>{try{const i=_n(r.$cstNode,"value")?.range,s=this.resolveLink(e,r.value);if(i&&hw(s))return{range:i,target:s}}catch(i){St(i)}return null}).nonNullable().toArray():[]}resolveLink(e,n){if(hw(n)||hh(n))return n;const r=G_(n)?new URL(e.uri.toString(!0)):this.services.shared.workspace.WorkspaceManager.workspaceURL;return new URL(n,r).toString()}relativeLink(e,n){if(hh(n))return H_(n);if(G_(n)){const r=new URL(e.uri.toString(!0)),i=new URL(n,r).toString();return H_(oV(i,this.services.shared.workspace.WorkspaceManager.workspaceURL.toString()))}return null}}class rK{constructor(e){this.services=e,this.nodeKindProvider=e.shared.lsp.NodeKindProvider}nodeKindProvider;getSymbols({parseResult:{value:{specifications:e,models:n,views:r,likec4lib:i}}}){return[...i.map(s=>()=>this.getLikec4LibSymbol(s)),...e.map(s=>()=>this.getSpecSymbol(s)),...n.map(s=>()=>this.getModelSymbol(s)),...r.map(s=>()=>this.getModelViewsSymbol(s))].flatMap(s=>{try{return s()??[]}catch(o){return Xt(o),[]}})}getLikec4LibSymbol(e){const n=e?.$cstNode;if(!n)return[];const r=e.icons.map(i=>this.getLibIconSymbol(i)).filter(ce);return r.length===0?[]:[{kind:pr.Namespace,name:"icons",range:n.range,selectionRange:bc(n,"icons")?.range??n.range,children:r}]}getSpecSymbol(e){const n=e?.$cstNode;if(!n)return[];const r=_n(n,"name");if(!r)return[];const i=Qe([...e.elements,...e.tags,...e.relationships],ht(s=>{try{if(ga(s)||ya(s))return this.getKindSymbol(s);if(ip(s))return this.getTagSymbol(s)}catch(o){return Xt(o),null}Me(s)}),tt(ce));return i.length===0?[]:[{kind:pr.Namespace,name:e.name,range:n.range,selectionRange:r.range,children:i}]}getModelSymbol(e){const n=e.$cstNode;if(!n)return[];const r=_n(n,"name");return r?[{kind:this.symbolKind(e),name:e.name,range:n.range,selectionRange:r.range,children:e.elements.flatMap(i=>this.getElementsSymbol(i))}]:[]}getElementsSymbol(e){try{if(da(e))return this.getExtendElementSymbol(e);if(Gr(e))return this.getElementSymbol(e)}catch(n){Xt(n)}return[]}getExtendElementSymbol(e){const n=e.$cstNode,r=e.element.$cstNode,i=e.body;return!n||!r?[]:[{kind:this.symbolKind(e),name:ap(e.element),range:n.range,selectionRange:r.range,children:i.elements.flatMap(s=>this.getElementsSymbol(s))}]}getElementSymbol(e){const n=e.$cstNode,r=_n(n,"name");if(!r||!n)return[];const i=e.name,s=e.kind.$refText;return[{kind:this.symbolKind(e),name:i,range:n.range,selectionRange:r.range,detail:s,children:e.body?.elements.flatMap(o=>this.getElementsSymbol(o))??[]}]}getModelViewsSymbol(e){const n=e.$cstNode,r=_n(n,"name");return!r||!n?[]:[{kind:this.symbolKind(e),name:e.name,range:n.range,selectionRange:r.range,children:e.views.flatMap(i=>this.getViewSymbol(i))}]}getKindSymbol(e){return!e.$cstNode||!e.kind.$cstNode||Hi(e.kind.name)?null:{kind:this.symbolKind(e),name:e.kind.name,range:e.$cstNode.range,selectionRange:e.kind.$cstNode.range}}getTagSymbol(e){return!e.$cstNode||!e.tag.$cstNode||Hi(e.tag.name)?null:{kind:this.symbolKind(e),name:"#"+e.tag.name,range:e.$cstNode.range,selectionRange:e.tag.$cstNode.range}}getLibIconSymbol(e){return!e.$cstNode||Hi(e.name)?null:{kind:this.symbolKind(e),name:e.name,range:e.$cstNode.range,selectionRange:e.$cstNode.range}}getViewSymbol(e){const n=e?.$cstNode;if(!n)return[];const r=e.name?_n(n,"name"):null;return r?[{kind:this.symbolKind(e),name:r.text,range:n.range,selectionRange:r.range,children:[]}]:[]}symbolKind(e){return this.nodeKindProvider.getSymbolKind(e)}}class iK extends q${locator;constructor(e){super(e),this.locator=e.likec4.ModelLocator}getAstNodeHoverContent(e){if(dA(e))return{contents:{kind:"markdown",value:dv(`
1730
+ tag: \`${e.name}\`
1731
+ `)}};if(Gr(e)){const n=this.locator.getParsedElement(e);return n?{contents:{kind:"markdown",value:[n.id,`### ${n.title}`,"`"+n.kind+"` "].join(`
1732
+ `)}}:void 0}}}class sK extends l7{highlightElement(e,n){if(xV(e))return n({node:e,property:"name",type:Ge.function});if(CV(e))return n({node:e,property:"name",type:Ge.type,modifier:[ft.definition]}),"prune";if(Ow(e)&&"kind"in e){n({node:e,property:"kind",type:Ge.function});return}if(Qi(e)&&"kind"in e&&n({node:e,property:"kind",type:Ge.function}),Nw(e)||Qh(e))return n({node:e,property:"key",type:Ge.property}),n({node:e,property:"value",type:Ge.variable,modifier:[ft.definition,ft.readonly]}),"prune";if((Tw(e)||Ea(e))&&e.$cstNode){n({cst:e.$cstNode,type:Ge.variable,modifier:[ft.definition,ft.readonly]});return}if(hA(e)&&ce(e.value)){n({node:e,property:"value",type:Ge.function});return}if((X_(e)||Z_(e))&&ce(e.value)){n({node:e,property:"value",type:Ge.type,modifier:[ft.definition,ft.readonly]});return}if(Mh(e)&&ce(e.kind)&&n({node:e,property:"kind",type:Ge.type,modifier:[ft.definition]}),Bh(e)&&ce(e.tag)&&n({node:e,property:"tag",type:Ge.type,modifier:[ft.definition]}),Ku(e)||nA(e))return n({node:e,property:"el",type:e.parent?Ge.property:Ge.variable,modifier:[ft.definition,ft.readonly]}),e.parent?void 0:"prune";if(rp(e)){n({node:e,keyword:"color",type:Ge.keyword}),n({node:e,property:"name",type:Ge.type,modifier:[ft.declaration,ft.readonly]});return}if((ga(e)||ya(e))&&n({node:e,property:"kind",type:Ge.type,modifier:[ft.declaration,ft.readonly]}),zw(e))return n({node:e,property:"values",type:Ge.interface});if(dA(e))return n({node:e,property:"name",type:Ge.type,modifier:[ft.definition]});if((Lw(e)||Ju(e)&&ca(e.$container))&&n({node:e,property:"key",type:Ge.property}),Yh(e))return n({node:e,property:"key",type:Ge.property}),n({node:e,property:"value",type:Ge.number}),"prune";if(Vh(e)||Zi(e)||gV(e))return n({node:e,property:"key",type:Ge.property}),"value"in e&&e.value&&n({node:e,property:"value",type:Ge.string}),Zi(e)&&e.libicon&&n({node:e,property:"libicon",type:Ge.enum,modifier:[ft.defaultLibrary]}),"prune";if(no(e)||tp(e)||Mu(e)||ol(e)||_h(e))return n({node:e,property:"key",type:Ge.property}),"value"in e&&n({node:e,property:"value",type:Ge.enum}),"prune";if(Gr(e))return this.highlightAstElement(e,n);if(mw(e))return this.highlightView(e,n)}highlightAstElement(e,n){n({node:e,property:"name",type:Ge.variable,modifier:[ft.declaration,ft.readonly]}),n({node:e,property:"kind",type:Ge.keyword,modifier:[]})}highlightView(e,n){e.name&&n({node:e,property:"name",type:Ge.variable,modifier:[ft.declaration,ft.readonly,"local"]})}}const{findNodeForProperty:oK}=Wd,{toDocumentSegment:RA}=gL;function aK(t,e,n){const r=oK(e.$cstNode,"name");return{documentUri:n.uri,name:e.name,...e.$cstNode&&{selectionSegment:RA(e.$cstNode)},...r&&{nameSegment:RA(r)},path:t.getAstNodePath(e),type:Wr}}function cK(t,e){const n=t.c4fqnIndex=new Lr,r=t.parseResult.value.models.flatMap(a=>a.elements);if(r.length===0)return;const i=e.workspace.AstNodeLocator,s=r.map(a=>[a,null]);let o;for(;o=s.shift();)try{const[a,c]=o;if(Qi(a))continue;if(da(a)){if(Ot(a.body)&&!Hi(a.body.elements)){const u=ap(a.element);for(const l of a.body.elements)s.push([l,u])}continue}if(Gr(a)){const u=w2(a.name,c);if(n.add(u,{...aK(i,a,t),fqn:u}),vA.writeId(a,u),Ot(a.body)&&!Hi(a.body.elements))for(const l of a.body.elements)s.push([l,u]);continue}Me(a)}catch(a){Xt(a)}}class uK{constructor(e){this.services=e,this.langiumDocuments=e.shared.workspace.LangiumDocuments,e.shared.workspace.DocumentBuilder.onBuildPhase(Ve.IndexedContent,async(n,r)=>{for(const i of n)if(cp(i)){delete i.c4fqnIndex,delete i.c4Elements,delete i.c4Specification,delete i.c4Relations,delete i.c4Views;try{cK(i,e)}catch(s){St(s)}}return await Promise.resolve()}),Fe.debug("[FqnIndex] Created")}langiumDocuments;get documents(){return this.langiumDocuments.all.filter(wA)}entries(e){return this.documents.flatMap(n=>n.c4fqnIndex.keys().filter(e).flatMap(r=>n.c4fqnIndex.get(r)))}getFqn(e){return vA.readId(e)??null}byFqn(e){return this.documents.flatMap(n=>n.c4fqnIndex.get(e))}directChildrenOf(e){return Xe([e]).flatMap(n=>{const r=this.entries(i=>bt(i)===n).map(i=>[i.name,i]).toArray();return r.length===0?[]:new Lr(r).entriesGroupedByKey().flatMap(([i,s])=>s.length===1?s:[]).iterator()})}uniqueDescedants(e){return new xt(()=>{const n=`${e}.`,r=new Set,i=[],s=new Lr;if(this.entries(o=>o.startsWith(n)).forEach(o=>{const a=To(o.fqn),c={...o,name:a};bt(o.fqn)===e?(r.add(a),s.add(a,c)):i.push(c)}),s.size+i.length===0)return null;for(const o of i)r.has(o.name)||s.add(o.name,o);return s.entriesGroupedByKey().flatMap(([o,a])=>a.length===1?a:[]).iterator()},n=>n?n.next():Vt)}}function lK(t){const e=new Map;for(const n of t)if(I2(n)&&n.viewOf&&_t(n.extends)){const r=e.get(n.viewOf)??[];r.push(n.id),e.set(n.viewOf,r)}for(const{id:n,nodes:r}of t)for(const i of r){if(i.navigateTo)continue;const s=ok(e.get(i.id)??[],o=>o!==n);s&&(i.navigateTo=s)}return t}function dK(t){const e=new F_({directed:!0,multigraph:!1,compound:!1});for(const n of Vf(t))e.setNode(n.id,n.id),Xb(n)&&e.setEdge(n.id,n.extends);if(e.edgeCount()===0)return t;for(;!CH(e);){const n=Xc($H(e));if(!n)break;const r=Yc(n);if(!r)break;e.removeNode(r)}return L_(e,e.sources()).reduce((n,r)=>{const i=t[r];if(!i)return n;if(Xb(i)){const s=n[i.extends];return s?Object.assign(n,{[i.id]:{...s,...i,rules:[...s.rules,...i.rules]}}):(nt.debug(`View "${i.id}" extends from "${i.extends}" which does not exist`),n)}return Object.assign(n,{[i.id]:i})},{})}function fK(t,e="/"){const n=Qe(t,ht(c=>c.docUri),tt(ce),Mr());if(n.length===0)return"";if(n.length===1){const c=ph(n[0]).pathname.split(e);return c.length<=1?e:(c.pop(),c.join(e)+e)}we(zr(n,2),"Expected at least 2 unique URIs");const[r,...i]=n,s=ph(r).pathname.split(e);let o=s.length;for(const c of i){if(c===r)continue;const u=ph(c).pathname.split(e);for(let l=0;l<o;l++)u[l]!==s[l]&&(o=l);if(o===0)return""}const a=s.slice(0,o).join(e);return a.endsWith(e)?a:a+e}function hK(t){const e="/",n=fK(t,e);return t.map(r=>{if(!r.docUri)return{view:r,parts:[]};let i=ph(r.docUri).pathname;return n.length>0?(we(i.startsWith(n),`Expect path "${i}" to start with common prefix: "${n}"`),i=i.slice(n.length)):i=i.includes(e)?i.slice(i.lastIndexOf(e)+1):i,{view:r,parts:i.split(e)}}).sort((r,i)=>{if(r.parts.length!==i.parts.length)return r.parts.length-i.parts.length;for(let s=0;s<r.parts.length;s++){const o=cd(r.parts[s],i.parts[s]);if(o!==0)return o}return cd(r.view.title??r.view.id,i.view.title??i.view.id)}).map(({parts:r,view:i})=>({...i,relativePath:r.join(e)}))}function pK(t,e){const n={tags:new Set,elements:{},relationships:{},colors:{}};DU(ht(e,Br("c4Specification")),f=>{f.tags.forEach(h=>n.tags.add(h)),Object.assign(n.elements,f.elements),Object.assign(n.relationships,f.relationships),Object.assign(n.colors,f.colors)});function r(f,h){return ht(h,p=>{try{const g=t.lsp.DocumentLinkProvider.relativeLink(f,p.url);if(g&&g!==p.url)return{...p,relative:g}}catch(g){St(g)}return p})}const i=Wi(n.colors,f=>uL(f.color));function s(f){return({tags:h,links:p,style:{color:g,shape:v,icon:m,opacity:w,border:E},id:k,kind:A,title:I,description:x,technology:_,metadata:P})=>{try{const N=n.elements[A];if(!N)return Fe.warn(`No kind '${A}' found for ${k}`),null;const C=p?r(f,p):null;return g??=N.style.color,v??=N.style.shape,m??=N.style.icon,w??=N.style.opacity,E??=N.style.border,_??=N.technology,{...g&&{color:g},...v&&{shape:v},...m&&{icon:m},...P&&!Hi(P)&&{metadata:P},...N.notation&&{notation:N.notation},style:{...E&&{border:E},...Kf(w)&&{opacity:w}},links:C,tags:h??null,technology:_??null,description:x??null,title:I,kind:A,id:k}}catch(N){St(N)}return null}}const o=Qe(e,Vi(f=>ht(f.c4Elements,s(f))),tt(ce),X2,Q1((f,h)=>{const p=bt(h.id);return p&&_t(f[p])?(St(`No parent found for ${h.id}`),f):(f[h.id]=h,f)},{}));function a(f){return({astPath:h,source:p,target:g,kind:v,links:m,id:w,...E})=>{if(_t(o[p])||_t(o[g]))return Fe.warn(`Invalid relation ${w}, source: ${p}(${!!o[p]}), target: ${g}(${!!o[g]})`),null;const k=m?r(f,m):null;return qr(v)&&v in n.relationships?{...n.relationships[v],...E,...k&&{links:k},source:p,target:g,kind:v,id:w}:{...k&&{links:k},...E,source:p,target:g,id:w}}}const c=Qe(e,Vi(f=>ht(f.c4Relations,a(f))),tt(ce),Kc(La),ek(),qy(Br("id")));function u(f){const h=f.uri.toString();return p=>{let{id:g,title:v,description:m,tags:w,links:E,astPath:k,...A}=p;p.__==="element"&&_t(v)&&"viewOf"in p&&(v=o[p.viewOf]?.title??null),_t(v)&&g==="index"&&(v="Landscape view");const I=E?r(f,E):null;return{...A,tags:w,links:I,docUri:h,description:m,title:v,id:g,customColorDefinitions:i}}}const l=e.flatMap(f=>ht(f.c4Views,u(f)));l.some(f=>f.id==="index")||l.unshift({__:"element",id:"index",title:"Landscape view",description:null,tags:null,links:null,customColorDefinitions:i,rules:[{include:[{wildcard:!0}]}]});const d=Qe(l,hK,qy(Br("id")),dK);return{specification:{tags:Array.from(n.tags),elements:n.elements,relationships:n.relationships},elements:o,relations:c,views:d}}const Uw="ParsedLikeC4Model",Ww="ComputedLikeC4Model";class gK{constructor(e){this.services=e,this.langiumDocuments=e.shared.workspace.LangiumDocuments;const n=e.likec4.ModelParser;e.shared.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.notifyListeners(i)}),e.shared.workspace.DocumentBuilder.onBuildPhase(Ve.Validated,async(r,i)=>{let s=[];try{Fe.debug(`[ModelBuilder] onValidated (${r.length} docs)`);for(const o of n.parse(r))s.push(o.uri)}catch(o){St(o)}return s.length>0&&this.notifyListeners(s),await Promise.resolve()}),Fe.debug("[ModelBuilder] Created")}langiumDocuments;listeners=[];unsafeSyncBuildModel(){return this.services.WorkspaceCache.get(Uw,()=>{const e=this.documents();return e.length===0?(Fe.debug("[ModelBuilder] No documents to build model from"),null):(Fe.debug(`[ModelBuilder] onValidated (${e.length} docs)`),pK(this.services,e))})}async buildModel(e){const n=this.services.WorkspaceCache;return n.has(Uw)?n.get(Uw):await this.services.shared.workspace.WorkspaceLock.read(async()=>(e&&await Mt(e),this.unsafeSyncBuildModel()))}previousViews={};unsafeSyncBuildComputedModel(e){const n=this.services.WorkspaceCache,r=this.services.WorkspaceCache;return n.get(Ww,()=>{const i=new W_(e),s=[];for(const a of Vf(e.views)){const c=od(a)?j_(a,i):U_(a,i);if(!c.isSuccess){St(c.error);continue}s.push(c.view)}lK(s);const o=yi(s,a=>{const c=this.previousViews[a.id],u=c&&_C(a,c)?c:a;return r.set(SA(a.id),u),[a.id,u]});return this.previousViews={...o},{specification:e.specification,elements:e.elements,relations:e.relations,views:o}})}async buildComputedModel(e){const n=this.services.WorkspaceCache;return n.has(Ww)?n.get(Ww):await this.services.shared.workspace.WorkspaceLock.read(async()=>{e&&await Mt(e);const r=this.unsafeSyncBuildModel();return r?this.unsafeSyncBuildComputedModel(r):null})}async computeView(e,n){const r=this.services.WorkspaceCache,i=SA(e);return r.has(i)?r.get(i):await this.services.shared.workspace.WorkspaceLock.read(async()=>(n&&await Mt(n),r.get(i,()=>{const s=this.unsafeSyncBuildModel(),o=s?.views[e];if(!o)return Fe.warn(`[ModelBuilder] Cannot find view ${e}`),null;const a=new W_(s),c=od(o)?j_(o,a):U_(o,a);if(!c.isSuccess)return Xt(c.error),null;let u=c.view;const l=Qe(s.views,Vf(),tt(sg),tt(f=>f.id!==e),Yf(f=>f.viewOf));for(const f of u.nodes)if(!f.navigateTo){const h=l[f.id];h&&(f.navigateTo=h[0].id)}const d=this.previousViews[e];return u=d&&_C(u,d)?d:u,this.previousViews[e]=u,u})))}onModelParsed(e){return this.listeners.push(e),Bs.create(()=>{const n=this.listeners.indexOf(e);n>=0&&this.listeners.splice(n,1)})}documents(){return this.langiumDocuments.all.filter(Ol).toArray()}notifyListeners(e){for(const n of this.listeners)try{n(e)}catch(r){Xt(r)}}}function SA(t){return`computed-view-${t}`}const{findNodeForKeyword:mK,findNodeForProperty:up}=Wd,{getDocument:yK}=Fd;class vK{constructor(e){this.services=e,this.fqnIndex=e.likec4.FqnIndex,this.langiumDocuments=e.shared.workspace.LangiumDocuments}fqnIndex;langiumDocuments;documents(){return this.langiumDocuments.all.filter(Ol)}getParsedElement(e){const n=this.fqnIndex.getFqn(e);if(!n)return null;const r=yK(e);return Ol(r)?r.c4Elements.find(i=>i.id===n)??null:null}locateElement(e,n){const r=this.fqnIndex.byFqn(e).head(),i=r?.nameSegment??r?.selectionSegment;return!r||!i?null:{uri:r.documentUri.toString(),range:i.range}}locateRelation(e){for(const n of this.documents()){const r=n.c4Relations.find(o=>o.id===e);if(!r)continue;const i=this.services.workspace.AstNodeLocator.getAstNode(n.parseResult.value,r.astPath);if(!Qi(i))continue;let s=i.title?up(i.$cstNode,"title"):void 0;if(s??=i.kind?up(i.$cstNode,"kind"):void 0,s??=up(i.$cstNode,"target"),s??=i.$cstNode,!!s)return{uri:n.uri.toString(),range:s.range}}return null}locateViewAst(e){for(const n of this.documents()){const r=n.c4Views.find(s=>s.id===e);if(!r)continue;const i=this.services.workspace.AstNodeLocator.getAstNode(n.parseResult.value,r.astPath);if(mw(i))return{doc:n,view:r,viewAst:i}}return null}locateView(e){const n=this.locateViewAst(e);if(!n)return null;const r=n.viewAst;let i=r.name?up(r.$cstNode,"name"):void 0;return i??=mK(r.$cstNode,"view"),i??=r.$cstNode,i?{uri:n.doc.uri.toString(),range:i.range}:null}}function Gw(...t){var e=t.length>1?t.join(":::"):t[0];return gG(e).toString(36)}function wK({nodes:t,edges:e,...n}){return{...n,nodes:Wi(t,({x:r,y:i,width:s,height:o,isCompound:a,...c})=>({...c,b:[r,i,s,o],c:a})),edges:Wi(e,({points:r,controlPoints:i,labelBBox:s,dotpos:o,...a})=>({...!!i&&{cp:i},...!!s&&{l:s},...!!o&&{dp:o},...a,p:r}))}}function bK({nodes:t,edges:e,autoLayout:n,...r}){return{...r,autoLayout:_2(n)?{direction:n}:n,nodes:Wi(t,({b:i,c:s,...o})=>({x:i[0],y:i[1],width:i[2],height:i[3],isCompound:s,...o})),edges:Wi(e,({p:i,cp:s,l:o,dp:a,...c})=>({...!!s&&{controlPoints:s},...!!o&&{labelBBox:o},...!!a&&{dotpos:a},...c,points:i}))}}const kA=500;function EK(t){const e=zW(wK(t)),n=nG(e),r=[];let i=0;for(;i<n.length;)r.push(" * "+n.slice(i,Math.min(i+kA,n.length))),i+=kA;return r.unshift("/**"," * @likec4-generated(v1)"),r.push(" */"),r.join(`
1733
+ `)}function $A(t){return t.includes("@likec4-generated")}function DK(t){if(!$A(t))throw new Error(`Not a likec4-generated comment: ${t}`);const e=t.trim().split(`
1734
+ `).filter(r=>!r.includes("**")&&!r.includes("@likec4-")&&!r.includes("*/")).map(r=>r.replaceAll("*","").trim()).join(""),n=eG(e);return bK(XW(n))}const CA=({operator:t,not:e},n)=>t.startsWith("!=")?{neq:n}:t.startsWith("=")?{eq:n}:e?{neq:n}:{eq:n};function Ll(t){switch(!0){case EV(t):{const e=t.value?.ref?.name;return we(e,"Expected tag name"),{tag:CA(t,e)}}case wV(t):{const e=t.value?.ref?.name;return we(e,"Expected kind name"),{kind:CA(t,e)}}case(fA(t)||pA(t)):return{not:Ll(t.value)};case PV(t):{const e=Ll(t.left),n=Ll(t.right),r=t.operator.toLowerCase();switch(r){case"and":{const i=[rg(e)?e.and:e,rg(n)?n.and:n].flat();return we(Ds(i),"Expected non-empty array"),{and:i}}case"or":{const i=[ig(e)?e.or:e,ig(n)?n.or:n].flat();return we(Ds(i),"Expected non-empty array"),{or:i}}default:Me(r)}}default:Me(t)}}const{getDocument:Hw}=Fd;function so(t){return qr(t)?Jt(t).split(`
1735
+ `).join(" "):void 0}function Jt(t){return qr(t)?dv(t).trim():void 0}class TK{constructor(e){this.services=e,this.fqnIndex=e.likec4.FqnIndex,Fe.debug("[ModelParser] Created")}fqnIndex;parse(e){const n=Array.isArray(e)?e:[e],r=[];for(const i of n){if(!wA(i)){Fe.warn(`Not a FqnIndexedDocument: ${i.uri.toString(!0)}`);continue}try{r.push(this.parseLikeC4Document(i))}catch(s){Xt(new Error(`Error parsing document ${i.uri.toString()}`,{cause:s}))}}return r}parseLikeC4Document(e){const n=WV(e),{isValid:r}=KV(n);return this.parseSpecification(n,r),this.parseModel(n,r),this.parseViews(n,r),n}parseSpecification(e,n){const{parseResult:r,c4Specification:i}=e,s=r.value.specifications.filter(n),o=s.flatMap(l=>l.elements.filter(n));for(const{kind:l,props:d}of o)try{const f=l.name;if(!ce(f))continue;if(f in i.elements){Fe.warn(`Element kind "${f}" is already defined`);continue}const h=d.find(Ju),p=yi(d.filter(uA).filter(g=>qr(g.value))??[],g=>[g.key,Jt(g.value)]);i.elements[f]={...p,style:{...jw(h?.props,n)}}}catch(f){St(f)}const a=s.flatMap(l=>l.relationships.filter(n));for(const{kind:l,props:d}of a)try{const f=l.name;if(!ce(f))continue;if(f in i.relationships){Fe.warn(`Relationship kind "${f}" is already defined`);continue}const h=yi(d.filter(lA).filter(p=>qr(p.value))??[],p=>[p.key,Jt(p.value)]);i.relationships[f]={...h,...EA(d)}}catch(f){St(f)}const c=s.flatMap(l=>l.tags.filter(n));for(const l of c){const d=l.tag.name;ce(d)&&i.tags.add(d)}const u=s.flatMap(l=>l.colors.filter(n));for(const{name:l,color:d}of u)try{const f=l.name;if(f in i.colors){Fe.warn(`Custom color "${f}" is already defined`);continue}i.colors[f]={color:d}}catch(f){St(f)}}parseModel(e,n){for(const r of YV(e,n)){if(Gr(r)){try{e.c4Elements.push(this.parseElement(r,n))}catch(i){St(i)}continue}if(Qi(r)){try{e.c4Relations.push(this.parseRelation(r))}catch(i){St(i)}continue}Me(r)}}parseElement(e,n){const r=this.resolveFqn(e),i=e.kind.$refText,s=this.convertTags(e.body),o=e.body?.props.find(Ju)?.props,a=jw(o,n),c=this.getMetadata(e.body?.props.find(V_)),u=this.getAstNodePath(e);let[l,d,f]=e.props??[];const h=yi(e.body?.props.filter(Sw)??[],v=>[v.key,v.value||void 0]);l=so(l??h.title),d=Jt(h.description??d),f=so(h.technology??f);const p=this.convertLinks(e.body),g=e.body?.props.find(Zi);if(g){const v=g.libicon?.ref?.name??g.value;ce(v)&&(a.icon=v)}return{id:r,kind:i,astPath:u,title:l??e.name,...c&&{metadata:c},...s&&{tags:s},...p&&Ds(p)&&{links:p},...ce(f)&&{technology:f},...ce(d)&&{description:d},style:a}}parseRelation(e){const n=XV(e),r=this.resolveFqn(n.target),i=this.resolveFqn(n.source),s=this.convertTags(e)??this.convertTags(e.body),o=this.convertLinks(e.body),a=e.kind?.ref?.name,c=this.getMetadata(e.body?.props.find(V_)),u=this.getAstNodePath(e),l=yi(e.body?.props.filter(ep).filter(v=>qr(v.value))??[],v=>[v.key,v.value]),d=Qe(e.body?.props??[],tt(Qh),ht(v=>v.value.view.ref?.name),tt(ce),Xc()),f=Jt(e.title??l.title)??"",h=Jt(l.description),p=Jt(e.technology)??so(l.technology),g=e.body?.props.find(Lw);return{id:Gw(u,i,r),astPath:u,source:i,target:r,title:f,...c&&{metadata:c},...ce(p)&&{technology:p},...ce(h)&&{description:h},...a&&{kind:a},...s&&{tags:s},...Ds(o)&&{links:o},...EA(g?.props),...d&&{navigateTo:d}}}parseViews(e,n){const r=e.parseResult.value.views.filter(i=>n(i));for(const i of r){const s=i.styles.flatMap(o=>this.parseViewRuleStyle(o,n));for(const o of i.views)try{if(!n(o))continue;e.c4Views.push(qh(o)?this.parseElementView(o,s,n):this.parseDynamicElementView(o,s,n))}catch(a){St(a)}}}parseViewRulePredicate(e,n){const r=[];let i=e.predicates;for(;i;){try{ce(i.value)&&n(i.value)&&r.unshift(this.parsePredicate(i.value,n))}catch(s){St(s)}i=i.prev}return _w(e)?{include:r}:{exclude:r}}parsePredicate(e,n){if(cV(e))return this.parseElementPredicate(e,n);if(dV(e))return this.parseRelationPredicate(e,n);Me(e)}parseElementExpressionsIterator(e){const n=[];let r=e;for(;r;){try{n.unshift(this.parseElementExpr(r.value))}catch(i){St(i)}r=r.prev}return n}parseElementPredicate(e,n){if(zh(e))return this.parseElementPredicateWith(e,n);if(Rw(e))return this.parseElementPredicateWhere(e);if(gw(e))return this.parseElementExpr(e);Me(e)}parseElementExpr(e){if(Ea(e))return{wildcard:!0};if(Mh(e))return we(e.kind,"ElementKindExpr kind is not resolved: "+e.$cstNode?.text),{elementKind:e.kind.$refText,isEqual:e.isEqual};if(Bh(e)){we(e.tag,"ElementTagExpr tag is not resolved: "+e.$cstNode?.text);let n=e.tag.$refText;return n.startsWith("#")&&(n=n.slice(1)),{elementTag:n,isEqual:e.isEqual}}if(tA(e)){const n=$n(e.expand);return we(n,"Element not found "+e.expand.$cstNode?.text),{expanded:this.resolveFqn(n)}}if(Tw(e)){const n=$n(e.parent);return we(n,"Element not found "+e.parent.$cstNode?.text),{element:this.resolveFqn(n),isDescedants:!0}}if(Ku(e)){const n=$n(e);return we(n,"Element not found "+e.$cstNode?.text),{element:this.resolveFqn(n)}}Me(e)}parseElementPredicateWith(e,n){const r=this.parseElementPredicate(e.subject,n);return(e.custom?.props??[]).reduce((i,s)=>{if(Nw(s)){const o=s.value.view.$refText;return ce(o)&&(i.custom.navigateTo=o),i}if(Sw(s)){if(Ot(s.value)){let o=s.key==="description"?Jt(s.value):so(s.value);i.custom[s.key]=o||""}return i}if(Zi(s)){const o=s.libicon?.ref?.name??s.value;return Ot(o)&&(i.custom[s.key]=o),i}if(no(s)){const o=Fl(s);return Ot(o)&&(i.custom[s.key]=o),i}if(tp(s)||_h(s))return Ot(s.value)&&(i.custom[s.key]=s.value),i;if(Yh(s))return Ot(s.value)&&(i.custom[s.key]=bA(s)),i;if(dl(s))return ce(s.value)&&(i.custom[s.key]=Jt(s.value)),i;Me(s)},{custom:{expr:r}})}parseElementPredicateWhere(e){return{where:{expr:this.parseElementExpr(e.subject),condition:e.where?Ll(e.where):{kind:{neq:"--always-true--"}}}}}parseRelationPredicate(e,n){if(Fw(e)){const r=cA(e.subject)?e.subject.subject:e.subject;return this.parseRelationPredicateWith(e,r)}if(cA(e))return this.parseRelationPredicateWhere(e);if(yw(e))return this.parseRelationExpr(e);Me(e)}parseRelationPredicateWhere(e){return{where:{expr:this.parseRelationExpr(e.subject),condition:e.where?Ll(e.where):{kind:{neq:"--always-true--"}}}}}parseRelationPredicateWith(e,n){const r=this.parseRelationExpr(n);return(e.custom?.props??[]).reduce((i,s)=>{if(ep(s)||dl(s)||sA(s))return Ot(s.value)&&(i.customRelation[s.key]=Jt(s.value)??""),i;if(Mu(s))return ce(s.value)&&(i.customRelation[s.key]=s.value),i;if(no(s)){const o=Fl(s);return ce(o)&&(i.customRelation[s.key]=o),i}if(ol(s))return ce(s.value)&&(i.customRelation[s.key]=s.value),i;if(Qh(s)){const o=s.value.view.ref?.name;return ce(o)&&(i.customRelation.navigateTo=o),i}Me(s)},{customRelation:{relation:r}})}parseRelationExpr(e){if(ww(e))return{source:this.parseElementExpr(e.source.from),target:this.parseElementExpr(e.target),isBidirectional:e.source.isBidirectional};if(Aw(e))return{inout:this.parseElementExpr(e.inout.to)};if(Ow(e))return{outgoing:this.parseElementExpr(e.from)};if(rA(e))return{incoming:this.parseElementExpr(e.to)};Me(e)}parseViewRule(e,n){if(vw(e))return this.parseViewRulePredicate(e,n);if(ba(e))return this.parseViewRuleStyle(e,n);if(op(e))return DA(e);Me(e)}parseViewRuleStyle(e,n){const r=e.props.filter(Y_),i=e.target,s=e.props.find(dl);return this.parseRuleStyle(r,i,n,s)}parseRuleStyle(e,n,r,i){const s=jw(e,r),o=Jt(i?.value);return{targets:this.parseElementExpressionsIterator(n),...o&&{notation:o},style:{...s}}}parseViewManualLaout(e){const n=Td(e.$cstNode,["BLOCK_COMMENT"]);if(!(!n||!$A(n.text)))try{return DK(n.text)}catch(r){const i=Hw(e);Fe.warn(r),Fe.warn(`Ignoring manual layout of "${e.name??"unnamed"}" at ${i.uri.fsPath}:${1+(n.range.start.line||0)}`);return}}parseDynamicParallelSteps(e){return{__parallel:e.steps.map(n=>this.parseDynamicStep(n))}}parseDynamicStep(e){const n=$n(e.source);if(!n)throw new Error("Invalid reference to source");const r=$n(e.target);if(!r)throw new Error("Invalid reference to target");let i=this.resolveFqn(n),s=this.resolveFqn(r);const o=Jt(e.title)??null;let a={source:i,target:s,title:o};if(e.isBackward&&(a={source:s,target:i,title:o,isBackward:!0}),Array.isArray(e.custom?.props))for(const c of e.custom.props)try{if(ep(c)||dl(c)||sA(c)){Ot(c.value)&&(a[c.key]=Jt(c.value)??"");continue}if(Mu(c)){Ot(c.value)&&(a[c.key]=c.value);continue}if(no(c)){const u=Fl(c);Ot(u)&&(a[c.key]=u);continue}if(ol(c)){Ot(c.value)&&(a[c.key]=c.value);continue}if(Qh(c)){const u=c.value.view.ref?.name;ce(u)&&(a.navigateTo=u);continue}Me(c)}catch(u){St(u)}return a}parseElementView(e,n,r){const i=e.body;we(i,"ElementView body is not defined");const s=this.getAstNodePath(e);let o=null;if("viewOf"in e){const p=$n(e.viewOf),g=p&&this.resolveFqn(p);g?o=g:Fe.warn("viewOf is not resolved: "+e.$cstNode?.text)}let a=e.name;a||(a="view_"+Gw(Hw(e).uri.toString(),s,o??""));const c=so(i.props.find(p=>p.key==="title")?.value)??null,u=Jt(i.props.find(p=>p.key==="description")?.value)??null,l=this.convertTags(i),d=this.convertLinks(i),f=this.parseViewManualLaout(e),h={__:"element",id:a,astPath:s,title:c,description:u,tags:l,links:Ds(d)?d:null,rules:[...n,...i.rules.flatMap(p=>{try{return r(p)?this.parseViewRule(p,r):[]}catch(g){return St(g),[]}})],...o&&{viewOf:o},...f&&{manualLayout:f}};if(qw.writeId(e,h.id),"extends"in e){const p=e.extends.view.ref;return we(p?.name,"view extends is not resolved: "+e.$cstNode?.text),Object.assign(h,{extends:p.name})}return h}parseDynamicElementView(e,n,r){const i=e.body;we(i,"DynamicElementView body is not defined");const s=i.props.filter(r),o=this.getAstNodePath(e);let a=e.name;a||(a="dynamic_"+Gw(Hw(e).uri.toString(),o));const c=so(s.find(h=>h.key==="title")?.value)??null,u=Jt(s.find(h=>h.key==="description")?.value)??null,l=this.convertTags(i),d=this.convertLinks(i);qw.writeId(e,a);const f=this.parseViewManualLaout(e);return{__:"dynamic",id:a,astPath:o,title:c,description:u,tags:l,links:Ds(d)?d:null,rules:[...n,...i.rules.flatMap(h=>{try{return r(h)?this.parseDynamicViewRule(h,r):[]}catch(p){return St(p),[]}},[])],steps:i.steps.reduce((h,p)=>{try{r(p)&&(bw(p)?h.push(this.parseDynamicParallelSteps(p)):h.push(this.parseDynamicStep(p)))}catch(g){St(g)}return h},[]),...f&&{manualLayout:f}}}parseDynamicViewRule(e,n){if(SV(e))return this.parseDynamicViewIncludePredicate(e,n);if(ba(e))return this.parseViewRuleStyle(e,n);if(op(e))return DA(e);Me(e)}parseDynamicViewIncludePredicate(e,n){const r=[];let i=e.predicates;for(;i;){try{if(n(i.value)){const s=this.parseElementPredicate(i.value,n);r.unshift(s)}}catch(s){St(s)}i=i.prev}return{include:r}}resolveFqn(e){if(da(e))return ap(e.element);const n=this.fqnIndex.getFqn(e);return we(n,`Not indexed element: ${this.getAstNodePath(e)}`),n}getAstNodePath(e){return this.services.workspace.AstNodeLocator.getAstNodePath(e)}getMetadata(e){return e?.props!=null?yi(e.props,n=>[n.key,Jt(n.value)]):void 0}convertTags(e){let n=e?.tags;if(!n)return null;const r=[];for(;n;){try{const i=n.values.map(s=>s.ref?.name).filter(ce);i.length>0&&r.unshift(...i)}catch{}n=n.prev}return Ds(r)?r:null}convertLinks(e){if(!(!e?.props||e.props.length===0))return Qe(e.props,tt(Vh),Vi(n=>{const r=n.value;if(ce(r)){const i=ce(n.title)?so(n.title):void 0;return i?{url:r,title:i}:{url:r}}return[]}))}}const{findNodeForKeyword:RK,findNodeForProperty:Woe}=Wd,SK=(t,e,n=0)=>{const r=n>0?" ".repeat(n):"";return[r+`style ${t} {`,...ta(e).map(([i,s])=>r+` ${i} ${i==="opacity"?s.toString()+"%":s}`),r+"}"]},kK=(t,e)=>n=>{if(!ba(n))return!1;const r=n.target.value;if(!r||ce(n.target.prev)||!Ku(r))return!1;const i=r.el.ref;return(i?e.getFqn(i):null)===t};function $K(t,{view:e,viewAst:n,targets:r,style:i}){we(n.body,`View ${e.id} has no body`);const s=n.$cstNode;we(s,"viewCstNode");const o=Yc(n.body.rules)?.$cstNode?.range.end??n.body.$cstNode?.range.end;we(o,"insertPos is not defined");const a=s.range.start.character+2,c=t.likec4.FqnIndex,u=tt(n.body.rules,ba),l=e.__==="element"?e.viewOf:null,d=[],f=[];r.forEach(v=>{const m=AU(u,kK(v,c)),w=l&&kr(l,v)?v.substring(l.length+1):v;m?d.push({fqn:w,rule:m}):f.push({fqn:w})});const h={start:o,end:o},p=v=>{v.start.line<=h.start.line&&(v.start.line==h.start.line?h.start.character=Math.min(v.start.character,h.start.character):h.start=v.start),v.end.line>=h.end.line&&(v.end.line==h.end.line?h.end.character=Math.max(v.end.character,h.end.character):h.end=v.end)},g=[];if(f.length>0){const v=f.flatMap(({fqn:m})=>SK(m,i,a));g.push(Rn.insert(o,`
1736
+ `+v.join(`
1737
+ `))),h.start={line:o.line+1,character:a},h.end={line:o.line+v.length,character:Yc(v)?.length??0}}if(d.length>0)for(const{rule:v}of d){const m=v.$cstNode;we(m,"RuleCstNode not found");for(const[w,E]of ta(i)){const k=w==="opacity"?E.toString()+"%":E,A=v.props.find(P=>P.key===w);if(A&&A.$cstNode){const{range:{start:P,end:N}}=A.$cstNode;p({start:P,end:N}),g.push(Rn.replace({start:P,end:N},w+" "+k));continue}const I=RK(m,"{")?.range.end;we(I,"Opening brace not found");const x=" ".repeat(2+m.range.start.character),_=x+w+" "+k;g.push(Rn.insert(I,`
1738
+ `+_)),p({start:{line:I.line+1,character:x.length},end:{line:I.line+1,character:_.length}})}}return{modifiedRange:h,edits:g}}const{findNodeForProperty:Goe,findNodeForKeyword:CK}=Wd;function _K(t,{view:e,viewAst:n,layout:r}){we(n.body,`View ${e.id} has no body`);const i=n.$cstNode;we(i,"viewCstNode");const s=ZV(r.direction),o=n.body.rules.findLast(op);let a=`autoLayout ${s}`;if(Kf(r.rankSep)&&(a+=` ${r.rankSep}`,Kf(r.nodeSep)&&(a+=` ${r.nodeSep}`)),o&&o.$cstNode)return Rn.replace(o.$cstNode.range,a);const c=CK(n.body.$cstNode,"}")?.range.start;we(c,"Closing brace not found");const u=` ${a}
1739
+ `;return Rn.insert(c,u)}function AK(t,{viewAst:e,layout:n}){we(e.$cstNode,"invalid view.$cstNode");const r=Td(e.$cstNode,["BLOCK_COMMENT"]);let i=EK(n);return e.$cstNode.range.start.character>0&&(i=dW(i,e.$cstNode.range.start.character)),r?Rn.replace(r.range,i.trimStart()):Rn.insert({line:e.$cstNode.range.start.line,character:0},i+`
1740
+ `)}class xK{constructor(e){this.services=e,this.locator=e.likec4.ModelLocator}locator;async applyChange(e){const n=this.services.shared.lsp.Connection;we(n,"LSP Connection not available");let r=null;try{await this.services.shared.workspace.WorkspaceLock.write(async()=>{const{doc:i,edits:s,modifiedRange:o}=this.convertToTextEdit(e),a={uri:i.textDocument.uri,version:i.textDocument.version};if(!s.length)return;const c=await n.workspace.applyEdit({label:`LikeC4 - change view ${e.viewId}`,edit:{changes:{[a.uri]:s}}});if(!c.applied){n.window.showErrorMessage(`Failed to apply changes ${c.failureReason}`);return}r={uri:a.uri,range:o}})}catch(i){nt.error(`Failed to apply change ${e.change.op} ${e.viewId}`,i)}return r}convertToTextEdit({viewId:e,change:n}){const r=this.locator.locateViewAst(e);if(!r)throw new Error(`LikeC4ModelChanges: view not found: ${e}`);switch(n.op){case"change-element-style":return{doc:r.doc,...$K(this.services,{...r,targets:n.targets,style:n.style})};case"change-autolayout":{const s=_K(this.services,{...r,layout:n.layout});return{doc:r.doc,modifiedRange:s.range,edits:[s]}}case"save-manual-layout":const i=AK(this.services,{...r,layout:n.layout});return{doc:r.doc,modifiedRange:i.range,edits:[i]};default:Me(n)}}}class IK extends R1{async computeExports(e,n){const r=[];try{const{specifications:i,models:s,views:o,likec4lib:a}=e.parseResult.value;this.exportLibrary(a,r,e),this.exportSpecification(i,r,e),this.exportModel(s,r,e),this.exportViews(o,r,e)}catch(i){Xt(i)}return r}exportViews(e,n,r){if(!(_t(e)||e.length===0))for(const i of e.flatMap(s=>s.views))try{ce(i.name)&&n.push(this.descriptions.createDescription(i,i.name,r))}catch(s){Xt(s)}}exportModel(e,n,r){if(!(_t(e)||e.length===0))for(const i of e.flatMap(s=>s.elements))try{Gr(i)&&ce(i.name)&&n.push(this.descriptions.createDescription(i,i.name,r))}catch(s){Xt(s)}}exportLibrary(e,n,r){if(!_t(e))try{for(const i of e.flatMap(s=>s.icons))n.push(this.descriptions.createDescription(i,i.name,r))}catch(i){Xt(i)}}exportSpecification(e,n,r){if(!(_t(e)||e.length===0))for(const i of e.flatMap(s=>[...s.elements,...s.relationships,...s.tags,...s.colors]))try{switch(!0){case ga(i):{ce(i.kind.name)&&n.push(this.descriptions.createDescription(i.kind,i.kind.name,r));continue}case ip(i):{ce(i.tag.name)&&n.push(this.descriptions.createDescription(i.tag,"#"+i.tag.name,r));continue}case ya(i):{ce(i.kind.name)&&n.push(this.descriptions.createDescription(i.kind,i.kind.name,r),this.descriptions.createDescription(i.kind,"."+i.kind.name,r));continue}case rp(i):{ce(i.name.name)&&n.push(this.descriptions.createDescription(i.name,i.name.name,r));continue}default:Me(i)}}catch(s){Xt(s)}}computeLocalScopes(e,n){return new Promise(r=>{const i=e.parseResult.value,s=new Lr;for(const o of i.models)try{const a=this.processContainer(o,s,e);s.addAll(i,a.values())}catch(a){Xt(a)}r(s)})}processContainer(e,n,r){const i=new Lr,s=new Lr;for(const o of e.elements){if(Qi(o))continue;let a;if(Gr(o)?(ce(o.name)&&i.add(o.name,this.descriptions.createDescription(o,o.name,r)),a=o.body):da(o)&&(a=o.body),a&&a.elements.length>0)try{const c=this.processContainer(a,n,r);for(const[u,l]of c)s.add(u,l)}catch(c){Xt(c)}}if(s.size>0)for(const[o,a]of s.entriesGroupedByKey())!i.has(o)&&a.length===1&&i.add(o,a[0]);return n.addAll(e,i.values()),i}}const{getDocument:PK}=Fd;class NK extends _1{fqnIndex;constructor(e){super(e),this.fqnIndex=e.likec4.FqnIndex}directChildrenOf(e){return this.fqnIndex.directChildrenOf(e)}uniqueDescedants(e){return new xt(()=>{const n=e(),r=n&&this.fqnIndex.getFqn(n);return r?this.fqnIndex.uniqueDescedants(r).iterator():null},n=>n?n.next():Vt)}scopeElementRef(e){return this.uniqueDescedants(()=>e.el.ref)}scopeExtendElement({element:e}){return Xe([e.el.$nodeDescription]).nonNullable().concat(this.uniqueDescedants(()=>$n(e)))}scopeElementView({viewOf:e,extends:n}){return e?Xe([e.el.$nodeDescription]).nonNullable().concat(this.uniqueDescedants(()=>$n(e))):n?Xe([n]).flatMap(r=>{const i=r.view.ref;return i?this.scopeElementView(i):No}):No}getScope(e){try{const n=this.reflection.getReferenceType(e);if(n!==Wr)return this.getGlobalScope(n);try{const r=e.container;if(nA(r)&&e.property==="el"){const i=r.parent;return i?new Hc(this.directChildrenOf(ap(i))):this.getGlobalScope(n)}if(Ku(r)&&e.property==="el"){const i=r.parent;if(i)return new Hc(this.scopeElementRef(i));if(e.reference.$refText==="this"||e.reference.$refText==="it"){const s=vn(r,Gr);return s?new S1([this.descriptions.createDescription(s,e.reference.$refText)]):k1}}return this.computeScope(e)}catch(r){return Fe.warn(r),this.getGlobalScope(n)}}catch(n){return Fe.warn(n),k1}}computeScope(e){const n=this.reflection.getReferenceType(e);we(n===Wr,"Invalid reference type");const r=[],i=PK(e.container).precomputedScopes;if(i){const s=a=>this.reflection.isSubtype(a.type,n);let o=e.container;for(;o;){const a=i.get(o).filter(s);a.length>0&&r.push(Xe(a)),Cw(o)&&r.push(this.scopeExtendElement(o.$container)),kw(o)&&r.push(this.scopeElementView(o.$container)),o=o.$container}}return r.reduceRight((s,o)=>this.createScope(o,s),this.getGlobalScope(n))}getGlobalScope(e){return new Hc(this.indexManager.allElements(e))}}class OK{constructor(e){this.services=e}disposables=[];init(){const e=this.services.likec4.ModelBuilder,n=this.services.likec4.ModelLocator,r=this.services.likec4.ModelChanges,i=this.services.shared.lsp.Connection;if(!i){Fe.info("[ServerRpc] no connection, not initializing");return}Fe.info("[ServerRpc] init");const s=this.services.shared.workspace.LangiumDocuments,o=this.services.shared.workspace.DocumentBuilder,a=OU(()=>{i.sendNotification(sG,"").catch(u=>(Fe.error(`[ServerRpc] error sending onDidChangeModel: ${u}`),Promise.resolve()))},{timing:"both",waitMs:300,maxWaitMs:600});let c=!0;this.disposables.push(Bs.create(()=>{a.cancel()}),e.onModelParsed(()=>a.call()),i.onRequest(aG,async({cleanCaches:u},l)=>(u&&this.services.WorkspaceCache.clear(),{model:await e.buildComputedModel(l)})),i.onRequest(oG,async u=>({model:await e.buildModel(u)})),i.onRequest(cG,async({viewId:u},l)=>({view:await e.computeView(u,l)})),i.onRequest(uG,async({docs:u},l)=>{const d=u.map(p=>Yt.parse(p)),f=p=>d.every(g=>!Et.equals(g,p)),h=s.all.filter(p=>cp(p)&&f(p.uri)&&p.uri.scheme!==mC).map(p=>p.uri).toArray();Fe.debug(`[ServerRpc] received request to build:
1741
+ changed (total ${d.length}):${u.map(p=>`
1742
+ - `+p).join("")}
1743
+ deleted (total ${h.length}):${h.map(p=>`
1744
+ - `+p.toString()).join(`
1745
+ `)}`),!c&&d.length+h.length>0&&(await Promise.allSettled([...d,...h].map(async p=>{const g=p.toString();Fe.debug(`clear diagnostics for ${g}`);try{await i.sendDiagnostics({uri:g,diagnostics:[]})}catch(v){Fe.warn(`error clearing diagnostics for ${g}: ${v}`)}})),await Mt(l)),c=!1,await o.update(d,h,l)}),i.onRequest(lG,u=>{if("element"in u)return n.locateElement(u.element,u.property??"name");if("relation"in u)return n.locateRelation(u.relation);if("view"in u)return n.locateView(u.view);Me(u)}),i.onRequest(dG,async(u,l)=>await r.applyChange(u)))}dispose(){let e;for(;e=this.disposables.pop();)try{e.dispose()}catch(n){Xt(n)}}}class FK{constructor(e){this.services=e}getSymbolKind(e){const n=yt(e)?e.$type:e.type,r=(...i)=>i.some(s=>this.services.AstReflection.isSubtype(n,s));switch(!0){case r(Wr,la):return pr.Constructor;case r(fa,ha,va):return pr.Namespace;case r(to):return pr.Class;case r(ts,io,ro,wa):return pr.EnumMember;case r(es,ma):return pr.Event;case r(Ji,pa):return pr.TypeParameter}return pr.Field}getCompletionItemKind(e){const n=yt(e)?e.$type:e.type,r=(...i)=>i.some(s=>this.services.AstReflection.isSubtype(n,s));switch(!0){case r(ro):return Xn.Color;case r(Wr,la):return Xn.Constructor;case r(fa,ha,va):return Xn.Module;case r(to):return Xn.Class;case r(ts,io,ro,wa):return Xn.EnumMember;case r(es,ma):return Xn.Event;case r(Ji,pa):return Xn.TypeParameter;default:return Xn.Reference}}}class LK extends x1{documentFactory;constructor(e){super(e),this.documentFactory=e.workspace.LangiumDocumentFactory}async loadAdditionalDocuments(e,n){n(this.documentFactory.fromString(rG,Yt.parse(iG))),await super.loadAdditionalDocuments(e,n)}workspace(){return this.folders&&ad(this.folders,1)?this.folders[0]:null}get workspaceUri(){const e=this.workspace();return we(e,"Workspace not initialized"),Yt.parse(e.uri)}get workspaceURL(){const e=this.workspace();return we(e,"Workspace not initialized"),new URL(e.uri)}}class MK extends U${}const zK=t=>(e,n)=>{const r=TA(e.value);switch(!0){case Mh(r):case Bh(r):case Ea(r):{n("warning","Predicate is ignored, as not supported in dynamic views",{node:e});return}}},BK=t=>{const e=t.likec4.FqnIndex;return(n,r)=>{try{const i=$n(n.source),s=i&&e.getFqn(i);s||r("error","Source not found (not parsed/indexed yet)",{node:n,property:"source"});const o=$n(n.target),a=o&&e.getFqn(o);a||r("error","Target not found (not parsed/indexed yet)",{node:n,property:"target"}),s&&a&&(kr(s,a)||kr(a,s))&&r("error","Invalid parent-child relationship",{node:n})}catch(i){Xt(i)}}},lp=["this","it","self","super","likec4lib","global"];function dp(t){return async(e,n,r)=>{r&&await Mt(r);try{await t(e,n,r)}catch(i){St(i)}}}const{getDocument:qK}=Fd,jK=t=>{const e=t.likec4.FqnIndex,n=t.workspace.AstNodeLocator;return dp((r,i)=>{const s=e.getFqn(r);if(!s){i("error","Not indexed element",{node:r,property:"name"});return}lp.includes(r.name)&&i("error",`Reserved word: ${r.name}`,{node:r,property:"name"});const o=qK(r).uri,a=n.getAstNodePath(r),c=e.byFqn(s).filter(u=>u.documentUri!==o||u.path!==a).head();if(c){const u=c.documentUri!==o;i("error",`Duplicate element name ${r.name!==s?r.name+" ("+s+")":r.name}`,{node:r,property:"name",...u&&{relatedInformation:[{location:{range:c.nameSegment?.range??c.selectionSegment?.range,uri:c.documentUri.toString()},message:"conflicting element"}]}})}})},UK=t=>(e,n)=>{const r=parseFloat(e.value);(isNaN(r)||r<0||r>100)&&n("warning","Value ignored, must be between 0% and 100%",{node:e,property:"value"})},WK=t=>(e,n)=>{const r=e.$container;r.props.some(i=>Zi(i)&&i!==e)&&n("error","Icon must be defined once",{node:e}),Ju(r)&&ca(r.$container)&&r.$container.props.some(i=>Zi(i))&&n("warning","Redundant as icon defined on element",{node:e})},GK=t=>(e,n)=>{Jg(e,Dw)||n("error","Notes can be defined only inside dynamic view",{node:e})},HK=t=>{const e=t.likec4.FqnIndex;return dp((n,r)=>{const i=$n(n.target),s=i&&e.getFqn(i);s||r("error","Target not resolved",{node:n,property:"target"});let o;if(Ot(n.source)){if(o=$n(n.source),!o)return r("error","Source not resolved",{node:n,property:"source"})}else{if(!ca(n.$container))return r("error","Sourceless relation must be nested",{node:n});o=n.$container.$container}const a=e.getFqn(o);a||r("error","Source not resolved",{node:n}),a&&s&&Ia(a,s)&&r("error","Invalid parent-child relationship",{node:n})})},VK=t=>dp((e,n)=>{e.$container.tags?.values&&e.tags?.values&&n("error","Relation cannot have tags in both header and body",{node:e.tags})}),KK=t=>(e,n)=>{e.$containerIndex&&e.$containerIndex>0&&n("warning","Prefer one specification per document",{node:e,property:"name"})},YK=t=>(e,n)=>{e.$containerIndex&&e.$containerIndex>0&&n("warning","Prefer one model per document",{node:e,property:"name"})},XK=t=>{const e=t.shared.workspace.IndexManager;return dp((n,r)=>{lp.includes(n.name)&&r("error",`Reserved word: ${n.name}`,{node:n,property:"name"});const i=e.allElements(Ji).filter(s=>s.name===n.name&&s.node!==n).head();if(i){const s=i.documentUri!==rn(n).uri;r("error",`Duplicate element kind '${n.name}'`,{node:n,property:"name",...s&&{relatedInformation:[{location:{range:i.nameSegment.range,uri:i.documentUri.toString()},message:"conflicting definition"}]}})}})},JK=t=>{const e=t.shared.workspace.IndexManager;return(n,r)=>{const i="#"+n.name,s=e.allElements(ts).filter(o=>o.name===i&&o.node!==n).head();if(s){const o=s.documentUri!==rn(n).uri;r("error",`Duplicate tag '${n.name}'`,{node:n,property:"name",...o&&{relatedInformation:[{location:{range:s.nameSegment.range,uri:s.documentUri.toString()},message:"conflicting definition"}]}})}}},ZK=t=>{const e=t.shared.workspace.IndexManager;return(n,r)=>{lp.includes(n.name)&&r("error",`Reserved word: ${n.name}`,{node:n,property:"name"}),e.allElements(es).filter(i=>i.name===n.name).limit(2).count()>1&&r("error",`Duplicate RelationshipKind '${n.name}'`,{node:n,property:"name"})}},QK=t=>{const e=t.shared.workspace.IndexManager;return(n,r)=>{n.name&&(lp.includes(n.name)&&r("error",`Reserved word: ${n.name}`,{node:n,property:"name"}),e.allElements(to).filter(i=>i.name===n.name).limit(2).count()>1&&r("error",`Duplicate view '${n.name}'`,{node:n,property:"name"}))}},eY=t=>(e,n)=>{const r=vn(e,vw);Uh(r)&&n("error",'Invalid usage inside "exclude"',{node:e});const i=Rw(e.subject)?e.subject.subject:e.subject;switch(!0){case Ku(i):case Tw(i):case tA(i):case Ea(i):return;case Mh(i):case Bh(i):n("error","Invalid target (expect reference to specific element)",{node:e,property:"subject"});return;default:Me(i)}},tY=t=>(e,n)=>{Jg(e,yw)&&n("warning","Redundant usage, expand predicate resolves parent element only when used in relations",{node:e})},nY=t=>(e,n)=>{if(Ea(e.to)&&!Aw(e.$container)){const r=vn(e,qh);_t(r?.viewOf)&&n("warning","Predicate is ignored as it concerns all relationships",{node:e})}},rY=t=>(e,n)=>{if(Ea(e.from)&&!ww(e.$container)){const r=vn(e,qh);_t(r?.viewOf)&&n("warning","Predicate is ignored as it concerns all relationships",{node:e})}},iY=t=>(e,n)=>{const r=vn(e,vw);Uh(r)&&n("error",'Invalid usage inside "exclude"',{node:e})};function sY(t){Fe.info("registerValidationChecks"),t.validation.ValidationRegistry.register({NotesProperty:GK(),OpacityProperty:UK(),IconProperty:WK(),SpecificationRule:KK(),Model:YK(),DynamicViewStep:BK(t),LikeC4View:QK(t),Element:jK(t),ElementKind:XK(t),Relation:HK(t),RelationBody:VK(),Tag:JK(t),DynamicViewPredicateIterator:zK(),ElementPredicateWith:eY(),RelationPredicateWith:iY(),ExpandElementExpression:tY(),RelationshipKind:ZK(t),IncomingRelationExpression:nY(),OutgoingRelationExpression:rY()});const e=t.shared.lsp.Connection;e&&t.shared.workspace.DocumentBuilder.onUpdate((n,r)=>{for(const i of r)Fe.debug(`clear diagnostics for deleted ${i.path}`),e.sendDiagnostics({uri:i.toString(),diagnostics:[]})})}function oY(t,e){return[t,e]=_A(t,e)>0?[e,t]:[t,e],aY(t.range,e.range.start)}function _A(t,e){const n=t.range.start.line-e.range.start.line;return n!==0?n:t.range.start.character-e.range.start.character}function aY(t,e){return!(e.line<t.start.line||e.line>t.end.line||e.line==t.start.line&&e.character<t.start.character||e.line==t.end.line&&e.character>t.end.character)}function AA(t){return t.range.start.line!=t.range.end.line}const le={newLine:Ki.newLine({allowMore:!0}),oneSpace:Ki.oneSpace(),noSpace:Ki.noSpace(),indent:Ki.indent({allowMore:!0}),noIndent:Ki.noIndent()};class cY extends E7{format(e){this.removeIndentFromTopLevelStatements(e),this.indentContentInBraces(e),this.formatSpecificationRule(e),this.formatElementDeclaration(e),this.formatRelation(e),this.formatView(e),this.formatViewRuleStyle(e),this.formatIncludeExcludeExpressions(e),this.formatWhereExpression(e),this.formatWithPredicate(e),this.formatLeafProperty(e),this.formatMetadataProperty(e),this.formatAutolayoutProperty(e),this.formatLinkProperty(e),this.formatNavigateToProperty(e),this.formatTags(e)}formatTags(e){this.on(e,zw,(n,r)=>{r.cst(Mo(n.$cstNode,"values").slice(1)).prepend(le.oneSpace),r.keywords(",").prepend(le.noSpace).append(le.oneSpace)})}formatRelation(e){this.on(e,Qi,(n,r)=>{const i=n?.source?.$cstNode?[n?.source?.$cstNode]:[];r.cst(i).append(le.oneSpace),r.keywords("]->").prepend(le.noSpace),r.keywords("-[").append(le.noSpace),r.properties("target","title","technology","tags").prepend(le.oneSpace)}),this.on(e,Dw,(n,r)=>{r.keywords("->","<-").surround(le.oneSpace);const i=r.property("kind");i.nodes[0]?.text.startsWith(".")&&i.surround(le.oneSpace),r.keywords("]->").prepend(le.noSpace).append(le.oneSpace),r.keywords("-[").prepend(le.oneSpace).append(le.noSpace),r.properties("title").prepend(le.oneSpace)}),this.on(e,ww)?.property("target").prepend(le.oneSpace),this.on(e,Ow,(n,r)=>{r.property("from").append(le.oneSpace),r.keywords("]->").prepend(le.noSpace),r.keywords("-[").append(le.noSpace)}),this.on(e,rA)?.keywords("->").append(le.oneSpace),this.on(e,Aw)?.keyword("->").prepend(le.oneSpace)}removeIndentFromTopLevelStatements(e){(Iw(e)||Mw(e)||Pw(e)||iA(e))&&this.getNodeFormatter(e).keywords("specification","model","views","likec4lib").prepend(le.noIndent)}indentContentInBraces(e){if(iA(e)||Mw(e)||ga(e)||ya(e)||Iw(e)||ca(e)||Cw(e)||aA(e)||Lw(e)||AV(e)||Pw(e)||kw(e)||Q_(e)||ba(e)||DV(e)||TV(e)||Ju(e)||bw(e)){const n=this.getNodeFormatter(e),r=n.keywords("{"),i=n.keywords("}"),s=n.interior(r,i);let o=null;for(const a of s.nodes)(!o||!oY(o,a))&&n.cst([a]).prepend(le.indent),o=a;r.prepend(le.noIndent).prepend(le.oneSpace),i.prepend(le.noIndent).prepend(Ki.newLine({allowMore:!0}))}}appendKeywordsWithSpace(e){this.on(e,$V)?.keywords("element").append(le.oneSpace)}formatView(e){this.on(e,qh,(n,r)=>{(n.extends||n.viewOf||n.name)&&r.keywords("view").append(le.oneSpace),r.keywords("of","extends").surround(le.oneSpace)}),this.on(e,RV)?.keywords("dynamic","view").append(le.oneSpace)}formatLeafProperty(e){if(Sw(e)||ep(e)||IV(e)||dl(e)||uA(e)||lA(e)||no(e)||ol(e)||Mu(e)||Zi(e)||tp(e)||_h(e)||Yh(e)){const n=this.getNodeFormatter(e),r=n.keyword(":"),i=n.keywords("title","description","technology","notation","color","line","head","tail","icon","shape","border","opacity");r.nodes.length===0?i.append(le.oneSpace):r.prepend(le.noSpace).append(le.oneSpace),n.keyword(";").prepend(le.noSpace).append(le.newLine)}}formatLinkProperty(e){this.on(e,Vh,(n,r)=>{r.keyword("link").append(le.oneSpace),r.property("value").append(le.oneSpace),r.keyword(":").prepend(le.noSpace).append(le.oneSpace),r.keyword(";").prepend(le.noSpace).append(le.newLine)})}formatNavigateToProperty(e){this.on(e,Nw)?.property("key").append(le.oneSpace)}formatAutolayoutProperty(e){this.on(e,op,(n,r)=>{r.keyword("autoLayout").append(le.oneSpace),r.property("rankSep").prepend(le.oneSpace),r.property("nodeSep").prepend(le.oneSpace)})}formatMetadataProperty(e){this.on(e,_V,(n,r)=>{r.property("key").append(le.oneSpace),r.keyword(":").prepend(le.noSpace).append(le.oneSpace),r.keyword(";").prepend(le.noSpace).append(le.newLine)})}formatElementDeclaration(e){this.on(e,Gr,(n,r)=>{const i=_n(n.$cstNode,"kind"),s=_n(n.$cstNode,"name");s&&i&&(_A(s,i)>0?r.cst([i]).append(le.oneSpace):(r.cst([s]).append(le.oneSpace),r.cst([i]).prepend(le.oneSpace))),r.properties("props").prepend(le.oneSpace)})}formatSpecificationRule(e){if((ga(e)||ya(e)||ip(e))&&this.getNodeFormatter(e).keywords("element","relationship","tag").append(le.oneSpace),rp(e)){const n=this.getNodeFormatter(e);n.keyword("color").append(le.oneSpace),n.property("name").append(le.oneSpace)}}formatWithPredicate(e){const n=this.getNodeFormatter(e);(zh(e)||Fw(e))&&n.keyword("with").prepend(le.oneSpace)}formatViewRuleStyle(e){this.on(e,ba)?.keyword("style").append(le.oneSpace),this.on(e,kV)?.keyword(",").prepend(le.noSpace).append(le.oneSpace)}formatWhereExpression(e){if((fV(e)||uV(e))&&this.getNodeFormatter(e).keyword("where").append(le.oneSpace),(bV(e)||vV(e))&&this.getNodeFormatter(e).property("operator").surround(le.oneSpace),(fA(e)||pA(e))&&this.getNodeFormatter(e).keyword("not").append(le.oneSpace),X_(e)||OV(e)||NV(e)||Z_(e)||FV(e)||hA(e)){const n=this.getNodeFormatter(e);n.property("operator").surround(le.oneSpace),n.property("not").surround(le.oneSpace)}}formatIncludeExcludeExpressions(e){if(pw(e)||_w(e)||Uh(e)){const n=this.getNodeFormatter(e);(!e.$cstNode||!AA(e.$cstNode))&&n.keywords("include","exclude").append(le.oneSpace)}if(eA(e)||oA(e)||oA(e)){const n=this.getNodeFormatter(e),r=this.findPredicateExpressionRoot(e),i=r?.$cstNode&&AA(r?.$cstNode);i&&n.property("value").prepend(le.indent),n.keyword(",").prepend(le.noSpace).append(i?le.newLine:le.oneSpace)}}findPredicateExpressionRoot(e){let n=e.$container;for(;;){if(!n||pw(n)||_w(n)||Uh(n))return n;n=n.$container}}on(e,n,r){const i=n(e)?this.getNodeFormatter(e):void 0;return r&&i&&r(e,i),i}}const uY={lsp:{NodeKindProvider:t=>new FK(t),WorkspaceSymbolProvider:t=>new MK(t)},workspace:{WorkspaceManager:t=>new LK(t)}};function Zt(t){return e=>new t(e)}const lY={WorkspaceCache:t=>new C1(t.shared),Rpc:Zt(OK),likec4:{ModelChanges:Zt(xK),FqnIndex:Zt(uK),ModelParser:Zt(TK),ModelBuilder:Zt(gK),ModelLocator:Zt(vK)},lsp:{CompletionProvider:Zt(eK),DocumentHighlightProvider:Zt(tK),DocumentSymbolProvider:Zt(rK),SemanticTokenProvider:Zt(sK),HoverProvider:Zt(iK),CodeLensProvider:Zt(QV),DocumentLinkProvider:Zt(nK),Formatter:Zt(cY)},references:{ScopeComputation:Zt(IK),ScopeProvider:Zt(NK)}};function dY(t,e,n,r){const i=fY(t),s=[y7({shared:i}),BV,lY,e,n,r].reduce(xA,{}),o=Gf(s);return i.ServiceRegistry.register(o),sY(o),t.connection?o.Rpc.init():i.workspace.ConfigurationProvider.initialized({}),{shared:i,likec4:o}}function fY(t={}){const e={...K1,...t};return t.connection&&(UV(t.connection),jV(t.connection)),Gf(w7(e),zV,uY)}function xA(t,e){if(e){for(const[n,r]of Object.entries(e))if(r!==void 0){const i=t[n];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?t[n]=xA(i,r):t[n]=r}}return t}function IA(t){return typeof t=="object"&&t!==null&&typeof t.id=="string"}function Vw(t){return typeof t=="object"&&t!==null&&t.$$type==="Node"&&typeof t.id=="string"}function PA(t){return Vw(t)||IA(t)}function Ml(t){return typeof t=="string"||PA(t)}function hY(t){return Array.isArray(t)&&t.every(Ml)}function pY(t){return["n","ne","e","se","s","sw","w","nw","c"].includes(t)}function NA(t){if(PA(t))return t;const[e,n,r]=t.split(":");return pY(r)?{id:e,port:n,compass:r}:{id:e,port:n}}function gY(t){if(t.length<2&&(Ml(t[0])&&Ml(t[1]))===!1)throw Error("EdgeTargets must have at least 2 elements.");return t.map(e=>NA(e))}const fp=Object.seal({Graph:null,Digraph:null,Subgraph:null,Node:null,Edge:null});function mY(t){return Object.assign(Object.seal(Object.assign({},fp)),t)}function yY(...t){const[e,...n]=t;return(...r)=>n.reduce((i,s)=>s(i),e(...r))}function Jn(t,...e){return yY(t,...e)}const vY=t=>(...e)=>n=>t(n,...e),wY=t=>({[Symbol.iterator]:t}),vr=vY((t,e)=>Array.from(wY(function*(){for(const n of t)yield e(n)})));class OA{options;getLocation(){return this.options?.locationFunction?.()??null}constructor(e){this.options=e}createElement(e,n,r=[]){return{location:this.getLocation(),...n,type:e,children:r}}}const We=OA.prototype.createElement.bind(new OA),bY=/\r?\n/;function wr(t){return e=>e.join(t)}function EY(t){return e=>t+e+t}function ns(t,e){return n=>t+n+e}function hp(t){return e=>t+e}const FA=t=>t.replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/"/g,'\\"'),pp=t=>t.split(bY),zl=(t,e,n)=>Jn(pp,vr(hp(t==="space"?" ".repeat(e):`
1746
+ `)),wr(n)),oo=t=>{switch(t){case"crlf":return`\r
1747
+ `;case"lf":return`
1748
+ `}},DY={match(t){return t.type==="AttributeList"},print(t,e){if(e.children.length===0)return`${e.kind.toLocaleLowerCase()} [];`;const n=oo(t.endOfLine);return Jn(vr(t.print),wr(n),zl(t.indentStyle,t.indentSize,n),ns(`${e.kind.toLocaleLowerCase()} [${n}`,`${n}];`))(e.children)}},TY={match(t){return t.type==="Attribute"},print(t,e){return`${t.print(e.key)} = ${t.print(e.value)};`}},RY={match(t){return t.type==="Comment"},print(t,e){const n=oo(t.endOfLine);switch(e.kind){case"Block":return Jn(pp,vr(hp(" * ")),wr(n),ns(`/**${n}`,`${n} */`))(e.value);case"Macro":return Jn(pp,vr(hp("# ")),wr(n))(e.value);case"Slash":default:return Jn(pp,vr(hp("// ")),wr(n))(e.value)}}},SY={match(t){return t.type==="Dot"},print(t,e){return e.children.map(t.print).join(oo(t.endOfLine))}},kY={match(t){return t.type==="Edge"},print(t,e){const n=Jn(vr(t.print),wr(t.directed?" -> ":" -- "))(e.targets);if(e.children.length===0)return`${n};`;const r=oo(t.endOfLine),i=Jn(vr(t.print),wr(r),zl(t.indentStyle,t.indentSize,r),ns(`[${r}`,`${r}];`))(e.children);return`${n} ${i}`}},$Y={match(t){return t.type==="Graph"},print(t,e){t.directed=e.directed;const n=[];if(e.strict&&n.push("strict"),n.push(e.directed?"digraph":"graph"),e.id&&n.push(t.print(e.id)),e.children.length===0)return`${n.join(" ")} {}`;const r=oo(t.endOfLine),i=Jn(vr(t.print),wr(r),zl(t.indentStyle,t.indentSize,r),ns(`{${r}`,`${r}}`))(e.children);return`${n.join(" ")} ${i}`}},CY=Jn(FA,EY('"')),_Y=ns("<",">"),AY={match(t){return t.type==="Literal"},print(t,e){switch(e.quoted){case"html":return _Y(e.value);case!0:return CY(e.value);case!1:default:return FA(e.value)}}},xY={match(t){return t.type==="Node"},print(t,e){const n=t.print(e.id);if(e.children.length===0)return`${n};`;const r=oo(t.endOfLine),i=Jn(vr(t.print),wr(r),zl(t.indentStyle,t.indentSize,r),ns(`[${r}`,`${r}];`))(e.children);return`${n} ${i}`}},IY={match(t){return t.type==="NodeRefGroup"},print(t,e){return Jn(vr(t.print),wr(" "),ns("{","}"))(e.children)}},PY={match(t){return t.type==="NodeRef"},print(t,e){const n=[t.print(e.id)];return e.port&&n.push(t.print(e.port)),e.compass&&n.push(t.print(e.compass)),n.join(":")}},NY={match(t){return t.type==="Subgraph"},print(t,e){const n=["subgraph"];if(e.id&&n.push(t.print(e.id)),e.children.length===0)return`${n.join(" ")} {}`;const r=oo(t.endOfLine),i=Jn(vr(t.print),wr(r),zl(t.indentStyle,t.indentSize,r),ns(`{${r}`,`${r}}`))(e.children);return`${n.join(" ")} ${i}`}},OY=[DY,TY,RY,SY,kY,$Y,AY,xY,IY,PY,NY];class FY{options;#e=[...OY];constructor(e={}){this.options=e}print(e){const n=[...this.#e],{indentSize:r=2,indentStyle:i="space",endOfLine:s="lf"}=this.options,o={directed:!0,indentSize:r,indentStyle:i,endOfLine:s,print(a){for(const c of n)if(c.match(a))return c.print(o,a);throw Error()}};return o.print(e)}}function LY(t,e){const n=new FY(e).print(t);if(!n)throw new Error;return n}function gp(t,e){if(typeof e=="string"){const n=e.trim();return/^<.+>$/ms.test(n)?We("Attribute",{key:We("Literal",{value:t,quoted:!1},[]),value:We("Literal",{value:n.slice(1,n.length-1),quoted:"html"},[])},[]):We("Attribute",{key:We("Literal",{value:t,quoted:!1},[]),value:We("Literal",{value:e,quoted:!0},[])},[])}return We("Attribute",{key:We("Literal",{value:t,quoted:!1},[]),value:We("Literal",{value:String(e),quoted:!1},[])},[])}function ao(t,e){return We("Comment",{kind:e,value:t},[])}function LA(t,e){return Array.from(function*(){for(const[n,r]of e.values)yield gp(n,r);for(const n of Object.values(e.attributes))n.size>0&&(n.comment&&(yield ao(n.comment,t.commentKind)),yield t.convert(n));for(const n of e.nodes)n.comment&&(yield ao(n.comment,t.commentKind)),yield t.convert(n);for(const n of e.subgraphs)n.comment&&(yield ao(n.comment,t.commentKind)),yield t.convert(n);for(const n of e.edges)n.comment&&(yield ao(n.comment,t.commentKind)),yield t.convert(n)}())}const MY={match(t){return t.$$type==="AttributeList"},convert(t,e){return We("AttributeList",{kind:e.$$kind},e.values.map(([n,r])=>gp(n,r)))}},zY={match(t){return t.$$type==="Edge"},convert(t,e){return We("Edge",{targets:e.targets.map(n=>Vw(n)?We("NodeRef",{id:We("Literal",{value:n.id,quoted:!0},[])},[]):IA(n)?We("NodeRef",{id:We("Literal",{value:n.id,quoted:!0},[]),port:n.port?We("Literal",{value:n.port,quoted:!0},[]):void 0,compass:n.compass?We("Literal",{value:n.compass,quoted:!0},[]):void 0},[]):We("NodeRefGroup",{},n.map(r=>Vw(r)?We("NodeRef",{id:We("Literal",{value:r.id,quoted:!0},[])},[]):We("NodeRef",{id:We("Literal",{value:r.id,quoted:!0},[]),port:r.port?We("Literal",{value:r.port,quoted:!0},[]):void 0,compass:r.compass?We("Literal",{value:r.compass,quoted:!0},[]):void 0},[]))))},[...e.attributes.comment?[ao(e.attributes.comment,t.commentKind)]:[],...e.attributes.values.map(([n,r])=>gp(n,r))])}},BY={match(t){return t.$$type==="Graph"},convert(t,e){return We("Dot",{},[...e.comment?[ao(e.comment,t.commentKind)]:[],We("Graph",{directed:e.directed,strict:e.strict,id:e.id?We("Literal",{value:e.id,quoted:!0},[]):void 0},LA(t,e))])}},qY={match(t){return t.$$type==="Node"},convert(t,e){return We("Node",{id:We("Literal",{value:e.id,quoted:!0},[])},[...e.attributes.comment?[ao(e.attributes.comment,t.commentKind)]:[],...e.attributes.values.map(([n,r])=>gp(n,r))])}},jY={match(t){return t.$$type==="Subgraph"},convert(t,e){return We("Subgraph",{id:e.id?We("Literal",{value:e.id,quoted:!0},[]):void 0},LA(t,e))}},UY=[MY,zY,qY,BY,jY];class WY{options;#e=[...UY];constructor(e={}){this.options=e}convert(e){const n=[...this.#e],{commentKind:r="Slash"}=this.options,i={commentKind:r,convert(s){for(const o of n)if(o.match(s))return o.convert(i,s);throw Error()}};return i.convert(e)}}function GY(t,e){return new WY(e).convert(t)}const q=new Proxy(Object.freeze({}),{get:(t,e)=>e});class Kw{}class Yw extends Kw{#e=new Map;constructor(e){super(),e!==void 0&&this.apply(e)}get values(){return Array.from(this.#e.entries())}get size(){return this.#e.size}get(e){return this.#e.get(e)}set(e,n){n!=null&&this.#e.set(e,n)}delete(e){this.#e.delete(e)}apply(e){const n=Array.isArray(e)?e:Object.entries(e);for(const[r,i]of n)this.set(r,i)}clear(){this.#e.clear()}}class Xw extends Yw{$$kind;get $$type(){return"AttributeList"}comment;constructor(e,n){super(n),this.$$kind=e}}class MA extends Yw{#e=fp;id;comment;attributes=Object.freeze({graph:new Xw("Graph"),edge:new Xw("Edge"),node:new Xw("Node")});get nodes(){return Array.from(this.#t.nodes.values())}get edges(){return Array.from(this.#t.edges.values())}get subgraphs(){return Array.from(this.#t.subgraphs.values())}#t={nodes:new Map,edges:new Set,subgraphs:new Set};with(e){this.#e=mY(e)}addNode(e){this.#t.nodes.set(e.id,e)}addEdge(e){this.#t.edges.add(e)}addSubgraph(e){this.#t.subgraphs.add(e)}existNode(e){return this.#t.nodes.has(e)}existEdge(e){return this.#t.edges.has(e)}existSubgraph(e){return this.#t.subgraphs.has(e)}createSubgraph(...e){const n=new this.#e.Subgraph(...e);return n.with(this.#e),this.addSubgraph(n),n}removeNode(e){this.#t.nodes.delete(typeof e=="string"?e:e.id)}removeEdge(e){this.#t.edges.delete(e)}removeSubgraph(e){this.#t.subgraphs.delete(e)}createNode(e,n){const r=new this.#e.Node(e,n);return this.addNode(r),r}getSubgraph(e){return Array.from(this.#t.subgraphs.values()).find(n=>n.id===e)}getNode(e){return this.#t.nodes.get(e)}createEdge(e,n){const r=e.map(s=>hY(s)?gY(s):NA(s)),i=new this.#e.Edge(r,n);return this.addEdge(i),i}subgraph(...e){const n=e.find(o=>typeof o=="string"),r=e.find(o=>typeof o=="object"&&o!==null),i=e.find(o=>typeof o=="function"),s=n?this.getSubgraph(n)??this.createSubgraph(n):this.createSubgraph();return r!==void 0&&s.apply(r),i!==void 0&&i(s),s}node(e,...n){if(typeof e=="string"){const r=e,i=n.find(a=>typeof a=="object"&&a!==null),s=n.find(a=>typeof a=="function"),o=this.getNode(r)??this.createNode(r);return i!==void 0&&o.attributes.apply(i),s!==void 0&&s(o),o}typeof e=="object"&&e!==null&&this.attributes.node.apply(e)}edge(e,...n){if(Array.isArray(e)){const r=e,i=n.find(a=>typeof a=="object"),s=n.find(a=>typeof a=="function"),o=this.createEdge(r,i);return s!==void 0&&s(o),o}typeof e=="object"&&e!==null&&this.attributes.edge.apply(e)}graph(e){this.attributes.graph.apply(e)}}class zA extends MA{get $$type(){return"Graph"}id;strict;constructor(...e){super(),this.id=e.find(r=>typeof r=="string"),this.strict=e.find(r=>typeof r=="boolean")??!1;const n=e.find(r=>typeof r=="object"&&r!==null);n!==void 0&&this.apply(n)}}class HY extends zA{get directed(){return!0}}class VY extends zA{get directed(){return!1}}class KY extends MA{get $$type(){return"Subgraph"}id;constructor(...e){super(),this.id=e.find(r=>typeof r=="string");const n=e.find(r=>typeof r=="object"&&r!==null);n!==void 0&&this.apply(n)}isSubgraphCluster(){return typeof this.id=="string"?this.id.startsWith("cluster"):!1}}class BA extends Yw{comment}let YY=class extends Kw{id;get $$type(){return"Node"}comment;attributes;constructor(e,n){super(),this.id=e,this.attributes=new BA(n)}port(e){return typeof e=="string"?{id:this.id,port:e}:{id:this.id,...e}}};class XY extends Kw{targets;get $$type(){return"Edge"}comment;attributes;constructor(e,n){if(super(),this.targets=e,e.length<2&&(Ml(e[0])&&Ml(e[1]))===!1)throw Error("The element of Edge target is missing or not satisfied as Edge target.");this.attributes=new BA(n)}}Object.assign(fp,{Graph:VY,Digraph:HY,Subgraph:KY,Node:YY,Edge:XY});function qA(t,e){return(...n)=>{const r=t?this.Digraph:this.Graph,i=n.find(c=>typeof c=="string"),s=n.find(c=>typeof c=="object"),o=n.find(c=>typeof c=="function"),a=new r(i,e,s);return a.with(this),typeof o=="function"&&o(a),a}}function jA(t,e=fp){return Object.freeze({digraph:qA.call(e,!0,t),graph:qA.call(e,!1,t)})}const UA=jA(!1),JY=UA.digraph;UA.graph;const ZY=jA(!0);function WA(t,e){const n=GY(t,e?.convert);return LY(n,e?.print)}var Jw,GA;function QY(){if(GA)return Jw;GA=1;function t(r){let i=r.length-1,s=r[i];for(;s===" "||s===" ";)s=r[--i];return r.substring(0,i+1)}function e(r){return r.split(`
1749
+ `).map(o=>t(o)).join(`
1750
+ `)}Jw=function(r,i){if(i=i||{},r==null)return r;var s=i.width||50,o=typeof i.indent=="string"?i.indent:" ",a=i.newline||`
1751
+ `+o,c=typeof i.escape=="function"?i.escape:n,u=".{1,"+s+"}";i.cut!==!0&&(u+="([\\s\u200B]+|$)|[^\\s\u200B]+?([\\s\u200B]+|$)");var l=new RegExp(u,"g"),d=r.match(l)||[],f=o+d.map(function(h){return h.slice(-1)===`
1752
+ `&&(h=h.slice(0,h.length-1)),c(h)}).join(a);return i.trim===!0&&(f=e(f)),f};function n(r){return r}return Jw}var eX=QY();const mp={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:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t),hsl2rgb:({h:t,s:e,l:n},r)=>{if(!e)return n*2.55;t/=360,e/=100,n/=100;const i=n<.5?n*(1+e):n+e-n*e,s=2*n-i;switch(r){case"r":return mp.hue2rgb(s,i,t+1/3)*255;case"g":return mp.hue2rgb(s,i,t)*255;case"b":return mp.hue2rgb(s,i,t-1/3)*255}},rgb2hsl:({r:t,g:e,b:n},r)=>{t/=255,e/=255,n/=255;const i=Math.max(t,e,n),s=Math.min(t,e,n),o=(i+s)/2;if(r==="l")return o*100;if(i===s)return 0;const a=i-s,c=o>.5?a/(2-i-s):a/(i+s);if(r==="s")return c*100;switch(i){case t:return((e-n)/a+(e<n?6:0))*60;case e:return((n-t)/a+2)*60;case n:return((t-e)/a+4)*60;default:return-1}}},tX={clamp:(t,e,n)=>e>n?Math.min(e,Math.max(n,t)):Math.min(n,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},nX={dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},Ce={channel:mp,lang:tX,unit:nX},rs={};for(let t=0;t<=255;t++)rs[t]=Ce.unit.dec2hex(t);const Qt={ALL:0,RGB:1,HSL:2};class rX{constructor(){this.type=Qt.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=Qt.ALL}is(e){return this.type===e}}class iX{constructor(e,n){this.color=n,this.changed=!1,this.data=e,this.type=new rX}set(e,n){return this.color=n,this.changed=!1,this.data=e,this.type.type=Qt.ALL,this}_ensureHSL(){const e=this.data,{h:n,s:r,l:i}=e;n===void 0&&(e.h=Ce.channel.rgb2hsl(e,"h")),r===void 0&&(e.s=Ce.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=Ce.channel.rgb2hsl(e,"l"))}_ensureRGB(){const e=this.data,{r:n,g:r,b:i}=e;n===void 0&&(e.r=Ce.channel.hsl2rgb(e,"r")),r===void 0&&(e.g=Ce.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=Ce.channel.hsl2rgb(e,"b"))}get r(){const e=this.data,n=e.r;return!this.type.is(Qt.HSL)&&n!==void 0?n:(this._ensureHSL(),Ce.channel.hsl2rgb(e,"r"))}get g(){const e=this.data,n=e.g;return!this.type.is(Qt.HSL)&&n!==void 0?n:(this._ensureHSL(),Ce.channel.hsl2rgb(e,"g"))}get b(){const e=this.data,n=e.b;return!this.type.is(Qt.HSL)&&n!==void 0?n:(this._ensureHSL(),Ce.channel.hsl2rgb(e,"b"))}get h(){const e=this.data,n=e.h;return!this.type.is(Qt.RGB)&&n!==void 0?n:(this._ensureRGB(),Ce.channel.rgb2hsl(e,"h"))}get s(){const e=this.data,n=e.s;return!this.type.is(Qt.RGB)&&n!==void 0?n:(this._ensureRGB(),Ce.channel.rgb2hsl(e,"s"))}get l(){const e=this.data,n=e.l;return!this.type.is(Qt.RGB)&&n!==void 0?n:(this._ensureRGB(),Ce.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(Qt.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(Qt.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(Qt.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(Qt.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(Qt.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(Qt.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}}const Zw=new iX({r:0,g:0,b:0,a:0},"transparent"),Da={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;const e=t.match(Da.re);if(!e)return;const n=e[1],r=parseInt(n,16),i=n.length,s=i%4===0,o=i>4,a=o?1:17,c=o?8:4,u=s?0:-1,l=o?255:15;return Zw.set({r:(r>>c*(u+3)&l)*a,g:(r>>c*(u+2)&l)*a,b:(r>>c*(u+1)&l)*a,a:s?(r&l)*a/255:1},t)},stringify:t=>{const{r:e,g:n,b:r,a:i}=t;return i<1?`#${rs[Math.round(e)]}${rs[Math.round(n)]}${rs[Math.round(r)]}${rs[Math.round(i*255)]}`:`#${rs[Math.round(e)]}${rs[Math.round(n)]}${rs[Math.round(r)]}`}},co={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:t=>{const e=t.match(co.hueRe);if(e){const[,n,r]=e;switch(r){case"grad":return Ce.channel.clamp.h(parseFloat(n)*.9);case"rad":return Ce.channel.clamp.h(parseFloat(n)*180/Math.PI);case"turn":return Ce.channel.clamp.h(parseFloat(n)*360)}}return Ce.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(e!==104&&e!==72)return;const n=t.match(co.re);if(!n)return;const[,r,i,s,o,a]=n;return Zw.set({h:co._hue2deg(r),s:Ce.channel.clamp.s(parseFloat(i)),l:Ce.channel.clamp.l(parseFloat(s)),a:o?Ce.channel.clamp.a(a?parseFloat(o)/100:parseFloat(o)):1},t)},stringify:t=>{const{h:e,s:n,l:r,a:i}=t;return i<1?`hsla(${Ce.lang.round(e)}, ${Ce.lang.round(n)}%, ${Ce.lang.round(r)}%, ${i})`:`hsl(${Ce.lang.round(e)}, ${Ce.lang.round(n)}%, ${Ce.lang.round(r)}%)`}},Bl={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:t=>{t=t.toLowerCase();const e=Bl.colors[t];if(e)return Da.parse(e)},stringify:t=>{const e=Da.stringify(t);for(const n in Bl.colors)if(Bl.colors[n]===e)return n}},ql={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:t=>{const e=t.charCodeAt(0);if(e!==114&&e!==82)return;const n=t.match(ql.re);if(!n)return;const[,r,i,s,o,a,c,u,l]=n;return Zw.set({r:Ce.channel.clamp.r(i?parseFloat(r)*2.55:parseFloat(r)),g:Ce.channel.clamp.g(o?parseFloat(s)*2.55:parseFloat(s)),b:Ce.channel.clamp.b(c?parseFloat(a)*2.55:parseFloat(a)),a:u?Ce.channel.clamp.a(l?parseFloat(u)/100:parseFloat(u)):1},t)},stringify:t=>{const{r:e,g:n,b:r,a:i}=t;return i<1?`rgba(${Ce.lang.round(e)}, ${Ce.lang.round(n)}, ${Ce.lang.round(r)}, ${Ce.lang.round(i)})`:`rgb(${Ce.lang.round(e)}, ${Ce.lang.round(n)}, ${Ce.lang.round(r)})`}},is={format:{keyword:Bl,hex:Da,rgb:ql,rgba:ql,hsl:co,hsla:co},parse:t=>{if(typeof t!="string")return t;const e=Da.parse(t)||ql.parse(t)||co.parse(t)||Bl.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(Qt.HSL)||t.data.r===void 0?co.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?ql.stringify(t):Da.stringify(t)},sX=(t,e)=>{const n=is.parse(t);for(const r in e)n[r]=Ce.channel.clamp[r](e[r]);return is.stringify(n)},HA=t=>is.format.hex.stringify(is.parse(t)),oX=(t,e,n)=>{const r=is.parse(t),i=r[e],s=Ce.channel.clamp[e](i+n);return i!==s&&(r[e]=s),is.stringify(r)},aX=(t,e)=>oX(t,"a",-e),cX=(t,e)=>{const n=is.parse(t),r={};for(const i in e)e[i]&&(r[i]=n[i]+e[i]);return sX(t,r)},uX=(t,e)=>{const n=is.parse(t),r={},i=(s,o,a)=>o>0?(a-s)*o/100:s*o/100;for(const s in e)r[s]=i(n[s],e[s],Ce.channel.max[s]);return cX(t,r)};class lX{value;next;constructor(e){this.value=e}}class dX{#e;#t;#n;constructor(){this.clear()}enqueue(e){const n=new lX(e);this.#e?(this.#t.next=n,this.#t=n):(this.#e=n,this.#t=n),this.#n++}dequeue(){const e=this.#e;if(e)return this.#e=this.#e.next,this.#n--,e.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#n=0}get size(){return this.#n}*[Symbol.iterator](){let e=this.#e;for(;e;)yield e.value,e=e.next}}function yp(t){VA(t);const e=new dX;let n=0;const r=()=>{n<t&&e.size>0&&(e.dequeue()(),n++)},i=()=>{n--,r()},s=async(c,u,l)=>{const d=(async()=>c(...l))();u(d);try{await d}catch{}i()},o=(c,u,l)=>{new Promise(d=>{e.enqueue(d)}).then(s.bind(void 0,c,u,l)),(async()=>(await Promise.resolve(),n<t&&r()))()},a=(c,...u)=>new Promise(l=>{o(c,l,u)});return Object.defineProperties(a,{activeCount:{get:()=>n},pendingCount:{get:()=>e.size},clearQueue:{value(){e.clear()}},concurrency:{get:()=>t,set(c){VA(c),t=c,queueMicrotask(()=>{for(;n<t&&e.size>0;)r()})}}}),a}function VA(t){if(!((Number.isInteger(t)||t===Number.POSITIVE_INFINITY)&&t>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up")}var fX=Object.getOwnPropertyNames,hX=Object.getOwnPropertySymbols,pX=Object.prototype.hasOwnProperty;function KA(t,e){return function(n,r,i){return t(n,r,i)&&e(n,r,i)}}function vp(t){return function(e,n,r){if(!e||!n||typeof e!="object"||typeof n!="object")return t(e,n,r);var i=r.cache,s=i.get(e),o=i.get(n);if(s&&o)return s===n&&o===e;i.set(e,n),i.set(n,e);var a=t(e,n,r);return i.delete(e),i.delete(n),a}}function YA(t){return fX(t).concat(hX(t))}var XA=Object.hasOwn||function(t,e){return pX.call(t,e)};function Ta(t,e){return t||e?t===e:t===e||t!==t&&e!==e}var JA="_owner",ZA=Object.getOwnPropertyDescriptor,QA=Object.keys;function gX(t,e,n){var r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function mX(t,e){return Ta(t.getTime(),e.getTime())}function ex(t,e,n){if(t.size!==e.size)return!1;for(var r={},i=t.entries(),s=0,o,a;(o=i.next())&&!o.done;){for(var c=e.entries(),u=!1,l=0;(a=c.next())&&!a.done;){var d=o.value,f=d[0],h=d[1],p=a.value,g=p[0],v=p[1];!u&&!r[l]&&(u=n.equals(f,g,s,l,t,e,n)&&n.equals(h,v,f,g,t,e,n))&&(r[l]=!0),l++}if(!u)return!1;s++}return!0}function yX(t,e,n){var r=QA(t),i=r.length;if(QA(e).length!==i)return!1;for(var s;i-- >0;)if(s=r[i],s===JA&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!XA(e,s)||!n.equals(t[s],e[s],s,s,t,e,n))return!1;return!0}function jl(t,e,n){var r=YA(t),i=r.length;if(YA(e).length!==i)return!1;for(var s,o,a;i-- >0;)if(s=r[i],s===JA&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!XA(e,s)||!n.equals(t[s],e[s],s,s,t,e,n)||(o=ZA(t,s),a=ZA(e,s),(o||a)&&(!o||!a||o.configurable!==a.configurable||o.enumerable!==a.enumerable||o.writable!==a.writable)))return!1;return!0}function vX(t,e){return Ta(t.valueOf(),e.valueOf())}function wX(t,e){return t.source===e.source&&t.flags===e.flags}function tx(t,e,n){if(t.size!==e.size)return!1;for(var r={},i=t.values(),s,o;(s=i.next())&&!s.done;){for(var a=e.values(),c=!1,u=0;(o=a.next())&&!o.done;)!c&&!r[u]&&(c=n.equals(s.value,o.value,s.value,o.value,t,e,n))&&(r[u]=!0),u++;if(!c)return!1}return!0}function bX(t,e){var n=t.length;if(e.length!==n)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}var EX="[object Arguments]",DX="[object Boolean]",TX="[object Date]",RX="[object Map]",SX="[object Number]",kX="[object Object]",$X="[object RegExp]",CX="[object Set]",_X="[object String]",AX=Array.isArray,nx=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,rx=Object.assign,xX=Object.prototype.toString.call.bind(Object.prototype.toString);function IX(t){var e=t.areArraysEqual,n=t.areDatesEqual,r=t.areMapsEqual,i=t.areObjectsEqual,s=t.arePrimitiveWrappersEqual,o=t.areRegExpsEqual,a=t.areSetsEqual,c=t.areTypedArraysEqual;return function(u,l,d){if(u===l)return!0;if(u==null||l==null||typeof u!="object"||typeof l!="object")return u!==u&&l!==l;var f=u.constructor;if(f!==l.constructor)return!1;if(f===Object)return i(u,l,d);if(AX(u))return e(u,l,d);if(nx!=null&&nx(u))return c(u,l,d);if(f===Date)return n(u,l,d);if(f===RegExp)return o(u,l,d);if(f===Map)return r(u,l,d);if(f===Set)return a(u,l,d);var h=xX(u);return h===TX?n(u,l,d):h===$X?o(u,l,d):h===RX?r(u,l,d):h===CX?a(u,l,d):h===kX?typeof u.then!="function"&&typeof l.then!="function"&&i(u,l,d):h===EX?i(u,l,d):h===DX||h===SX||h===_X?s(u,l,d):!1}}function PX(t){var e=t.circular,n=t.createCustomConfig,r=t.strict,i={areArraysEqual:r?jl:gX,areDatesEqual:mX,areMapsEqual:r?KA(ex,jl):ex,areObjectsEqual:r?jl:yX,arePrimitiveWrappersEqual:vX,areRegExpsEqual:wX,areSetsEqual:r?KA(tx,jl):tx,areTypedArraysEqual:r?jl:bX};if(n&&(i=rx({},i,n(i))),e){var s=vp(i.areArraysEqual),o=vp(i.areMapsEqual),a=vp(i.areObjectsEqual),c=vp(i.areSetsEqual);i=rx({},i,{areArraysEqual:s,areMapsEqual:o,areObjectsEqual:a,areSetsEqual:c})}return i}function NX(t){return function(e,n,r,i,s,o,a){return t(e,n,a)}}function OX(t){var e=t.circular,n=t.comparator,r=t.createState,i=t.equals,s=t.strict;if(r)return function(a,c){var u=r(),l=u.cache,d=l===void 0?e?new WeakMap:void 0:l,f=u.meta;return n(a,c,{cache:d,equals:i,meta:f,strict:s})};if(e)return function(a,c){return n(a,c,{cache:new WeakMap,equals:i,meta:void 0,strict:s})};var o={cache:void 0,equals:i,meta:void 0,strict:s};return function(a,c){return n(a,c,o)}}var FX=ss();ss({strict:!0}),ss({circular:!0}),ss({circular:!0,strict:!0}),ss({createInternalComparator:function(){return Ta}}),ss({strict:!0,createInternalComparator:function(){return Ta}}),ss({circular:!0,createInternalComparator:function(){return Ta}}),ss({circular:!0,createInternalComparator:function(){return Ta},strict:!0});function ss(t){t===void 0&&(t={});var e=t.circular,n=e===void 0?!1:e,r=t.createInternalComparator,i=t.createState,s=t.strict,o=s===void 0?!1:s,a=PX(t),c=IX(a),u=r?r(c):NX(c);return OX({circular:n,comparator:c,createState:i,equals:u,strict:o})}function ix(t,e){const n=t.nodes.map(i=>{const s=e.nodes[i.id];if(!s)return i;const{x:o,y:a,width:c,height:u}=s;return{...i,width:c,height:u,position:[o,a]}}),r=t.edges.map(i=>{const s=e.edges[i.id];return s?{...i,...s}:i});return{...t,bounds:{x:e.x,y:e.y,width:e.width,height:e.height},nodes:n,edges:r}}const sx=(t,e)=>t.width>e.width+10||t.height>e.height+10;function LX(t,e){if(t.hash===e.hash)return{diagram:ix(t,e)};if(FX(t.autoLayout,e.autoLayout)&&t.nodes.every(r=>{const i=e.nodes[r.id];return!!i&&(r.children.length>0&&i.isCompound||r.children.length===0&&!i.isCompound)&&(i.isCompound||sx(r,i)===!1)})&&t.edges.every(r=>{const i=e.edges[r.id];return!!i&&(!r.labelBBox&&!i.labelBBox||!!r.labelBBox&&!!i.labelBBox&&r.labelBBox.width<=i.labelBBox.width&&r.labelBBox.height<=i.labelBBox.height)}))return{diagram:ix(t,e)};const n=t.nodes.reduce((r,i)=>{const s=e.nodes[i.id];if(i.children.length>0||!s)return r;const o={id:i.id,center:{x:Math.round(s.x+s.width/2),y:Math.round(s.y+s.height/2)}};return s.isCompound||sx(i,s)||(o.fixedsize={width:s.width,height:s.height}),r.push(o),r},[]);return{relayout:{x:e.x,y:e.y,height:e.height,nodes:n,edges:ta(e.edges).flatMap(([r,i])=>i.dotpos?{id:r,dotpos:i.dotpos}:[])}}}function Ln(t){return t.children.length>0}function Zn(t){switch(t){case"open":return"vee";default:return t}}function Hr(t){return Array.isArray(t)?[Hr(t[0]),Hr(t[1])]:(we(isFinite(t),`Invalid not finite point value ${t}`),Math.round(t))}const ox=t=>(we(isFinite(t),`Invalid not finite inch value ${t}`),Math.floor(t*72)),lt=t=>Math.ceil(t/72*1e3)/1e3,Qn=t=>Math.ceil(t);Qn(40).toString();function ax(t,e){return HA(uX(t,{l:-35-5*e,s:-15-5*e}))}function MX(t){return HA(aX(t,.3))}function zX(t){return t.trim().replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;")}function Qw(t,e){return eX(t,{width:e,indent:"",escape:zX}).split(`
1753
+ `)}function os({text:t,maxchars:e,fontsize:n,bold:r,color:i}){let s=Qw(t,e).map(a=>Hi(a)?" ":a).join("<BR/>");r&&(s=`<B>${s}</B>`);const o=i?` COLOR="${i}"`:"";return`<FONT POINT-SIZE="${Qn(n)}"${o}>${s}</FONT>`}function BX(t,e){const n=ce(t.icon),r=[os({text:t.title,fontsize:19,maxchars:35})];if(ce(t.technology)&&r.push(os({text:t.technology,fontsize:12,maxchars:n?35:45,color:e.loContrast})),ce(t.description)&&r.push(os({text:t.description,fontsize:14,maxchars:n?35:45,color:e.loContrast})),r.length===1&&!n)return`<${r[0]}>`;const i=n?(s,o,a)=>{let c=`<TD ALIGN="TEXT" BALIGN="LEFT">${s}</TD>`;if(o===0){const u=a.length>1?` ROWSPAN="${a.length}"`:"";let l=76;(t.shape==="queue"||t.shape==="mobile")&&(l+=20),c=`<TD${u} WIDTH="${l}" FIXEDSIZE="TRUE"> </TD>${c}`,c=`${c}<TD${u} WIDTH="16" FIXEDSIZE="TRUE"> </TD>`}return`<TR>${c}</TR>`}:s=>`<TR><TD>${s}</TD></TR>`;return`<<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="6">${r.map(i).join("")}</TABLE>>`}function qX(t,e){const n=os({text:t.title.toUpperCase(),maxchars:50,fontsize:11,bold:!0,color:e});return n.includes("<BR/>")?`<<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"><TR><TD ALIGN="TEXT" BALIGN="LEFT">${n}</TD></TR></TABLE>>`:`<${n}>`}const Ra=35;function jX({label:t,description:e,technology:n}){const r=[];if(ce(t)&&r.push(os({text:t,maxchars:Ra,fontsize:14,bold:t==="[...]"})),ce(e)&&r.push(os({text:e,maxchars:Ra,fontsize:14})),ce(n)&&r.push(os({text:n,fontsize:12,maxchars:Ra})),r.length===0)return null;const i=r.map(s=>`<TR><TD ALIGN="TEXT" BALIGN="LEFT">${s}</TD></TR>`).join("");return`<<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" ${e0}>${i}</TABLE>>`}const e0=`BGCOLOR="${Un.relationships[bs].labelBgColor}A0"`;function UX(t,e){const n=`<TABLE BORDER="0" CELLPADDING="6" ${e0}><TR><TD FIXEDSIZE="TRUE" WIDTH="20" HEIGHT="20"><FONT POINT-SIZE="${Qn(14)}"><B>${t}</B></FONT></TD></TR></TABLE>`;return ce(e)?`<${['<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">',"<TR>",`<TD>${n}</TD>`,`<TD ${e0} CELLPADDING="2">`,os({text:e,maxchars:Ra,fontsize:14}),"</TD>","</TR>","</TABLE>"].join("")}>`:`<${n}>`}const cx="dashed",t0=Un.font;class ux{constructor(e){this.view=e,this.compoundIds=new Set(e.nodes.filter(Ln).map(r=>r.id)),this.edgesWithCompounds=new Set(this.compoundIds.size>0?e.edges.filter(r=>this.compoundIds.has(r.source)||this.compoundIds.has(r.target)).map(r=>r.id):[]);const n=this.graphvizModel=this.createGraph();this.applyNodeAttributes(n.attributes.node),this.applyEdgeAttributes(n.attributes.edge),this.buildGraphvizModel(n)}ids=new Set;subgraphs=new Map;nodes=new Map;edges=new Map;compoundIds;edgesWithCompounds;graphvizModel;get hasEdgesWithCompounds(){return this.edgesWithCompounds.size>0}buildGraphvizModel(e){const n=(i,s)=>{const o=this.nodeId(i),a=this.elementToSubgraph(i,s.subgraph(o));this.subgraphs.set(i.id,a);for(const c of this.view.nodes.filter(u=>Ln(u)&&u.parent===i.id))n(c,a)},r=[];for(const i of this.view.nodes)Ln(i)?_t(i.parent)&&n(i,e):r.push(i);for(const i of r){const s=i.parent?this.getSubgraph(i.parent):e;we(s,"parent graph should be defined");const o=this.nodeId(i),a=this.elementToNode(i,s.node(o));this.nodes.set(i.id,a)}for(const i of this.view.edges){const s=this.addEdge(i,e);s&&this.edges.set(i.id,s)}}print(){return WA(this.graphvizModel,{print:{indentStyle:"space",indentSize:2}})}createGraph(){const e=this.view.autoLayout,n=JY({[q.bgcolor]:"transparent",[q.layout]:"dot",[q.compound]:!0,[q.rankdir]:e.direction,[q.TBbalance]:"min",[q.splines]:"spline",[q.outputorder]:"nodesfirst",[q.nodesep]:lt(e.nodeSep??110),[q.ranksep]:lt(e.rankSep??120),[q.pack]:Qn(e.rankSep??120),[q.packmode]:"array_3",[q.pad]:lt(15),[q.forcelabels]:!0,[q.fontname]:t0});return n.attributes.graph.apply({[q.fontsize]:Qn(15),[q.labeljust]:e.direction==="RL"?"r":"l",[q.labelloc]:e.direction==="BT"?"b":"t",[q.margin]:50.1}),n}applyNodeAttributes(e){e.apply({[q.fontname]:t0,[q.nojustify]:!0,[q.shape]:"rect",[q.width]:lt(320),[q.height]:lt(180),[q.style]:"filled",[q.penwidth]:0})}applyEdgeAttributes(e){e.apply({[q.nojustify]:!0,[q.arrowsize]:.75,[q.fontname]:t0,[q.fontsize]:Qn(14),[q.penwidth]:Qn(2),[q.color]:Un.relationships[bs].lineColor,[q.fontcolor]:Un.relationships[bs].labelColor})}checkNodeId(e,n=!1){return n?e="cluster_"+e:e.toLowerCase().startsWith("cluster")&&(e="nd_"+e),this.ids.has(e)?null:(this.ids.add(e),e)}nodeId(e){const n=Ln(e);let r=To(e.id).toLowerCase(),i=this.checkNodeId(r,n);if(i!==null)return i;let s=e.id,o;for(;o=bt(s);){if(r=To(o).toLowerCase()+"_"+r,i=this.checkNodeId(r,n),i!==null)return i;s=o}r=To(e.id).toLowerCase();let a=1;do i=this.checkNodeId(r+"_"+a++,n);while(i===null);return i}elementToSubgraph(e,n){we(Ln(e),"node should be compound"),we(Kf(e.depth),"node.depth should be defined");const r=this.getElementColorValues(e.color),i=MX(r.loContrast);return n.apply({[q.likec4_id]:e.id,[q.likec4_level]:e.level,[q.likec4_depth]:e.depth,[q.fillcolor]:ax(r.fill,e.depth),[q.color]:ax(r.stroke,e.depth),[q.style]:"filled",[q.margin]:Qn(e.children.length>1?40:32),[q.label]:qX(e,i)}),n}elementToNode(e,n){we(!Ln(e),"node should not be compound");const r=ce(e.icon),i=this.getElementColorValues(e.color);switch(n.attributes.apply({[q.likec4_id]:e.id,[q.likec4_level]:e.level,[q.fillcolor]:i.fill,[q.fontcolor]:i.hiContrast,[q.color]:i.stroke,[q.margin]:`${lt(r?10:26)},${lt(26)}`}),e.shape){case"cylinder":case"storage":{n.attributes.apply({[q.margin]:`${lt(r?10:26)},${lt(0)}`,[q.penwidth]:Qn(2),[q.shape]:"cylinder"});break}case"browser":{n.attributes.apply({[q.margin]:`${lt(r?10:30)},${lt(32)}`});break}case"mobile":{n.attributes.apply({[q.margin]:`${lt(r?10:30)},${lt(26)}`});break}case"queue":{n.attributes.apply({[q.width]:lt(320),[q.height]:lt(165),[q.margin]:`${lt(r?10:30)},${lt(26)}`});break}}return n.attributes.set(q.label,BX(e,i)),n}leafElements(e){if(e===null)return this.view.nodes.filter(r=>!Ln(r));const n=e+".";return this.view.nodes.filter(r=>!Ln(r)&&r.id.startsWith(n))}viewElement(e){return rt(this.view.nodes.find(n=>n.id===e),`Node ${e} not found`)}getGraphNode(e){return this.nodes.get(e)??null}getSubgraph(e){return this.subgraphs.get(e)??null}edgeEndpoint(e,n){let r=this.viewElement(e),i=this.getGraphNode(e),s;return i||(we(Ln(r),"endpoint node should be compound"),s=this.getSubgraph(e)?.id,we(s,`subgraph ${e} not found`),r=rt(n(this.leafElements(e)),`leaf element in ${e} not found`),i=rt(this.getGraphNode(r.id),`source graphviz node ${r.id} not found`)),[r,i,s]}hasInternalEdges(e){return e===null?this.view.edges.length>0:this.view.edges.some(iE(e))}findInternalEdges(e){return e===null?this.view.edges.slice():this.view.edges.filter(iE(e))}withoutCompoundEdges(e){return this.edgesWithCompounds.size===0?e:{...e,inEdges:e.inEdges.filter(n=>!this.edgesWithCompounds.has(n)),outEdges:e.outEdges.filter(n=>!this.edgesWithCompounds.has(n))}}assignGroups(){const e=Qe(this.view.nodes,tt(Ln),ht(r=>r.id),Kc(Ro),ek(),ht(r=>{const i=this.findInternalEdges(r).filter(s=>s.source!==s.target&&!this.compoundIds.has(s.source)&&!this.compoundIds.has(s.target));return{id:r,edges:i}}),tt(({edges:r})=>r.length>1&&r.length<8),Yj(4)),n=new Set;for(const r of e){const i=r.edges.filter(s=>!n.has(s.source)&&!n.has(s.target));for(const s of i)try{const o=rt(this.getGraphNode(s.source),`Graphviz Node not found for ${s.source}`),a=rt(this.getGraphNode(s.target),`Graphviz Node not found for ${s.target}`);n.add(s.source),n.add(s.target),o.attributes.set(q.group,r.id),a.attributes.set(q.group,r.id)}catch(o){nt.error(o)}}}applyManualLayout({height:e,...n}){const r=n.x<0?-n.x:0,i=n.y<0?-n.y:0,s=r>0||i>0;for(const{id:o,...a}of n.nodes){const c=this.getGraphNode(o);if(!c)continue;const u=lt(a.center.x)+r,l=lt(e-a.center.y);a.fixedsize?c.attributes.apply({[q.pos]:`${u},${l}!`,[q.pin]:!0,[q.width]:lt(a.fixedsize.width),[q.height]:lt(a.fixedsize.height),[q.fixedsize]:!0}):c.attributes.set(q.pos,`${u},${l}`)}for(const[o,a]of this.edges.entries()){a.attributes.delete(q.weight),a.attributes.delete(q.minlen),a.attributes.delete(q.constraint);const c=n.edges.find(u=>u.id===o)?.dotpos;c&&!s&&a.attributes.set(q.pos,c)}return this.graphvizModel.apply({[q.layout]:"fdp",[q.overlap]:"vpsc",[q.sep]:"+50,50",[q.esep]:"+10,10",[q.start]:"random2",[q.splines]:"compound"}),this.graphvizModel.delete(q.compound),this.graphvizModel.delete(q.rankdir),this.graphvizModel.delete(q.nodesep),this.graphvizModel.delete(q.ranksep),this.graphvizModel.delete(q.pack),this.graphvizModel.delete(q.pad),this.graphvizModel.delete(q.packmode),this.graphvizModel.attributes.graph.delete(q.margin),this}getRelationshipColorValues(e){return Kb(e)?Un.relationships[e]:this.view.customColorDefinitions[e]?.relationships??Un.relationships[_a]}getElementColorValues(e){return Kb(e)?Un.elements[e]:this.view.customColorDefinitions[e]?.elements??Un.elements[_a]}}class vb extends ux{static toDot(e){return new vb(e).print()}createGraph(){const e=super.createGraph();return e.set(q.TBbalance,"max"),e}addEdge(e,n){const{nodes:r}=this.view,[i,s]=e.dir==="back"?[e.target,e.source]:[e.source,e.target],[o,a,c]=this.edgeEndpoint(i,E=>Yc(E)),[u,l,d]=this.edgeEndpoint(s,Xc),f=n.edge([a,l],{[q.likec4_id]:e.id,[q.style]:e.line??cx});if(d&&f.attributes.set(q.lhead,d),c&&f.attributes.set(q.ltail,c),e.color&&e.color!==bs){const E=this.getRelationshipColorValues(e.color);f.attributes.apply({[q.color]:E.lineColor,[q.fontcolor]:E.labelColor})}const h=qr(d)||qr(c),p=Qb(e.id),g=UX(p,e.label?.trim());if(f.attributes.set(q.label,g),!h){const E=new Set([...o.outEdges,...u.inEdges,...vU(u.outEdges,o.inEdges)].filter(k=>!this.edgesWithCompounds.has(k)));f.attributes.set(q.weight,E.size)}const v=r.findIndex(E=>E.id===i);r.findIndex(E=>E.id===s)<v&&e.dir!=="back"&&f.attributes.apply({[q.constraint]:!1});let[m,w]=[e.head??Do,e.tail??"none"];return e.dir==="back"?(f.attributes.apply({[q.arrowtail]:Zn(m),[q.minlen]:0,[q.dir]:"back"}),w!=="none"&&f.attributes.apply({[q.arrowhead]:Zn(w),[q.dir]:"both"}),f):m==="none"&&w==="none"||m!=="none"&&w!=="none"?(f.attributes.apply({[q.arrowhead]:Zn(m),[q.arrowtail]:Zn(w),[q.dir]:"both"}),f):m==="none"?(f.attributes.delete(q.arrowhead),f.attributes.apply({[q.arrowtail]:Zn(w),[q.minlen]:0,[q.dir]:"back"}),f):(m!==Do&&f.attributes.set(q.arrowhead,Zn(m)),f)}}class wb extends ux{static toDot(e){return new wb(e).print()}buildGraphvizModel(e){super.buildGraphvizModel(e),this.assignGroups();const n=new Set,r=this.view.nodes.reduce((i,s)=>(Ln(s)&&(n.add(s.id),i.push(s)),i),[]);for(const i of r){const s=Qe(i.children,tt(u=>!this.compoundIds.has(u)),ht(u=>this.viewElement(u)),tt(u=>u.inEdges.length===0&&u.outEdges.length===0));if(s.length<=2)continue;let o=2;switch(!0){case s.length>11:o=4;break;case s.length>4:o=3;break}const a=rt(this.getSubgraph(i.id),`Subgraph not found for ${i.id}`);let c=null;qU(s,o).forEach(u=>{const l=u.length>1?a.createSubgraph({[q.rank]:"same"}):null;u.forEach((d,f)=>{const h=this.getGraphNode(d.id);h&&(l?.node(h.id),f===0&&(c&&a.edge([c,h],{[q.style]:"invis"}),c=h))})})}}addEdge(e,n){const r=this.view.edges,[i,s]=e.dir==="back"?[e.target,e.source]:[e.source,e.target],[o,a,c]=this.edgeEndpoint(i,E=>Yc(E)),[u,l,d]=this.edgeEndpoint(s,Xc),f=e.parent,h=(f===null?n:rt(this.getSubgraph(f),`Parent not found for edge ${e.id}`)).edge([a,l],{[q.likec4_id]:e.id,[q.style]:e.line??cx});d&&h.attributes.set(q.lhead,d),c&&h.attributes.set(q.ltail,c);const p=qr(d)||qr(c);if(!p){const E=new Set([...o.inEdges,...o.outEdges,...u.inEdges,...u.outEdges].filter(k=>!this.edgesWithCompounds.has(k)));h.attributes.set(q.weight,E.size)}const g=jX(e);if(g&&(p?h.attributes.set(q.xlabel,g):h.attributes.set(q.label,g)),e.color){const E=this.getRelationshipColorValues(e.color);h.attributes.apply({[q.color]:E.lineColor,[q.fontcolor]:E.labelColor})}let[v,m]=[e.head??Do,e.tail??"none"];if(e.dir==="back")return h.attributes.apply({[q.arrowtail]:Zn(v),[q.dir]:"back"}),m!=="none"&&h.attributes.apply({[q.arrowhead]:Zn(m),[q.dir]:"both",[q.minlen]:0}),h;if(v==="none"&&m==="none")return h.attributes.apply({[q.arrowtail]:"none",[q.arrowhead]:"none",[q.dir]:"none",[q.minlen]:0,[q.constraint]:!1}),h;if(v!=="none"&&m!=="none")return h.attributes.apply({[q.arrowhead]:Zn(v),[q.arrowtail]:Zn(m),[q.dir]:"both",[q.minlen]:0}),h;if(v!==Do&&h.attributes.set(q.arrowhead,Zn(v)),m!=="none"&&h.attributes.set(q.arrowtail,Zn(m)),r.length===1)return h;let w;return f===null&&o.parent==null&&u.parent==null?w=r.filter(E=>{if(E.id===e.id||E.parent!==null||E.source===e.source&&E.target===e.target||E.source===e.target&&E.target===e.source)return!1;const k=this.viewElement(E.source),A=this.viewElement(E.target);return Ln(k)||Ln(A)?!1:k.parent==null&&A.parent==null}):w=this.findInternalEdges(f).filter(E=>!(E.id===e.id||E.source===e.source&&E.target===e.target||E.source===e.target&&E.target===e.source)),w.length===0&&(f===null||this.leafElements(f).length<=3)&&h.attributes.set(q.minlen,0),h}}function wp(t){const[e,n,r,i]=t?t.split(",").map(a=>Hr(+a)):[0,0,0,0],s=Math.round(r-e),o=Math.round(n-i);return{x:Math.round(e),y:Math.round(i),width:s,height:o}}function WX(t){try{const[e,n]=t.split(",");return{x:Hr(parseFloat(e)),y:Hr(parseFloat(n))}}catch(e){throw nt.error(`failed on parsing pos: ${t}`,e),e}}function lx({pos:t,width:e,height:n}){const{x:r,y:i}=WX(t),s=ox(+e),o=ox(+n);return{x:r-Math.round(s/2),y:i-Math.round(o/2),width:s,height:o}}function dx(t,[e,n]=[0,0]){if(!t||t.length===0)return null;let r=1/0,i=1/0,s=-1/0,o=-1/0,a=13;try{for(const u of t){if(u.op==="F"){a=Hr(u.size);continue}if(u.op==="T"){let l=Hr(u.pt[0])-e,d=Hr(u.width);switch(u.align){case"r":l-=d;break;case"c":l-=Math.round(d/2);break}r=Math.min(r,l),s=Math.max(s,l+d);let f=Hr(u.pt[1])-n;i=Math.min(i,Math.round(f-a)),o=Math.max(o,f)}}}catch(u){return nt.error(`Failed on parsing label draw ops: ${u}
1754
+ ${JSON.stringify(t,null,2)}`),null}if(r===1/0)return null;const c=2;return{x:r-c,y:i-c,width:s-r+2*c,height:o-i+2*c}}function fx({_draw_:t,likec4_id:e="???"},n="<unknown view>"){try{const r=t.filter(s=>s.op.toLowerCase()==="b");we(zr(r,1),`view ${n} edge ${e} should have at least one bezier draw op`),r.length>1&&nt.warn(`view ${n} edge ${e} has more than one bezier draw op, using the first one only`);const i=r[0].points.map(s=>Hr(s));return we(zr(i,2),`view ${n} edge ${e} should have at least two points`),i}catch(r){throw nt.error(`failed on parsing view ${n} edge ${e} _draw_:
1755
+ ${JSON.stringify(t,null,2)}`),r}}function GX(t,{id:e,source:n,target:r,dir:i,label:s,description:o,...a},c){const u=dx(t._ldraw_??t._tldraw_??t._hldraw_),l=t.dir==="back"||i==="back";return s=s?Qw(s,Ra).join(`
1756
+ `):null,o=o?Qw(o,Ra).join(`
1757
+ `):void 0,{id:e,source:n,target:r,label:s,...ce(o)&&{description:o},...ce(t.pos)&&{dotpos:t.pos},points:fx(t,c),labelBBox:u,...l?{dir:"back"}:{},...a}}function hx(t,e){const n=JSON.parse(t),r=wp(n.bb),{nodes:i,edges:s,manualLayout:o,...a}=e,c={...a,bounds:r,nodes:[],edges:[]},u=n.objects??[];for(const d of i){const f=u.find(w=>w.likec4_id===d.id);we(f,`View ${a.id} element ${d.id} not found in graphviz output`);const{x:h,y:p,width:g,height:v}="bb"in f?wp(f.bb):lx(f),m=[h,p];c.nodes.push({...d,position:m,width:g,height:v,labelBBox:rt(dx(f._ldraw_,m),`View ${a.id} Node ${d.id} label bbox not found`)})}const l=n.edges??[];for(const d of s){const f=l.find(h=>h.likec4_id===d.id);if(!f){nt.warn(`View ${a.id} edge ${d.id} not found in graphviz output, skipping`);continue}c.edges.push(GX(f,d,a.id))}return c}const bp=t=>String(t+1).padStart(2,"0");function HX(t){const e=JSON.parse(t),n=wp(e.bb),r={nodes:[],edges:[],bounds:n},i=new Map,s=e.objects??[];for(const o of s){if(!o.likec4_type)continue;const a=bp(o._gvid),c=o.likec4_path??"",u=i.get(o._gvid),{x:l,y:d,width:f,height:h}="bb"in o?wp(o.bb):lx(o),p={x:l,y:d};if(o.likec4_type==="view")we(o.likec4_id,`View ${o} has no likec4_id`),r.nodes.push({id:a,type:"view",parentId:u?.id??null,height:h,width:f,position:p,label:o.label??"",viewId:o.likec4_id});else{const g={id:a,type:o.likec4_type,parentId:u?.id??null,height:h,width:f,position:p,path:c,label:o.label??""},v=[..."subgraphs"in o?o.subgraphs:[],..."nodes"in o?o.nodes:[]];for(const m of v)i.set(m,g);r.nodes.push(g)}}for(const o of e.edges??[])try{const a=bp(o.tail),c=bp(o.head);r.edges.push({id:`link${bp(o._gvid)}`,source:a,target:c,points:fx(o)})}catch(a){nt.warn(a)}return r}const px=Un.font,Ep="/";class bb{static toDot(e){return new bb(e).print()}subgraphs=new Map;graphvizModel;constructor(e){const n=this.graphvizModel=ZY.graph({[q.layout]:"osage",[q.pack]:Qn(100),[q.packmode]:"array_ltc",[q.pad]:lt(15),[q.fontname]:px,[q.splines]:"polyline",[q.esep]:"+20"});n.attributes.graph.apply({[q.fontsize]:Qn(20),[q.labeljust]:"l",[q.labelloc]:"t"}),n.attributes.node.apply({[q.fontname]:px,[q.shape]:"rect",[q.width]:lt(400),[q.height]:lt(300),[q.fixedsize]:!0,[q.fontsize]:10}),n.attributes.edge.apply({[q.penwidth]:Qn(2)});const r=new Set(e.map(c=>c.relativePath??""));let i=0,s=[...e];const o=r.size>1;o&&s.sort((c,u)=>{const l=c.relativePath?.split(Ep)??[""],d=u.relativePath?.split(Ep)??[""];l.push(c.title??"Untitled"),d.push(u.title??"Untitled");const f=l.length,h=d.length;switch(i=Math.max(i,f,h),!0){case f>h:return-1;case f<h:return 1;default:{for(let p=0;p<f;p++){const g=l[p].localeCompare(d[p]);if(g!==0)return g}return 0}}});const a=new Map;s.forEach((c,u)=>{this.addView(o?c:{...c,relativePath:""},u+i);const l=c.nodes.reduce((d,f)=>(f.navigateTo&&d.add(f.navigateTo),d),new Set);l.size>0&&a.set(c.id,l)});for(const[c,u]of a)for(const l of u)n.edge([c,l])}getParentForPath(e){if(e==="")return this.graphvizModel;const n=e.toLowerCase();let r=this.subgraphs.get(n);if(!r){const i=n.endsWith(".c4")||n.endsWith(".likec4"),s=e.includes(Ep)?e.slice(0,e.lastIndexOf(Ep)):"";r=this.getParentForPath(s).subgraph("cluster"+String(this.subgraphs.size+1),{[q.likec4_type]:i?"file":"folder",[q.likec4_path]:e,[q.sortv]:this.subgraphs.size,[q.label]:ce(s)?e.slice(s.length+1):e}),this.subgraphs.set(n,r)}return r}addView(e,n=0){return this.getParentForPath(e.relativePath??"").node(e.id,{[q.likec4_type]:"view",[q.likec4_id]:e.id,[q.sortv]:n,[q.label]:e.title||"Untitled"})}print(){return WA(this.graphvizModel,{print:{indentStyle:"space",indentSize:2}})}}const gx=t=>og(t)?new vb(t):new wb(t);class VX{constructor(e){this.graphviz=e}get port(){return this.graphviz}changePort(e){this.graphviz=e}async layout(e){let n=await this.dot(e);const r=await this.graphviz.layoutJson(n);let i=hx(r,e);if(e.manualLayout){const s=LX(i,e.manualLayout);if(s.diagram)i=s.diagram;else{if(s.relayout.nodes.length>0){const o=gx(e);if(o.hasEdgesWithCompounds)nt.warn(`Manual layout for view ${e.id} is ignored, as edges with compounds are not supported`);else{o.applyManualLayout(s.relayout);const a=await this.graphviz.layoutJson(o.print());i=hx(a,e)}}i.hasLayoutDrift=!0}}return n=n.split(`
1758
+ `).filter(s=>!(s.includes("margin")&&s.includes("50.1"))).join(`
1759
+ `),{dot:n,diagram:i}}async svg(e){let n=await this.dot(e);return n=n.split(`
1760
+ `).filter(r=>!(r.includes("margin")&&r.includes("50.1"))).join(`
1761
+ `),{svg:await this.graphviz.svg(n),dot:n}}async dot(e){let n=gx(e).print();if(og(e))return n;try{return await this.graphviz.unflatten(n)}catch(r){return nt.warn(`Error during unflatten: ${e.id}`,r),n}}async layoutOverviewGraph(e){if(e.length===0)return Promise.resolve({nodes:[],edges:[],bounds:{x:0,y:0,width:10,height:10}});const n=bb.toDot(e),r=await this.graphviz.layoutJson(n);return HX(r)}}const KX=yp(1);let YX=class Gp{static _graphviz=null;graphviz(){return Promise.resolve().then(()=>Gp._graphviz??=Kp.load())}async attempt(e,n){return await KX(async()=>{const r=nt.withTag("graphviz-wasm");try{return await n()}catch(i){r.error(`FAILED GraphvizWasmAdapter: ${e}`,i),Kp.unload(),Gp._graphviz=null}r.warn("Retrying..."),await rD(50,300);try{return await n()}finally{Kp.unload(),Gp._graphviz=null}})}async unflatten(e){return await this.attempt(`unflatten
1762
+ ${e}`,async()=>(await this.graphviz()).unflatten(e,1,!1,3).replaceAll(/\t\[/g," [").replaceAll(/\t/g," "))}async acyclic(e){return await this.attempt(`acyclic
1763
+ ${e}`,async()=>{const n=(await this.graphviz()).acyclic(e,!0);return n.acyclic&&n.outFile||e})}async layoutJson(e){return await this.attempt(`dot
1764
+ ${e}`,async()=>(await this.graphviz()).layout(e,"json",void 0,{yInvert:!0}))}async svg(e){return await this.attempt(`svg
1765
+ ${e}`,async()=>(await this.graphviz()).layout(e,"svg"))}};function er(t){if(typeof t!="object"||t===null)return!1;const e=Object.getPrototypeOf(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)}const n0=(t,e)=>{const n=mx(t);if(typeof n!="string")throw new TypeError(`${e} must be a string or a file URL: ${n}.`);return n},mx=t=>t instanceof URL?Vp(t):t,yx=(t,e=[],n={})=>{const r=n0(t,"First argument"),[i,s]=er(e)?[[],e]:[e,n];if(!Array.isArray(i))throw new TypeError(`Second argument must be either an array of arguments or an options object: ${i}`);if(i.some(c=>typeof c=="object"&&c!==null))throw new TypeError(`Second argument must be an array of strings: ${i}`);const o=i.map(String),a=o.find(c=>c.includes("\0"));if(a!==void 0)throw new TypeError(`Arguments cannot contain null bytes ("\\0"): ${a}`);if(!er(s))throw new TypeError(`Last argument must be an options object: ${s}`);return[r,o,s]},{toString:vx}=Object.prototype,XX=t=>vx.call(t)==="[object ArrayBuffer]",br=t=>vx.call(t)==="[object Uint8Array]",Ul=t=>new Uint8Array(t.buffer,t.byteOffset,t.byteLength),JX=new TextEncoder,wx=t=>JX.encode(t),ZX=new TextDecoder,bx=t=>ZX.decode(t),QX=(t,e)=>eJ(t,e).join(""),eJ=(t,e)=>{if(e==="utf8"&&t.every(s=>typeof s=="string"))return t;const n=new Cb(e),r=t.map(s=>typeof s=="string"?wx(s):s).map(s=>n.write(s)),i=n.end();return i===""?r:[...r,i]},r0=t=>t.length===1&&br(t[0])?t[0]:Ex(tJ(t)),tJ=t=>t.map(e=>typeof e=="string"?wx(e):e),Ex=t=>{const e=new Uint8Array(nJ(t));let n=0;for(const r of t)e.set(r,n),n+=r.length;return e},nJ=t=>{let e=0;for(const n of t)e+=n.length;return e},rJ=t=>Array.isArray(t)&&Array.isArray(t.raw),iJ=(t,e)=>{let n=[];for(const[s,o]of t.entries())n=sJ({templates:t,expressions:e,tokens:n,index:s,template:o});if(n.length===0)throw new TypeError("Template script must not be empty");const[r,...i]=n;return[r,i,{}]},sJ=({templates:t,expressions:e,tokens:n,index:r,template:i})=>{if(i===void 0)throw new TypeError(`Invalid backslash sequence: ${t.raw[r]}`);const{nextTokens:s,leadingWhitespaces:o,trailingWhitespaces:a}=oJ(i,t.raw[r]),c=Tx(n,s,o);if(r===e.length)return c;const u=e[r],l=Array.isArray(u)?u.map(d=>Rx(d)):[Rx(u)];return Tx(c,l,a)},oJ=(t,e)=>{if(e.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};const n=[];let r=0;const i=Dx.has(e[0]);for(let o=0,a=0;o<t.length;o+=1,a+=1){const c=e[a];if(Dx.has(c))r!==o&&n.push(t.slice(r,o)),r=o+1;else if(c==="\\"){const u=e[a+1];u==="u"&&e[a+2]==="{"?a=e.indexOf("}",a+3):a+=aJ[u]??1}}const s=r===t.length;return s||n.push(t.slice(r)),{nextTokens:n,leadingWhitespaces:i,trailingWhitespaces:s}},Dx=new Set([" "," ","\r",`
1766
+ `]),aJ={x:3,u:5},Tx=(t,e,n)=>n||t.length===0||e.length===0?[...t,...e]:[...t.slice(0,-1),`${t.at(-1)}${e[0]}`,...e.slice(1)],Rx=t=>{const e=typeof t;if(e==="string")return t;if(e==="number")return String(t);if(er(t)&&("stdout"in t||"isMaxBuffer"in t))return cJ(t);throw t instanceof $b||Object.prototype.toString.call(t)==="[object Promise]"?new TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}."):new TypeError(`Unexpected "${e}" in template expression`)},cJ=({stdout:t})=>{if(typeof t=="string")return t;if(br(t))return bx(t);throw t===void 0?new TypeError(`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`):new TypeError(`Unexpected "${typeof t}" stdout in template expression`)},uo=t=>i0.includes(t),i0=[Pe.stdin,Pe.stdout,Pe.stderr],Vr=["stdin","stdout","stderr"],Sx=t=>Vr[t]??`stdio[${t}]`,uJ=t=>{const e={...t};for(const n of _x)e[n]=kx(t,n);return e},kx=(t,e)=>{const n=Array.from({length:lJ(t)+1}),r=dJ(t[e],n,e);return mJ(r,e)},lJ=({stdio:t})=>Array.isArray(t)?Math.max(t.length,Vr.length):Vr.length,dJ=(t,e,n)=>er(t)?fJ(t,e,n):e.fill(t),fJ=(t,e,n)=>{for(const r of Object.keys(t).sort(hJ))for(const i of pJ(r,n,e))e[i]=t[r];return e},hJ=(t,e)=>$x(t)<$x(e)?1:-1,$x=t=>t==="stdout"||t==="stderr"?0:t==="all"?2:1,pJ=(t,e,n)=>{if(t==="ipc")return[n.length-1];const r=Cx(t);if(r===void 0||r===0)throw new TypeError(`"${e}.${t}" is invalid.
1767
+ It must be "${e}.stdout", "${e}.stderr", "${e}.all", "${e}.ipc", or "${e}.fd3", "${e}.fd4" (and so on).`);if(r>=n.length)throw new TypeError(`"${e}.${t}" is invalid: that file descriptor does not exist.
1768
+ Please set the "stdio" option to ensure that file descriptor exists.`);return r==="all"?[1,2]:[r]},Cx=t=>{if(t==="all")return t;if(Vr.includes(t))return Vr.indexOf(t);const e=gJ.exec(t);if(e!==null)return Number(e[1])},gJ=/^fd(\d+)$/,mJ=(t,e)=>t.map(n=>n===void 0?vJ[e]:n),yJ=WN("execa").enabled?"full":"none",vJ={lines:!1,buffer:!0,maxBuffer:1e3*1e3*100,verbose:yJ,stripFinalNewline:!0},_x=["lines","buffer","maxBuffer","verbose","stripFinalNewline"],Wl=(t,e)=>e==="ipc"?t.at(-1):t[e],s0=({verbose:t},e)=>a0(t,e)!=="none",o0=({verbose:t},e)=>!["none","short"].includes(a0(t,e)),wJ=({verbose:t},e)=>{const n=a0(t,e);return c0(n)?n:void 0},a0=(t,e)=>e===void 0?bJ(t):Wl(t,e),bJ=t=>t.find(e=>c0(e))??u0.findLast(e=>t.includes(e)),c0=t=>typeof t=="function",u0=["none","short","full"],EJ=(t,e)=>{const n=[t,...e],r=n.join(" "),i=n.map(s=>$J(Ax(s))).join(" ");return{command:r,escapedCommand:i}},l0=t=>GN(t).split(`
1769
+ `).map(e=>Ax(e)).join(`
1770
+ `),Ax=t=>t.replaceAll(RJ,e=>DJ(e)),DJ=t=>{const e=SJ[t];if(e!==void 0)return e;const n=t.codePointAt(0),r=n.toString(16);return n<=kJ?`\\u${r.padStart(4,"0")}`:`\\U${r}`},TJ=()=>{try{return new RegExp("\\p{Separator}|\\p{Other}","gu")}catch{return/[\s\u0000-\u001F\u007F-\u009F\u00AD]/g}},RJ=TJ(),SJ={" ":" ","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},kJ=65535,$J=t=>CJ.test(t)?t:KN==="win32"?`"${t.replaceAll('"','""')}"`:`'${t.replaceAll("'","'\\''")}'`,CJ=/^[\w./-]+$/;function _J(){return Pe.platform!=="win32"?Pe.env.TERM!=="linux":!!Pe.env.WT_SESSION||!!Pe.env.TERMINUS_SUBLIME||Pe.env.ConEmuTask==="{cmd::Cmder}"||Pe.env.TERM_PROGRAM==="Terminus-Sublime"||Pe.env.TERM_PROGRAM==="vscode"||Pe.env.TERM==="xterm-256color"||Pe.env.TERM==="alacritty"||Pe.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const xx={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},AJ={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},xJ={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},IJ={...xx,...AJ},PJ={...xx,...xJ},NJ=_J(),d0=NJ?IJ:PJ,OJ=kb.WriteStream.prototype.hasColors(),Dp=(t,e)=>{if(!OJ)return i=>i;const n=`\x1B[${t}m`,r=`\x1B[${e}m`;return i=>{const s=i+"";let o=s.indexOf(r);if(o===-1)return n+s+r;let a=n,c=0;for(;o!==-1;)a+=s.slice(c,o)+n,c=o+r.length,o=s.indexOf(r,c);return a+=s.slice(c)+r,a}},FJ=Dp(1,22),f0=Dp(90,39),LJ=Dp(91,39),MJ=Dp(93,39),zJ=({type:t,message:e,timestamp:n,piped:r,commandId:i,result:{failed:s=!1}={},options:{reject:o=!0}})=>{const a=BJ(n),c=qJ[t]({failed:s,reject:o,piped:r}),u=jJ[t]({reject:o});return`${f0(`[${a}]`)} ${f0(`[${i}]`)} ${u(c)} ${u(e)}`},BJ=t=>`${Tp(t.getHours(),2)}:${Tp(t.getMinutes(),2)}:${Tp(t.getSeconds(),2)}.${Tp(t.getMilliseconds(),3)}`,Tp=(t,e)=>String(t).padStart(e,"0"),Ix=({failed:t,reject:e})=>t?e?d0.cross:d0.warning:d0.tick,qJ={command:({piped:t})=>t?"|":"$",output:()=>" ",ipc:()=>"*",error:Ix,duration:Ix},Px=t=>t,jJ={command:()=>FJ,output:()=>Px,ipc:()=>Px,error:({reject:t})=>t?LJ:MJ,duration:()=>f0},UJ=(t,e,n)=>{const r=wJ(e,n);return t.map(({verboseLine:i,verboseObject:s})=>WJ(i,s,r)).filter(i=>i!==void 0).map(i=>GJ(i)).join("")},WJ=(t,e,n)=>{if(n===void 0)return t;const r=n(t,e);if(typeof r=="string")return r},GJ=t=>t.endsWith(`
1771
+ `)?t:`${t}
1772
+ `,Gl=({type:t,verboseMessage:e,fdNumber:n,verboseInfo:r,result:i})=>{const s=HJ({type:t,result:i,verboseInfo:r}),o=VJ(e,s),a=UJ(o,r,n);Db(YJ,a)},HJ=({type:t,result:e,verboseInfo:{escapedCommand:n,commandId:r,rawOptions:{piped:i=!1,...s}}})=>({type:t,escapedCommand:n,commandId:`${r}`,timestamp:new Date,piped:i,result:e,options:s}),VJ=(t,e)=>t.split(`
1773
+ `).map(n=>KJ({...e,message:n})),KJ=t=>({verboseLine:zJ(t),verboseObject:t}),YJ=2,Nx=t=>{const e=typeof t=="string"?t:Sb(t);return l0(e).replaceAll(" "," ".repeat(XJ))},XJ=2,JJ=(t,e)=>{s0(e)&&Gl({type:"command",verboseMessage:t,verboseInfo:e})},ZJ=(t,e,n)=>{tZ(t);const r=QJ(t);return{verbose:t,escapedCommand:e,commandId:r,rawOptions:n}},QJ=t=>s0({verbose:t})?eZ++:void 0;let eZ=0n;const tZ=t=>{for(const e of t){if(e===!1)throw new TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`);if(e===!0)throw new TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`);if(!u0.includes(e)&&!c0(e)){const n=u0.map(r=>`'${r}'`).join(", ");throw new TypeError(`The "verbose" option must not be ${e}. Allowed values are: ${n} or a function.`)}}},Ox=()=>nd.bigint(),Fx=t=>Number(nd.bigint()-t)/1e6,Lx=(t,e,n)=>{const r=Ox(),{command:i,escapedCommand:s}=EJ(t,e),o=kx(n,"verbose"),a=ZJ(o,s,{...n});return JJ(s,a),{command:i,escapedCommand:s,startTime:r,verboseInfo:a}};var lo={exports:{}},h0,Mx;function nZ(){if(Mx)return h0;Mx=1,h0=r,r.sync=i;var t=Zf;function e(s,o){var a=o.pathExt!==void 0?o.pathExt:process.env.PATHEXT;if(!a||(a=a.split(";"),a.indexOf("")!==-1))return!0;for(var c=0;c<a.length;c++){var u=a[c].toLowerCase();if(u&&s.substr(-u.length).toLowerCase()===u)return!0}return!1}function n(s,o,a){return!s.isSymbolicLink()&&!s.isFile()?!1:e(o,a)}function r(s,o,a){t.stat(s,function(c,u){a(c,c?!1:n(u,s,o))})}function i(s,o){return n(t.statSync(s),s,o)}return h0}var p0,zx;function rZ(){if(zx)return p0;zx=1,p0=e,e.sync=n;var t=Zf;function e(s,o,a){t.stat(s,function(c,u){a(c,c?!1:r(u,o))})}function n(s,o){return r(t.statSync(s),o)}function r(s,o){return s.isFile()&&i(s,o)}function i(s,o){var a=s.mode,c=s.uid,u=s.gid,l=o.uid!==void 0?o.uid:process.getuid&&process.getuid(),d=o.gid!==void 0?o.gid:process.getgid&&process.getgid(),f=parseInt("100",8),h=parseInt("010",8),p=parseInt("001",8),g=f|h,v=a&p||a&h&&u===d||a&f&&c===l||a&g&&l===0;return v}return p0}var g0,Bx;function iZ(){if(Bx)return g0;Bx=1;var t;process.platform==="win32"||a3.TESTING_WINDOWS?t=nZ():t=rZ(),g0=e,e.sync=n;function e(r,i,s){if(typeof i=="function"&&(s=i,i={}),!s){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){e(r,i||{},function(c,u){c?a(c):o(u)})})}t(r,i||{},function(o,a){o&&(o.code==="EACCES"||i&&i.ignoreErrors)&&(o=null,a=!1),s(o,a)})}function n(r,i){try{return t.sync(r,i||{})}catch(s){if(i&&i.ignoreErrors||s.code==="EACCES")return!1;throw s}}return g0}var m0,qx;function sZ(){if(qx)return m0;qx=1;const t=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",e=eu,n=t?";":":",r=iZ(),i=c=>Object.assign(new Error(`not found: ${c}`),{code:"ENOENT"}),s=(c,u)=>{const l=u.colon||n,d=c.match(/\//)||t&&c.match(/\\/)?[""]:[...t?[process.cwd()]:[],...(u.path||process.env.PATH||"").split(l)],f=t?u.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",h=t?f.split(l):[""];return t&&c.indexOf(".")!==-1&&h[0]!==""&&h.unshift(""),{pathEnv:d,pathExt:h,pathExtExe:f}},o=(c,u,l)=>{typeof u=="function"&&(l=u,u={}),u||(u={});const{pathEnv:d,pathExt:f,pathExtExe:h}=s(c,u),p=[],g=m=>new Promise((w,E)=>{if(m===d.length)return u.all&&p.length?w(p):E(i(c));const k=d[m],A=/^".*"$/.test(k)?k.slice(1,-1):k,I=e.join(A,c),x=!A&&/^\.[\\\/]/.test(c)?c.slice(0,2)+I:I;w(v(x,m,0))}),v=(m,w,E)=>new Promise((k,A)=>{if(E===f.length)return k(g(w+1));const I=f[E];r(m+I,{pathExt:h},(x,_)=>{if(!x&&_)if(u.all)p.push(m+I);else return k(m+I);return k(v(m,w,E+1))})});return l?g(0).then(m=>l(null,m),l):g(0)},a=(c,u)=>{u=u||{};const{pathEnv:l,pathExt:d,pathExtExe:f}=s(c,u),h=[];for(let p=0;p<l.length;p++){const g=l[p],v=/^".*"$/.test(g)?g.slice(1,-1):g,m=e.join(v,c),w=!v&&/^\.[\\\/]/.test(c)?c.slice(0,2)+m:m;for(let E=0;E<d.length;E++){const k=w+d[E];try{if(r.sync(k,{pathExt:f}))if(u.all)h.push(k);else return k}catch{}}}if(u.all&&h.length)return h;if(u.nothrow)return null;throw i(c)};return m0=o,o.sync=a,m0}var Rp={exports:{}},jx;function oZ(){if(jx)return Rp.exports;jx=1;const t=(e={})=>{const n=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(n).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};return Rp.exports=t,Rp.exports.default=t,Rp.exports}var y0,Ux;function aZ(){if(Ux)return y0;Ux=1;const t=eu,e=sZ(),n=oZ();function r(s,o){const a=s.options.env||process.env,c=process.cwd(),u=s.options.cwd!=null,l=u&&process.chdir!==void 0&&!process.chdir.disabled;if(l)try{process.chdir(s.options.cwd)}catch{}let d;try{d=e.sync(s.command,{path:a[n({env:a})],pathExt:o?t.delimiter:void 0})}catch{}finally{l&&process.chdir(c)}return d&&(d=t.resolve(u?s.options.cwd:"",d)),d}function i(s){return r(s)||r(s,!0)}return y0=i,y0}var Sp={},Wx;function cZ(){if(Wx)return Sp;Wx=1;const t=/([()\][%!^"`<>&|;, *?])/g;function e(r){return r=r.replace(t,"^$1"),r}function n(r,i){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(t,"^$1"),i&&(r=r.replace(t,"^$1")),r}return Sp.command=e,Sp.argument=n,Sp}var v0,Gx;function uZ(){return Gx||(Gx=1,v0=/^#!(.*)/),v0}var w0,Hx;function lZ(){if(Hx)return w0;Hx=1;const t=uZ();return w0=(e="")=>{const n=e.match(t);if(!n)return null;const[r,i]=n[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?i:i?`${s} ${i}`:s},w0}var b0,Vx;function dZ(){if(Vx)return b0;Vx=1;const t=Zf,e=lZ();function n(r){const s=Buffer.alloc(150);let o;try{o=t.openSync(r,"r"),t.readSync(o,s,0,150,0),t.closeSync(o)}catch{}return e(s.toString())}return b0=n,b0}var E0,Kx;function fZ(){if(Kx)return E0;Kx=1;const t=eu,e=aZ(),n=cZ(),r=dZ(),i=process.platform==="win32",s=/\.(?:com|exe)$/i,o=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function a(l){l.file=e(l);const d=l.file&&r(l.file);return d?(l.args.unshift(l.file),l.command=d,e(l)):l.file}function c(l){if(!i)return l;const d=a(l),f=!s.test(d);if(l.options.forceShell||f){const h=o.test(d);l.command=t.normalize(l.command),l.command=n.command(l.command),l.args=l.args.map(g=>n.argument(g,h));const p=[l.command].concat(l.args).join(" ");l.args=["/d","/s","/c",`"${p}"`],l.command=process.env.comspec||"cmd.exe",l.options.windowsVerbatimArguments=!0}return l}function u(l,d,f){d&&!Array.isArray(d)&&(f=d,d=null),d=d?d.slice(0):[],f=Object.assign({},f);const h={command:l,args:d,options:f,file:void 0,original:{command:l,args:d}};return f.shell?h:c(h)}return E0=u,E0}var D0,Yx;function hZ(){if(Yx)return D0;Yx=1;const t=process.platform==="win32";function e(s,o){return Object.assign(new Error(`${o} ${s.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${o} ${s.command}`,path:s.command,spawnargs:s.args})}function n(s,o){if(!t)return;const a=s.emit;s.emit=function(c,u){if(c==="exit"){const l=r(u,o);if(l)return a.call(s,"error",l)}return a.apply(s,arguments)}}function r(s,o){return t&&s===1&&!o.file?e(o.original,"spawn"):null}function i(s,o){return t&&s===1&&!o.file?e(o.original,"spawnSync"):null}return D0={hookChildProcess:n,verifyENOENT:r,verifyENOENTSync:i,notFoundError:e},D0}var Xx;function pZ(){if(Xx)return lo.exports;Xx=1;const t=k$,e=fZ(),n=hZ();function r(s,o,a){const c=e(s,o,a),u=t.spawn(c.command,c.args,c.options);return n.hookChildProcess(u,c),u}function i(s,o,a){const c=e(s,o,a),u=t.spawnSync(c.command,c.args,c.options);return u.error=u.error||n.verifyENOENTSync(u.status,c),u}return lo.exports=r,lo.exports.spawn=r,lo.exports.sync=i,lo.exports._parse=e,lo.exports._enoent=n,lo.exports}var gZ=pZ();function Jx(t={}){const{env:e=process.env,platform:n=process.platform}=t;return n!=="win32"?"PATH":Object.keys(e).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"}const mZ=({cwd:t=Pe.cwd(),path:e=Pe.env[Jx()],preferLocal:n=!0,execPath:r=Pe.execPath,addExecPath:i=!0}={})=>{const s=t instanceof URL?Vp(t):t,o=Jr.resolve(s),a=[];return n&&yZ(a,o),i&&vZ(a,r,o),[...a,e].join(Jr.delimiter)},yZ=(t,e)=>{let n;for(;n!==e;)t.push(Jr.join(e,"node_modules/.bin")),n=e,e=Jr.resolve(e,"..")},vZ=(t,e,n)=>{const r=e instanceof URL?Vp(e):e;t.push(Jr.resolve(n,r,".."))},wZ=({env:t=Pe.env,...e}={})=>{t={...t};const n=Jx({env:t});return e.path=t[n],t[n]=mZ(e),t},bZ=(t,e,n)=>{const r=n?S0:R0,i=t instanceof Hl?{}:{cause:t};return new r(e,i)};class Hl extends Error{}const Zx=(t,e)=>{Object.defineProperty(t.prototype,"name",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,Qx,{value:!0,writable:!1,enumerable:!1,configurable:!1})},EZ=t=>T0(t)&&Qx in t,Qx=Symbol("isExecaError"),T0=t=>Object.prototype.toString.call(t)==="[object Error]";class R0 extends Error{}Zx(R0,R0.name);class S0 extends Error{}Zx(S0,S0.name);const DZ=()=>{const t=tI-eI+1;return Array.from({length:t},TZ)},TZ=(t,e)=>({name:`SIGRT${e+1}`,number:eI+e,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),eI=34,tI=64,RZ=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}],nI=()=>{const t=DZ();return[...RZ,...t].map(SZ)},SZ=({name:t,number:e,description:n,action:r,forced:i=!1,standard:s})=>{const{signals:{[t]:o}}=vs,a=o!==void 0;return{name:t,number:a?o:e,description:n,supported:a,action:r,forced:i,standard:s}},kZ=()=>{const t=nI();return Object.fromEntries(t.map($Z))},$Z=({name:t,number:e,description:n,supported:r,action:i,forced:s,standard:o})=>[t,{name:t,number:e,description:n,supported:r,action:i,forced:s,standard:o}],CZ=kZ(),_Z=()=>{const t=nI(),e=tI+1,n=Array.from({length:e},(r,i)=>AZ(i,t));return Object.assign({},...n)},AZ=(t,e)=>{const n=xZ(t,e);if(n===void 0)return{};const{name:r,description:i,supported:s,action:o,forced:a,standard:c}=n;return{[t]:{name:r,number:t,description:i,supported:s,action:o,forced:a,standard:c}}},xZ=(t,e)=>{const n=e.find(({name:r})=>vs.signals[r]===t);return n!==void 0?n:e.find(r=>r.number===t)};_Z();const IZ=t=>{const e="option `killSignal`";if(t===0)throw new TypeError(`Invalid ${e}: 0 cannot be used.`);return rI(t,e)},PZ=t=>t===0?t:rI(t,"`subprocess.kill()`'s argument"),rI=(t,e)=>{if(Number.isInteger(t))return NZ(t,e);if(typeof t=="string")return FZ(t,e);throw new TypeError(`Invalid ${e} ${String(t)}: it must be a string or an integer.
1774
+ ${k0()}`)},NZ=(t,e)=>{if(iI.has(t))return iI.get(t);throw new TypeError(`Invalid ${e} ${t}: this signal integer does not exist.
1775
+ ${k0()}`)},OZ=()=>new Map(Object.entries(vs.signals).reverse().map(([t,e])=>[e,t])),iI=OZ(),FZ=(t,e)=>{if(t in vs.signals)return t;throw t.toUpperCase()in vs.signals?new TypeError(`Invalid ${e} '${t}': please rename it to '${t.toUpperCase()}'.`):new TypeError(`Invalid ${e} '${t}': this signal name does not exist.
1776
+ ${k0()}`)},k0=()=>`Available signal names: ${LZ()}.
1777
+ Available signal numbers: ${MZ()}.`,LZ=()=>Object.keys(vs.signals).sort().map(t=>`'${t}'`).join(", "),MZ=()=>[...new Set(Object.values(vs.signals).sort((t,e)=>t-e))].join(", "),sI=t=>CZ[t].description,zZ=t=>{if(t===!1)return t;if(t===!0)return BZ;if(!Number.isFinite(t)||t<0)throw new TypeError(`Expected the \`forceKillAfterDelay\` option to be a non-negative integer, got \`${t}\` (${typeof t})`);return t},BZ=1e3*5,qZ=({kill:t,options:{forceKillAfterDelay:e,killSignal:n},onInternalError:r,context:i,controller:s},o,a)=>{const{signal:c,error:u}=jZ(o,a,n);UZ(u,r);const l=t(c);return WZ({kill:t,signal:c,forceKillAfterDelay:e,killSignal:n,killResult:l,context:i,controller:s}),l},jZ=(t,e,n)=>{const[r=n,i]=T0(t)?[void 0,t]:[t,e];if(typeof r!="string"&&!Number.isInteger(r))throw new TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(r)}`);if(i!==void 0&&!T0(i))throw new TypeError(`The second argument is optional. If specified, it must be an error instance: ${i}`);return{signal:PZ(r),error:i}},UZ=(t,e)=>{t!==void 0&&e.reject(t)},WZ=async({kill:t,signal:e,forceKillAfterDelay:n,killSignal:r,killResult:i,context:s,controller:o})=>{e===r&&i&&oI({kill:t,forceKillAfterDelay:n,context:s,controllerSignal:o.signal})},oI=async({kill:t,forceKillAfterDelay:e,context:n,controllerSignal:r})=>{if(e!==!1)try{await _b(e,void 0,{signal:r}),t("SIGKILL")&&(n.isForcefullyTerminated??=!0)}catch{}},aI=async(t,e)=>{t.aborted||await yn(t,"abort",{signal:e})},GZ=({cancelSignal:t})=>{if(t!==void 0&&Object.prototype.toString.call(t)!=="[object AbortSignal]")throw new Error(`The \`cancelSignal\` option must be an AbortSignal: ${String(t)}`)},HZ=({subprocess:t,cancelSignal:e,gracefulCancel:n,context:r,controller:i})=>e===void 0||n?[]:[VZ(t,e,r,i)],VZ=async(t,e,n,{signal:r})=>{throw await aI(e,r),n.terminationReason??="cancel",t.kill(),e.reason},$0=({methodName:t,isSubprocess:e,ipc:n,isConnected:r})=>{KZ(t,e,n),cI(t,e,r)},KZ=(t,e,n)=>{if(!n)throw new Error(`${Er(t,e)} can only be used if the \`ipc\` option is \`true\`.`)},cI=(t,e,n)=>{if(!n)throw new Error(`${Er(t,e)} cannot be used: the ${as(e)} has already exited or disconnected.`)},YZ=t=>{throw new Error(`${Er("getOneMessage",t)} could not complete: the ${as(t)} exited or disconnected.`)},XZ=t=>{throw new Error(`${Er("sendMessage",t)} failed: the ${as(t)} is sending a message too, instead of listening to incoming messages.
1778
+ This can be fixed by both sending a message and listening to incoming messages at the same time:
1779
+
1780
+ const [receivedMessage] = await Promise.all([
1781
+ ${Er("getOneMessage",t)},
1782
+ ${Er("sendMessage",t,"message, {strict: true}")},
1783
+ ]);`)},uI=(t,e)=>new Error(`${Er("sendMessage",e)} failed when sending an acknowledgment response to the ${as(e)}.`,{cause:t}),JZ=t=>{throw new Error(`${Er("sendMessage",t)} failed: the ${as(t)} is not listening to incoming messages.`)},ZZ=t=>{throw new Error(`${Er("sendMessage",t)} failed: the ${as(t)} exited without listening to incoming messages.`)},QZ=()=>new Error(`\`cancelSignal\` aborted: the ${as(!0)} disconnected.`),eQ=()=>{throw new Error("`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.")},tQ=({error:t,methodName:e,isSubprocess:n})=>{if(t.code==="EPIPE")throw new Error(`${Er(e,n)} cannot be used: the ${as(n)} is disconnecting.`,{cause:t})},nQ=({error:t,methodName:e,isSubprocess:n,message:r})=>{if(rQ(t))throw new Error(`${Er(e,n)}'s argument type is invalid: the message cannot be serialized: ${String(r)}.`,{cause:t})},rQ=({code:t,message:e})=>iQ.has(t)||sQ.some(n=>e.includes(n)),iQ=new Set(["ERR_MISSING_ARGS","ERR_INVALID_ARG_TYPE"]),sQ=["could not be cloned","circular structure","call stack size exceeded"],Er=(t,e,n="")=>t==="cancelSignal"?"`cancelSignal`'s `controller.abort()`":`${oQ(e)}${t}(${n})`,oQ=t=>t?"":"subprocess.",as=t=>t?"parent process":"subprocess",C0=t=>{t.connected&&t.disconnect()},Vl=()=>{const t={},e=new Promise((n,r)=>{Object.assign(t,{resolve:n,reject:r})});return Object.assign(e,t)},lI=(t,e="stdin")=>{const{options:r,fileDescriptors:i}=fo.get(t),s=dI(i,e,!0),o=t.stdio[s];if(o===null)throw new TypeError(fI(s,e,r,!0));return o},_0=(t,e="stdout")=>{const{options:r,fileDescriptors:i}=fo.get(t),s=dI(i,e,!1),o=s==="all"?t.all:t.stdio[s];if(o==null)throw new TypeError(fI(s,e,r,!1));return o},fo=new WeakMap,dI=(t,e,n)=>{const r=aQ(e,n);return cQ(r,e,n,t),r},aQ=(t,e)=>{const n=Cx(t);if(n!==void 0)return n;const{validOptions:r,defaultValue:i}=e?{validOptions:'"stdin"',defaultValue:"stdin"}:{validOptions:'"stdout", "stderr", "all"',defaultValue:"stdout"};throw new TypeError(`"${Kl(e)}" must not be "${t}".
1784
+ It must be ${r} or "fd3", "fd4" (and so on).
1785
+ It is optional and defaults to "${i}".`)},cQ=(t,e,n,r)=>{const i=r[hI(t)];if(i===void 0)throw new TypeError(`"${Kl(n)}" must not be ${e}. That file descriptor does not exist.
1786
+ Please set the "stdio" option to ensure that file descriptor exists.`);if(i.direction==="input"&&!n)throw new TypeError(`"${Kl(n)}" must not be ${e}. It must be a readable stream, not writable.`);if(i.direction!=="input"&&n)throw new TypeError(`"${Kl(n)}" must not be ${e}. It must be a writable stream, not readable.`)},fI=(t,e,n,r)=>{if(t==="all"&&!n.all)return`The "all" option must be true to use "from: 'all'".`;const{optionName:i,optionValue:s}=uQ(t,n);return`The "${i}: ${A0(s)}" option is incompatible with using "${Kl(r)}: ${A0(e)}".
1787
+ Please set this option with "pipe" instead.`},uQ=(t,{stdin:e,stdout:n,stderr:r,stdio:i})=>{const s=hI(t);return s===0&&e!==void 0?{optionName:"stdin",optionValue:e}:s===1&&n!==void 0?{optionName:"stdout",optionValue:n}:s===2&&r!==void 0?{optionName:"stderr",optionValue:r}:{optionName:`stdio[${s}]`,optionValue:i[s]}},hI=t=>t==="all"?1:t,Kl=t=>t?"to":"from",A0=t=>typeof t=="string"?`'${t}'`:typeof t=="number"?`${t}`:"Stream",kp=(t,e,n)=>{const r=t.getMaxListeners();r===0||r===Number.POSITIVE_INFINITY||(t.setMaxListeners(r+e),xb(n,()=>{t.setMaxListeners(t.getMaxListeners()-e)}))},pI=(t,e)=>{e&&x0(t)},x0=t=>{t.refCounted()},gI=(t,e)=>{e&&I0(t)},I0=t=>{t.unrefCounted()},lQ=(t,e)=>{e&&(I0(t),I0(t))},dQ=(t,e)=>{e&&(x0(t),x0(t))},fQ=async({anyProcess:t,channel:e,isSubprocess:n,ipcEmitter:r},i)=>{if(wQ(i)||xQ(i))return;$p.has(t)||$p.set(t,[]);const s=$p.get(t);if(s.push(i),!(s.length>1))for(;s.length>0;){await RQ(t,r,i),await Ab.yield();const o=await vQ({wrappedMessage:s[0],anyProcess:t,channel:e,isSubprocess:n,ipcEmitter:r});s.shift(),r.emit("message",o),r.emit("message:done")}},hQ=async({anyProcess:t,channel:e,isSubprocess:n,ipcEmitter:r,boundOnMessage:i})=>{DI();const s=$p.get(t);for(;s?.length>0;)await yn(r,"message:done");t.removeListener("message",i),dQ(e,n),r.connected=!1,r.emit("disconnect")},$p=new WeakMap,Cp=(t,e,n)=>{if(_p.has(t))return _p.get(t);const r=new r2;return r.connected=!0,_p.set(t,r),pQ({ipcEmitter:r,anyProcess:t,channel:e,isSubprocess:n}),r},_p=new WeakMap,pQ=({ipcEmitter:t,anyProcess:e,channel:n,isSubprocess:r})=>{const i=fQ.bind(void 0,{anyProcess:e,channel:n,isSubprocess:r,ipcEmitter:t});e.on("message",i),e.once("disconnect",hQ.bind(void 0,{anyProcess:e,channel:n,isSubprocess:r,ipcEmitter:t,boundOnMessage:i})),lQ(n,r)},mI=t=>{const e=_p.get(t);return e===void 0?t.channel!==null:e.connected},gQ=({anyProcess:t,channel:e,isSubprocess:n,message:r,strict:i})=>{if(!i)return r;const s=Cp(t,e,n),o=P0(t,s);return{id:mQ++,type:xp,message:r,hasListeners:o}};let mQ=0n;const yQ=(t,e)=>{if(!(e?.type!==xp||e.hasListeners))for(const{id:n}of t)n!==void 0&&Ap[n].resolve({isDeadlock:!0,hasListeners:!1})},vQ=async({wrappedMessage:t,anyProcess:e,channel:n,isSubprocess:r,ipcEmitter:i})=>{if(t?.type!==xp||!e.connected)return t;const{id:s,message:o}=t,a={id:s,type:yI,message:P0(e,i)};try{await vI({anyProcess:e,channel:n,isSubprocess:r,ipc:!0},a)}catch(c){i.emit("strict:error",c)}return o},wQ=t=>{if(t?.type!==yI)return!1;const{id:e,message:n}=t;return Ap[e]?.resolve({isDeadlock:!1,hasListeners:n}),!0},bQ=async(t,e,n)=>{if(t?.type!==xp)return;const r=Vl();Ap[t.id]=r;const i=new AbortController;try{const{isDeadlock:s,hasListeners:o}=await Promise.race([r,EQ(e,n,i)]);s&&XZ(n),o||JZ(n)}finally{i.abort(),delete Ap[t.id]}},Ap={},EQ=async(t,e,{signal:n})=>{kp(t,1,n),await yn(t,"disconnect",{signal:n}),ZZ(e)},xp="execa:ipc:request",yI="execa:ipc:response",DQ=(t,e,n)=>{Yl.has(t)||Yl.set(t,new Set);const r=Yl.get(t),i=Vl(),s=n?e.id:void 0,o={onMessageSent:i,id:s};return r.add(o),{outgoingMessages:r,outgoingMessage:o}},TQ=({outgoingMessages:t,outgoingMessage:e})=>{t.delete(e),e.onMessageSent.resolve()},RQ=async(t,e,n)=>{for(;!P0(t,e)&&Yl.get(t)?.size>0;){const r=[...Yl.get(t)];yQ(r,n),await Promise.all(r.map(({onMessageSent:i})=>i))}},Yl=new WeakMap,P0=(t,e)=>e.listenerCount("message")>SQ(t),SQ=t=>fo.has(t)&&!Wl(fo.get(t).options.buffer,"ipc")?1:0,vI=({anyProcess:t,channel:e,isSubprocess:n,ipc:r},i,{strict:s=!1}={})=>{const o="sendMessage";return $0({methodName:o,isSubprocess:n,ipc:r,isConnected:t.connected}),kQ({anyProcess:t,channel:e,methodName:o,isSubprocess:n,message:i,strict:s})},kQ=async({anyProcess:t,channel:e,methodName:n,isSubprocess:r,message:i,strict:s})=>{const o=gQ({anyProcess:t,channel:e,isSubprocess:r,message:i,strict:s}),a=DQ(t,o,s);try{await wI({anyProcess:t,methodName:n,isSubprocess:r,wrappedMessage:o,message:i})}catch(c){throw C0(t),c}finally{TQ(a)}},wI=async({anyProcess:t,methodName:e,isSubprocess:n,wrappedMessage:r,message:i})=>{const s=$Q(t);try{await Promise.all([bQ(r,t,n),s(r)])}catch(o){throw tQ({error:o,methodName:e,isSubprocess:n}),nQ({error:o,methodName:e,isSubprocess:n,message:i}),o}},$Q=t=>{if(N0.has(t))return N0.get(t);const e=HN(t.send.bind(t));return N0.set(t,e),e},N0=new WeakMap,CQ=(t,e)=>{const n="cancelSignal";return cI(n,!1,t.connected),wI({anyProcess:t,methodName:n,isSubprocess:!1,wrappedMessage:{type:EI,message:e},message:e})},_Q=async({anyProcess:t,channel:e,isSubprocess:n,ipc:r})=>(await AQ({anyProcess:t,channel:e,isSubprocess:n,ipc:r}),O0.signal),AQ=async({anyProcess:t,channel:e,isSubprocess:n,ipc:r})=>{if(!bI){if(bI=!0,!r){eQ();return}if(e===null){DI();return}Cp(t,e,n),await Ab.yield()}};let bI=!1;const xQ=t=>t?.type!==EI?!1:(O0.abort(t.message),!0),EI="execa:ipc:cancel",DI=()=>{O0.abort(QZ())},O0=new AbortController,IQ=({gracefulCancel:t,cancelSignal:e,ipc:n,serialization:r})=>{if(t){if(e===void 0)throw new Error("The `cancelSignal` option must be defined when setting the `gracefulCancel` option.");if(!n)throw new Error("The `ipc` option cannot be false when setting the `gracefulCancel` option.");if(r==="json")throw new Error("The `serialization` option cannot be 'json' when setting the `gracefulCancel` option.")}},PQ=({subprocess:t,cancelSignal:e,gracefulCancel:n,forceKillAfterDelay:r,context:i,controller:s})=>n?[NQ({subprocess:t,cancelSignal:e,forceKillAfterDelay:r,context:i,controller:s})]:[],NQ=async({subprocess:t,cancelSignal:e,forceKillAfterDelay:n,context:r,controller:{signal:i}})=>{await aI(e,i);const s=OQ(e);throw await CQ(t,s),oI({kill:t.kill,forceKillAfterDelay:n,context:r,controllerSignal:i}),r.terminationReason??="gracefulCancel",e.reason},OQ=({reason:t})=>{if(!(t instanceof DOMException))return t;const e=new Error(t.message);return Object.defineProperty(e,"stack",{value:t.stack,enumerable:!1,configurable:!0,writable:!0}),e},FQ=({timeout:t})=>{if(t!==void 0&&(!Number.isFinite(t)||t<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${t}\` (${typeof t})`)},LQ=(t,e,n,r)=>e===0||e===void 0?[]:[MQ(t,e,n,r)],MQ=async(t,e,n,{signal:r})=>{throw await _b(e,void 0,{signal:r}),n.terminationReason??="timeout",t.kill(),new Hl},zQ=({options:t})=>{if(t.node===!1)throw new TypeError('The "node" option cannot be false with `execaNode()`.');return{options:{...t,node:!0}}},BQ=(t,e,{node:n=!1,nodePath:r=YN,nodeOptions:i=XN.filter(c=>!c.startsWith("--inspect")),cwd:s,execPath:o,...a})=>{if(o!==void 0)throw new TypeError('The "execPath" option has been removed. Please use the "nodePath" option instead.');const c=n0(r,'The "nodePath" option'),u=Jr.resolve(s,c),l={...a,nodePath:u,node:n,cwd:s};if(!n)return[t,e,l];if(Jr.basename(t,".exe")==="node")throw new TypeError('When the "node" option is true, the first argument does not need to be "node".');return[u,[...i,t,...e],{ipc:!0,...l,shell:!1}]},qQ=({ipcInput:t,ipc:e,serialization:n})=>{if(t!==void 0){if(!e)throw new Error("The `ipcInput` option cannot be set unless the `ipc` option is `true`.");WQ[n](t)}},jQ=t=>{try{s2(t)}catch(e){throw new Error("The `ipcInput` option is not serializable with a structured clone.",{cause:e})}},UQ=t=>{try{JSON.stringify(t)}catch(e){throw new Error("The `ipcInput` option is not serializable with JSON.",{cause:e})}},WQ={advanced:jQ,json:UQ},GQ=async(t,e)=>{e!==void 0&&await t.sendMessage(e)},HQ=({encoding:t})=>{if(F0.has(t))return;const e=KQ(t);if(e!==void 0)throw new TypeError(`Invalid option \`encoding: ${Ip(t)}\`.
1788
+ Please rename it to ${Ip(e)}.`);const n=[...F0].map(r=>Ip(r)).join(", ");throw new TypeError(`Invalid option \`encoding: ${Ip(t)}\`.
1789
+ Please rename it to one of: ${n}.`)},VQ=new Set(["utf8","utf16le"]),ho=new Set(["buffer","hex","base64","base64url","latin1","ascii"]),F0=new Set([...VQ,...ho]),KQ=t=>{if(t===null)return"buffer";if(typeof t!="string")return;const e=t.toLowerCase();if(e in TI)return TI[e];if(F0.has(e))return e},TI={"utf-8":"utf8","utf-16le":"utf16le","ucs-2":"utf16le",ucs2:"utf16le",binary:"latin1"},Ip=t=>typeof t=="string"?`"${t}"`:String(t),YQ=(t=RI())=>{const e=n0(t,'The "cwd" option');return Jr.resolve(e)},RI=()=>{try{return Pe.cwd()}catch(t){throw t.message=`The current directory does not exist.
1790
+ ${t.message}`,t}},XQ=(t,e)=>{if(e===RI())return t;let n;try{n=NN(e)}catch(r){return`The "cwd" option is invalid: ${e}.
1791
+ ${r.message}
1792
+ ${t}`}return n.isDirectory()?t:`The "cwd" option is not a directory: ${e}.
1793
+ ${t}`},SI=(t,e,n)=>{n.cwd=YQ(n.cwd);const[r,i,s]=BQ(t,e,n),{command:o,args:a,options:c}=gZ._parse(r,i,s),u=uJ(c),l=JQ(u);return FQ(l),HQ(l),qQ(l),GZ(l),IQ(l),l.shell=mx(l.shell),l.env=ZQ(l),l.killSignal=IZ(l.killSignal),l.forceKillAfterDelay=zZ(l.forceKillAfterDelay),l.lines=l.lines.map((d,f)=>d&&!ho.has(l.encoding)&&l.buffer[f]),Pe.platform==="win32"&&Jr.basename(o,".exe")==="cmd"&&a.unshift("/q"),{file:o,commandArguments:a,options:l}},JQ=({extendEnv:t=!0,preferLocal:e=!1,cwd:n,localDir:r=n,encoding:i="utf8",reject:s=!0,cleanup:o=!0,all:a=!1,windowsHide:c=!0,killSignal:u="SIGTERM",forceKillAfterDelay:l=!0,gracefulCancel:d=!1,ipcInput:f,ipc:h=f!==void 0||d,serialization:p="advanced",...g})=>({...g,extendEnv:t,preferLocal:e,cwd:n,localDirectory:r,encoding:i,reject:s,cleanup:o,all:a,windowsHide:c,killSignal:u,forceKillAfterDelay:l,gracefulCancel:d,ipcInput:f,ipc:h,serialization:p}),ZQ=({env:t,extendEnv:e,preferLocal:n,node:r,localDirectory:i,nodePath:s})=>{const o=e?{...Pe.env,...t}:t;return n||r?wZ({env:o,cwd:i,execPath:s,preferLocal:n,addExecPath:r}):o};function L0(t){if(typeof t=="string")return QQ(t);if(!(ArrayBuffer.isView(t)&&t.BYTES_PER_ELEMENT===1))throw new Error("Input must be a string or a Uint8Array");return eee(t)}const QQ=t=>t.at(-1)===kI?t.slice(0,t.at(-2)===$I?-2:-1):t,eee=t=>t.at(-1)===tee?t.subarray(0,t.at(-2)===nee?-2:-1):t,kI=`
1794
+ `,tee=kI.codePointAt(0),$I="\r",nee=$I.codePointAt(0);function po(t,{checkOpen:e=!0}={}){return t!==null&&typeof t=="object"&&(t.writable||t.readable||!e||t.writable===void 0&&t.readable===void 0)&&typeof t.pipe=="function"}function CI(t,{checkOpen:e=!0}={}){return po(t,{checkOpen:e})&&(t.writable||!e)&&typeof t.write=="function"&&typeof t.end=="function"&&typeof t.writable=="boolean"&&typeof t.writableObjectMode=="boolean"&&typeof t.destroy=="function"&&typeof t.destroyed=="boolean"}function Pp(t,{checkOpen:e=!0}={}){return po(t,{checkOpen:e})&&(t.readable||!e)&&typeof t.read=="function"&&typeof t.readable=="boolean"&&typeof t.readableObjectMode=="boolean"&&typeof t.destroy=="function"&&typeof t.destroyed=="boolean"}function _I(t,e){return CI(t,e)&&Pp(t,e)}const ree=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);let iee=class{#e;#t;#n=!1;#r=void 0;constructor(e,n){this.#e=e,this.#t=n}next(){const e=()=>this.#s();return this.#r=this.#r?this.#r.then(e,e):e(),this.#r}return(e){const n=()=>this.#i(e);return this.#r?this.#r.then(n,n):n()}async#s(){if(this.#n)return{done:!0,value:void 0};let e;try{e=await this.#e.read()}catch(n){throw this.#r=void 0,this.#n=!0,this.#e.releaseLock(),n}return e.done&&(this.#r=void 0,this.#n=!0,this.#e.releaseLock()),e}async#i(e){if(this.#n)return{done:!0,value:e};if(this.#n=!0,!this.#t){const n=this.#e.cancel(e);return this.#e.releaseLock(),await n,{done:!0,value:e}}return this.#e.releaseLock(),{done:!0,value:e}}};const M0=Symbol();function AI(){return this[M0].next()}Object.defineProperty(AI,"name",{value:"next"});function xI(t){return this[M0].return(t)}Object.defineProperty(xI,"name",{value:"return"});const see=Object.create(ree,{next:{enumerable:!0,configurable:!0,writable:!0,value:AI},return:{enumerable:!0,configurable:!0,writable:!0,value:xI}});function oee({preventCancel:t=!1}={}){const e=this.getReader(),n=new iee(e,t),r=Object.create(see);return r[M0]=n,r}const aee=t=>{if(Pp(t,{checkOpen:!1})&&z0.on!==void 0)return uee(t);if(typeof t?.[Symbol.asyncIterator]=="function")return t;if(cee.call(t)==="[object ReadableStream]")return oee.call(t);throw new TypeError("The first argument must be a Readable, a ReadableStream, or an async iterable.")},{toString:cee}=Object.prototype,uee=async function*(t){const e=new AbortController,n={};lee(t,e,n);try{for await(const[r]of z0.on(t,"data",{signal:e.signal}))yield r}catch(r){if(n.error!==void 0)throw n.error;if(!e.signal.aborted)throw r}finally{t.destroy()}},lee=async(t,e,n)=>{try{await z0.finished(t,{cleanup:!0,readable:!0,writable:!1,error:!1})}catch(r){n.error=r}finally{e.abort()}},z0={},B0=async(t,{init:e,convertChunk:n,getSize:r,truncateChunk:i,addChunk:s,getFinalChunk:o,finalize:a},{maxBuffer:c=Number.POSITIVE_INFINITY}={})=>{const u=aee(t),l=e();l.length=0;try{for await(const d of u){const f=fee(d),h=n[f](d,l);II({convertedChunk:h,state:l,getSize:r,truncateChunk:i,addChunk:s,maxBuffer:c})}return dee({state:l,convertChunk:n,getSize:r,truncateChunk:i,addChunk:s,getFinalChunk:o,maxBuffer:c}),a(l)}catch(d){const f=typeof d=="object"&&d!==null?d:new Error(d);throw f.bufferedData=a(l),f}},dee=({state:t,getSize:e,truncateChunk:n,addChunk:r,getFinalChunk:i,maxBuffer:s})=>{const o=i(t);o!==void 0&&II({convertedChunk:o,state:t,getSize:e,truncateChunk:n,addChunk:r,maxBuffer:s})},II=({convertedChunk:t,state:e,getSize:n,truncateChunk:r,addChunk:i,maxBuffer:s})=>{const o=n(t),a=e.length+o;if(a<=s){PI(t,e,i,a);return}const c=r(t,s-e.length);throw c!==void 0&&PI(c,e,i,s),new Np},PI=(t,e,n,r)=>{e.contents=n(t,e,r),e.length=r},fee=t=>{const e=typeof t;if(e==="string")return"string";if(e!=="object"||t===null)return"others";if(globalThis.Buffer?.isBuffer(t))return"buffer";const n=NI.call(t);return n==="[object ArrayBuffer]"?"arrayBuffer":n==="[object DataView]"?"dataView":Number.isInteger(t.byteLength)&&Number.isInteger(t.byteOffset)&&NI.call(t.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:NI}=Object.prototype;class Np extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}}const go=t=>t,q0=()=>{},OI=({contents:t})=>t,FI=t=>{throw new Error(`Streams in object mode are not supported: ${String(t)}`)},LI=t=>t.length;async function hee(t,e){return B0(t,yee,e)}const pee=()=>({contents:[]}),gee=()=>1,mee=(t,{contents:e})=>(e.push(t),e),yee={init:pee,convertChunk:{string:go,buffer:go,arrayBuffer:go,dataView:go,typedArray:go,others:go},getSize:gee,truncateChunk:q0,addChunk:mee,getFinalChunk:q0,finalize:OI};async function vee(t,e){return B0(t,$ee,e)}const wee=()=>({contents:new ArrayBuffer(0)}),bee=t=>Eee.encode(t),Eee=new TextEncoder,MI=t=>new Uint8Array(t),zI=t=>new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Dee=(t,e)=>t.slice(0,e),Tee=(t,{contents:e,length:n},r)=>{const i=jI()?See(e,r):Ree(e,r);return new Uint8Array(i).set(t,n),i},Ree=(t,e)=>{if(e<=t.byteLength)return t;const n=new ArrayBuffer(BI(e));return new Uint8Array(n).set(new Uint8Array(t),0),n},See=(t,e)=>{if(e<=t.maxByteLength)return t.resize(e),t;const n=new ArrayBuffer(e,{maxByteLength:BI(e)});return new Uint8Array(n).set(new Uint8Array(t),0),n},BI=t=>qI**Math.ceil(Math.log(t)/Math.log(qI)),qI=2,kee=({contents:t,length:e})=>jI()?t:t.slice(0,e),jI=()=>"resize"in ArrayBuffer.prototype,$ee={init:wee,convertChunk:{string:bee,buffer:MI,arrayBuffer:MI,dataView:zI,typedArray:zI,others:FI},getSize:LI,truncateChunk:Dee,addChunk:Tee,getFinalChunk:q0,finalize:kee};async function Cee(t,e){return B0(t,Pee,e)}const _ee=()=>({contents:"",textDecoder:new TextDecoder}),Op=(t,{textDecoder:e})=>e.decode(t,{stream:!0}),Aee=(t,{contents:e})=>e+t,xee=(t,e)=>t.slice(0,e),Iee=({textDecoder:t})=>{const e=t.decode();return e===""?void 0:e},Pee={init:_ee,convertChunk:{string:go,buffer:Op,arrayBuffer:Op,dataView:Op,typedArray:Op,others:FI},getSize:LI,truncateChunk:xee,addChunk:Aee,getFinalChunk:Iee,finalize:OI},Nee=({error:t,stream:e,readableObjectMode:n,lines:r,encoding:i,fdNumber:s})=>{if(!(t instanceof Np))throw t;if(s==="all")return t;const o=Oee(n,r,i);throw t.maxBufferInfo={fdNumber:s,unit:o},e.destroy(),t},Oee=(t,e,n)=>t?"objects":e?"lines":n==="buffer"?"bytes":"characters",Fee=(t,e,n)=>{if(e.length!==n)return;const r=new Np;throw r.maxBufferInfo={fdNumber:"ipc"},r},Lee=(t,e)=>{const{streamName:n,threshold:r,unit:i}=Mee(t,e);return`Command's ${n} was larger than ${r} ${i}`},Mee=(t,e)=>{if(t?.maxBufferInfo===void 0)return{streamName:"output",threshold:e[1],unit:"bytes"};const{maxBufferInfo:{fdNumber:n,unit:r}}=t;delete t.maxBufferInfo;const i=Wl(e,n);return n==="ipc"?{streamName:"IPC output",threshold:i,unit:"messages"}:{streamName:Sx(n),threshold:i,unit:r}},zee=(t,e,n)=>t?.code==="ENOBUFS"&&e!==null&&e.some(r=>r!==null&&r.length>j0(n)),Bee=(t,e,n)=>{if(!e)return t;const r=j0(n);return t.length>r?t.slice(0,r):t},j0=([,t])=>t,qee=({stdio:t,all:e,ipcOutput:n,originalError:r,signal:i,signalDescription:s,exitCode:o,escapedCommand:a,timedOut:c,isCanceled:u,isGracefullyCanceled:l,isMaxBuffer:d,isForcefullyTerminated:f,forceKillAfterDelay:h,killSignal:p,maxBuffer:g,timeout:v,cwd:m})=>{const w=r?.code,E=jee({originalError:r,timedOut:c,timeout:v,isMaxBuffer:d,maxBuffer:g,errorCode:w,signal:i,signalDescription:s,exitCode:o,isCanceled:u,isGracefullyCanceled:l,isForcefullyTerminated:f,forceKillAfterDelay:h,killSignal:p}),k=Wee(r,m),A=k===void 0?"":`
1795
+ ${k}`,I=`${E}: ${a}${A}`,x=e===void 0?[t[2],t[1]]:[e],_=[I,...x,...t.slice(3),n.map(P=>Gee(P)).join(`
1796
+ `)].map(P=>l0(L0(Hee(P)))).filter(Boolean).join(`
1797
+
1798
+ `);return{originalMessage:k,shortMessage:I,message:_}},jee=({originalError:t,timedOut:e,timeout:n,isMaxBuffer:r,maxBuffer:i,errorCode:s,signal:o,signalDescription:a,exitCode:c,isCanceled:u,isGracefullyCanceled:l,isForcefullyTerminated:d,forceKillAfterDelay:f,killSignal:h})=>{const p=Uee(d,f);return e?`Command timed out after ${n} milliseconds${p}`:l?o===void 0?`Command was gracefully canceled with exit code ${c}`:d?`Command was gracefully canceled${p}`:`Command was gracefully canceled with ${o} (${a})`:u?`Command was canceled${p}`:r?`${Lee(t,i)}${p}`:s!==void 0?`Command failed with ${s}${p}`:d?`Command was killed with ${h} (${sI(h)})${p}`:o!==void 0?`Command was killed with ${o} (${a})`:c!==void 0?`Command failed with exit code ${c}`:"Command failed"},Uee=(t,e)=>t?` and was forcefully terminated after ${e} milliseconds`:"",Wee=(t,e)=>{if(t instanceof Hl)return;const n=EZ(t)?t.originalMessage:String(t?.message??t),r=l0(XQ(n,e));return r===""?void 0:r},Gee=t=>typeof t=="string"?t:Sb(t),Hee=t=>Array.isArray(t)?t.map(e=>L0(UI(e))).filter(Boolean).join(`
1799
+ `):UI(t),UI=t=>typeof t=="string"?t:br(t)?bx(t):"",WI=({command:t,escapedCommand:e,stdio:n,all:r,ipcOutput:i,options:{cwd:s},startTime:o})=>GI({command:t,escapedCommand:e,cwd:s,durationMs:Fx(o),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:n[1],stderr:n[2],all:r,stdio:n,ipcOutput:i,pipedFrom:[]}),U0=({error:t,command:e,escapedCommand:n,fileDescriptors:r,options:i,startTime:s,isSync:o})=>W0({error:t,command:e,escapedCommand:n,startTime:s,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:r.length}),ipcOutput:[],options:i,isSync:o}),W0=({error:t,command:e,escapedCommand:n,startTime:r,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:u,signal:l,stdio:d,all:f,ipcOutput:h,options:{timeoutDuration:p,timeout:g=p,forceKillAfterDelay:v,killSignal:m,cwd:w,maxBuffer:E},isSync:k})=>{const{exitCode:A,signal:I,signalDescription:x}=Kee(u,l),{originalMessage:_,shortMessage:P,message:N}=qee({stdio:d,all:f,ipcOutput:h,originalError:t,signal:I,signalDescription:x,exitCode:A,escapedCommand:n,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,forceKillAfterDelay:v,killSignal:m,maxBuffer:E,timeout:g,cwd:w}),C=bZ(t,N,k);return Object.assign(C,Vee({error:C,command:e,escapedCommand:n,startTime:r,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:A,signal:I,signalDescription:x,stdio:d,all:f,ipcOutput:h,cwd:w,originalMessage:_,shortMessage:P})),C},Vee=({error:t,command:e,escapedCommand:n,startTime:r,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:u,signal:l,signalDescription:d,stdio:f,all:h,ipcOutput:p,cwd:g,originalMessage:v,shortMessage:m})=>GI({shortMessage:m,originalMessage:v,command:e,escapedCommand:n,cwd:g,durationMs:Fx(r),failed:!0,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isTerminated:l!==void 0,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:u,signal:l,signalDescription:d,code:t.cause?.code,stdout:f[1],stderr:f[2],all:h,stdio:f,ipcOutput:p,pipedFrom:[]}),GI=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Kee=(t,e)=>{const n=t===null?void 0:t,r=e===null?void 0:e,i=r===void 0?void 0:sI(e);return{exitCode:n,signal:r,signalDescription:i}},HI=t=>Number.isFinite(t)?t:0;function Yee(t){return{days:Math.trunc(t/864e5),hours:Math.trunc(t/36e5%24),minutes:Math.trunc(t/6e4%60),seconds:Math.trunc(t/1e3%60),milliseconds:Math.trunc(t%1e3),microseconds:Math.trunc(HI(t*1e3)%1e3),nanoseconds:Math.trunc(HI(t*1e6)%1e3)}}function Xee(t){return{days:t/86400000n,hours:t/3600000n%24n,minutes:t/60000n%60n,seconds:t/1000n%60n,milliseconds:t%1000n,microseconds:0n,nanoseconds:0n}}function Jee(t){switch(typeof t){case"number":{if(Number.isFinite(t))return Yee(t);break}case"bigint":return Xee(t)}throw new TypeError("Expected a finite number or bigint")}const Zee=t=>t===0||t===0n,Qee=(t,e)=>e===1||e===1n?t:`${t}s`,ete=1e-7,tte=24n*60n*60n*1000n;function VI(t,e){const n=typeof t=="bigint";if(!n&&!Number.isFinite(t))throw new TypeError("Expected a finite number or bigint");e={...e};const r=t<0?"-":"";t=t<0?-t:t,e.colonNotation&&(e.compact=!1,e.formatSubMilliseconds=!1,e.separateMilliseconds=!1,e.verbose=!1),e.compact&&(e.unitCount=1,e.secondsDecimalDigits=0,e.millisecondsDecimalDigits=0);let i=[];const s=(l,d)=>{const f=Math.floor(l*10**d+ete);return(Math.round(f)/10**d).toFixed(d)},o=(l,d,f,h)=>{if(!((i.length===0||!e.colonNotation)&&Zee(l)&&!(e.colonNotation&&f==="m"))){if(h??=String(l),e.colonNotation){const p=h.includes(".")?h.split(".")[0].length:h.length,g=i.length>0?2:1;h="0".repeat(Math.max(0,g-p))+h}else h+=e.verbose?" "+Qee(d,l):f;i.push(h)}},a=Jee(t),c=BigInt(a.days);if(o(c/365n,"year","y"),o(c%365n,"day","d"),o(Number(a.hours),"hour","h"),o(Number(a.minutes),"minute","m"),e.separateMilliseconds||e.formatSubMilliseconds||!e.colonNotation&&t<1e3){const l=Number(a.seconds),d=Number(a.milliseconds),f=Number(a.microseconds),h=Number(a.nanoseconds);if(o(l,"second","s"),e.formatSubMilliseconds)o(d,"millisecond","ms"),o(f,"microsecond","\xB5s"),o(h,"nanosecond","ns");else{const p=d+f/1e3+h/1e6,g=typeof e.millisecondsDecimalDigits=="number"?e.millisecondsDecimalDigits:0,v=p>=1?Math.round(p):Math.ceil(p),m=g?p.toFixed(g):v;o(Number.parseFloat(m),"millisecond","ms",m)}}else{const l=(n?Number(t%tte):t)/1e3%60,d=typeof e.secondsDecimalDigits=="number"?e.secondsDecimalDigits:1,f=s(l,d),h=e.keepDecimalsOnWholeSeconds?f:f.replace(/\.0+$/,"");o(Number.parseFloat(h),"second","s",h)}if(i.length===0)return r+"0"+(e.verbose?" milliseconds":"ms");const u=e.colonNotation?":":" ";return typeof e.unitCount=="number"&&(i=i.slice(0,Math.max(e.unitCount,1))),r+i.join(u)}const nte=(t,e)=>{t.failed&&Gl({type:"error",verboseMessage:t.shortMessage,verboseInfo:e,result:t})},rte=(t,e)=>{s0(e)&&(nte(t,e),ite(t,e))},ite=(t,e)=>{const n=`(done in ${VI(t.durationMs)})`;Gl({type:"duration",verboseMessage:n,verboseInfo:e,result:t})},G0=(t,e,{reject:n})=>{if(rte(t,e),t.failed&&n)throw t;return t},ste=(t,e)=>Sa(t)?"asyncGenerator":ZI(t)?"generator":V0(t)?"fileUrl":dte(t)?"filePath":pte(t)?"webStream":po(t,{checkOpen:!1})?"native":br(t)?"uint8Array":gte(t)?"asyncIterable":mte(t)?"iterable":Y0(t)?KI({transform:t},e):ute(t)?ote(t,e):"native",ote=(t,e)=>_I(t.transform,{checkOpen:!1})?ate(t,e):Y0(t.transform)?KI(t,e):cte(t,e),ate=(t,e)=>(YI(t,e,"Duplex stream"),"duplex"),KI=(t,e)=>(YI(t,e,"web TransformStream"),"webTransform"),YI=({final:t,binary:e,objectMode:n},r,i)=>{XI(t,`${r}.final`,i),XI(e,`${r}.binary`,i),H0(n,`${r}.objectMode`)},XI=(t,e,n)=>{if(t!==void 0)throw new TypeError(`The \`${e}\` option can only be defined when using a generator, not a ${n}.`)},cte=({transform:t,final:e,binary:n,objectMode:r},i)=>{if(t!==void 0&&!JI(t))throw new TypeError(`The \`${i}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(_I(e,{checkOpen:!1}))throw new TypeError(`The \`${i}.final\` option must not be a Duplex stream.`);if(Y0(e))throw new TypeError(`The \`${i}.final\` option must not be a web TransformStream.`);if(e!==void 0&&!JI(e))throw new TypeError(`The \`${i}.final\` option must be a generator.`);return H0(n,`${i}.binary`),H0(r,`${i}.objectMode`),Sa(t)||Sa(e)?"asyncGenerator":"generator"},H0=(t,e)=>{if(t!==void 0&&typeof t!="boolean")throw new TypeError(`The \`${e}\` option must use a boolean.`)},JI=t=>Sa(t)||ZI(t),Sa=t=>Object.prototype.toString.call(t)==="[object AsyncGeneratorFunction]",ZI=t=>Object.prototype.toString.call(t)==="[object GeneratorFunction]",ute=t=>er(t)&&(t.transform!==void 0||t.final!==void 0),V0=t=>Object.prototype.toString.call(t)==="[object URL]",lte=t=>V0(t)&&t.protocol!=="file:",dte=t=>er(t)&&Object.keys(t).length===1&&QI(t.file),QI=t=>typeof t=="string",fte=(t,e)=>t==="native"&&typeof e=="string"&&!hte.has(e),hte=new Set(["ipc","ignore","inherit","overlapped","pipe"]),eP=t=>Object.prototype.toString.call(t)==="[object ReadableStream]",K0=t=>Object.prototype.toString.call(t)==="[object WritableStream]",pte=t=>eP(t)||K0(t),Y0=t=>eP(t?.readable)&&K0(t?.writable),gte=t=>tP(t)&&typeof t[Symbol.asyncIterator]=="function",mte=t=>tP(t)&&typeof t[Symbol.iterator]=="function",tP=t=>typeof t=="object"&&t!==null,mo=new Set(["generator","asyncGenerator","duplex","webTransform"]),nP=new Set(["fileUrl","filePath","fileNumber"]),rP=new Set(["fileUrl","filePath"]),yte=new Set([...rP,"webStream","nodeStream"]),vte=new Set(["webTransform","duplex"]),Fp={generator:"a generator",asyncGenerator:"an async generator",fileUrl:"a file URL",filePath:"a file path string",fileNumber:"a file descriptor number",webStream:"a web stream",nodeStream:"a Node.js stream",webTransform:"a web TransformStream",duplex:"a Duplex stream",native:"any value",iterable:"an iterable",asyncIterable:"an async iterable",string:"a string",uint8Array:"a Uint8Array"},iP=(t,e,n,r)=>r==="output"?wte(t,e,n):bte(t,e,n),wte=(t,e,n)=>{const r=e!==0&&n[e-1].value.readableObjectMode;return{writableObjectMode:r,readableObjectMode:t??r}},bte=(t,e,n)=>{const r=e===0?t===!0:n[e-1].value.readableObjectMode,i=e!==n.length-1&&(t??r);return{writableObjectMode:r,readableObjectMode:i}},Ete=(t,e)=>{const n=t.findLast(({type:r})=>mo.has(r));return n===void 0?!1:e==="input"?n.value.writableObjectMode:n.value.readableObjectMode},Dte=(t,e,n,r)=>[...t.filter(({type:i})=>!mo.has(i)),...Tte(t,e,n,r)],Tte=(t,e,n,{encoding:r})=>{const i=t.filter(({type:o})=>mo.has(o)),s=Array.from({length:i.length});for(const[o,a]of Object.entries(i))s[o]=Rte({stdioItem:a,index:Number(o),newTransforms:s,optionName:e,direction:n,encoding:r});return Cte(s,n)},Rte=({stdioItem:t,stdioItem:{type:e},index:n,newTransforms:r,optionName:i,direction:s,encoding:o})=>e==="duplex"?Ste({stdioItem:t,optionName:i}):e==="webTransform"?kte({stdioItem:t,index:n,newTransforms:r,direction:s}):$te({stdioItem:t,index:n,newTransforms:r,direction:s,encoding:o}),Ste=({stdioItem:t,stdioItem:{value:{transform:e,transform:{writableObjectMode:n,readableObjectMode:r},objectMode:i=r}},optionName:s})=>{if(i&&!r)throw new TypeError(`The \`${s}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!i&&r)throw new TypeError(`The \`${s}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...t,value:{transform:e,writableObjectMode:n,readableObjectMode:r}}},kte=({stdioItem:t,stdioItem:{value:e},index:n,newTransforms:r,direction:i})=>{const{transform:s,objectMode:o}=er(e)?e:{transform:e},{writableObjectMode:a,readableObjectMode:c}=iP(o,n,r,i);return{...t,value:{transform:s,writableObjectMode:a,readableObjectMode:c}}},$te=({stdioItem:t,stdioItem:{value:e},index:n,newTransforms:r,direction:i,encoding:s})=>{const{transform:o,final:a,binary:c=!1,preserveNewlines:u=!1,objectMode:l}=er(e)?e:{transform:e},d=c||ho.has(s),{writableObjectMode:f,readableObjectMode:h}=iP(l,n,r,i);return{...t,value:{transform:o,final:a,binary:d,preserveNewlines:u,writableObjectMode:f,readableObjectMode:h}}},Cte=(t,e)=>e==="input"?t.reverse():t,_te=(t,e,n)=>{const r=t.map(i=>Ate(i,e));if(r.includes("input")&&r.includes("output"))throw new TypeError(`The \`${n}\` option must not be an array of both readable and writable values.`);return r.find(Boolean)??Pte},Ate=({type:t,value:e},n)=>xte[n]??sP[t](e),xte=["input","output","output"],ka=()=>{},X0=()=>"input",sP={generator:ka,asyncGenerator:ka,fileUrl:ka,filePath:ka,iterable:X0,asyncIterable:X0,uint8Array:X0,webStream:t=>K0(t)?"output":"input",nodeStream(t){return Pp(t,{checkOpen:!1})?CI(t,{checkOpen:!1})?void 0:"input":"output"},webTransform:ka,duplex:ka,native(t){const e=Ite(t);if(e!==void 0)return e;if(po(t,{checkOpen:!1}))return sP.nodeStream(t)}},Ite=t=>{if([0,Pe.stdin].includes(t))return"input";if([1,2,Pe.stdout,Pe.stderr].includes(t))return"output"},Pte="output",Nte=(t,e)=>e&&!t.includes("ipc")?[...t,"ipc"]:t,Ote=({stdio:t,ipc:e,buffer:n,...r},i,s)=>{const o=Fte(t,r).map((a,c)=>oP(a,c));return s?Mte(o,n,i):Nte(o,e)},Fte=(t,e)=>{if(t===void 0)return Vr.map(r=>e[r]);if(Lte(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${Vr.map(r=>`\`${r}\``).join(", ")}`);if(typeof t=="string")return[t,t,t];if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);const n=Math.max(t.length,Vr.length);return Array.from({length:n},(r,i)=>t[i])},Lte=t=>Vr.some(e=>t[e]!==void 0),oP=(t,e)=>Array.isArray(t)?t.map(n=>oP(n,e)):t??(e>=Vr.length?"ignore":"pipe"),Mte=(t,e,n)=>t.map((r,i)=>!e[i]&&i!==0&&!o0(n,i)&&zte(r)?"ignore":r),zte=t=>t==="pipe"||Array.isArray(t)&&t.every(e=>e==="pipe"),Bte=({stdioItem:t,stdioItem:{type:e},isStdioArray:n,fdNumber:r,direction:i,isSync:s})=>!n||e!=="native"?t:s?qte({stdioItem:t,fdNumber:r,direction:i}):Wte({stdioItem:t,fdNumber:r}),qte=({stdioItem:t,stdioItem:{value:e,optionName:n},fdNumber:r,direction:i})=>{const s=jte({value:e,optionName:n,fdNumber:r,direction:i});if(s!==void 0)return s;if(po(e,{checkOpen:!1}))throw new TypeError(`The \`${n}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return t},jte=({value:t,optionName:e,fdNumber:n,direction:r})=>{const i=Ute(t,n);if(i!==void 0){if(r==="output")return{type:"fileNumber",value:i,optionName:e};if(kb.isatty(i))throw new TypeError(`The \`${e}: ${A0(t)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:"uint8Array",value:Ul(Hp(i)),optionName:e}}},Ute=(t,e)=>{if(t==="inherit")return e;if(typeof t=="number")return t;const n=i0.indexOf(t);if(n!==-1)return n},Wte=({stdioItem:t,stdioItem:{value:e,optionName:n},fdNumber:r})=>e==="inherit"?{type:"nodeStream",value:aP(r,e,n),optionName:n}:typeof e=="number"?{type:"nodeStream",value:aP(e,e,n),optionName:n}:po(e,{checkOpen:!1})?{type:"nodeStream",value:e,optionName:n}:t,aP=(t,e,n)=>{const r=i0[t];if(r===void 0)throw new TypeError(`The \`${n}: ${e}\` option is invalid: no such standard stream.`);return r},Gte=({input:t,inputFile:e},n)=>n===0?[...Hte(t),...Kte(e)]:[],Hte=t=>t===void 0?[]:[{type:Vte(t),value:t,optionName:"input"}],Vte=t=>{if(Pp(t,{checkOpen:!1}))return"nodeStream";if(typeof t=="string")return"string";if(br(t))return"uint8Array";throw new Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},Kte=t=>t===void 0?[]:[{...Yte(t),optionName:"inputFile"}],Yte=t=>{if(V0(t))return{type:"fileUrl",value:t};if(QI(t))return{type:"filePath",value:{file:t}};throw new Error("The `inputFile` option must be a file path string or a file URL.")},Xte=t=>t.filter((e,n)=>t.every((r,i)=>e.value!==r.value||n>=i||e.type==="generator"||e.type==="asyncGenerator")),Jte=({stdioItem:{type:t,value:e,optionName:n},direction:r,fileDescriptors:i,isSync:s})=>{const o=Zte(i,t);if(o.length!==0){if(s){Qte({otherStdioItems:o,type:t,value:e,optionName:n,direction:r});return}if(yte.has(t))return cP({otherStdioItems:o,type:t,value:e,optionName:n,direction:r});vte.has(t)&&tne({otherStdioItems:o,type:t,value:e,optionName:n})}},Zte=(t,e)=>t.flatMap(({direction:n,stdioItems:r})=>r.filter(i=>i.type===e).map(i=>({...i,direction:n}))),Qte=({otherStdioItems:t,type:e,value:n,optionName:r,direction:i})=>{rP.has(e)&&cP({otherStdioItems:t,type:e,value:n,optionName:r,direction:i})},cP=({otherStdioItems:t,type:e,value:n,optionName:r,direction:i})=>{const s=t.filter(a=>ene(a,n));if(s.length===0)return;const o=s.find(a=>a.direction!==i);return uP(o,r,e),i==="output"?s[0].stream:void 0},ene=({type:t,value:e},n)=>t==="filePath"?e.file===n.file:t==="fileUrl"?e.href===n.href:e===n,tne=({otherStdioItems:t,type:e,value:n,optionName:r})=>{const i=t.find(({value:{transform:s}})=>s===n.transform);uP(i,r,e)},uP=(t,e,n)=>{if(t!==void 0)throw new TypeError(`The \`${t.optionName}\` and \`${e}\` options must not target ${Fp[n]} that is the same.`)},lP=(t,e,n,r)=>{const s=Ote(e,n,r).map((a,c)=>nne({stdioOption:a,fdNumber:c,options:e,isSync:r})),o=lne({initialFileDescriptors:s,addProperties:t,options:e,isSync:r});return e.stdio=o.map(({stdioItems:a})=>hne(a)),o},nne=({stdioOption:t,fdNumber:e,options:n,isSync:r})=>{const i=Sx(e),{stdioItems:s,isStdioArray:o}=rne({stdioOption:t,fdNumber:e,options:n,optionName:i}),a=_te(s,e,i),c=s.map(d=>Bte({stdioItem:d,isStdioArray:o,fdNumber:e,direction:a,isSync:r})),u=Dte(c,i,a,n),l=Ete(u,a);return une(u,l),{direction:a,objectMode:l,stdioItems:u}},rne=({stdioOption:t,fdNumber:e,options:n,optionName:r})=>{const s=[...(Array.isArray(t)?t:[t]).map(c=>ine(c,r)),...Gte(n,e)],o=Xte(s),a=o.length>1;return sne(o,a,r),ane(o),{stdioItems:o,isStdioArray:a}},ine=(t,e)=>({type:ste(t,e),value:t,optionName:e}),sne=(t,e,n)=>{if(t.length===0)throw new TypeError(`The \`${n}\` option must not be an empty array.`);if(e){for(const{value:r,optionName:i}of t)if(one.has(r))throw new Error(`The \`${i}\` option must not include \`${r}\`.`)}},one=new Set(["ignore","ipc"]),ane=t=>{for(const e of t)cne(e)},cne=({type:t,value:e,optionName:n})=>{if(lte(e))throw new TypeError(`The \`${n}: URL\` option must use the \`file:\` scheme.
1800
+ For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(fte(t,e))throw new TypeError(`The \`${n}: { file: '...' }\` option must be used instead of \`${n}: '...'\`.`)},une=(t,e)=>{if(!e)return;const n=t.find(({type:r})=>nP.has(r));if(n!==void 0)throw new TypeError(`The \`${n.optionName}\` option cannot use both files and transforms in objectMode.`)},lne=({initialFileDescriptors:t,addProperties:e,options:n,isSync:r})=>{const i=[];try{for(const s of t)i.push(dne({fileDescriptor:s,fileDescriptors:i,addProperties:e,options:n,isSync:r}));return i}catch(s){throw dP(i),s}},dne=({fileDescriptor:{direction:t,objectMode:e,stdioItems:n},fileDescriptors:r,addProperties:i,options:s,isSync:o})=>{const a=n.map(c=>fne({stdioItem:c,addProperties:i,direction:t,options:s,fileDescriptors:r,isSync:o}));return{direction:t,objectMode:e,stdioItems:a}},fne=({stdioItem:t,addProperties:e,direction:n,options:r,fileDescriptors:i,isSync:s})=>{const o=Jte({stdioItem:t,direction:n,fileDescriptors:i,isSync:s});return o!==void 0?{...t,stream:o}:{...t,...e[n][t.type](t,r)}},dP=t=>{for(const{stdioItems:e}of t)for(const{stream:n}of e)n!==void 0&&!uo(n)&&n.destroy()},hne=t=>{if(t.length>1)return t.some(({value:r})=>r==="overlapped")?"overlapped":"pipe";const[{type:e,value:n}]=t;return e==="native"?n:"pipe"},pne=(t,e)=>lP(mne,t,e,!0),Kr=({type:t,optionName:e})=>{fP(e,Fp[t])},gne=({optionName:t,value:e})=>((e==="ipc"||e==="overlapped")&&fP(t,`"${e}"`),{}),fP=(t,e)=>{throw new TypeError(`The \`${t}\` option cannot be ${e} with synchronous methods.`)},hP={generator(){},asyncGenerator:Kr,webStream:Kr,nodeStream:Kr,webTransform:Kr,duplex:Kr,asyncIterable:Kr,native:gne},mne={input:{...hP,fileUrl:({value:t})=>({contents:[Ul(Hp(t))]}),filePath:({value:{file:t}})=>({contents:[Ul(Hp(t))]}),fileNumber:Kr,iterable:({value:t})=>({contents:[...t]}),string:({value:t})=>({contents:[t]}),uint8Array:({value:t})=>({contents:[t]})},output:{...hP,fileUrl:({value:t})=>({path:t}),filePath:({value:{file:t}})=>({path:t}),fileNumber:({value:t})=>({path:t}),iterable:Kr,string:Kr,uint8Array:Kr}},$a=(t,{stripFinalNewline:e},n)=>pP(e,n)&&t!==void 0&&!Array.isArray(t)?L0(t):t,pP=(t,e)=>e==="all"?t[1]||t[2]:t[e],gP=(t,e,n,r)=>t||n?void 0:vP(e,r),mP=(t,e,n)=>n?t.flatMap(r=>yP(r,e)):yP(t,e),yP=(t,e)=>{const{transform:n,final:r}=vP(e,{});return[...n(t),...r()]},vP=(t,e)=>(e.previousChunks="",{transform:yne.bind(void 0,e,t),final:wne.bind(void 0,e)}),yne=function*(t,e,n){if(typeof n!="string"){yield n;return}let{previousChunks:r}=t,i=-1;for(let s=0;s<n.length;s+=1)if(n[s]===`
1801
+ `){const o=vne(n,s,e,t);let a=n.slice(i+1,s+1-o);r.length>0&&(a=J0(r,a),r=""),yield a,i=s}i!==n.length-1&&(r=J0(r,n.slice(i+1))),t.previousChunks=r},vne=(t,e,n,r)=>n?0:(r.isWindowsNewline=e!==0&&t[e-1]==="\r",r.isWindowsNewline?2:1),wne=function*({previousChunks:t}){t.length>0&&(yield t)},bne=({binary:t,preserveNewlines:e,readableObjectMode:n,state:r})=>t||e||n?void 0:{transform:Ene.bind(void 0,r)},Ene=function*({isWindowsNewline:t=!1},e){const{unixNewline:n,windowsNewline:r,LF:i,concatBytes:s}=typeof e=="string"?Dne:Rne;if(e.at(-1)===i){yield e;return}yield s(e,t?r:n)},J0=(t,e)=>`${t}${e}`,Dne={windowsNewline:`\r
1802
+ `,unixNewline:`
1803
+ `,LF:`
1804
+ `,concatBytes:J0},Tne=(t,e)=>{const n=new Uint8Array(t.length+e.length);return n.set(t,0),n.set(e,t.length),n},Rne={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:Tne},Sne=(t,e)=>t?void 0:kne.bind(void 0,e),kne=function*(t,e){if(typeof e!="string"&&!br(e)&&!Zp.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},$ne=(t,e)=>t?Cne.bind(void 0,e):_ne.bind(void 0,e),Cne=function*(t,e){wP(t,e),yield e},_ne=function*(t,e){if(wP(t,e),typeof e!="string"&&!br(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},wP=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
1805
+ Instead, \`yield\` should either be called with a value, or not be called at all. For example:
1806
+ if (condition) { yield value; }`)},bP=(t,e,n)=>{if(n)return;if(t)return{transform:Ane.bind(void 0,new TextEncoder)};const r=new Cb(e);return{transform:xne.bind(void 0,r),final:Ine.bind(void 0,r)}},Ane=function*(t,e){Zp.isBuffer(e)?yield Ul(e):typeof e=="string"?yield t.encode(e):yield e},xne=function*(t,e){yield br(e)?t.write(e):e},Ine=function*(t){const e=t.end();e!==""&&(yield e)},EP=bo(async(t,e,n,r)=>{e.currentIterable=t(...n);try{for await(const i of e.currentIterable)r.push(i)}finally{delete e.currentIterable}}),Z0=async function*(t,e,n){if(n===e.length){yield t;return}const{transform:r=Fne}=e[n];for await(const i of r(t))yield*Z0(i,e,n+1)},Pne=async function*(t){for(const[e,{final:n}]of Object.entries(t))yield*Nne(n,Number(e),t)},Nne=async function*(t,e,n){if(t!==void 0)for await(const r of t())yield*Z0(r,n,e+1)},One=bo(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),Fne=function*(t){yield t},DP=(t,e,n,r)=>{try{for(const i of t(...e))n.push(i);r()}catch(i){r(i)}},Lne=(t,e)=>[...e.flatMap(n=>[...Xl(n,t,0)]),...Q0(t)],Xl=function*(t,e,n){if(n===e.length){yield t;return}const{transform:r=zne}=e[n];for(const i of r(t))yield*Xl(i,e,n+1)},Q0=function*(t){for(const[e,{final:n}]of Object.entries(t))yield*Mne(n,Number(e),t)},Mne=function*(t,e,n){if(t!==void 0)for(const r of t())yield*Xl(r,n,e+1)},zne=function*(t){yield t},TP=({value:t,value:{transform:e,final:n,writableObjectMode:r,readableObjectMode:i},optionName:s},{encoding:o})=>{const a={},c=SP(t,o,s),u=Sa(e),l=Sa(n),d=u?EP.bind(void 0,Z0,a):DP.bind(void 0,Xl),f=u||l?EP.bind(void 0,Pne,a):DP.bind(void 0,Q0),h=u||l?One.bind(void 0,a):void 0;return{stream:new o2({writableObjectMode:r,writableHighWaterMark:id(r),readableObjectMode:i,readableHighWaterMark:id(i),transform(g,v,m){d([g,c,0],this,m)},flush(g){f([c],this,g)},destroy:h})}},RP=(t,e,n,r)=>{const i=e.filter(({type:o})=>o==="generator"),s=r?i.reverse():i;for(const{value:o,optionName:a}of s){const c=SP(o,n,a);t=Lne(c,t)}return t},SP=({transform:t,final:e,binary:n,writableObjectMode:r,readableObjectMode:i,preserveNewlines:s},o,a)=>{const c={};return[{transform:Sne(r,a)},bP(n,o,r),gP(n,s,r,c),{transform:t,final:e},{transform:$ne(i,a)},bne({binary:n,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)},Bne=(t,e)=>{for(const n of qne(t))jne(t,n,e)},qne=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),jne=(t,e,n)=>{const{stdioItems:r}=t[e],i=r.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){const[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${Fp[a]} with synchronous methods.`)}const o=i.map(({contents:a})=>a).map(a=>Une(a,r));n.input=r0(o)},Une=(t,e)=>{const n=RP(t,e,"utf8",!0);return Wne(n),r0(n)},Wne=t=>{const e=t.find(n=>typeof n!="string"&&!br(n));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)},kP=({stdioItems:t,encoding:e,verboseInfo:n,fdNumber:r})=>r!=="all"&&o0(n,r)&&!ho.has(e)&&Gne(r)&&(t.some(({type:i,value:s})=>i==="native"&&Hne.has(s))||t.every(({type:i})=>mo.has(i))),Gne=t=>t===1||t===2,Hne=new Set(["pipe","overlapped"]),Vne=async(t,e,n,r)=>{for await(const i of t)Yne(e)||$P(i,n,r)},Kne=(t,e,n)=>{for(const r of t)$P(r,e,n)},Yne=t=>t._readableState.pipes.length>0,$P=(t,e,n)=>{const r=Nx(t);Gl({type:"output",verboseMessage:r,fdNumber:e,verboseInfo:n})},Xne=({fileDescriptors:t,syncResult:{output:e},options:n,isMaxBuffer:r,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};const s={},o=new Set([]);return{output:e.map((c,u)=>Jne({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:r,verboseInfo:i},n)),...s}},Jne=({result:t,fileDescriptors:e,fdNumber:n,state:r,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;const f=Bee(t,s,d),h=Ul(f),{stdioItems:p,objectMode:g}=e[n],v=Zne([h],p,c,r),{serializedResult:m,finalResult:w=m}=Qne({chunks:v,objectMode:g,encoding:c,lines:u,stripFinalNewline:l,fdNumber:n});ere({serializedResult:m,fdNumber:n,state:r,verboseInfo:o,encoding:c,stdioItems:p,objectMode:g});const E=a[n]?w:void 0;try{return r.error===void 0&&tre(m,p,i),E}catch(k){return r.error=k,E}},Zne=(t,e,n,r)=>{try{return RP(t,e,n,!1)}catch(i){return r.error=i,t}},Qne=({chunks:t,objectMode:e,encoding:n,lines:r,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(n==="buffer")return{serializedResult:r0(t)};const o=QX(t,n);return r[s]?{serializedResult:o,finalResult:mP(o,!i[s],e)}:{serializedResult:o}},ere=({serializedResult:t,fdNumber:e,state:n,verboseInfo:r,encoding:i,stdioItems:s,objectMode:o})=>{if(!kP({stdioItems:s,encoding:i,verboseInfo:r,fdNumber:e}))return;const a=mP(t,!1,o);try{Kne(a,e,r)}catch(c){n.error??=c}},tre=(t,e,n)=>{for(const{path:r}of e.filter(({type:i})=>nP.has(i))){const i=typeof r=="string"?r:r.toString();n.has(i)?ON(r,t):(n.add(i),Db(r,t))}},nre=([,t,e],n)=>{if(n.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,$a(e,n,"all")]:Array.isArray(e)?[$a(t,n,"all"),...e]:br(t)&&br(e)?Ex([t,e]):`${t}${e}`},rre=async(t,e)=>{const[n,r]=await ire(t);return e.isForcefullyTerminated??=!1,[n,r]},ire=async t=>{const[e,n]=await Promise.allSettled([yn(t,"spawn"),yn(t,"exit")]);return e.status==="rejected"?[]:n.status==="rejected"?CP(t):n.value},CP=async t=>{try{return await yn(t,"exit")}catch{return CP(t)}},sre=async t=>{const[e,n]=await t;if(!ore(e,n)&&_P(e,n))throw new Hl;return[e,n]},ore=(t,e)=>t===void 0&&e===void 0,_P=(t,e)=>t!==0||e!==null,are=({error:t,status:e,signal:n,output:r},{maxBuffer:i})=>{const s=cre(t,e,n),o=s?.code==="ETIMEDOUT",a=zee(s,r,i);return{resultError:s,exitCode:e,signal:n,timedOut:o,isMaxBuffer:a}},cre=(t,e,n)=>t!==void 0?t:_P(e,n)?new Hl:void 0,ure=(t,e,n)=>{const{file:r,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=lre(t,e,n),d=hre({file:r,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return G0(d,c,u)},lre=(t,e,n)=>{const{command:r,escapedCommand:i,startTime:s,verboseInfo:o}=Lx(t,e,n),a=dre(n),{file:c,commandArguments:u,options:l}=SI(t,e,a);fre(l);const d=pne(l,o);return{file:c,commandArguments:u,command:r,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},dre=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,fre=({ipc:t,ipcInput:e,detached:n,cancelSignal:r})=>{e&&Lp("ipcInput"),t&&Lp("ipc: true"),n&&Lp("detached: true"),r&&Lp("cancelSignal")},Lp=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},hre=({file:t,commandArguments:e,options:n,command:r,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{const c=pre({file:t,commandArguments:e,options:n,command:r,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;const{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:h}=are(c,n),{output:p,error:g=u}=Xne({fileDescriptors:o,syncResult:c,options:n,isMaxBuffer:h,verboseInfo:s}),v=p.map((w,E)=>$a(w,n,E)),m=$a(nre(p,n),n,"all");return mre({error:g,exitCode:l,signal:d,timedOut:f,isMaxBuffer:h,stdio:v,all:m,options:n,command:r,escapedCommand:i,startTime:a})},pre=({file:t,commandArguments:e,options:n,command:r,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{Bne(s,n);const a=gre(n);return JN(t,e,a)}catch(a){return U0({error:a,command:r,escapedCommand:i,fileDescriptors:s,options:n,startTime:o,isSync:!0})}},gre=({encoding:t,maxBuffer:e,...n})=>({...n,encoding:"buffer",maxBuffer:j0(e)}),mre=({error:t,exitCode:e,signal:n,timedOut:r,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?WI({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):W0({error:t,command:c,escapedCommand:u,timedOut:r,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:n,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0}),yre=({anyProcess:t,channel:e,isSubprocess:n,ipc:r},{reference:i=!0,filter:s}={})=>($0({methodName:"getOneMessage",isSubprocess:n,ipc:r,isConnected:mI(t)}),vre({anyProcess:t,channel:e,isSubprocess:n,filter:s,reference:i})),vre=async({anyProcess:t,channel:e,isSubprocess:n,filter:r,reference:i})=>{pI(e,i);const s=Cp(t,e,n),o=new AbortController;try{return await Promise.race([wre(s,r,o),bre(s,n,o),Ere(s,n,o)])}catch(a){throw C0(t),a}finally{o.abort(),gI(e,i)}},wre=async(t,e,{signal:n})=>{if(e===void 0){const[r]=await yn(t,"message",{signal:n});return r}for await(const[r]of rd(t,"message",{signal:n}))if(e(r))return r},bre=async(t,e,{signal:n})=>{await yn(t,"disconnect",{signal:n}),YZ(e)},Ere=async(t,e,{signal:n})=>{const[r]=await yn(t,"strict:error",{signal:n});throw uI(r,e)},Dre=({anyProcess:t,channel:e,isSubprocess:n,ipc:r},{reference:i=!0}={})=>AP({anyProcess:t,channel:e,isSubprocess:n,ipc:r,shouldAwait:!n,reference:i}),AP=({anyProcess:t,channel:e,isSubprocess:n,ipc:r,shouldAwait:i,reference:s})=>{$0({methodName:"getEachMessage",isSubprocess:n,ipc:r,isConnected:mI(t)}),pI(e,s);const o=Cp(t,e,n),a=new AbortController,c={};return Tre(t,o,a),Rre({ipcEmitter:o,isSubprocess:n,controller:a,state:c}),Sre({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:n,shouldAwait:i,controller:a,state:c,reference:s})},Tre=async(t,e,n)=>{try{await yn(e,"disconnect",{signal:n.signal}),n.abort()}catch{}},Rre=async({ipcEmitter:t,isSubprocess:e,controller:n,state:r})=>{try{const[i]=await yn(t,"strict:error",{signal:n.signal});r.error=uI(i,e),n.abort()}catch{}},Sre=async function*({anyProcess:t,channel:e,ipcEmitter:n,isSubprocess:r,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(const[c]of rd(n,"message",{signal:s.signal}))xP(o),yield c}catch{xP(o)}finally{s.abort(),gI(e,a),r||C0(t),i&&await t}},xP=({error:t})=>{if(t)throw t},kre=(t,{ipc:e})=>{Object.assign(t,IP(t,!1,e))},$re=()=>{const t=Pe,e=!0,n=Pe.channel!==void 0;return{...IP(t,e,n),getCancelSignal:_Q.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:n})}},IP=(t,e,n)=>({sendMessage:vI.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:n}),getOneMessage:yre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:n}),getEachMessage:Dre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:n})}),Cre=({error:t,command:e,escapedCommand:n,fileDescriptors:r,options:i,startTime:s,verboseInfo:o})=>{dP(r);const a=new $b;_re(a,r),Object.assign(a,{readable:Are,writable:xre,duplex:Ire});const c=U0({error:t,command:e,escapedCommand:n,fileDescriptors:r,options:i,startTime:s,isSync:!1}),u=Pre(c,o,i);return{subprocess:a,promise:u}},_re=(t,e)=>{const n=Jl(),r=Jl(),i=Jl(),s=Array.from({length:e.length-3},Jl),o=Jl(),a=[n,r,i,...s];Object.assign(t,{stdin:n,stdout:r,stderr:i,all:o,stdio:a})},Jl=()=>{const t=new Ib;return t.end(),t},Are=()=>new ws({read(){}}),xre=()=>new Xp({write(){}}),Ire=()=>new Jp({read(){},write(){}}),Pre=async(t,e,n)=>G0(t,e,n),Nre=(t,e)=>lP(Ore,t,e,!1),Zl=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Fp[t]}.`)},PP={fileNumber:Zl,generator:TP,asyncGenerator:TP,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:n}}){const r=e||n;return{stream:Jp.fromWeb(t,{objectMode:r})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Ore={input:{...PP,fileUrl:({value:t})=>({stream:Tb(t)}),filePath:({value:{file:t}})=>({stream:Tb(t)}),webStream:({value:t})=>({stream:ws.fromWeb(t)}),iterable:({value:t})=>({stream:ws.from(t)}),asyncIterable:({value:t})=>({stream:ws.from(t)}),string:({value:t})=>({stream:ws.from(t)}),uint8Array:({value:t})=>({stream:ws.from(Zp.from(t))})},output:{...PP,fileUrl:({value:t})=>({stream:Rb(t)}),filePath:({value:{file:t}})=>({stream:Rb(t)}),webStream:({value:t})=>({stream:Xp.fromWeb(t)}),iterable:Zl,asyncIterable:Zl,string:Zl,uint8Array:Zl}};function eb(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(const i of t)tb(i);const e=t.some(({readableObjectMode:i})=>i),n=Fre(t,e),r=new Lre({objectMode:e,writableHighWaterMark:n,readableHighWaterMark:n});for(const i of t)r.add(i);return r}const Fre=(t,e)=>{if(t.length===0)return id(e);const n=t.filter(({readableObjectMode:r})=>r===e).map(({readableHighWaterMark:r})=>r);return Math.max(...n)};class Lre extends Ib{#e=new Set([]);#t=new Set([]);#n=new Set([]);#r;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(tb(e),this.#e.has(e))return;this.#e.add(e),this.#r??=Mre(this,this.#e,this.#s);const n=qre({passThroughStream:this,stream:e,streams:this.#e,ended:this.#t,aborted:this.#n,onFinished:this.#r,unpipeEvent:this.#s});this.#i.set(e,n),e.pipe(this,{end:!1})}async remove(e){if(tb(e),!this.#e.has(e))return!1;const n=this.#i.get(e);return n===void 0?!1:(this.#i.delete(e),e.unpipe(this),await n,!0)}}const Mre=async(t,e,n)=>{Mp(t,LP);const r=new AbortController;try{await Promise.race([zre(t,r),Bre(t,e,n,r)])}finally{r.abort(),Mp(t,-LP)}},zre=async(t,{signal:e})=>{try{await xi(t,{signal:e,cleanup:!0})}catch(n){throw NP(t,n),n}},Bre=async(t,e,n,{signal:r})=>{for await(const[i]of rd(t,"unpipe",{signal:r}))e.has(i)&&i.emit(n)},tb=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},qre=async({passThroughStream:t,stream:e,streams:n,ended:r,aborted:i,onFinished:s,unpipeEvent:o})=>{Mp(t,MP);const a=new AbortController;try{await Promise.race([jre(s,e,a),Ure({passThroughStream:t,stream:e,streams:n,ended:r,aborted:i,controller:a}),Wre({stream:e,streams:n,ended:r,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),Mp(t,-MP)}n.size>0&&n.size===r.size+i.size&&(r.size===0&&i.size>0?nb(t):Gre(t))},jre=async(t,e,{signal:n})=>{try{await t,n.aborted||nb(e)}catch(r){n.aborted||NP(e,r)}},Ure=async({passThroughStream:t,stream:e,streams:n,ended:r,aborted:i,controller:{signal:s}})=>{try{await xi(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),n.has(e)&&r.add(e)}catch(o){if(s.aborted||!n.has(e))return;OP(o)?i.add(e):FP(t,o)}},Wre=async({stream:t,streams:e,ended:n,aborted:r,unpipeEvent:i,controller:{signal:s}})=>{if(await yn(t,i,{signal:s}),!t.readable)return yn(s,"abort",{signal:s});e.delete(t),n.delete(t),r.delete(t)},Gre=t=>{t.writable&&t.end()},NP=(t,e)=>{OP(e)?nb(t):FP(t,e)},OP=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",nb=t=>{(t.readable||t.writable)&&t.destroy()},FP=(t,e)=>{t.destroyed||(t.once("error",Hre),t.destroy(e))},Hre=()=>{},Mp=(t,e)=>{const n=t.getMaxListeners();n!==0&&n!==Number.POSITIVE_INFINITY&&t.setMaxListeners(n+e)},LP=2,MP=1,zp=(t,e)=>{t.pipe(e),Vre(t,e),Kre(t,e)},Vre=async(t,e)=>{if(!(uo(t)||uo(e))){try{await xi(t,{cleanup:!0,readable:!0,writable:!1})}catch{}zP(e)}},zP=t=>{t.writable&&t.end()},Kre=async(t,e)=>{if(!(uo(t)||uo(e))){try{await xi(e,{cleanup:!0,readable:!1,writable:!0})}catch{}BP(t)}},BP=t=>{t.readable&&t.destroy()},Yre=(t,e,n)=>{const r=new Map;for(const[i,{stdioItems:s,direction:o}]of Object.entries(e)){for(const{stream:a}of s.filter(({type:c})=>mo.has(c)))Xre(t,a,o,i);for(const{stream:a}of s.filter(({type:c})=>!mo.has(c)))Zre({subprocess:t,stream:a,direction:o,fdNumber:i,pipeGroups:r,controller:n})}for(const[i,s]of r.entries()){const o=s.length===1?s[0]:eb(s);zp(o,i)}},Xre=(t,e,n,r)=>{n==="output"?zp(t.stdio[r],e):zp(e,t.stdio[r]);const i=Jre[r];i!==void 0&&(t[i]=e),t.stdio[r]=e},Jre=["stdin","stdout","stderr"],Zre=({subprocess:t,stream:e,direction:n,fdNumber:r,pipeGroups:i,controller:s})=>{if(e===void 0)return;Qre(e,s);const[o,a]=n==="output"?[e,t.stdio[r]]:[t.stdio[r],e],c=i.get(o)??[];i.set(o,[...c,a])},Qre=(t,{signal:e})=>{uo(t)&&kp(t,eie,e)},eie=2,Ca=[];Ca.push("SIGHUP","SIGINT","SIGTERM"),process.platform!=="win32"&&Ca.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),process.platform==="linux"&&Ca.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");const Bp=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",rb=Symbol.for("signal-exit emitter"),ib=globalThis,tie=Object.defineProperty.bind(Object);class nie{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(ib[rb])return ib[rb];tie(ib,rb,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,n){this.listeners[e].push(n)}removeListener(e,n){const r=this.listeners[e],i=r.indexOf(n);i!==-1&&(i===0&&r.length===1?r.length=0:r.splice(i,1))}emit(e,n,r){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(const s of this.listeners[e])i=s(n,r)===!0||i;return e==="exit"&&(i=this.emit("afterExit",n,r)||i),i}}class qP{}const rie=t=>({onExit(e,n){return t.onExit(e,n)},load(){return t.load()},unload(){return t.unload()}});class iie extends qP{onExit(){return()=>{}}load(){}unload(){}}class sie extends qP{#e=sb.platform==="win32"?"SIGINT":"SIGHUP";#t=new nie;#n;#r;#s;#i={};#o=!1;constructor(e){super(),this.#n=e,this.#i={};for(const n of Ca)this.#i[n]=()=>{const r=this.#n.listeners(n);let{count:i}=this.#t;const s=e;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(i+=s.__signal_exit_emitter__.count),r.length===i){this.unload();const o=this.#t.emit("exit",null,n),a=n==="SIGHUP"?this.#e:n;o||e.kill(e.pid,a)}};this.#s=e.reallyExit,this.#r=e.emit}onExit(e,n){if(!Bp(this.#n))return()=>{};this.#o===!1&&this.load();const r=n?.alwaysLast?"afterExit":"exit";return this.#t.on(r,e),()=>{this.#t.removeListener(r,e),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(const e of Ca)try{const n=this.#i[e];n&&this.#n.on(e,n)}catch{}this.#n.emit=(e,...n)=>this.#c(e,...n),this.#n.reallyExit=e=>this.#a(e)}}unload(){this.#o&&(this.#o=!1,Ca.forEach(e=>{const n=this.#i[e];if(!n)throw new Error("Listener not defined for signal: "+e);try{this.#n.removeListener(e,n)}catch{}}),this.#n.emit=this.#r,this.#n.reallyExit=this.#s,this.#t.count-=1)}#a(e){return Bp(this.#n)?(this.#n.exitCode=e||0,this.#t.emit("exit",this.#n.exitCode,null),this.#s.call(this.#n,this.#n.exitCode)):0}#c(e,...n){const r=this.#r;if(e==="exit"&&Bp(this.#n)){typeof n[0]=="number"&&(this.#n.exitCode=n[0]);const i=r.call(this.#n,e,...n);return this.#t.emit("exit",this.#n.exitCode,null),i}else return r.call(this.#n,e,...n)}}const sb=globalThis.process,{onExit:oie,load:Koe,unload:Yoe}=rie(Bp(sb)?new sie(sb):new iie),aie=(t,{cleanup:e,detached:n},{signal:r})=>{if(!e||n)return;const i=oie(()=>{t.kill()});xb(r,()=>{i()})},cie=({source:t,sourcePromise:e,boundOptions:n,createNested:r},...i)=>{const s=Ox(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=uie(n,r,i),{sourceStream:d,sourceError:f}=die(t,u),{options:h,fileDescriptors:p}=fo.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:h,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:p,startTime:s}},uie=(t,e,n)=>{try{const{destination:r,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=lie(t,e,...n),a=lI(r,s);return{destination:r,destinationStream:a,from:i,unpipeSignal:o}}catch(r){return{destinationError:r}}},lie=(t,e,n,...r)=>{if(Array.isArray(n))return{destination:e(jP,t)(n,...r),pipeOptions:t};if(typeof n=="string"||n instanceof URL){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');const[i,s,o]=yx(n,...r);return{destination:e(jP)(i,s,o),pipeOptions:o}}if(fo.has(n)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:n,pipeOptions:r[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${n}`)},jP=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),die=(t,e)=>{try{return{sourceStream:_0(t,e)}}catch(n){return{sourceError:n}}},fie=({sourceStream:t,sourceError:e,destinationStream:n,destinationError:r,fileDescriptors:i,sourceOptions:s,startTime:o})=>{const a=hie({sourceStream:t,sourceError:e,destinationStream:n,destinationError:r});if(a!==void 0)throw UP({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},hie=({sourceStream:t,sourceError:e,destinationStream:n,destinationError:r})=>{if(e!==void 0&&r!==void 0)return r;if(r!==void 0)return BP(t),r;if(e!==void 0)return zP(n),e},UP=({error:t,fileDescriptors:e,sourceOptions:n,startTime:r})=>U0({error:t,command:WP,escapedCommand:WP,fileDescriptors:e,options:n,startTime:r,isSync:!1}),WP="source.pipe(destination)",pie=async t=>{const[{status:e,reason:n,value:r=n},{status:i,reason:s,value:o=s}]=await t;if(o.pipedFrom.includes(r)||o.pipedFrom.push(r),i==="rejected")throw o;if(e==="rejected")throw r;return o},gie=(t,e,n)=>{const r=qp.has(e)?yie(t,e):mie(t,e);return kp(t,wie,n.signal),kp(e,bie,n.signal),vie(e),r},mie=(t,e)=>{const n=eb([t]);return zp(n,e),qp.set(e,n),n},yie=(t,e)=>{const n=qp.get(e);return n.add(t),n},vie=async t=>{try{await xi(t,{cleanup:!0,readable:!1,writable:!0})}catch{}qp.delete(t)},qp=new WeakMap,wie=2,bie=1,Eie=(t,e)=>t===void 0?[]:[Die(t,e)],Die=async(t,{sourceStream:e,mergedStream:n,fileDescriptors:r,sourceOptions:i,startTime:s})=>{await VN(t,e),await n.remove(e);const o=new Error("Pipe canceled by `unpipeSignal` option.");throw UP({error:o,fileDescriptors:r,sourceOptions:i,startTime:s})},ob=(t,...e)=>{if(er(e[0]))return ob.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});const{destination:n,...r}=cie(t,...e),i=Tie({...r,destination:n});return i.pipe=ob.bind(void 0,{...t,source:n,sourcePromise:i,boundOptions:{}}),i},Tie=async({sourcePromise:t,sourceStream:e,sourceOptions:n,sourceError:r,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{const l=Rie(t,i);fie({sourceStream:e,sourceError:r,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:n,startTime:u});const d=new AbortController;try{const f=gie(e,s,d);return await Promise.race([pie(l),...Eie(a,{sourceStream:e,mergedStream:f,sourceOptions:n,fileDescriptors:c,startTime:u})])}finally{d.abort()}},Rie=(t,e)=>Promise.allSettled([t,e]),GP=({subprocessStdout:t,subprocess:e,binary:n,shouldEncode:r,encoding:i,preserveNewlines:s})=>{const o=new AbortController;return Sie(e,o),VP({stream:t,controller:o,binary:n,shouldEncode:!t.readableObjectMode&&r,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},Sie=async(t,e)=>{try{await t}catch{}finally{e.abort()}},HP=({stream:t,onStreamEnd:e,lines:n,encoding:r,stripFinalNewline:i,allMixed:s})=>{const o=new AbortController;kie(e,o,t);const a=t.readableObjectMode&&!s;return VP({stream:t,controller:o,binary:r==="buffer",shouldEncode:!a,encoding:r,shouldSplit:!a&&n,preserveNewlines:!i})},kie=async(t,e,n)=>{try{await t}catch{n.destroy()}finally{e.abort()}},VP=({stream:t,controller:e,binary:n,shouldEncode:r,encoding:i,shouldSplit:s,preserveNewlines:o})=>{const a=rd(t,"data",{signal:e.signal,highWaterMark:YP,highWatermark:YP});return $ie({onStdoutChunk:a,controller:e,binary:n,shouldEncode:r,encoding:i,shouldSplit:s,preserveNewlines:o})},KP=id(!0),YP=KP,$ie=async function*({onStdoutChunk:t,controller:e,binary:n,shouldEncode:r,encoding:i,shouldSplit:s,preserveNewlines:o}){const a=Cie({binary:n,shouldEncode:r,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(const[c]of t)yield*Xl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*Q0(a)}},Cie=({binary:t,shouldEncode:e,encoding:n,shouldSplit:r,preserveNewlines:i})=>[bP(t,n,!e),gP(t,i,!r,{})].filter(Boolean),_ie=async({stream:t,onStreamEnd:e,fdNumber:n,encoding:r,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{const d=Aie({stream:t,onStreamEnd:e,fdNumber:n,encoding:r,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([xie(t),d]);return}const f=pP(c,n),h=HP({stream:t,onStreamEnd:e,lines:o,encoding:r,stripFinalNewline:f,allMixed:a}),[p]=await Promise.all([Iie({stream:t,iterable:h,fdNumber:n,encoding:r,maxBuffer:s,lines:o}),d]);return p},Aie=async({stream:t,onStreamEnd:e,fdNumber:n,encoding:r,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!kP({stdioItems:o[n]?.stdioItems,encoding:r,verboseInfo:s,fdNumber:n}))return;const a=HP({stream:t,onStreamEnd:e,lines:!0,encoding:r,stripFinalNewline:!0,allMixed:i});await Vne(a,t,n,s)},xie=async t=>{await n2(),t.readableFlowing===null&&t.resume()},Iie=async({stream:t,stream:{readableObjectMode:e},iterable:n,fdNumber:r,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await hee(n,{maxBuffer:s}):i==="buffer"?new Uint8Array(await vee(n,{maxBuffer:s})):await Cee(n,{maxBuffer:s})}catch(a){return JP(Nee({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:r}))}},XP=async t=>{try{return await t}catch(e){return JP(e)}},JP=({bufferedData:t})=>XX(t)?new Uint8Array(t):t,ab=async(t,e,n,{isSameDirection:r,stopOnExit:i=!1}={})=>{const s=Pie(t,n),o=new AbortController;try{await Promise.race([...i?[n.exitPromise]:[],xi(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||Fie(a,e,n,r)}finally{o.abort()}},Pie=(t,{originalStreams:[e],subprocess:n})=>{const r={stdinCleanedUp:!1};return t===e&&Nie(t,n,r),r},Nie=(t,e,n)=>{const{_destroy:r}=t;t._destroy=(...i)=>{Oie(e,n),r.call(t,...i)}},Oie=({exitCode:t,signalCode:e},n)=>{(t!==null||e!==null)&&(n.stdinCleanedUp=!0)},Fie=(t,e,n,r)=>{if(!Lie(t,e,n,r))throw t},Lie=(t,e,n,r=!0)=>n.propagating?QP(t)||cb(t):(n.propagating=!0,ZP(n,e)===r?QP(t):cb(t)),ZP=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",cb=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",QP=t=>t?.code==="EPIPE",Mie=({subprocess:t,encoding:e,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>eN({stream:c,fdNumber:u,encoding:e,buffer:n[u],maxBuffer:r[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),eN=async({stream:t,fdNumber:e,encoding:n,buffer:r,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;const l=ab(t,e,u);if(ZP(u,e)){await l;return}const[d]=await Promise.all([_ie({stream:t,onStreamEnd:l,fdNumber:e,encoding:n,buffer:r,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d},zie=({stdout:t,stderr:e},{all:n})=>n&&(t||e)?eb([t,e].filter(Boolean)):void 0,Bie=({subprocess:t,encoding:e,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>eN({...qie(t,n),fdNumber:"all",encoding:e,maxBuffer:r[1]+r[2],lines:i[1]||i[2],allMixed:jie(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),qie=({stdout:t,stderr:e,all:n},[,r,i])=>{const s=r||i;return s?r?i?{stream:n,buffer:s}:{stream:t,buffer:s}:{stream:e,buffer:s}:{stream:n,buffer:s}},jie=({all:t,stdout:e,stderr:n})=>t&&e&&n&&e.readableObjectMode!==n.readableObjectMode,Uie=t=>o0(t,"ipc"),Wie=(t,e)=>{const n=Nx(t);Gl({type:"ipc",verboseMessage:n,fdNumber:"ipc",verboseInfo:e})},Gie=async({subprocess:t,buffer:e,maxBuffer:n,ipc:r,ipcOutput:i,verboseInfo:s})=>{if(!r)return i;const o=Uie(s),a=Wl(e,"ipc"),c=Wl(n,"ipc");for await(const u of AP({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:r,shouldAwait:!1,reference:!0}))a&&(Fee(t,i,c),i.push(u)),o&&Wie(u,s);return i},Hie=async(t,e)=>(await Promise.allSettled([t]),e),Vie=async({subprocess:t,options:{encoding:e,buffer:n,maxBuffer:r,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:h,fileDescriptors:p,originalStreams:g,onInternalError:v,controller:m})=>{const w=rre(t,f),E={originalStreams:g,fileDescriptors:p,subprocess:t,exitPromise:w,propagating:!1},k=Mie({subprocess:t,encoding:e,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:u,verboseInfo:h,streamInfo:E}),A=Bie({subprocess:t,encoding:e,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:u,verboseInfo:h,streamInfo:E}),I=[],x=Gie({subprocess:t,buffer:n,maxBuffer:r,ipc:l,ipcOutput:I,verboseInfo:h}),_=Kie(g,t,E),P=Yie(p,E);try{return await Promise.race([Promise.all([{},sre(w),Promise.all(k),A,x,GQ(t,d),..._,...P]),v,Xie(t,m),...LQ(t,s,f,m),...HZ({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:m}),...PQ({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:m})])}catch(N){return f.terminationReason??="other",Promise.all([{error:N},w,Promise.all(k.map(C=>XP(C))),XP(A),Hie(x,I),Promise.allSettled(_),Promise.allSettled(P)])}},Kie=(t,e,n)=>t.map((r,i)=>r===e.stdio[i]?void 0:ab(r,i,n)),Yie=(t,e)=>t.flatMap(({stdioItems:n},r)=>n.filter(({value:i,stream:s=i})=>po(s,{checkOpen:!1})&&!uo(s)).map(({type:i,value:s,stream:o=s})=>ab(o,r,e,{isSameDirection:mo.has(i),stopOnExit:i==="native"}))),Xie=async(t,{signal:e})=>{const[n]=await yn(t,"error",{signal:e});throw n},Jie=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),ub=(t,e,n)=>{const r=t[n];r.has(e)||r.set(e,[]);const i=r.get(e),s=Vl();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},jp=async({resolve:t,promises:e},n)=>{t();const[r]=await Promise.race([Promise.allSettled([!0,n]),Promise.all([!1,...e])]);return!r},tN=async t=>{if(t!==void 0)try{await nN(t)}catch{}},Zie=async t=>{if(t!==void 0)try{await rN(t)}catch{}},nN=async t=>{await xi(t,{cleanup:!0,readable:!1,writable:!0})},rN=async t=>{await xi(t,{cleanup:!0,readable:!0,writable:!1})},iN=async(t,e)=>{if(await t,e)throw e},sN=(t,e,n)=>{n&&!cb(n)?t.destroy(n):e&&t.destroy()},Qie=({subprocess:t,concurrentStreams:e,encoding:n},{from:r,binary:i=!0,preserveNewlines:s=!0}={})=>{const o=i||ho.has(n),{subprocessStdout:a,waitReadableDestroy:c}=oN(t,r,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=aN(a,o),{read:f,onStdoutDataDone:h}=cN({subprocessStdout:a,subprocess:t,binary:o,encoding:n,preserveNewlines:s}),p=new ws({read:f,destroy:bo(lN.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return uN({subprocessStdout:a,onStdoutDataDone:h,readable:p,subprocess:t}),p},oN=(t,e,n)=>{const r=_0(t,e),i=ub(n,r,"readableDestroy");return{subprocessStdout:r,waitReadableDestroy:i}},aN=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:n},r)=>r?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:n}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:KP},cN=({subprocessStdout:t,subprocess:e,binary:n,encoding:r,preserveNewlines:i})=>{const s=Vl(),o=GP({subprocessStdout:t,subprocess:e,binary:n,shouldEncode:!n,encoding:r,preserveNewlines:i});return{read(){ese(this,o,s)},onStdoutDataDone:s}},ese=async(t,e,n)=>{try{const{value:r,done:i}=await e.next();i?n.resolve():t.push(r)}catch{}},uN=async({subprocessStdout:t,onStdoutDataDone:e,readable:n,subprocess:r,subprocessStdin:i})=>{try{await rN(t),await r,await tN(i),await e,n.readable&&n.push(null)}catch(s){await tN(i),dN(n,s)}},lN=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:n},r)=>{await jp(n,e)&&(dN(t,r),await iN(e,r))},dN=(t,e)=>{sN(t,t.readable,e)},tse=({subprocess:t,concurrentStreams:e},{to:n}={})=>{const{subprocessStdin:r,waitWritableFinal:i,waitWritableDestroy:s}=fN(t,n,e),o=new Xp({...hN(r,t,i),destroy:bo(gN.bind(void 0,{subprocessStdin:r,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:r.writableHighWaterMark,objectMode:r.writableObjectMode});return pN(r,o),o},fN=(t,e,n)=>{const r=lI(t,e),i=ub(n,r,"writableFinal"),s=ub(n,r,"writableDestroy");return{subprocessStdin:r,waitWritableFinal:i,waitWritableDestroy:s}},hN=(t,e,n)=>({write:nse.bind(void 0,t),final:bo(rse.bind(void 0,t,e,n))}),nse=(t,e,n,r)=>{t.write(e,n)?r():t.once("drain",r)},rse=async(t,e,n)=>{await jp(n,e)&&(t.writable&&t.end(),await e)},pN=async(t,e,n)=>{try{await nN(t),e.writable&&e.end()}catch(r){await Zie(n),mN(e,r)}},gN=async({subprocessStdin:t,subprocess:e,waitWritableFinal:n,waitWritableDestroy:r},i)=>{await jp(n,e),await jp(r,e)&&(mN(t,i),await iN(e,i))},mN=(t,e)=>{sN(t,t.writable,e)},ise=({subprocess:t,concurrentStreams:e,encoding:n},{from:r,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{const a=s||ho.has(n),{subprocessStdout:c,waitReadableDestroy:u}=oN(t,r,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=fN(t,i,e),{readableEncoding:h,readableObjectMode:p,readableHighWaterMark:g}=aN(c,a),{read:v,onStdoutDataDone:m}=cN({subprocessStdout:c,subprocess:t,binary:a,encoding:n,preserveNewlines:o}),w=new Jp({read:v,...hN(l,t,d),destroy:bo(sse.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:g,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:p,writableObjectMode:l.writableObjectMode,encoding:h});return uN({subprocessStdout:c,onStdoutDataDone:m,readable:w,subprocess:t,subprocessStdin:l}),pN(l,w,c),w},sse=async({subprocessStdout:t,subprocessStdin:e,subprocess:n,waitReadableDestroy:r,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([lN({subprocessStdout:t,subprocess:n,waitReadableDestroy:r},o),gN({subprocessStdin:e,subprocess:n,waitWritableFinal:i,waitWritableDestroy:s},o)])},yN=(t,e,{from:n,binary:r=!1,preserveNewlines:i=!1}={})=>{const s=r||ho.has(e),o=_0(t,n),a=GP({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return ose(a,o,t)},ose=async function*(t,e,n){try{yield*t}finally{e.readable&&e.destroy(),await n}},ase=(t,{encoding:e})=>{const n=Jie();t.readable=Qie.bind(void 0,{subprocess:t,concurrentStreams:n,encoding:e}),t.writable=tse.bind(void 0,{subprocess:t,concurrentStreams:n}),t.duplex=ise.bind(void 0,{subprocess:t,concurrentStreams:n,encoding:e}),t.iterable=yN.bind(void 0,t,e),t[Symbol.asyncIterator]=yN.bind(void 0,t,e,{})},cse=(t,e)=>{for(const[n,r]of lse){const i=r.value.bind(e);Reflect.defineProperty(t,n,{...r,value:i})}},use=(async()=>{})().constructor.prototype,lse=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(use,t)]),dse=(t,e,n,r)=>{const{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=fse(t,e,n),{subprocess:f,promise:h}=pse({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=ob.bind(void 0,{source:f,sourcePromise:h,boundOptions:{},createNested:r}),cse(f,h),fo.set(f,{options:l,fileDescriptors:d}),f},fse=(t,e,n)=>{const{command:r,escapedCommand:i,startTime:s,verboseInfo:o}=Lx(t,e,n),{file:a,commandArguments:c,options:u}=SI(t,e,n),l=hse(u),d=Nre(l,o);return{file:a,commandArguments:c,command:r,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},hse=({timeout:t,signal:e,...n})=>{if(e!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...n,timeoutDuration:t}},pse=({file:t,commandArguments:e,options:n,startTime:r,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=ZN(t,e,n)}catch(p){return Cre({error:p,command:s,escapedCommand:o,fileDescriptors:a,options:n,startTime:r,verboseInfo:i})}const u=new AbortController;i2(Number.POSITIVE_INFINITY,u.signal);const l=[...c.stdio];Yre(c,a,u),aie(c,n,u);const d={},f=Vl();c.kill=qZ.bind(void 0,{kill:c.kill.bind(c),options:n,onInternalError:f,context:d,controller:u}),c.all=zie(c,n),ase(c,n),kre(c,n);const h=gse({subprocess:c,options:n,startTime:r,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:h}},gse=async({subprocess:t,options:e,startTime:n,verboseInfo:r,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{const[d,[f,h],p,g,v]=await Vie({subprocess:t,options:e,context:c,verboseInfo:r,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();const m=p.map((k,A)=>$a(k,e,A)),w=$a(g,e,"all"),E=mse({errorInfo:d,exitCode:f,signal:h,stdio:m,all:w,ipcOutput:v,context:c,options:e,command:o,escapedCommand:a,startTime:n});return G0(E,r,e)},mse=({errorInfo:t,exitCode:e,signal:n,stdio:r,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?W0({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Np,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:n,stdio:r,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):WI({command:c,escapedCommand:u,stdio:r,all:i,ipcOutput:s,options:a,startTime:l}),lb=(t,e)=>{const n=Object.fromEntries(Object.entries(e).map(([r,i])=>[r,yse(r,t[r],i)]));return{...t,...n}},yse=(t,e,n)=>vse.has(t)&&er(e)&&er(n)?{...e,...n}:n,vse=new Set(["env",..._x]),yo=(t,e,n,r)=>{const i=(o,a,c)=>yo(o,a,n,c),s=(...o)=>wse({mapArguments:t,deepOptions:n,boundOptions:e,setBoundExeca:r,createNested:i},...o);return r!==void 0&&r(s,i,e),s},wse=({mapArguments:t,deepOptions:e={},boundOptions:n={},setBoundExeca:r,createNested:i},s,...o)=>{if(er(s))return i(t,lb(n,s),r);const{file:a,commandArguments:c,options:u,isSync:l}=bse({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:n});return l?ure(a,c,u):dse(a,c,u,i)},bse=({mapArguments:t,firstArgument:e,nextArguments:n,deepOptions:r,boundOptions:i})=>{const s=rJ(e)?iJ(e,n):[e,...n],[o,a,c]=yx(...s),u=lb(lb(r,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:h=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:h}},Ese=({file:t,commandArguments:e})=>vN(t,e),Dse=({file:t,commandArguments:e})=>({...vN(t,e),isSync:!0}),vN=(t,e)=>{if(e.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${t} ${e}.`);const[n,...r]=Tse(t);return{file:n,commandArguments:r}},Tse=t=>{if(typeof t!="string")throw new TypeError(`The command must be a string: ${String(t)}.`);const e=t.trim();if(e==="")return[];const n=[];for(const r of e.split(Rse)){const i=n.at(-1);i&&i.endsWith("\\")?n[n.length-1]=`${i.slice(0,-1)} ${r}`:n.push(r)}return n},Rse=/ +/g,Sse=(t,e,n)=>{t.sync=e($se,n),t.s=t.sync},kse=({options:t})=>wN(t),$se=({options:t})=>({...wN(t),isSync:!0}),wN=t=>({options:{...Cse(t),...t}}),Cse=({input:t,inputFile:e,stdio:n})=>t===void 0&&e===void 0&&n===void 0?{stdin:"inherit"}:{},_se={preferLocal:!0},db=yo(()=>({}));yo(()=>({isSync:!0})),yo(Ese),yo(Dse),yo(zQ),yo(kse,{},_se,Sse),$re();const fb=yp(2);class Ase{constructor(e="dot"){this.path=e}async unflatten(e){return await fb(async()=>{const n=await db("unflatten",["-l 1","-c 3"],{reject:!1,timeout:1e4,input:e,stdin:"pipe",encoding:"utf8"});return n instanceof Error&&(n.stdout?nt.warn(`[BinaryGraphvizLayouter.layout] '${n.command}' failed: ${n.stderr}
1807
+
1808
+ but returned
1809
+ ${n.stdout}`):nt.error(`[BinaryGraphvizLayouter.layout] '${n.command}' failed: ${n.stderr}
1810
+
1811
+ nothing returned, ignoring...`)),n.stdout&&(e=n.stdout.replaceAll(/\t\[/g," [").replaceAll(/\t/g," ")),e})}async layoutJson(e){return await fb(async()=>{const n=await db(this.path,["-Tjson","-y"],{reject:!1,timeout:1e4,input:e,stdin:"pipe",encoding:"utf8"});if(n instanceof Error){if(!n.stdout)throw nt.error(`[BinaryGraphvizLayouter.layout] '${n.command}' nothing returned and failed: "${n.stderr}"`),n;nt.warn(`[BinaryGraphvizLayouter.layout] '${n.command}' returned result but also failed "${n.stderr}"`)}return n.stdout})}async acyclic(e){return Promise.reject(new Error("Method not implemented."))}async svg(e){return await fb(async()=>{const n=await db(this.path,["-Tsvg","-y"],{reject:!1,timeout:1e4,input:e,stdin:"pipe",encoding:"utf8"});if(n instanceof Error){if(!n.stdout)throw nt.error(`[BinaryGraphvizLayouter.layout] '${n.command}' nothing returned and failed: ${n.stderr}`),n;nt.warn(`[BinaryGraphvizLayouter.layout] '${n.command}' returned result but also failed ${n.stderr}`)}return n.stdout})}}const xse="likec4",Ise="1.13.0",Pse="MIT",Nse="https://likec4.dev",Ose="Denis Davydkov <denis@davydkov.com>",Fse={url:"https://github.com/sponsors/davydkov"},Lse={type:"git",url:"https://github.com/likec4/likec4.git",directory:"packages/likec4"},Mse={node:">=20.17.0"},zse="https://github.com/likec4/likec4/issues",Bse="module",qse="./bin/likec4.mjs",jse={".":"./src/index.ts","./react":{types:"./app/react/components/index.ts",default:"./react/index.mjs"},"./react/style.css":"./react/style.css","./icons/all":{types:"./icons/all.d.ts",default:"./icons/all.js"},"./icons/*":{types:"./icons/icon.d.ts",default:"./icons/*"}},Use={registry:"https://registry.npmjs.org",access:"public",exports:{".":{types:"./dist/index.d.ts",default:"./dist/index.mjs"},"./react":{types:"./react/index.d.ts",default:"./react/index.mjs"},"./react/style.css":"./react/style.css","./icons/all":{types:"./icons/all.d.ts",default:"./icons/all.js"},"./icons/*":{types:"./icons/icon.d.ts",default:"./icons/*"}}},Wse={"turbo-build":"turbo run build --log-prefix=none --log-order=grouped",package:"yarn pack","typecheck:app":"tsc --noEmit -p ./app/tsconfig.json","typecheck:cli":"tsc --noEmit -p ./tsconfig.cli.json",typecheck:"run-p --print-label 'typecheck:*'","build-cli":"unbuild","build-app":"run-p --print-label 'bundle:*'","bundle:app":"tsx scripts/bundle-app.ts","bundle:react":"tsx scripts/bundle-react.ts","bundle:react-dts":"tsx scripts/dts-react.ts","bundle:webcomponent":"tsx scripts/bundle-webcomponent.ts",generate:"tsx scripts/generate.ts",prepack:"turbo run build --log-prefix=none --log-order=grouped",lint:"run -T eslint src/ --fix",clean:"rm -r -f dist app/dist dev/.export dev/dist node_modules/.vite",dev:"tsx watch src/cli/index.ts serve dev","dev:docs:bigbank":"tsx watch src/cli/index.ts serve ../../apps/docs/src/components/bigbank","dev:docs:dynamic-view":"tsx watch src/cli/index.ts serve ../../apps/docs/src/components/dynamic-view","dev:docs:index-page":"tsx watch src/cli/index.ts serve ../../apps/docs/src/components/index-page","dev:docs:theme":"tsx watch src/cli/index.ts serve ../../apps/docs/src/components/likec4-theme","dev:template":"tsx watch src/cli/index.ts serve ../create-likec4/template","dev:example-cloud":"tsx watch src/cli/index.ts serve ../../examples/cloud-system","dev:failed":"tsx watch src/cli/index.ts serve ../../examples/failed","dev:example-dev":"tsx watch src/cli/index.ts serve ../../examples/diagrams-dev/likec4",cli:"tsx src/cli/index.ts","cli:serve":"tsx watch src/cli/index.ts serve dev","cli:build":"tsx src/cli/index.ts build -o dev/dist dev","cli:preview":"tsx src/cli/index.ts preview -o dev/dist dev","cli:export":"tsx src/cli/index.ts export png -o dev/export dev","cli:export:json":"tsx src/cli/index.ts export json -o dev/export/likec4.json dev",test:"vitest run --no-isolate","vitest:ui":"vitest --no-isolate --ui","test:watch":"vitest"},Gse={"@hpcc-js/wasm-graphviz":"1.6.1","@vitejs/plugin-react-swc":"3.7.1",playwright:"1.47.2",react:"^18.3.1","react-dom":"^18.3.1","type-fest":"4.26.1",vite:"5.4.8"},Hse={"@fontsource/ibm-plex-sans":"^5.1.0","@likec4/core":"workspace:*","@likec4/diagram":"workspace:*","@likec4/generators":"workspace:*","@likec4/icons":"workspace:*","@likec4/language-server":"workspace:*","@likec4/layouts":"workspace:*","@likec4/log":"workspace:*","@likec4/tsconfig":"workspace:*","@mantine/core":"7.13.2","@mantine/hooks":"7.13.2","@mantine/vanilla-extract":"7.13.2","@nanostores/react":"0.8.0","@react-hookz/web":"^24.0.4","@tabler/icons-react":"3.17.0","@tanstack/react-router":"1.45.13","@tanstack/router-cli":"1.45.13","@tanstack/router-vite-plugin":"1.45.13","@types/node":"^20.16.5","@types/prop-types":"^15.7.13","@types/react":"18.3.11","@types/react-dom":"18.3.1","@types/string-hash":"^1.1.3","@types/yargs":"^17.0.33","@vanilla-extract/css":"^1.16.0","@vanilla-extract/dynamic":"^2.1.2","@vanilla-extract/vite-plugin":"^4.0.16","@xyflow/react":"12.3.2","@xyflow/system":"0.0.43",autoprefixer:"^10.4.20",classnames:"^2.5.1",clsx:"^2.1.1",defu:"^6.1.4","dts-bundle-generator":"^9.5.1",esbuild:"^0.24.0","esbuild-node-externals":"^1.15.0",execa:"^9.3.1","fast-equals":"^5.0.1",fdir:"^6.4.0","framer-motion":"^11.11.1","get-port":"^7.1.0",glob:"^11.0.0","html-to-image":"^1.11.11",json5:"^2.2.3",langium:"3.2.0",mkdirp:"^3.0.1",nanostores:"0.11.3","npm-run-all2":"^6.2.2","p-limit":"^6.1.0","package-up":"^5.0.0",postcss:"^8.4.47","postcss-preset-mantine":"^1.17.0","pretty-ms":"^9.1.0","react-error-boundary":"^4.0.13","react-resizable-panels":"^2.1.4","react-shadow":"^20.5.0",remeda:"^2.14.0","std-env":"^3.7.0","string-hash":"^1.1.3","strip-indent":"^4.0.0",terser:"^5.33.0",tinyrainbow:"^1.2.0",tsx:"~4.9.3",turbo:"^2.1.3",typescript:"^5.6.3",ufo:"^1.5.4",unbuild:"^3.0.0-rc.11","vite-plugin-css-injected-by-js":"^3.5.2","vite-plugin-shadow-style":"^1.1.1",vitest:"^2.1.2",yargs:"17.7.2"},Vse="yarn@4.5.0",bN={name:xse,version:Ise,license:Pse,homepage:Nse,author:Ose,sponsor:Fse,repository:Lse,engines:Mse,bugs:zse,type:Bse,bin:qse,exports:jse,publishConfig:Use,scripts:Wse,dependencies:Gse,devDependencies:Hse,packageManager:Vse},Up=Object.create(null),Ql=t=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(t?Up:globalThis),cs=new Proxy(Up,{get(t,e){return Ql()[e]??Up[e]},has(t,e){const n=Ql();return e in n||e in Up},set(t,e,n){const r=Ql(!0);return r[e]=n,!0},deleteProperty(t,e){if(!e)return!1;const n=Ql(!0);return delete n[e],!0},ownKeys(){const t=Ql(!0);return Object.keys(t)}}),Kse=typeof process<"u"&&process.env&&process.env.NODE_ENV||"",Yse=[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:!0}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:!1}],["VERCEL","VERCEL_ENV",{ci:!1}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:!0}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"]];function Xse(){if(globalThis.process?.env)for(const t of Yse){const e=t[1]||t[0];if(globalThis.process?.env[e])return{name:t[0].toLowerCase(),...t[2]}}return globalThis.process?.env?.SHELL==="/bin/jsh"&&globalThis.process?.versions?.webcontainer?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}const EN=Xse();EN.name;function vo(t){return t?t!=="false":!1}const Jse=globalThis.process?.platform||"",Wp=vo(cs.CI)||EN.ci!==!1,DN=vo(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY);vo(cs.DEBUG);const Zse=Kse==="test"||vo(cs.TEST);vo(cs.MINIMAL);const Qse=/^win/i.test(Jse);!vo(cs.NO_COLOR)&&(vo(cs.FORCE_COLOR)||(DN||Qse)&&cs.TERM);const eoe=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(eoe?.split(".")[0]);const toe=globalThis.process||Object.create(null),TN={versions:{}};new Proxy(toe,{get(t,e){if(e==="env")return cs;if(e in t)return t[e];if(e in TN)return TN[e]}});const noe=globalThis.process?.release?.name==="node",roe=!!globalThis.Bun||!!globalThis.process?.versions?.bun,ioe=!!globalThis.Deno,soe=!!globalThis.fastly,ooe=!!globalThis.Netlify,aoe=!!globalThis.EdgeRuntime,coe=globalThis.navigator?.userAgent==="Cloudflare-Workers",uoe=!!globalThis.__lagon__,loe=[[ooe,"netlify"],[aoe,"edge-light"],[coe,"workerd"],[soe,"fastly"],[ioe,"deno"],[roe,"bun"],[noe,"node"],[uoe,"lagon"]];function doe(){const t=loe.find(e=>e[0]);if(t)return{name:t[1]}}const foe=doe();foe?.name;const RN=ut.bold(ut.bgRed(ut.white("ERROR"))),hoe=ut.bold(ut.yellow("WARN")),poe=ut.bold(ut.green("INFO"));function SN(t){const e=a2("info",{prefix:t,allowClearScreen:!Wp}),n=!Wp;return{...e,info(r,i){e.info(`${poe} ${r}`,{timestamp:n,...i})},warn(r,i){e.warn(`${hoe} ${r}`,{timestamp:n,...i})},error(r,i){if(r instanceof Error){e.error(`${RN} ${ut.red(r.stack??r.name+" "+r.message)}`,{timestamp:n,error:r,...i});return}e.error(`${RN} ${r}`,{timestamp:n,...i})}}}const hb=()=>{},goe={info:hb,warn:hb,error:hb},moe=1e6;function kN(t){const[e,n]=nd(t),r=e*1e3+n/moe;return{ms:r,pretty:VI(r)}}function yoe(t){const e=nd();return{stopAndLog(n="done in "){n=ut.green(`${n}${kN(e).pretty}`),t?t.info(n):nt.success(n)}}}class voe{constructor(e){this.services=e,this.layouter=e.likec4.Layouter}cache=new WeakMap;layouter;previousAction=Promise.resolve();limit=yp(2);inflightRequest;async computedViews(){try{this.inflightRequest??=Promise.resolve().then(async()=>await this.services.likec4.ModelBuilder.buildComputedModel());const e=await Promise.resolve(this.inflightRequest);return Object.values(e?.views??{})}finally{this.inflightRequest=void 0}}async layoutViews(){const e=this.services.logger,n=this.previousAction.then(async()=>{const r=(await this.computedViews()).map(i=>this.limit(async()=>{try{let s=this.cache.get(i);return s||(s=await this.layouter.layout(i),this.cache.set(i,s)),s}catch(s){return e.error(s),null}}));return(await Promise.all(r)).filter(ce)});return this.previousAction=n.catch(r=>(e.error(r),Promise.resolve([]))),await n}async diagrams(){return(await this.layoutViews()).map(e=>e.diagram)}async viewsAsGraphvizOut(){const e="All-LayoutedViews-DotWithSvg",n=this.services.WorkspaceCache;if(n.has(e))return await Promise.resolve(n.get(e));const r=(await this.computedViews()).map(s=>this.limit(async()=>{const{dot:o,svg:a}=await this.layouter.svg(s);return{id:s.id,dot:o,svg:a}})),i=await Promise.all(r);return n.set(e,i),i}async overviewGraph(){const e="OverviewGraph",n=this.services.WorkspaceCache;if(n.has(e))return await Promise.resolve(n.get(e));const r=await this.computedViews(),i=await this.layouter.layoutOverviewGraph(r);return n.set(e,i),i}}class woe{constructor(e){this.services=e}isInitialized=!1;async initWorkspace(e){if(this.isInitialized)throw new Error("Workspace already initialized");const n=this.services.logger,r=this.services.shared.workspace.WorkspaceManager;n.info(`${ut.dim("workspace:")} ${e.uri}`),r.initialize({capabilities:{},processId:null,rootUri:null,workspaceFolders:[e]}),await r.initializeWorkspace([e])}async init(){if(this.isInitialized)throw new Error("Workspace already initialized");this.isInitialized=!0;const e=this.services.logger,n=this.services.likec4.ModelBuilder,r=this.services.shared.workspace.LangiumDocuments,i=this.services.shared.workspace.DocumentBuilder,s=r.all.toArray();if(s.length===0)throw e.error("no LikeC4 sources found"),new Error("no LikeC4 sources found");e.info(`${ut.dim("workspace:")} found ${s.length} source files`),await i.build(s,{validation:!0});const o=await n.buildComputedModel(),a=Vf(o?.views??{}).length;if(a===0){e.warn(`${ut.dim("workspace:")} no views found`);return}e.info(`${ut.dim("workspace:")} ${ut.green(`\u2713 computed ${a} views`)}`);const c=await this.services.likec4.Views.diagrams();c.length===a?e.info(`${ut.dim("workspace:")} ${ut.green("\u2713 all views layouted")}`):e.warn(`${ut.dim("workspace:")} ${ut.yellow(`\u2717 layouted ${c.length} views`)}`)}}function $N(t){return e=>new t(e)}const boe={logger:()=>{throw new Error("Logger must be provided")},likec4:{Layouter:()=>{throw new Error("Layouter must be provided")},Views:$N(voe)},cli:{Workspace:$N(woe)}};function CN(t){const e=Aa(t,{useFileSystem:!0,logger:"default",graphviz:"wasm"});let n;switch(e.logger){case!1:n=goe;break;case"vite":n=SN("c4:lsp ");break;case"default":n=nt.withTag("lsp");break;default:n=e.logger}const r=e.graphviz==="binary";n.info(`${ut.dim("version")} ${bN.version}`),n.info(`${ut.dim("layout")} ${r?"binary":"wasm"}`);const i={logger:()=>n,likec4:{Layouter:()=>new VX(r===!0?new Ase:new YX)}};return qV(e.logger===!1?"silent":"info"),e.logger!==!1&&e.logger!=="default"&&Fe.setReporters([{log:({level:s,...o},a)=>{const c=o.tag||"",u=o.args.map(d=>By(d)?d.stack??d.message:typeof d=="string"?d:String(d));c&&u.unshift(`[${c}]`);const l=u.join(" ");switch(!0){case s>=Ke.debug:break;case s>=Ke.info:{n.info(l);break}case s>=Ke.log:{n.info(l);break}case s>=Ke.warn:{n.warn(l);break}case s>=Ke.fatal:{n.error(l);break}}}}]),dY(e.useFileSystem?R7:{},boe,i).likec4}const _N=t=>new Error(`Invalid model:
1812
+ ${t.getErrors().map(e=>` ${e.sourceFsPath}:${e.line} ${e.message.slice(0,200)}`).join(`
1813
+ `)}`);class us{constructor(e,n,r){this.workspace=e,this.langium=n,this.isPrintErrorEnabled=r,this.logger=n.logger,this.langiumDocuments=n.shared.workspace.LangiumDocuments,this.views=n.likec4.Views,this.isPrintErrorEnabled&&this.printErrors()}static async fromSource(e,n){const r=CN(Aa(n,{useFileSystem:!1,logger:!1,graphviz:"wasm"})),i=Yt.from({scheme:"virtual",path:"/workspace"});await r.cli.Workspace.initWorkspace({uri:i.toString(),name:"virtual"});const s=Et.joinPath(i,"source.likec4");r.shared.workspace.LangiumDocuments.createDocument(s,e),await r.cli.Workspace.init();const o=new us(i.path,r,n?.printErrors??!0);return n?.throwIfInvalid===!0&&o.hasErrors()?(o.dispose(),Promise.reject(_N(o))):o}static likec4Instances=new Map;static async fromWorkspace(e="",n){const r=MN(e);if(!FN(r))throw new Error(`Workspace not found: ${r}`);let i=us.likec4Instances.get(r);if(!i){const s=CN(Aa(n,{useFileSystem:!0,logger:"default",graphviz:"wasm"}));await s.cli.Workspace.initWorkspace({uri:BN(r).toString(),name:zN(r)}),await s.cli.Workspace.init(),i=new us(r,s,n?.printErrors??!0),us.likec4Instances.set(r,i)}return n?.throwIfInvalid===!0&&i.hasErrors()?(i.dispose(),Promise.reject(_N(i))):i}modelComputedRef;modelLayoutedRef;logger;langiumDocuments;views;async diagrams(){return await this.langium.likec4.Views.diagrams()}model(){return this.computedModel()}computedModel(){let e=this.modelComputedRef?.deref();if(!e){const n=this.langium.likec4.ModelBuilder.unsafeSyncBuildModel();if(!n)throw new Error("Failed to build model");const r=this.langium.likec4.ModelBuilder.unsafeSyncBuildComputedModel(n);e=Fa.computed(r),this.modelComputedRef=new WeakRef(e)}return e}async layoutedModel(){let e=this.modelLayoutedRef?.deref();if(!e){const n=await this.langium.likec4.ModelBuilder.buildComputedModel();if(!n)throw new Error("Failed to build model");const r=await this.views.diagrams();e=Fa.layouted({__:"layouted",...n,views:qy(r,Br("id"))}),this.modelLayoutedRef=new WeakRef(e)}return e}getErrors(){return this.langiumDocuments.all.toArray().flatMap(e=>(e.diagnostics??[]).filter(n=>n.severity===jc.Error).map(({message:n,range:r})=>({message:n,line:r.start.line,range:r,sourceFsPath:e.uri.fsPath})))}hasErrors(){return this.langiumDocuments.all.some(e=>e.diagnostics?.some(n=>n.severity===jc.Error)??!1)}printErrors(){let e=!1;for(const n of this.langiumDocuments.all){const r=n.diagnostics?.filter(i=>i.severity===1);if(r&&r.length>0){e=!0;const i=r.flatMap(s=>{const o=s.range.start.line,a=s.message.split(`
1814
+ `);return a.length>10&&(a.length=10,a.push("...")),a.map((c,u)=>u===0?" "+ut.dim(`Line ${o}: `)+ut.red(c):" ".repeat(10)+ut.red(c))}).join(`
1815
+ `);this.logger.error(`Invalid ${n.uri.fsPath}
1816
+ ${i}`)}}return e}async notifyUpdate({changed:e,removed:n}){this.modelLayoutedRef=void 0,this.modelComputedRef=void 0;const r=this.langium.shared.workspace.WorkspaceLock;try{let i=!1;return await r.write(async s=>{await this.langium.shared.workspace.DocumentBuilder.update(e?[Yt.file(e)]:[],n?[Yt.file(n)]:[],s),i=!s.isCancellationRequested}),i}catch(i){return this.logger.error(i),!1}}onModelUpdate(e){const n=this.langium.likec4.ModelBuilder.onModelParsed(()=>e());return()=>{n.dispose()}}dispose(){for(const[e,n]of us.likec4Instances)n===this&&us.likec4Instances.delete(e)}}export{To as $,sr as A,tt as B,kr as C,ce as D,ZE as E,Gi as F,fg as G,dg as H,ut as I,yp as J,nt as K,b2 as L,Ts as M,rt as N,Me as O,yi as P,Oa as Q,ok as R,SN as S,Oo as T,iV as U,hw as V,sV as W,Xc as X,ck as Y,tC as Z,kN as _,Y2 as a,yoe as a0,dv as a1,cd as a2,zr as a3,rD as a4,Ke as a5,bN as a6,La as b,Ia as c,nD as d,us as e,og as f,rC as g,Un as h,bt as i,E2 as j,Ro as k,Qb as l,Fa as m,hn as n,Ck as o,rn as p,Mo as q,SD as r,wd as s,yt as t,_t as u,Qe as v,ad as w,Zb as x,Mr as y,we as z};