spyret 0.2.0 → 0.3.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.
- package/README.md +11 -4
- package/dist/spyret-browser.amd.js +28 -28
- package/dist/spyret-browser.global.js +28 -28
- package/dist/spyret-browser.js +28 -28
- package/dist/spyret-browser.mjs +26 -26
- package/dist/spyret.global.js +10 -10
- package/dist/spyret.js +10 -10
- package/dist/spyret.mjs +9 -9
- package/dist/spyret.pyret.js +29 -29
- package/docs/BROWSER_LIBRARY.md +9 -4
- package/docs/RELEASING.md +45 -6
- package/docs/SPYTIAL_HOOKS.md +8 -10
- package/docs/SPYTIAL_LANGUAGE.md +194 -0
- package/docs/SPYTIAL_RULES_REFERENCE.md +23 -21
- package/package.json +1 -1
- package/pyret/spytial.arr +82 -392
package/dist/spyret.mjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
var mp=Object.create;var Kr=Object.defineProperty;var gp=Object.getOwnPropertyDescriptor;var hp=Object.getOwnPropertyNames;var bp=Object.getPrototypeOf,wp=Object.prototype.hasOwnProperty;var Jr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var u=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var vp=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of hp(t))!wp.call(e,i)&&i!==r&&Kr(e,i,{get:()=>t[i],enumerable:!(n=gp(t,i))||n.enumerable});return e};var Hr=(e,t,r)=>(r=e!=null?mp(bp(e)):{},vp(t||!e||!e.__esModule?Kr(r,"default",{value:e,enumerable:!0}):r,e));var Yr=u((AS,Wr)=>{"use strict";function xp(){this.__data__=[],this.size=0}Wr.exports=xp});var We=u((SS,Zr)=>{"use strict";function qp(e,t){return e===t||e!==e&&t!==t}Zr.exports=qp});var Ae=u((PS,Xr)=>{"use strict";var Ip=We();function Ap(e,t){for(var r=e.length;r--;)if(Ip(e[r][0],t))return r;return-1}Xr.exports=Ap});var en=u((kS,Qr)=>{"use strict";var Sp=Ae(),Pp=Array.prototype,kp=Pp.splice;function Ep(e){var t=this.__data__,r=Sp(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():kp.call(t,r,1),--this.size,!0}Qr.exports=Ep});var rn=u((ES,tn)=>{"use strict";var Op=Ae();function _p(e){var t=this.__data__,r=Op(t,e);return r<0?void 0:t[r][1]}tn.exports=_p});var sn=u((OS,nn)=>{"use strict";var Tp=Ae();function jp(e){return Tp(this.__data__,e)>-1}nn.exports=jp});var an=u((_S,on)=>{"use strict";var Np=Ae();function Rp(e,t){var r=this.__data__,n=Np(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}on.exports=Rp});var Se=u((TS,un)=>{"use strict";var Cp=Yr(),Mp=en(),$p=rn(),Dp=sn(),Fp=an();function fe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}fe.prototype.clear=Cp;fe.prototype.delete=Mp;fe.prototype.get=$p;fe.prototype.has=Dp;fe.prototype.set=Fp;un.exports=fe});var ln=u((jS,cn)=>{"use strict";var Lp=Se();function Vp(){this.__data__=new Lp,this.size=0}cn.exports=Vp});var fn=u((NS,pn)=>{"use strict";function Up(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}pn.exports=Up});var yn=u((RS,dn)=>{"use strict";function Bp(e){return this.__data__.get(e)}dn.exports=Bp});var gn=u((CS,mn)=>{"use strict";function zp(e){return this.__data__.has(e)}mn.exports=zp});var Mt=u((MS,hn)=>{"use strict";var Gp=typeof global=="object"&&global&&global.Object===Object&&global;hn.exports=Gp});var V=u(($S,bn)=>{"use strict";var Kp=Mt(),Jp=typeof self=="object"&&self&&self.Object===Object&&self,Hp=Kp||Jp||Function("return this")();bn.exports=Hp});var oe=u((DS,wn)=>{"use strict";var Wp=V(),Yp=Wp.Symbol;wn.exports=Yp});var In=u((FS,qn)=>{"use strict";var vn=oe(),xn=Object.prototype,Zp=xn.hasOwnProperty,Xp=xn.toString,Pe=vn?vn.toStringTag:void 0;function Qp(e){var t=Zp.call(e,Pe),r=e[Pe];try{e[Pe]=void 0;var n=!0}catch{}var i=Xp.call(e);return n&&(t?e[Pe]=r:delete e[Pe]),i}qn.exports=Qp});var Sn=u((LS,An)=>{"use strict";var ef=Object.prototype,tf=ef.toString;function rf(e){return tf.call(e)}An.exports=rf});var ae=u((VS,En)=>{"use strict";var Pn=oe(),nf=In(),sf=Sn(),of="[object Null]",af="[object Undefined]",kn=Pn?Pn.toStringTag:void 0;function uf(e){return e==null?e===void 0?af:of:kn&&kn in Object(e)?nf(e):sf(e)}En.exports=uf});var X=u((US,On)=>{"use strict";function cf(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}On.exports=cf});var ke=u((BS,_n)=>{"use strict";var lf=ae(),pf=X(),ff="[object AsyncFunction]",df="[object Function]",yf="[object GeneratorFunction]",mf="[object Proxy]";function gf(e){if(!pf(e))return!1;var t=lf(e);return t==df||t==yf||t==ff||t==mf}_n.exports=gf});var jn=u((zS,Tn)=>{"use strict";var hf=V(),bf=hf["__core-js_shared__"];Tn.exports=bf});var Cn=u((GS,Rn)=>{"use strict";var $t=jn(),Nn=(function(){var e=/[^.]+$/.exec($t&&$t.keys&&$t.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function wf(e){return!!Nn&&Nn in e}Rn.exports=wf});var Dt=u((KS,Mn)=>{"use strict";var vf=Function.prototype,xf=vf.toString;function qf(e){if(e!=null){try{return xf.call(e)}catch{}try{return e+""}catch{}}return""}Mn.exports=qf});var Dn=u((JS,$n)=>{"use strict";var If=ke(),Af=Cn(),Sf=X(),Pf=Dt(),kf=/[\\^$.*+?()[\]{}|]/g,Ef=/^\[object .+?Constructor\]$/,Of=Function.prototype,_f=Object.prototype,Tf=Of.toString,jf=_f.hasOwnProperty,Nf=RegExp("^"+Tf.call(jf).replace(kf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Rf(e){if(!Sf(e)||Af(e))return!1;var t=If(e)?Nf:Ef;return t.test(Pf(e))}$n.exports=Rf});var Ln=u((HS,Fn)=>{"use strict";function Cf(e,t){return e?.[t]}Fn.exports=Cf});var Q=u((WS,Vn)=>{"use strict";var Mf=Dn(),$f=Ln();function Df(e,t){var r=$f(e,t);return Mf(r)?r:void 0}Vn.exports=Df});var Ye=u((YS,Un)=>{"use strict";var Ff=Q(),Lf=V(),Vf=Ff(Lf,"Map");Un.exports=Vf});var Ee=u((ZS,Bn)=>{"use strict";var Uf=Q(),Bf=Uf(Object,"create");Bn.exports=Bf});var Kn=u((XS,Gn)=>{"use strict";var zn=Ee();function zf(){this.__data__=zn?zn(null):{},this.size=0}Gn.exports=zf});var Hn=u((QS,Jn)=>{"use strict";function Gf(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Jn.exports=Gf});var Yn=u((eP,Wn)=>{"use strict";var Kf=Ee(),Jf="__lodash_hash_undefined__",Hf=Object.prototype,Wf=Hf.hasOwnProperty;function Yf(e){var t=this.__data__;if(Kf){var r=t[e];return r===Jf?void 0:r}return Wf.call(t,e)?t[e]:void 0}Wn.exports=Yf});var Xn=u((tP,Zn)=>{"use strict";var Zf=Ee(),Xf=Object.prototype,Qf=Xf.hasOwnProperty;function ed(e){var t=this.__data__;return Zf?t[e]!==void 0:Qf.call(t,e)}Zn.exports=ed});var ei=u((rP,Qn)=>{"use strict";var td=Ee(),rd="__lodash_hash_undefined__";function nd(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=td&&t===void 0?rd:t,this}Qn.exports=nd});var ri=u((nP,ti)=>{"use strict";var id=Kn(),sd=Hn(),od=Yn(),ad=Xn(),ud=ei();function de(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}de.prototype.clear=id;de.prototype.delete=sd;de.prototype.get=od;de.prototype.has=ad;de.prototype.set=ud;ti.exports=de});var si=u((iP,ii)=>{"use strict";var ni=ri(),cd=Se(),ld=Ye();function pd(){this.size=0,this.__data__={hash:new ni,map:new(ld||cd),string:new ni}}ii.exports=pd});var ai=u((sP,oi)=>{"use strict";function fd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}oi.exports=fd});var Oe=u((oP,ui)=>{"use strict";var dd=ai();function yd(e,t){var r=e.__data__;return dd(t)?r[typeof t=="string"?"string":"hash"]:r.map}ui.exports=yd});var li=u((aP,ci)=>{"use strict";var md=Oe();function gd(e){var t=md(this,e).delete(e);return this.size-=t?1:0,t}ci.exports=gd});var fi=u((uP,pi)=>{"use strict";var hd=Oe();function bd(e){return hd(this,e).get(e)}pi.exports=bd});var yi=u((cP,di)=>{"use strict";var wd=Oe();function vd(e){return wd(this,e).has(e)}di.exports=vd});var gi=u((lP,mi)=>{"use strict";var xd=Oe();function qd(e,t){var r=xd(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}mi.exports=qd});var Ze=u((pP,hi)=>{"use strict";var Id=si(),Ad=li(),Sd=fi(),Pd=yi(),kd=gi();function ye(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ye.prototype.clear=Id;ye.prototype.delete=Ad;ye.prototype.get=Sd;ye.prototype.has=Pd;ye.prototype.set=kd;hi.exports=ye});var wi=u((fP,bi)=>{"use strict";var Ed=Se(),Od=Ye(),_d=Ze(),Td=200;function jd(e,t){var r=this.__data__;if(r instanceof Ed){var n=r.__data__;if(!Od||n.length<Td-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new _d(n)}return r.set(e,t),this.size=r.size,this}bi.exports=jd});var Xe=u((dP,vi)=>{"use strict";var Nd=Se(),Rd=ln(),Cd=fn(),Md=yn(),$d=gn(),Dd=wi();function me(e){var t=this.__data__=new Nd(e);this.size=t.size}me.prototype.clear=Rd;me.prototype.delete=Cd;me.prototype.get=Md;me.prototype.has=$d;me.prototype.set=Dd;vi.exports=me});var Qe=u((yP,xi)=>{"use strict";function Fd(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}xi.exports=Fd});var Ft=u((mP,qi)=>{"use strict";var Ld=Q(),Vd=(function(){try{var e=Ld(Object,"defineProperty");return e({},"",{}),e}catch{}})();qi.exports=Vd});var Lt=u((gP,Ai)=>{"use strict";var Ii=Ft();function Ud(e,t,r){t=="__proto__"&&Ii?Ii(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}Ai.exports=Ud});var Vt=u((hP,Si)=>{"use strict";var Bd=Lt(),zd=We(),Gd=Object.prototype,Kd=Gd.hasOwnProperty;function Jd(e,t,r){var n=e[t];(!(Kd.call(e,t)&&zd(n,r))||r===void 0&&!(t in e))&&Bd(e,t,r)}Si.exports=Jd});var _e=u((bP,Pi)=>{"use strict";var Hd=Vt(),Wd=Lt();function Yd(e,t,r,n){var i=!r;r||(r={});for(var s=-1,o=t.length;++s<o;){var a=t[s],c=n?n(r[a],e[a],a,r,e):void 0;c===void 0&&(c=e[a]),i?Wd(r,a,c):Hd(r,a,c)}return r}Pi.exports=Yd});var Ei=u((wP,ki)=>{"use strict";function Zd(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}ki.exports=Zd});var K=u((vP,Oi)=>{"use strict";function Xd(e){return e!=null&&typeof e=="object"}Oi.exports=Xd});var Ti=u((xP,_i)=>{"use strict";var Qd=ae(),ey=K(),ty="[object Arguments]";function ry(e){return ey(e)&&Qd(e)==ty}_i.exports=ry});var Te=u((qP,Ri)=>{"use strict";var ji=Ti(),ny=K(),Ni=Object.prototype,iy=Ni.hasOwnProperty,sy=Ni.propertyIsEnumerable,oy=ji((function(){return arguments})())?ji:function(e){return ny(e)&&iy.call(e,"callee")&&!sy.call(e,"callee")};Ri.exports=oy});var N=u((IP,Ci)=>{"use strict";var ay=Array.isArray;Ci.exports=ay});var $i=u((AP,Mi)=>{"use strict";function uy(){return!1}Mi.exports=uy});var he=u((je,ge)=>{"use strict";var cy=V(),ly=$i(),Li=typeof je=="object"&&je&&!je.nodeType&&je,Di=Li&&typeof ge=="object"&&ge&&!ge.nodeType&&ge,py=Di&&Di.exports===Li,Fi=py?cy.Buffer:void 0,fy=Fi?Fi.isBuffer:void 0,dy=fy||ly;ge.exports=dy});var Ut=u((SP,Vi)=>{"use strict";var yy=9007199254740991,my=/^(?:0|[1-9]\d*)$/;function gy(e,t){var r=typeof e;return t=t??yy,!!t&&(r=="number"||r!="symbol"&&my.test(e))&&e>-1&&e%1==0&&e<t}Vi.exports=gy});var et=u((PP,Ui)=>{"use strict";var hy=9007199254740991;function by(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=hy}Ui.exports=by});var zi=u((kP,Bi)=>{"use strict";var wy=ae(),vy=et(),xy=K(),qy="[object Arguments]",Iy="[object Array]",Ay="[object Boolean]",Sy="[object Date]",Py="[object Error]",ky="[object Function]",Ey="[object Map]",Oy="[object Number]",_y="[object Object]",Ty="[object RegExp]",jy="[object Set]",Ny="[object String]",Ry="[object WeakMap]",Cy="[object ArrayBuffer]",My="[object DataView]",$y="[object Float32Array]",Dy="[object Float64Array]",Fy="[object Int8Array]",Ly="[object Int16Array]",Vy="[object Int32Array]",Uy="[object Uint8Array]",By="[object Uint8ClampedArray]",zy="[object Uint16Array]",Gy="[object Uint32Array]",T={};T[$y]=T[Dy]=T[Fy]=T[Ly]=T[Vy]=T[Uy]=T[By]=T[zy]=T[Gy]=!0;T[qy]=T[Iy]=T[Cy]=T[Ay]=T[My]=T[Sy]=T[Py]=T[ky]=T[Ey]=T[Oy]=T[_y]=T[Ty]=T[jy]=T[Ny]=T[Ry]=!1;function Ky(e){return xy(e)&&vy(e.length)&&!!T[wy(e)]}Bi.exports=Ky});var tt=u((EP,Gi)=>{"use strict";function Jy(e){return function(t){return e(t)}}Gi.exports=Jy});var rt=u((Ne,be)=>{"use strict";var Hy=Mt(),Ki=typeof Ne=="object"&&Ne&&!Ne.nodeType&&Ne,Re=Ki&&typeof be=="object"&&be&&!be.nodeType&&be,Wy=Re&&Re.exports===Ki,Bt=Wy&&Hy.process,Yy=(function(){try{var e=Re&&Re.require&&Re.require("util").types;return e||Bt&&Bt.binding&&Bt.binding("util")}catch{}})();be.exports=Yy});var Ce=u((OP,Wi)=>{"use strict";var Zy=zi(),Xy=tt(),Ji=rt(),Hi=Ji&&Ji.isTypedArray,Qy=Hi?Xy(Hi):Zy;Wi.exports=Qy});var zt=u((_P,Yi)=>{"use strict";var em=Ei(),tm=Te(),rm=N(),nm=he(),im=Ut(),sm=Ce(),om=Object.prototype,am=om.hasOwnProperty;function um(e,t){var r=rm(e),n=!r&&tm(e),i=!r&&!n&&nm(e),s=!r&&!n&&!i&&sm(e),o=r||n||i||s,a=o?em(e.length,String):[],c=a.length;for(var p in e)(t||am.call(e,p))&&!(o&&(p=="length"||i&&(p=="offset"||p=="parent")||s&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||im(p,c)))&&a.push(p);return a}Yi.exports=um});var Me=u((TP,Zi)=>{"use strict";var cm=Object.prototype;function lm(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||cm;return e===r}Zi.exports=lm});var Gt=u((jP,Xi)=>{"use strict";function pm(e,t){return function(r){return e(t(r))}}Xi.exports=pm});var es=u((NP,Qi)=>{"use strict";var fm=Gt(),dm=fm(Object.keys,Object);Qi.exports=dm});var nt=u((RP,ts)=>{"use strict";var ym=Me(),mm=es(),gm=Object.prototype,hm=gm.hasOwnProperty;function bm(e){if(!ym(e))return mm(e);var t=[];for(var r in Object(e))hm.call(e,r)&&r!="constructor"&&t.push(r);return t}ts.exports=bm});var ee=u((CP,rs)=>{"use strict";var wm=ke(),vm=et();function xm(e){return e!=null&&vm(e.length)&&!wm(e)}rs.exports=xm});var te=u((MP,ns)=>{"use strict";var qm=zt(),Im=nt(),Am=ee();function Sm(e){return Am(e)?qm(e):Im(e)}ns.exports=Sm});var ss=u(($P,is)=>{"use strict";var Pm=_e(),km=te();function Em(e,t){return e&&Pm(t,km(t),e)}is.exports=Em});var as=u((DP,os)=>{"use strict";function Om(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}os.exports=Om});var cs=u((FP,us)=>{"use strict";var _m=X(),Tm=Me(),jm=as(),Nm=Object.prototype,Rm=Nm.hasOwnProperty;function Cm(e){if(!_m(e))return jm(e);var t=Tm(e),r=[];for(var n in e)n=="constructor"&&(t||!Rm.call(e,n))||r.push(n);return r}us.exports=Cm});var it=u((LP,ls)=>{"use strict";var Mm=zt(),$m=cs(),Dm=ee();function Fm(e){return Dm(e)?Mm(e,!0):$m(e)}ls.exports=Fm});var fs=u((VP,ps)=>{"use strict";var Lm=_e(),Vm=it();function Um(e,t){return e&&Lm(t,Vm(t),e)}ps.exports=Um});var hs=u(($e,we)=>{"use strict";var Bm=V(),gs=typeof $e=="object"&&$e&&!$e.nodeType&&$e,ds=gs&&typeof we=="object"&&we&&!we.nodeType&&we,zm=ds&&ds.exports===gs,ys=zm?Bm.Buffer:void 0,ms=ys?ys.allocUnsafe:void 0;function Gm(e,t){if(t)return e.slice();var r=e.length,n=ms?ms(r):new e.constructor(r);return e.copy(n),n}we.exports=Gm});var ws=u((UP,bs)=>{"use strict";function Km(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}bs.exports=Km});var Kt=u((BP,vs)=>{"use strict";function Jm(e,t){for(var r=-1,n=e==null?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}vs.exports=Jm});var Jt=u((zP,xs)=>{"use strict";function Hm(){return[]}xs.exports=Hm});var st=u((GP,Is)=>{"use strict";var Wm=Kt(),Ym=Jt(),Zm=Object.prototype,Xm=Zm.propertyIsEnumerable,qs=Object.getOwnPropertySymbols,Qm=qs?function(e){return e==null?[]:(e=Object(e),Wm(qs(e),function(t){return Xm.call(e,t)}))}:Ym;Is.exports=Qm});var Ss=u((KP,As)=>{"use strict";var eg=_e(),tg=st();function rg(e,t){return eg(e,tg(e),t)}As.exports=rg});var ot=u((JP,Ps)=>{"use strict";function ng(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}Ps.exports=ng});var at=u((HP,ks)=>{"use strict";var ig=Gt(),sg=ig(Object.getPrototypeOf,Object);ks.exports=sg});var Ht=u((WP,Es)=>{"use strict";var og=ot(),ag=at(),ug=st(),cg=Jt(),lg=Object.getOwnPropertySymbols,pg=lg?function(e){for(var t=[];e;)og(t,ug(e)),e=ag(e);return t}:cg;Es.exports=pg});var _s=u((YP,Os)=>{"use strict";var fg=_e(),dg=Ht();function yg(e,t){return fg(e,dg(e),t)}Os.exports=yg});var Wt=u((ZP,Ts)=>{"use strict";var mg=ot(),gg=N();function hg(e,t,r){var n=t(e);return gg(e)?n:mg(n,r(e))}Ts.exports=hg});var Yt=u((XP,js)=>{"use strict";var bg=Wt(),wg=st(),vg=te();function xg(e){return bg(e,vg,wg)}js.exports=xg});var Rs=u((QP,Ns)=>{"use strict";var qg=Wt(),Ig=Ht(),Ag=it();function Sg(e){return qg(e,Ag,Ig)}Ns.exports=Sg});var Ms=u((ek,Cs)=>{"use strict";var Pg=Q(),kg=V(),Eg=Pg(kg,"DataView");Cs.exports=Eg});var Ds=u((tk,$s)=>{"use strict";var Og=Q(),_g=V(),Tg=Og(_g,"Promise");$s.exports=Tg});var Zt=u((rk,Fs)=>{"use strict";var jg=Q(),Ng=V(),Rg=jg(Ng,"Set");Fs.exports=Rg});var Vs=u((nk,Ls)=>{"use strict";var Cg=Q(),Mg=V(),$g=Cg(Mg,"WeakMap");Ls.exports=$g});var ce=u((ik,Hs)=>{"use strict";var Xt=Ms(),Qt=Ye(),er=Ds(),tr=Zt(),rr=Vs(),Js=ae(),ve=Dt(),Us="[object Map]",Dg="[object Object]",Bs="[object Promise]",zs="[object Set]",Gs="[object WeakMap]",Ks="[object DataView]",Fg=ve(Xt),Lg=ve(Qt),Vg=ve(er),Ug=ve(tr),Bg=ve(rr),ue=Js;(Xt&&ue(new Xt(new ArrayBuffer(1)))!=Ks||Qt&&ue(new Qt)!=Us||er&&ue(er.resolve())!=Bs||tr&&ue(new tr)!=zs||rr&&ue(new rr)!=Gs)&&(ue=function(e){var t=Js(e),r=t==Dg?e.constructor:void 0,n=r?ve(r):"";if(n)switch(n){case Fg:return Ks;case Lg:return Us;case Vg:return Bs;case Ug:return zs;case Bg:return Gs}return t});Hs.exports=ue});var Ys=u((sk,Ws)=>{"use strict";var zg=Object.prototype,Gg=zg.hasOwnProperty;function Kg(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Gg.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Ws.exports=Kg});var nr=u((ok,Zs)=>{"use strict";var Jg=V(),Hg=Jg.Uint8Array;Zs.exports=Hg});var ut=u((ak,Qs)=>{"use strict";var Xs=nr();function Wg(e){var t=new e.constructor(e.byteLength);return new Xs(t).set(new Xs(e)),t}Qs.exports=Wg});var to=u((uk,eo)=>{"use strict";var Yg=ut();function Zg(e,t){var r=t?Yg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}eo.exports=Zg});var no=u((ck,ro)=>{"use strict";var Xg=/\w*$/;function Qg(e){var t=new e.constructor(e.source,Xg.exec(e));return t.lastIndex=e.lastIndex,t}ro.exports=Qg});var uo=u((lk,ao)=>{"use strict";var io=oe(),so=io?io.prototype:void 0,oo=so?so.valueOf:void 0;function eh(e){return oo?Object(oo.call(e)):{}}ao.exports=eh});var lo=u((pk,co)=>{"use strict";var th=ut();function rh(e,t){var r=t?th(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}co.exports=rh});var fo=u((fk,po)=>{"use strict";var nh=ut(),ih=to(),sh=no(),oh=uo(),ah=lo(),uh="[object Boolean]",ch="[object Date]",lh="[object Map]",ph="[object Number]",fh="[object RegExp]",dh="[object Set]",yh="[object String]",mh="[object Symbol]",gh="[object ArrayBuffer]",hh="[object DataView]",bh="[object Float32Array]",wh="[object Float64Array]",vh="[object Int8Array]",xh="[object Int16Array]",qh="[object Int32Array]",Ih="[object Uint8Array]",Ah="[object Uint8ClampedArray]",Sh="[object Uint16Array]",Ph="[object Uint32Array]";function kh(e,t,r){var n=e.constructor;switch(t){case gh:return nh(e);case uh:case ch:return new n(+e);case hh:return ih(e,r);case bh:case wh:case vh:case xh:case qh:case Ih:case Ah:case Sh:case Ph:return ah(e,r);case lh:return new n;case ph:case yh:return new n(e);case fh:return sh(e);case dh:return new n;case mh:return oh(e)}}po.exports=kh});var ir=u((dk,mo)=>{"use strict";var Eh=X(),yo=Object.create,Oh=(function(){function e(){}return function(t){if(!Eh(t))return{};if(yo)return yo(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();mo.exports=Oh});var ho=u((yk,go)=>{"use strict";var _h=ir(),Th=at(),jh=Me();function Nh(e){return typeof e.constructor=="function"&&!jh(e)?_h(Th(e)):{}}go.exports=Nh});var wo=u((mk,bo)=>{"use strict";var Rh=ce(),Ch=K(),Mh="[object Map]";function $h(e){return Ch(e)&&Rh(e)==Mh}bo.exports=$h});var Io=u((gk,qo)=>{"use strict";var Dh=wo(),Fh=tt(),vo=rt(),xo=vo&&vo.isMap,Lh=xo?Fh(xo):Dh;qo.exports=Lh});var So=u((hk,Ao)=>{"use strict";var Vh=ce(),Uh=K(),Bh="[object Set]";function zh(e){return Uh(e)&&Vh(e)==Bh}Ao.exports=zh});var Oo=u((bk,Eo)=>{"use strict";var Gh=So(),Kh=tt(),Po=rt(),ko=Po&&Po.isSet,Jh=ko?Kh(ko):Gh;Eo.exports=Jh});var Ro=u((wk,No)=>{"use strict";var Hh=Xe(),Wh=Qe(),Yh=Vt(),Zh=ss(),Xh=fs(),Qh=hs(),eb=ws(),tb=Ss(),rb=_s(),nb=Yt(),ib=Rs(),sb=ce(),ob=Ys(),ab=fo(),ub=ho(),cb=N(),lb=he(),pb=Io(),fb=X(),db=Oo(),yb=te(),mb=it(),gb=1,hb=2,bb=4,_o="[object Arguments]",wb="[object Array]",vb="[object Boolean]",xb="[object Date]",qb="[object Error]",To="[object Function]",Ib="[object GeneratorFunction]",Ab="[object Map]",Sb="[object Number]",jo="[object Object]",Pb="[object RegExp]",kb="[object Set]",Eb="[object String]",Ob="[object Symbol]",_b="[object WeakMap]",Tb="[object ArrayBuffer]",jb="[object DataView]",Nb="[object Float32Array]",Rb="[object Float64Array]",Cb="[object Int8Array]",Mb="[object Int16Array]",$b="[object Int32Array]",Db="[object Uint8Array]",Fb="[object Uint8ClampedArray]",Lb="[object Uint16Array]",Vb="[object Uint32Array]",_={};_[_o]=_[wb]=_[Tb]=_[jb]=_[vb]=_[xb]=_[Nb]=_[Rb]=_[Cb]=_[Mb]=_[$b]=_[Ab]=_[Sb]=_[jo]=_[Pb]=_[kb]=_[Eb]=_[Ob]=_[Db]=_[Fb]=_[Lb]=_[Vb]=!0;_[qb]=_[To]=_[_b]=!1;function ct(e,t,r,n,i,s){var o,a=t&gb,c=t&hb,p=t&bb;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!fb(e))return e;var f=cb(e);if(f){if(o=ob(e),!a)return eb(e,o)}else{var b=sb(e),l=b==To||b==Ib;if(lb(e))return Qh(e,a);if(b==jo||b==_o||l&&!i){if(o=c||l?{}:ub(e),!a)return c?rb(e,Xh(o,e)):tb(e,Zh(o,e))}else{if(!_[b])return i?e:{};o=ab(e,b,a)}}s||(s=new Hh);var w=s.get(e);if(w)return w;s.set(e,o),db(e)?e.forEach(function(d){o.add(ct(d,t,r,d,e,s))}):pb(e)&&e.forEach(function(d,y){o.set(y,ct(d,t,r,y,e,s))});var m=p?c?ib:nb:c?mb:yb,g=f?void 0:m(e);return Wh(g||e,function(d,y){g&&(y=d,d=e[y]),Yh(o,y,ct(d,t,r,y,e,s))}),o}No.exports=ct});var Mo=u((vk,Co)=>{"use strict";var Ub=Ro(),Bb=4;function zb(e){return Ub(e,Bb)}Co.exports=zb});var sr=u((xk,$o)=>{"use strict";function Gb(e){return function(){return e}}$o.exports=Gb});var Fo=u((qk,Do)=>{"use strict";function Kb(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),a=o.length;a--;){var c=o[e?a:++i];if(r(s[c],c,s)===!1)break}return t}}Do.exports=Kb});var Vo=u((Ik,Lo)=>{"use strict";var Jb=Fo(),Hb=Jb();Lo.exports=Hb});var or=u((Ak,Uo)=>{"use strict";var Wb=Vo(),Yb=te();function Zb(e,t){return e&&Wb(e,t,Yb)}Uo.exports=Zb});var zo=u((Sk,Bo)=>{"use strict";var Xb=ee();function Qb(e,t){return function(r,n){if(r==null)return r;if(!Xb(r))return e(r,n);for(var i=r.length,s=t?i:-1,o=Object(r);(t?s--:++s<i)&&n(o[s],s,o)!==!1;);return r}}Bo.exports=Qb});var De=u((Pk,Go)=>{"use strict";var ew=or(),tw=zo(),rw=tw(ew);Go.exports=rw});var Fe=u((kk,Ko)=>{"use strict";function nw(e){return e}Ko.exports=nw});var Ho=u((Ek,Jo)=>{"use strict";var iw=Fe();function sw(e){return typeof e=="function"?e:iw}Jo.exports=sw});var Yo=u((Ok,Wo)=>{"use strict";var ow=Qe(),aw=De(),uw=Ho(),cw=N();function lw(e,t){var r=cw(e)?ow:aw;return r(e,uw(t))}Wo.exports=lw});var Xo=u((_k,Zo)=>{"use strict";Zo.exports=Yo()});var ea=u((Tk,Qo)=>{"use strict";var pw=De();function fw(e,t){var r=[];return pw(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}Qo.exports=fw});var ra=u((jk,ta)=>{"use strict";var dw="__lodash_hash_undefined__";function yw(e){return this.__data__.set(e,dw),this}ta.exports=yw});var ia=u((Nk,na)=>{"use strict";function mw(e){return this.__data__.has(e)}na.exports=mw});var ar=u((Rk,sa)=>{"use strict";var gw=Ze(),hw=ra(),bw=ia();function lt(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new gw;++t<r;)this.add(e[t])}lt.prototype.add=lt.prototype.push=hw;lt.prototype.has=bw;sa.exports=lt});var aa=u((Ck,oa)=>{"use strict";function ww(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}oa.exports=ww});var ur=u((Mk,ua)=>{"use strict";function vw(e,t){return e.has(t)}ua.exports=vw});var cr=u(($k,ca)=>{"use strict";var xw=ar(),qw=aa(),Iw=ur(),Aw=1,Sw=2;function Pw(e,t,r,n,i,s){var o=r&Aw,a=e.length,c=t.length;if(a!=c&&!(o&&c>a))return!1;var p=s.get(e),f=s.get(t);if(p&&f)return p==t&&f==e;var b=-1,l=!0,w=r&Sw?new xw:void 0;for(s.set(e,t),s.set(t,e);++b<a;){var m=e[b],g=t[b];if(n)var d=o?n(g,m,b,t,e,s):n(m,g,b,e,t,s);if(d!==void 0){if(d)continue;l=!1;break}if(w){if(!qw(t,function(y,v){if(!Iw(w,v)&&(m===y||i(m,y,r,n,s)))return w.push(v)})){l=!1;break}}else if(!(m===g||i(m,g,r,n,s))){l=!1;break}}return s.delete(e),s.delete(t),l}ca.exports=Pw});var pa=u((Dk,la)=>{"use strict";function kw(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}la.exports=kw});var pt=u((Fk,fa)=>{"use strict";function Ew(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}fa.exports=Ew});var ha=u((Lk,ga)=>{"use strict";var da=oe(),ya=nr(),Ow=We(),_w=cr(),Tw=pa(),jw=pt(),Nw=1,Rw=2,Cw="[object Boolean]",Mw="[object Date]",$w="[object Error]",Dw="[object Map]",Fw="[object Number]",Lw="[object RegExp]",Vw="[object Set]",Uw="[object String]",Bw="[object Symbol]",zw="[object ArrayBuffer]",Gw="[object DataView]",ma=da?da.prototype:void 0,lr=ma?ma.valueOf:void 0;function Kw(e,t,r,n,i,s,o){switch(r){case Gw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case zw:return!(e.byteLength!=t.byteLength||!s(new ya(e),new ya(t)));case Cw:case Mw:case Fw:return Ow(+e,+t);case $w:return e.name==t.name&&e.message==t.message;case Lw:case Uw:return e==t+"";case Dw:var a=Tw;case Vw:var c=n&Nw;if(a||(a=jw),e.size!=t.size&&!c)return!1;var p=o.get(e);if(p)return p==t;n|=Rw,o.set(e,t);var f=_w(a(e),a(t),n,i,s,o);return o.delete(e),f;case Bw:if(lr)return lr.call(e)==lr.call(t)}return!1}ga.exports=Kw});var va=u((Vk,wa)=>{"use strict";var ba=Yt(),Jw=1,Hw=Object.prototype,Ww=Hw.hasOwnProperty;function Yw(e,t,r,n,i,s){var o=r&Jw,a=ba(e),c=a.length,p=ba(t),f=p.length;if(c!=f&&!o)return!1;for(var b=c;b--;){var l=a[b];if(!(o?l in t:Ww.call(t,l)))return!1}var w=s.get(e),m=s.get(t);if(w&&m)return w==t&&m==e;var g=!0;s.set(e,t),s.set(t,e);for(var d=o;++b<c;){l=a[b];var y=e[l],v=t[l];if(n)var x=o?n(v,y,l,t,e,s):n(y,v,l,e,t,s);if(!(x===void 0?y===v||i(y,v,r,n,s):x)){g=!1;break}d||(d=l=="constructor")}if(g&&!d){var E=e.constructor,O=t.constructor;E!=O&&"constructor"in e&&"constructor"in t&&!(typeof E=="function"&&E instanceof E&&typeof O=="function"&&O instanceof O)&&(g=!1)}return s.delete(e),s.delete(t),g}wa.exports=Yw});var Ea=u((Uk,ka)=>{"use strict";var pr=Xe(),Zw=cr(),Xw=ha(),Qw=va(),xa=ce(),qa=N(),Ia=he(),ev=Ce(),tv=1,Aa="[object Arguments]",Sa="[object Array]",ft="[object Object]",rv=Object.prototype,Pa=rv.hasOwnProperty;function nv(e,t,r,n,i,s){var o=qa(e),a=qa(t),c=o?Sa:xa(e),p=a?Sa:xa(t);c=c==Aa?ft:c,p=p==Aa?ft:p;var f=c==ft,b=p==ft,l=c==p;if(l&&Ia(e)){if(!Ia(t))return!1;o=!0,f=!1}if(l&&!f)return s||(s=new pr),o||ev(e)?Zw(e,t,r,n,i,s):Xw(e,t,c,r,n,i,s);if(!(r&tv)){var w=f&&Pa.call(e,"__wrapped__"),m=b&&Pa.call(t,"__wrapped__");if(w||m){var g=w?e.value():e,d=m?t.value():t;return s||(s=new pr),i(g,d,r,n,s)}}return l?(s||(s=new pr),Qw(e,t,r,n,i,s)):!1}ka.exports=nv});var fr=u((Bk,Ta)=>{"use strict";var iv=Ea(),Oa=K();function _a(e,t,r,n,i){return e===t?!0:e==null||t==null||!Oa(e)&&!Oa(t)?e!==e&&t!==t:iv(e,t,r,n,_a,i)}Ta.exports=_a});var Na=u((zk,ja)=>{"use strict";var sv=Xe(),ov=fr(),av=1,uv=2;function cv(e,t,r,n){var i=r.length,s=i,o=!n;if(e==null)return!s;for(e=Object(e);i--;){var a=r[i];if(o&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++i<s;){a=r[i];var c=a[0],p=e[c],f=a[1];if(o&&a[2]){if(p===void 0&&!(c in e))return!1}else{var b=new sv;if(n)var l=n(p,f,c,e,t,b);if(!(l===void 0?ov(f,p,av|uv,n,b):l))return!1}}return!0}ja.exports=cv});var dr=u((Gk,Ra)=>{"use strict";var lv=X();function pv(e){return e===e&&!lv(e)}Ra.exports=pv});var Ma=u((Kk,Ca)=>{"use strict";var fv=dr(),dv=te();function yv(e){for(var t=dv(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,fv(i)]}return t}Ca.exports=yv});var yr=u((Jk,$a)=>{"use strict";function mv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}$a.exports=mv});var Fa=u((Hk,Da)=>{"use strict";var gv=Na(),hv=Ma(),bv=yr();function wv(e){var t=hv(e);return t.length==1&&t[0][2]?bv(t[0][0],t[0][1]):function(r){return r===e||gv(r,e,t)}}Da.exports=wv});var dt=u((Wk,La)=>{"use strict";var vv=ae(),xv=K(),qv="[object Symbol]";function Iv(e){return typeof e=="symbol"||xv(e)&&vv(e)==qv}La.exports=Iv});var yt=u((Yk,Va)=>{"use strict";var Av=N(),Sv=dt(),Pv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kv=/^\w*$/;function Ev(e,t){if(Av(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Sv(e)?!0:kv.test(e)||!Pv.test(e)||t!=null&&e in Object(t)}Va.exports=Ev});var za=u((Zk,Ba)=>{"use strict";var Ua=Ze(),Ov="Expected a function";function mr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Ov);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o)||s,o};return r.cache=new(mr.Cache||Ua),r}mr.Cache=Ua;Ba.exports=mr});var Ka=u((Xk,Ga)=>{"use strict";var _v=za(),Tv=500;function jv(e){var t=_v(e,function(n){return r.size===Tv&&r.clear(),n}),r=t.cache;return t}Ga.exports=jv});var Ha=u((Qk,Ja)=>{"use strict";var Nv=Ka(),Rv=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Cv=/\\(\\)?/g,Mv=Nv(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Rv,function(r,n,i,s){t.push(i?s.replace(Cv,"$1"):n||r)}),t});Ja.exports=Mv});var mt=u((eE,Wa)=>{"use strict";function $v(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}Wa.exports=$v});var tu=u((tE,eu)=>{"use strict";var Ya=oe(),Dv=mt(),Fv=N(),Lv=dt(),Vv=1/0,Za=Ya?Ya.prototype:void 0,Xa=Za?Za.toString:void 0;function Qa(e){if(typeof e=="string")return e;if(Fv(e))return Dv(e,Qa)+"";if(Lv(e))return Xa?Xa.call(e):"";var t=e+"";return t=="0"&&1/e==-Vv?"-0":t}eu.exports=Qa});var nu=u((rE,ru)=>{"use strict";var Uv=tu();function Bv(e){return e==null?"":Uv(e)}ru.exports=Bv});var gr=u((nE,iu)=>{"use strict";var zv=N(),Gv=yt(),Kv=Ha(),Jv=nu();function Hv(e,t){return zv(e)?e:Gv(e,t)?[e]:Kv(Jv(e))}iu.exports=Hv});var Le=u((iE,su)=>{"use strict";var Wv=dt(),Yv=1/0;function Zv(e){if(typeof e=="string"||Wv(e))return e;var t=e+"";return t=="0"&&1/e==-Yv?"-0":t}su.exports=Zv});var hr=u((sE,ou)=>{"use strict";var Xv=gr(),Qv=Le();function ex(e,t){t=Xv(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Qv(t[r++])];return r&&r==n?e:void 0}ou.exports=ex});var uu=u((oE,au)=>{"use strict";var tx=hr();function rx(e,t,r){var n=e==null?void 0:tx(e,t);return n===void 0?r:n}au.exports=rx});var lu=u((aE,cu)=>{"use strict";function nx(e,t){return e!=null&&t in Object(e)}cu.exports=nx});var br=u((uE,pu)=>{"use strict";var ix=gr(),sx=Te(),ox=N(),ax=Ut(),ux=et(),cx=Le();function lx(e,t,r){t=ix(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var o=cx(t[n]);if(!(s=e!=null&&r(e,o)))break;e=e[o]}return s||++n!=i?s:(i=e==null?0:e.length,!!i&&ux(i)&&ax(o,i)&&(ox(e)||sx(e)))}pu.exports=lx});var du=u((cE,fu)=>{"use strict";var px=lu(),fx=br();function dx(e,t){return e!=null&&fx(e,t,px)}fu.exports=dx});var mu=u((lE,yu)=>{"use strict";var yx=fr(),mx=uu(),gx=du(),hx=yt(),bx=dr(),wx=yr(),vx=Le(),xx=1,qx=2;function Ix(e,t){return hx(e)&&bx(t)?wx(vx(e),t):function(r){var n=mx(r,e);return n===void 0&&n===t?gx(r,e):yx(t,n,xx|qx)}}yu.exports=Ix});var wr=u((pE,gu)=>{"use strict";function Ax(e){return function(t){return t?.[e]}}gu.exports=Ax});var bu=u((fE,hu)=>{"use strict";var Sx=hr();function Px(e){return function(t){return Sx(t,e)}}hu.exports=Px});var vu=u((dE,wu)=>{"use strict";var kx=wr(),Ex=bu(),Ox=yt(),_x=Le();function Tx(e){return Ox(e)?kx(_x(e)):Ex(e)}wu.exports=Tx});var Ve=u((yE,xu)=>{"use strict";var jx=Fa(),Nx=mu(),Rx=Fe(),Cx=N(),Mx=vu();function $x(e){return typeof e=="function"?e:e==null?Rx:typeof e=="object"?Cx(e)?Nx(e[0],e[1]):jx(e):Mx(e)}xu.exports=$x});var Iu=u((mE,qu)=>{"use strict";var Dx=Kt(),Fx=ea(),Lx=Ve(),Vx=N();function Ux(e,t){var r=Vx(e)?Dx:Fx;return r(e,Lx(t,3))}qu.exports=Ux});var Su=u((gE,Au)=>{"use strict";var Bx=Object.prototype,zx=Bx.hasOwnProperty;function Gx(e,t){return e!=null&&zx.call(e,t)}Au.exports=Gx});var ku=u((hE,Pu)=>{"use strict";var Kx=Su(),Jx=br();function Hx(e,t){return e!=null&&Jx(e,t,Kx)}Pu.exports=Hx});var Ou=u((bE,Eu)=>{"use strict";var Wx=nt(),Yx=ce(),Zx=Te(),Xx=N(),Qx=ee(),eq=he(),tq=Me(),rq=Ce(),nq="[object Map]",iq="[object Set]",sq=Object.prototype,oq=sq.hasOwnProperty;function aq(e){if(e==null)return!0;if(Qx(e)&&(Xx(e)||typeof e=="string"||typeof e.splice=="function"||eq(e)||rq(e)||Zx(e)))return!e.length;var t=Yx(e);if(t==nq||t==iq)return!e.size;if(tq(e))return!Wx(e).length;for(var r in e)if(oq.call(e,r))return!1;return!0}Eu.exports=aq});var Tu=u((wE,_u)=>{"use strict";function uq(e){return e===void 0}_u.exports=uq});var Nu=u((vE,ju)=>{"use strict";var cq=De(),lq=ee();function pq(e,t){var r=-1,n=lq(e)?Array(e.length):[];return cq(e,function(i,s,o){n[++r]=t(i,s,o)}),n}ju.exports=pq});var Cu=u((xE,Ru)=>{"use strict";var fq=mt(),dq=Ve(),yq=Nu(),mq=N();function gq(e,t){var r=mq(e)?fq:yq;return r(e,dq(t,3))}Ru.exports=gq});var $u=u((qE,Mu)=>{"use strict";function hq(e,t,r,n){var i=-1,s=e==null?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}Mu.exports=hq});var Fu=u((IE,Du)=>{"use strict";function bq(e,t,r,n,i){return i(e,function(s,o,a){r=n?(n=!1,s):t(r,s,o,a)}),r}Du.exports=bq});var Vu=u((AE,Lu)=>{"use strict";var wq=$u(),vq=De(),xq=Ve(),qq=Fu(),Iq=N();function Aq(e,t,r){var n=Iq(e)?wq:qq,i=arguments.length<3;return n(e,xq(t,4),r,i,vq)}Lu.exports=Aq});var Bu=u((SE,Uu)=>{"use strict";var Sq=ae(),Pq=N(),kq=K(),Eq="[object String]";function Oq(e){return typeof e=="string"||!Pq(e)&&kq(e)&&Sq(e)==Eq}Uu.exports=Oq});var Gu=u((PE,zu)=>{"use strict";var _q=wr(),Tq=_q("length");zu.exports=Tq});var Ju=u((kE,Ku)=>{"use strict";var jq="\\ud800-\\udfff",Nq="\\u0300-\\u036f",Rq="\\ufe20-\\ufe2f",Cq="\\u20d0-\\u20ff",Mq=Nq+Rq+Cq,$q="\\ufe0e\\ufe0f",Dq="\\u200d",Fq=RegExp("["+Dq+jq+Mq+$q+"]");function Lq(e){return Fq.test(e)}Ku.exports=Lq});var rc=u((EE,tc)=>{"use strict";var Wu="\\ud800-\\udfff",Vq="\\u0300-\\u036f",Uq="\\ufe20-\\ufe2f",Bq="\\u20d0-\\u20ff",zq=Vq+Uq+Bq,Gq="\\ufe0e\\ufe0f",Kq="["+Wu+"]",vr="["+zq+"]",xr="\\ud83c[\\udffb-\\udfff]",Jq="(?:"+vr+"|"+xr+")",Yu="[^"+Wu+"]",Zu="(?:\\ud83c[\\udde6-\\uddff]){2}",Xu="[\\ud800-\\udbff][\\udc00-\\udfff]",Hq="\\u200d",Qu=Jq+"?",ec="["+Gq+"]?",Wq="(?:"+Hq+"(?:"+[Yu,Zu,Xu].join("|")+")"+ec+Qu+")*",Yq=ec+Qu+Wq,Zq="(?:"+[Yu+vr+"?",vr,Zu,Xu,Kq].join("|")+")",Hu=RegExp(xr+"(?="+xr+")|"+Zq+Yq,"g");function Xq(e){for(var t=Hu.lastIndex=0;Hu.test(e);)++t;return t}tc.exports=Xq});var ic=u((OE,nc)=>{"use strict";var Qq=Gu(),eI=Ju(),tI=rc();function rI(e){return eI(e)?tI(e):Qq(e)}nc.exports=rI});var oc=u((_E,sc)=>{"use strict";var nI=nt(),iI=ce(),sI=ee(),oI=Bu(),aI=ic(),uI="[object Map]",cI="[object Set]";function lI(e){if(e==null)return 0;if(sI(e))return oI(e)?aI(e):e.length;var t=iI(e);return t==uI||t==cI?e.size:nI(e).length}sc.exports=lI});var uc=u((TE,ac)=>{"use strict";var pI=Qe(),fI=ir(),dI=or(),yI=Ve(),mI=at(),gI=N(),hI=he(),bI=ke(),wI=X(),vI=Ce();function xI(e,t,r){var n=gI(e),i=n||hI(e)||vI(e);if(t=yI(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:wI(e)?r=bI(s)?fI(mI(e)):{}:r={}}return(i?pI:dI)(e,function(o,a,c){return t(r,o,a,c)}),r}ac.exports=xI});var fc=u((jE,pc)=>{"use strict";var cc=oe(),qI=Te(),II=N(),lc=cc?cc.isConcatSpreadable:void 0;function AI(e){return II(e)||qI(e)||!!(lc&&e&&e[lc])}pc.exports=AI});var mc=u((NE,yc)=>{"use strict";var SI=ot(),PI=fc();function dc(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=PI),i||(i=[]);++s<o;){var a=e[s];t>0&&r(a)?t>1?dc(a,t-1,r,n,i):SI(i,a):n||(i[i.length]=a)}return i}yc.exports=dc});var hc=u((RE,gc)=>{"use strict";function kI(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}gc.exports=kI});var vc=u((CE,wc)=>{"use strict";var EI=hc(),bc=Math.max;function OI(e,t,r){return t=bc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=bc(n.length-t,0),o=Array(s);++i<s;)o[i]=n[t+i];i=-1;for(var a=Array(t+1);++i<t;)a[i]=n[i];return a[t]=r(o),EI(e,this,a)}}wc.exports=OI});var Ic=u((ME,qc)=>{"use strict";var _I=sr(),xc=Ft(),TI=Fe(),jI=xc?function(e,t){return xc(e,"toString",{configurable:!0,enumerable:!1,value:_I(t),writable:!0})}:TI;qc.exports=jI});var Sc=u(($E,Ac)=>{"use strict";var NI=800,RI=16,CI=Date.now;function MI(e){var t=0,r=0;return function(){var n=CI(),i=RI-(n-r);if(r=n,i>0){if(++t>=NI)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}Ac.exports=MI});var kc=u((DE,Pc)=>{"use strict";var $I=Ic(),DI=Sc(),FI=DI($I);Pc.exports=FI});var Oc=u((FE,Ec)=>{"use strict";var LI=Fe(),VI=vc(),UI=kc();function BI(e,t){return UI(VI(e,t,LI),e+"")}Ec.exports=BI});var Tc=u((LE,_c)=>{"use strict";function zI(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}_c.exports=zI});var Nc=u((VE,jc)=>{"use strict";function GI(e){return e!==e}jc.exports=GI});var Cc=u((UE,Rc)=>{"use strict";function KI(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}Rc.exports=KI});var $c=u((BE,Mc)=>{"use strict";var JI=Tc(),HI=Nc(),WI=Cc();function YI(e,t,r){return t===t?WI(e,t,r):JI(e,HI,r)}Mc.exports=YI});var Fc=u((zE,Dc)=>{"use strict";var ZI=$c();function XI(e,t){var r=e==null?0:e.length;return!!r&&ZI(e,t,0)>-1}Dc.exports=XI});var Vc=u((GE,Lc)=>{"use strict";function QI(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Lc.exports=QI});var Bc=u((KE,Uc)=>{"use strict";function eA(){}Uc.exports=eA});var Gc=u((JE,zc)=>{"use strict";var qr=Zt(),tA=Bc(),rA=pt(),nA=1/0,iA=qr&&1/rA(new qr([,-0]))[1]==nA?function(e){return new qr(e)}:tA;zc.exports=iA});var Jc=u((HE,Kc)=>{"use strict";var sA=ar(),oA=Fc(),aA=Vc(),uA=ur(),cA=Gc(),lA=pt(),pA=200;function fA(e,t,r){var n=-1,i=oA,s=e.length,o=!0,a=[],c=a;if(r)o=!1,i=aA;else if(s>=pA){var p=t?null:cA(e);if(p)return lA(p);o=!1,i=uA,c=new sA}else c=t?[]:a;e:for(;++n<s;){var f=e[n],b=t?t(f):f;if(f=r||f!==0?f:0,o&&b===b){for(var l=c.length;l--;)if(c[l]===b)continue e;t&&c.push(b),a.push(f)}else i(c,b,r)||(c!==a&&c.push(b),a.push(f))}return a}Kc.exports=fA});var Wc=u((WE,Hc)=>{"use strict";var dA=ee(),yA=K();function mA(e){return yA(e)&&dA(e)}Hc.exports=mA});var Zc=u((YE,Yc)=>{"use strict";var gA=mc(),hA=Oc(),bA=Jc(),wA=Wc(),vA=hA(function(e){return bA(gA(e,1,wA,!0))});Yc.exports=vA});var Qc=u((ZE,Xc)=>{"use strict";var xA=mt();function qA(e,t){return xA(t,function(r){return e[r]})}Xc.exports=qA});var tl=u((XE,el)=>{"use strict";var IA=Qc(),AA=te();function SA(e){return e==null?[]:IA(e,AA(e))}el.exports=SA});var $=u((QE,rl)=>{"use strict";var gt;if(typeof Jr=="function")try{gt={clone:Mo(),constant:sr(),each:Xo(),filter:Iu(),has:ku(),isArray:N(),isEmpty:Ou(),isFunction:ke(),isUndefined:Tu(),keys:te(),map:Cu(),reduce:Vu(),size:oc(),transform:uc(),union:Zc(),values:tl()}}catch{}gt||(gt=window._);rl.exports=gt});var ht=u((tO,ol)=>{"use strict";var A=$();ol.exports=k;var PA="\0",le="\0",nl="";function k(e){this._isDirected=A.has(e,"directed")?e.directed:!0,this._isMultigraph=A.has(e,"multigraph")?e.multigraph:!1,this._isCompound=A.has(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=A.constant(void 0),this._defaultEdgeLabelFn=A.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[le]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}k.prototype._nodeCount=0;k.prototype._edgeCount=0;k.prototype.isDirected=function(){return this._isDirected};k.prototype.isMultigraph=function(){return this._isMultigraph};k.prototype.isCompound=function(){return this._isCompound};k.prototype.setGraph=function(e){return this._label=e,this};k.prototype.graph=function(){return this._label};k.prototype.setDefaultNodeLabel=function(e){return A.isFunction(e)||(e=A.constant(e)),this._defaultNodeLabelFn=e,this};k.prototype.nodeCount=function(){return this._nodeCount};k.prototype.nodes=function(){return A.keys(this._nodes)};k.prototype.sources=function(){var e=this;return A.filter(this.nodes(),function(t){return A.isEmpty(e._in[t])})};k.prototype.sinks=function(){var e=this;return A.filter(this.nodes(),function(t){return A.isEmpty(e._out[t])})};k.prototype.setNodes=function(e,t){var r=arguments,n=this;return A.each(e,function(i){r.length>1?n.setNode(i,t):n.setNode(i)}),this};k.prototype.setNode=function(e,t){return A.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=le,this._children[e]={},this._children[le][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)};k.prototype.node=function(e){return this._nodes[e]};k.prototype.hasNode=function(e){return A.has(this._nodes,e)};k.prototype.removeNode=function(e){var t=this;if(A.has(this._nodes,e)){var r=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],A.each(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),A.each(A.keys(this._in[e]),r),delete this._in[e],delete this._preds[e],A.each(A.keys(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this};k.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(A.isUndefined(t))t=le;else{t+="";for(var r=t;!A.isUndefined(r);r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this};k.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]};k.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==le)return t}};k.prototype.children=function(e){if(A.isUndefined(e)&&(e=le),this._isCompound){var t=this._children[e];if(t)return A.keys(t)}else{if(e===le)return this.nodes();if(this.hasNode(e))return[]}};k.prototype.predecessors=function(e){var t=this._preds[e];if(t)return A.keys(t)};k.prototype.successors=function(e){var t=this._sucs[e];if(t)return A.keys(t)};k.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return A.union(t,this.successors(e))};k.prototype.isLeaf=function(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0};k.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var r=this;A.each(this._nodes,function(s,o){e(o)&&t.setNode(o,s)}),A.each(this._edgeObjs,function(s){t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,r.edge(s))});var n={};function i(s){var o=r.parent(s);return o===void 0||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:i(o)}return this._isCompound&&A.each(t.nodes(),function(s){t.setParent(s,i(s))}),t};k.prototype.setDefaultEdgeLabel=function(e){return A.isFunction(e)||(e=A.constant(e)),this._defaultEdgeLabelFn=e,this};k.prototype.edgeCount=function(){return this._edgeCount};k.prototype.edges=function(){return A.values(this._edgeObjs)};k.prototype.setPath=function(e,t){var r=this,n=arguments;return A.reduce(e,function(i,s){return n.length>1?r.setEdge(i,s,t):r.setEdge(i,s),s}),this};k.prototype.setEdge=function(){var e,t,r,n,i=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,t=s.w,r=s.name,arguments.length===2&&(n=arguments[1],i=!0)):(e=s,t=arguments[1],r=arguments[3],arguments.length>2&&(n=arguments[2],i=!0)),e=""+e,t=""+t,A.isUndefined(r)||(r=""+r);var o=Ue(this._isDirected,e,t,r);if(A.has(this._edgeLabels,o))return i&&(this._edgeLabels[o]=n),this;if(!A.isUndefined(r)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[o]=i?n:this._defaultEdgeLabelFn(e,t,r);var a=kA(this._isDirected,e,t,r);return e=a.v,t=a.w,Object.freeze(a),this._edgeObjs[o]=a,il(this._preds[t],e),il(this._sucs[e],t),this._in[t][o]=a,this._out[e][o]=a,this._edgeCount++,this};k.prototype.edge=function(e,t,r){var n=arguments.length===1?Ir(this._isDirected,arguments[0]):Ue(this._isDirected,e,t,r);return this._edgeLabels[n]};k.prototype.hasEdge=function(e,t,r){var n=arguments.length===1?Ir(this._isDirected,arguments[0]):Ue(this._isDirected,e,t,r);return A.has(this._edgeLabels,n)};k.prototype.removeEdge=function(e,t,r){var n=arguments.length===1?Ir(this._isDirected,arguments[0]):Ue(this._isDirected,e,t,r),i=this._edgeObjs[n];return i&&(e=i.v,t=i.w,delete this._edgeLabels[n],delete this._edgeObjs[n],sl(this._preds[t],e),sl(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this};k.prototype.inEdges=function(e,t){var r=this._in[e];if(r){var n=A.values(r);return t?A.filter(n,function(i){return i.v===t}):n}};k.prototype.outEdges=function(e,t){var r=this._out[e];if(r){var n=A.values(r);return t?A.filter(n,function(i){return i.w===t}):n}};k.prototype.nodeEdges=function(e,t){var r=this.inEdges(e,t);if(r)return r.concat(this.outEdges(e,t))};function il(e,t){e[t]?e[t]++:e[t]=1}function sl(e,t){--e[t]||delete e[t]}function Ue(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}return i+nl+s+nl+(A.isUndefined(n)?PA:n)}function kA(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}var a={v:i,w:s};return n&&(a.name=n),a}function Ir(e,t){return Ue(e,t.v,t.w,t.name)}});var ul=u((rO,al)=>{"use strict";al.exports="2.1.8"});var ll=u((nO,cl)=>{"use strict";cl.exports={Graph:ht(),version:ul()}});var fl=u((iO,pl)=>{"use strict";var J=$(),EA=ht();pl.exports={write:OA,read:jA};function OA(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:_A(e),edges:TA(e)};return J.isUndefined(e.graph())||(t.value=J.clone(e.graph())),t}function _A(e){return J.map(e.nodes(),function(t){var r=e.node(t),n=e.parent(t),i={v:t};return J.isUndefined(r)||(i.value=r),J.isUndefined(n)||(i.parent=n),i})}function TA(e){return J.map(e.edges(),function(t){var r=e.edge(t),n={v:t.v,w:t.w};return J.isUndefined(t.name)||(n.name=t.name),J.isUndefined(r)||(n.value=r),n})}function jA(e){var t=new EA(e.options).setGraph(e.value);return J.each(e.nodes,function(r){t.setNode(r.v,r.value),r.parent&&t.setParent(r.v,r.parent)}),J.each(e.edges,function(r){t.setEdge({v:r.v,w:r.w,name:r.name},r.value)}),t}});var yl=u((sO,dl)=>{"use strict";var bt=$();dl.exports=NA;function NA(e){var t={},r=[],n;function i(s){bt.has(t,s)||(t[s]=!0,n.push(s),bt.each(e.successors(s),i),bt.each(e.predecessors(s),i))}return bt.each(e.nodes(),function(s){n=[],i(s),n.length&&r.push(n)}),r}});var Ar=u((oO,gl)=>{"use strict";var ml=$();gl.exports=F;function F(){this._arr=[],this._keyIndices={}}F.prototype.size=function(){return this._arr.length};F.prototype.keys=function(){return this._arr.map(function(e){return e.key})};F.prototype.has=function(e){return ml.has(this._keyIndices,e)};F.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority};F.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key};F.prototype.add=function(e,t){var r=this._keyIndices;if(e=String(e),!ml.has(r,e)){var n=this._arr,i=n.length;return r[e]=i,n.push({key:e,priority:t}),this._decrease(i),!0}return!1};F.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key};F.prototype.decrease=function(e,t){var r=this._keyIndices[e];if(t>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[r].priority+" New: "+t);this._arr[r].priority=t,this._decrease(r)};F.prototype._heapify=function(e){var t=this._arr,r=2*e,n=r+1,i=e;r<t.length&&(i=t[r].priority<t[i].priority?r:i,n<t.length&&(i=t[n].priority<t[i].priority?n:i),i!==e&&(this._swap(e,i),this._heapify(i)))};F.prototype._decrease=function(e){for(var t=this._arr,r=t[e].priority,n;e!==0&&(n=e>>1,!(t[n].priority<r));)this._swap(e,n),e=n};F.prototype._swap=function(e,t){var r=this._arr,n=this._keyIndices,i=r[e],s=r[t];r[e]=s,r[t]=i,n[s.key]=e,n[i.key]=t}});var Sr=u((aO,hl)=>{"use strict";var RA=$(),CA=Ar();hl.exports=$A;var MA=RA.constant(1);function $A(e,t,r,n){return DA(e,String(t),r||MA,n||function(i){return e.outEdges(i)})}function DA(e,t,r,n){var i={},s=new CA,o,a,c=function(p){var f=p.v!==o?p.v:p.w,b=i[f],l=r(p),w=a.distance+l;if(l<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+p+" Weight: "+l);w<b.distance&&(b.distance=w,b.predecessor=o,s.decrease(f,w))};for(e.nodes().forEach(function(p){var f=p===t?0:Number.POSITIVE_INFINITY;i[p]={distance:f},s.add(p,f)});s.size()>0&&(o=s.removeMin(),a=i[o],a.distance!==Number.POSITIVE_INFINITY);)n(o).forEach(c);return i}});var wl=u((uO,bl)=>{"use strict";var FA=Sr(),LA=$();bl.exports=VA;function VA(e,t,r){return LA.transform(e.nodes(),function(n,i){n[i]=FA(e,i,t,r)},{})}});var Pr=u((cO,xl)=>{"use strict";var vl=$();xl.exports=UA;function UA(e){var t=0,r=[],n={},i=[];function s(o){var a=n[o]={onStack:!0,lowlink:t,index:t++};if(r.push(o),e.successors(o).forEach(function(f){vl.has(n,f)?n[f].onStack&&(a.lowlink=Math.min(a.lowlink,n[f].index)):(s(f),a.lowlink=Math.min(a.lowlink,n[f].lowlink))}),a.lowlink===a.index){var c=[],p;do p=r.pop(),n[p].onStack=!1,c.push(p);while(o!==p);i.push(c)}}return e.nodes().forEach(function(o){vl.has(n,o)||s(o)}),i}});var Il=u((lO,ql)=>{"use strict";var BA=$(),zA=Pr();ql.exports=GA;function GA(e){return BA.filter(zA(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var Sl=u((pO,Al)=>{"use strict";var KA=$();Al.exports=HA;var JA=KA.constant(1);function HA(e,t,r){return WA(e,t||JA,r||function(n){return e.outEdges(n)})}function WA(e,t,r){var n={},i=e.nodes();return i.forEach(function(s){n[s]={},n[s][s]={distance:0},i.forEach(function(o){s!==o&&(n[s][o]={distance:Number.POSITIVE_INFINITY})}),r(s).forEach(function(o){var a=o.v===s?o.w:o.v,c=t(o);n[s][a]={distance:c,predecessor:s}})}),i.forEach(function(s){var o=n[s];i.forEach(function(a){var c=n[a];i.forEach(function(p){var f=c[s],b=o[p],l=c[p],w=f.distance+b.distance;w<l.distance&&(l.distance=w,l.predecessor=b.predecessor)})})}),n}});var kr=u((fO,kl)=>{"use strict";var Be=$();kl.exports=Pl;Pl.CycleException=wt;function Pl(e){var t={},r={},n=[];function i(s){if(Be.has(r,s))throw new wt;Be.has(t,s)||(r[s]=!0,t[s]=!0,Be.each(e.predecessors(s),i),delete r[s],n.push(s))}if(Be.each(e.sinks(),i),Be.size(t)!==e.nodeCount())throw new wt;return n}function wt(){}wt.prototype=new Error});var _l=u((dO,Ol)=>{"use strict";var El=kr();Ol.exports=YA;function YA(e){try{El(e)}catch(t){if(t instanceof El.CycleException)return!1;throw t}return!0}});var Er=u((yO,jl)=>{"use strict";var vt=$();jl.exports=ZA;function ZA(e,t,r){vt.isArray(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],s={};return vt.each(t,function(o){if(!e.hasNode(o))throw new Error("Graph does not have node: "+o);Tl(e,o,r==="post",s,n,i)}),i}function Tl(e,t,r,n,i,s){vt.has(n,t)||(n[t]=!0,r||s.push(t),vt.each(i(t),function(o){Tl(e,o,r,n,i,s)}),r&&s.push(t))}});var Rl=u((mO,Nl)=>{"use strict";var XA=Er();Nl.exports=QA;function QA(e,t){return XA(e,t,"post")}});var Ml=u((gO,Cl)=>{"use strict";var eS=Er();Cl.exports=tS;function tS(e,t){return eS(e,t,"pre")}});var Fl=u((hO,Dl)=>{"use strict";var $l=$(),rS=ht(),nS=Ar();Dl.exports=iS;function iS(e,t){var r=new rS,n={},i=new nS,s;function o(c){var p=c.v===s?c.w:c.v,f=i.priority(p);if(f!==void 0){var b=t(c);b<f&&(n[p]=s,i.decrease(p,b))}}if(e.nodeCount()===0)return r;$l.each(e.nodes(),function(c){i.add(c,Number.POSITIVE_INFINITY),r.setNode(c)}),i.decrease(e.nodes()[0],0);for(var a=!1;i.size()>0;){if(s=i.removeMin(),$l.has(n,s))r.setEdge(s,n[s]);else{if(a)throw new Error("Input graph is not connected: "+e);a=!0}e.nodeEdges(s).forEach(o)}return r}});var Vl=u((bO,Ll)=>{"use strict";Ll.exports={components:yl(),dijkstra:Sr(),dijkstraAll:wl(),findCycles:Il(),floydWarshall:Sl(),isAcyclic:_l(),postorder:Rl(),preorder:Ml(),prim:Fl(),tarjan:Pr(),topsort:kr()}});var Or=u((wO,Bl)=>{"use strict";var Ul=ll();Bl.exports={Graph:Ul.Graph,json:fl(),alg:Vl(),version:Ul.version}});var ap=Hr(Or());var xt=class{constructor(){this.eventListeners=new Map}addEventListener(t,r){this.eventListeners.has(t)||this.eventListeners.set(t,new Set),this.eventListeners.get(t).add(r)}removeEventListener(t,r){this.eventListeners.get(t)?.delete(r)}emitEvent(t){let r=this.eventListeners.get(t.type);if(r)for(let n of r)try{n(t)}catch(i){console.error("Error in data instance event listener:",i)}}};function zl(e,t,r){let n=e.atoms.length,i=Array.isArray(t?.types)?t.types:[],o=(t?.tuples?.length??0)>0&&i.length!==n;if(!o&&i.length===n)return{tuple:{...e,types:[...i]},relationTypes:[...i]};let a=Array.isArray(e.types)?e.types:[],c=e.atoms.map((p,f)=>r(p)??a[f]??"untyped");return{tuple:{...e,types:c},relationTypes:o?[]:c}}function re(e){if(!Object.prototype.hasOwnProperty.call(e,"$pyretValue"))return;let t=e.$pyretValue;if(t?.kind==="nothing"||t?.kind==="object"||t?.kind==="tuple"||t?.kind==="raw-array"||t?.kind==="table")return{kind:t.kind};if(t?.kind==="reference"&&typeof t.unrestricted=="boolean")return{kind:t.kind,unrestricted:t.unrestricted};if(t?.kind==="string-dict"&&typeof t.mutable=="boolean"&&typeof t.sealed=="boolean"&&(t.mutable||!t.sealed))return{kind:t.kind,mutable:t.mutable,sealed:t.sealed};throw new Error("Malformed reconstructed Pyret value")}function _r(e){if(!e||typeof e!="object"||"dict"in e)return!1;let t=e;return Number.isInteger(t.state)&&"value"in t&&!!t.anns&&Array.isArray(t.anns.anns)&&typeof t.anns.check=="function"&&typeof t.anns.addAnn=="function"&&Object.keys(t).every(r=>r==="state"||r==="value"||r==="anns")}function Gl(e){if(_r(e)){if(e.state!==2)throw new Error("Only initialized mutable Pyret references are supported");return{kind:"reference",unrestricted:e.anns.anns.every(t=>t.ann?.name==="Any")}}}function Kl(e){return!!e.dict&&typeof e.dict=="object"&&Object.keys(e.dict).length===0&&typeof e.brand=="function"&&typeof e.extendWith=="function"&&!("updateDict"in e)&&Object.keys(e).every(t=>t==="dict"||t==="brands")}function qt(e){return typeof e=="function"||e!==null&&typeof e=="object"&&("app"in e||"meth"in e&&"full_meth"in e)}function Jl(e,t){let r=[];for(let n in e)(t||!qt(e[n]))&&r.push(n);return r}var It=e=>typeof e=="string"&&/^-?(0|[1-9][0-9]*)$/.test(e);function W(e,t=1n){if(t===0n)throw new Error("Invalid Pyret rational denominator");t<0n&&(e=-e,t=-t);let r=e<0n?-e:e,n=t;for(;n!==0n;){let i=r%n;r=n,n=i}return e/=r,t/=r,t===1n?{version:1,kind:"integer",value:e.toString()}:{version:1,kind:"rational",numerator:e.toString(),denominator:t.toString()}}function Hl(e){let t=e;if(t?.version===1){if(t.kind==="integer"&&It(t.value))return W(BigInt(t.value));if(t.kind==="rational"&&It(t.numerator)&&It(t.denominator))return W(BigInt(t.numerator),BigInt(t.denominator));if(t.kind==="roughnum"&&typeof t.value=="string"&&/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?$/i.test(t.value)&&Number.isFinite(Number(t.value)))return{version:1,kind:"roughnum",value:t.value}}throw new Error("Malformed Pyret number")}function Wl(e){if(e.startsWith("~"))return Hl({version:1,kind:"roughnum",value:e.slice(1)});let t=/^(-?(?:0|[1-9][0-9]*))\/(-?(?:0|[1-9][0-9]*))$/.exec(e);if(t)return W(BigInt(t[1]),BigInt(t[2]));let r=/^(-?(?:0|[1-9][0-9]*))(?:\.([0-9]+))?(?:e([+-]?[0-9]+))?$/i.exec(e);if(!r)throw new Error("Malformed Pyret number label");let n=BigInt(r[3]??"0")-BigInt(r[2]?.length??0),i=BigInt(r[1]+(r[2]??""));return n>=0n?W(i*10n**n):W(i,10n**-n)}function Tr(e){if(typeof e=="number"&&Number.isInteger(e))return BigInt(e).toString();if(typeof e=="bigint")return e.toString();if(!e||typeof e!="object")return;let t=e;if(typeof t.isInteger=="function"&&t.isInteger()&&typeof t.isExact=="function"&&t.isExact()){let r=t.toString();if(It(r))return r}}function Y(e){if(e&&typeof e=="object"){if("$pyretNumber"in e)return Hl(e.$pyretNumber);if("n"in e&&"d"in e){let n=Tr(e.n),i=Tr(e.d);if(n!==void 0&&i!==void 0)return W(BigInt(n),BigInt(i))}let r=e;if(typeof r.isRoughnum=="function"&&r.isRoughnum()){if(typeof r.n!="number"||!Number.isFinite(r.n))throw new Error("Invalid Pyret roughnum");return{version:1,kind:"roughnum",value:Object.is(r.n,-0)?"-0":String(r.n)}}}let t=Tr(e);if(t!==void 0)return W(BigInt(t));if(typeof e=="number"){if(!Number.isFinite(e))throw new Error("Invalid Pyret number");let[r,n="0"]=String(e).split("e"),i=r.split(".")[1]?.length??0,s=Number(n)-i,o=BigInt(r.replace(".",""));return s>=0?W(o*10n**BigInt(s)):W(o,10n**BigInt(-s))}}function At(e){switch(e.kind){case"integer":return e.value;case"rational":return`${e.numerator}/${e.denominator}`;case"roughnum":return`~${e.value}`}}function Yl(e){if(e.kind==="integer"){let t=BigInt(e.value);if(t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER))return Number(t)}return{$pyretNumber:e}}var jr="pyret:field:v1:",Nr="pyret:constructor:v1:";function Zl(e,t,r){return Nr+JSON.stringify([e,t,r])}function U(e){if(!e.startsWith(Nr))return;let t=JSON.parse(e.slice(Nr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!t[0]||!Number.isSafeInteger(t[1])||t[1]<0||typeof t[2]!="string"||!t[2])throw new Error("Malformed Pyret constructor identity");return{scope:t[0],index:t[1],name:t[2]}}function B(e){return U(e)?.name??e}function z(e){let{$name:t,$arity:r}=e;if(typeof t!="string"||!Number.isInteger(r)||r<-1)return;let n=e.$constructor?.$fieldNames;if(r===-1)return{name:t,arity:r,fields:[]};if(!Array.isArray(n)||n.length!==r||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new Error(`Invalid Pyret constructor metadata for ${t}`);let i=e.$mut_fields_mask;if(i!==void 0&&(!Array.isArray(i)||i.length!==r||i.some(o=>typeof o!="boolean")))throw new Error(`Invalid Pyret mutable field mask for ${t}`);let s=i?.flatMap((o,a)=>o?[a]:[])??[];return{name:t,arity:r,fields:n,...s.length?{mutableFields:s}:{}}}function Xl(e,t){return jr+JSON.stringify([e.name,t,e.fields[t]])}function xe(e){if(!e.startsWith(jr))return;let t=JSON.parse(e.slice(jr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!Number.isInteger(t[1])||t[1]<0||typeof t[2]!="string")throw new Error("Malformed Pyret field ID");return{name:t[0],position:t[1],field:t[2]}}var ep=new Set(["Number","String","Boolean"]),Rr=new Set([...ep,"Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);function ze(e){if(e?.type!=="Index"||!/^(0|[1-9][0-9]*)$/.test(e.label)||!Number.isSafeInteger(Number(e.label)))throw new Error("Malformed Pyret position label");return Number(e.label)}function Ql(e,t,r){if(e.has(t)&&e.get(t)!==r||[...e].some(([n,i])=>n!==t&&i===r))throw new Error("Conflicting Pyret field positions");e.set(t,r)}function Ge(e,t){let r=[];for(let n=0;n<e.size;n++){if(!e.has(n))throw new Error(`Incomplete Pyret ${t}: positions must be contiguous from zero`);r.push(e.get(n))}return r}function sS(e){let t={fields:new Map,targets:new Set,constructors:new Map,objectPositions:new Map,elements:new Map,columns:new Map,rows:new Map,references:new Map,entries:new Map,mutableFields:new Map,sealed:new Set,unrestricted:new Set,nullary:new Set},r=new Map(e.getAtoms().map(n=>[n.id,n]));for(let n of e.getRelations()){let i=xe(n.id);if(i){if(n.name!==i.field)throw new Error("Pyret field ID disagrees with its name");let s=t.constructors.get(i.name)??new Map;Ql(s,i.field,i.position),t.constructors.set(i.name,s)}for(let s of n.tuples){if(!s.atoms.length||s.atoms.some(g=>!r.has(g)))throw new Error("Malformed Pyret relation tuple");let[o,a,c,p]=s.atoms,f=r.get(o).type,b=s.atoms.length;for(let g of s.atoms.slice(1))t.targets.add(g);if(!i&&f!=="Object"){if(n.name==="sealed"&&f==="MutableStringDict"){if(b!==1)throw new Error("Malformed Pyret sealed fact");t.sealed.add(o);continue}if(n.name==="unrestricted"&&f==="Reference"){if(b!==1)throw new Error("Malformed Pyret unrestricted fact");t.unrestricted.add(o);continue}if(n.name==="nullary-constructor"&&!Rr.has(f)){if(b!==1)throw new Error("Malformed Pyret nullary constructor fact");t.nullary.add(o);continue}if(n.name==="mutable-field"&&!Rr.has(f)){if(b!==2)throw new Error("Malformed Pyret mutable field positions");let g=t.mutableFields.get(o)??new Set;g.add(ze(r.get(a))),t.mutableFields.set(o,g);continue}}if(b<2)throw new Error("Malformed Pyret unary relation");if(f==="Table"){if(i)throw new Error("Pyret table relations must have opaque IDs");let g=ze(r.get(a));if(n.name==="column"&&b===3&&r.get(c)?.type==="String"){let d=t.columns.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret table column positions");d.set(g,c),t.columns.set(o,d)}else if(n.name==="row"){let d=t.rows.get(o)??new Map,y=s.atoms.slice(2);if(d.has(g)&&JSON.stringify(d.get(g))!==JSON.stringify(y))throw new Error("Conflicting Pyret table row positions");if(y.some(v=>r.get(v)?.type==="Index"))throw new Error("Pyret table cells cannot be positions");d.set(g,y),t.rows.set(o,d)}else throw new Error("Malformed Pyret table relation");continue}if(f==="StringDict"||f==="MutableStringDict"){if(n.name!=="entry"||b!==4||r.get(c)?.type!=="String")throw new Error("Malformed Pyret dictionary entry");let g=ze(r.get(a)),d=t.entries.get(o)??new Map,y=d.get(g);if(y&&(y.key!==c||y.value!==p))throw new Error("Conflicting Pyret dictionary entry positions");d.set(g,{key:c,value:p}),t.entries.set(o,d);continue}if(f==="Reference"){if(n.name!=="target"||b!==2)throw new Error("Malformed Pyret reference target");if(t.references.has(o)&&t.references.get(o)!==a)throw new Error("Conflicting Pyret reference targets");t.references.set(o,a);continue}if(f==="Tuple"||f==="RawArray"){if(n.name!=="element"||b!==3)throw new Error("Malformed Pyret indexed element");let g=ze(r.get(a)),d=t.elements.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret element positions");d.set(g,c),t.elements.set(o,d);continue}if(Rr.has(f)&&f!=="Object")throw new Error("Pyret primitive cannot have fields");if(i&&(f!==i.name||b!==2))throw new Error("Pyret field ID disagrees with its source constructor");if(f==="Object"){if(b!==3||i)throw new Error("Pyret object field must have a position and one value");let g=t.objectPositions.get(o)??new Map;Ql(g,n.name,ze(r.get(a))),t.objectPositions.set(o,g)}let l=t.fields.get(o)??new Map,w=i?.field??n.name,m=l.get(w)??[];for(let g of f==="Object"?[c]:s.atoms.slice(1))m.includes(g)||m.push(g);l.set(w,m),t.fields.set(o,l)}}return t}function oS(e,t){switch(e.type){case"Nothing":return{kind:"nothing"};case"Object":return{kind:"object"};case"Tuple":return{kind:"tuple"};case"RawArray":return{kind:"raw-array"};case"Table":return{kind:"table"};case"Reference":return{kind:"reference",unrestricted:t.unrestricted.has(e.id)};case"StringDict":case"MutableStringDict":return{kind:"string-dict",mutable:e.type==="MutableStringDict",sealed:t.sealed.has(e.id)};default:return}}function aS(e){switch(e.type){case"Number":return Yl(Wl(e.label));case"Boolean":if(e.label!=="true"&&e.label!=="false")throw new Error("Malformed Pyret boolean label");return e.label==="true";default:return e.label}}function Cr(e,t){let r=/^\d+$/.test(e),n=/^\d+$/.test(t);return r&&n?parseInt(e,10)-parseInt(t,10):e.localeCompare(t)}function uS(e,t){let n=ne.getGlobalConstructorCache().get(e);if(n&&n.length){let i=n.filter(o=>t.includes(o)),s=t.filter(o=>!n.includes(o));return[...i,...s.sort(Cr)]}return[...t].sort(Cr)}function cS(e){return e.length>0&&e.every(t=>/^\d+$/.test(t))}function Mr(e,t,r={}){let n=St(e,t===void 0?void 0:[t],r);return n.length?n[0]:null}function St(e,t,r={}){let n=new Map(e.getAtoms().map(y=>[y.id,y])),i=sS(e),{fields:s,targets:o,elements:a,references:c,entries:p}=i,f=new Map,b=0,l=new Set,w=new Map,m=y=>{if(w.has(y)){if(!r.allowContainerCycles&&f.get(y)===b&&l.size)throw new Error("Cyclic Pyret containers are not supported");return w.get(y)}let v=n.get(y);if(!v)throw new Error("Unknown Pyret atom ID: "+y);if(ep.has(v.type)){let S=aS(v);return w.set(y,S),S}let x=oS(v,i);if(x?.kind==="nothing"){let S={$pyretValue:x};return w.set(y,S),S}if(f.set(y,b),x?.kind==="table"){let S=Ge(i.columns.get(y)??new Map,"table columns").map(P=>n.get(P).label);if(new Set(S).size!==S.length)throw new Error("Duplicate Pyret table column name");let h=Ge(i.rows.get(y)??new Map,"table rows");if(h.some(P=>P.length!==S.length))throw new Error("Pyret table row width must match its columns");let q=[],I={$pyretValue:x,dict:{"_header-raw-array":S,"_rows-raw-array":q}};w.set(y,I),l.add(y);for(let P of h)q.push(P.map(m));return l.delete(y),f.delete(y),I}if(x?.kind==="string-dict"){let S=p.get(y)??new Map,h=Ge(S,"dictionary entries"),q={$pyretValue:x,entries:[]};w.set(y,q);let I=new Set;x.mutable&&b++;for(let P of h){let M=n.get(P.key).label;if(I.has(M))throw new Error("Duplicate Pyret dictionary key");I.add(M),q.entries.push([M,m(P.value)])}return x.mutable&&b--,f.delete(y),q}if(x?.kind==="reference"){let S=c.get(y);if(S===void 0)throw new Error("Incomplete Pyret reference target");let h={$pyretValue:x};return w.set(y,h),b++,h.value=m(S),b--,f.delete(y),h}if(x?.kind==="raw-array"||x?.kind==="tuple"){let S=a.get(y)??new Map,h=Ge(S,"container elements"),q=[],I=x.kind==="raw-array"?q:{vals:q};w.set(y,I),l.add(y);for(let P of h)q.push(m(P));return l.delete(y),f.delete(y),I}let E=s.get(y)??new Map,O=Array.from(E.keys()),R=i.constructors.get(v.type),D=x?void 0:i.nullary.has(y)?0:R?.size??(O.length?void 0:-1),G=[...i.mutableFields.get(y)??[]];if(G.some(S=>D===void 0||S>=D))throw new Error("Malformed Pyret mutable field positions");if(!x&&D===void 0&&cS(O)){let S=[];w.set(y,S);let h=O.slice().sort(Cr);for(let q of h){let I=E.get(q)??[];S.push(I.length===1?m(I[0]):I.map(P=>m(P)))}return f.delete(y),S}let L={dict:Object.create(null),...x?.kind==="object"?{$pyretValue:x}:{$name:v.type}};w.set(y,L);let H;if(x?.kind==="object"){let S=i.objectPositions.get(y)??new Map;H=Ge(new Map([...S].map(([h,q])=>[q,h])),"object fields")}else if(D!==void 0){let S=R??new Map,h=Math.max(0,D);if(O.length!==h||S.size!==h||[...S].some(([q,I])=>I>=h||!E.has(q)))throw new Error("Incomplete Pyret constructor fields");H=[...S].sort((q,I)=>q[1]-I[1]).map(([q])=>q),L.$arity=D,L.$constructor={$fieldNames:H},G.length&&(L.$mut_fields_mask=H.map((q,I)=>G.includes(I)))}else H=uS(v.type,O);for(let S of H){let h=E.get(S)??[];if((x?.kind==="object"||D!==void 0)&&h.length!==1)throw new Error("Pyret constructor field must have one value");h.length===1?L.dict[S]=m(h[0]):L.dict[S]=h.map(q=>m(q))}for(let S of G){let h=L.dict[H[S]];if(!h||typeof h!="object"||re(h)?.kind!=="reference")throw new Error("Pyret mutable field must contain a reference")}return f.delete(y),L};if(t!==void 0)return t.map(y=>{if(!n.has(y))throw new Error("Unknown Pyret root ID: "+y);return m(y)});let g=e.getAtoms().map(y=>y.id);if(!g.length)return[];let d=g.filter(y=>!o.has(y));if(d.length!==1)throw new Error("Pyret graph has no unique root; supply an explicit root ID");return[m(d[0])]}function qe(e,t,r){if(!e||typeof e!="object"||Array.isArray(e)||!("$name"in e)||B(String(e.$name))!==t)return!1;let n=z(e);return!!n&&!n.mutableFields?.length&&n.arity===(r.length||-1)&&n.fields.length===r.length&&n.fields.every((i,s)=>i===r[s])&&!!e.dict&&r.every(i=>Object.prototype.hasOwnProperty.call(e.dict,i))}function Ke(e){let t=qe(e,"list-set",["elems"])?"list-set":qe(e,"tree-set",["elems"])?"tree-set":void 0;if(!t)return;let r=e.dict.elems,n=[],i=new Set,s=()=>new Error(`Malformed Pyret ${t} backing structure`);if(t==="list-set"){let o=r;for(;!qe(o,"empty",[]);){if(!qe(o,"link",["first","rest"])||i.has(o))throw s();i.add(o),n.push(o.dict.first),o=o.dict.rest}}else{let o=[{node:r,phase:"enter"}];for(;o.length;){let{node:a,phase:c}=o.pop();if(!qe(a,"leaf",[])){if(!qe(a,"branch",["value","h","left","right"]))throw s();if(c==="exit")i.delete(a);else if(c==="emit")n.push(a.dict.value);else{if(i.has(a))throw s();i.add(a),o.push({node:a,phase:"exit"},{node:a.dict.right,phase:"enter"},{node:a,phase:"emit"},{node:a.dict.left,phase:"enter"})}}}}return{kind:t,elements:n}}function tp(e,t){return e.kind==="tree-set"?`[tree-set: ${e.elements.map(t).join(", ")}]`:"[list-set: ]"+[...e.elements].reverse().map(r=>`.add(${t(r)})`).join("")}function Pt(e){return!!e.dict&&typeof e.dict=="object"&&"_header-raw-array"in e.dict&&"_rows-raw-array"in e.dict&&(!e.brands||Object.keys(e.brands).some(t=>t.includes("brandtable")))}function kt(e){return Array.isArray(e.$rowData)&&!!e.$underlyingTable}function pe(e){let t=e.dict?.["_header-raw-array"],r=e.dict?.["_rows-raw-array"];if(!Array.isArray(t)||!Array.isArray(r)||Array.from(t).some(n=>typeof n!="string")||new Set(t).size!==t.length||Array.from(r).some(n=>!Array.isArray(n)||n.length!==t.length))throw new Error("Malformed Pyret table: unique string headers and rectangular rows required");return{headers:t,rows:r}}function rp(e,t,r){let{headers:n,rows:i}=pe(e);if(!n.length)return i.length?`for fold(spytial-table from empty-table([list: ]), spytial-row from range(0, ${i.length})):
|
|
1
|
+
var hf=Object.create;var Kr=Object.defineProperty;var bf=Object.getOwnPropertyDescriptor;var wf=Object.getOwnPropertyNames;var vf=Object.getPrototypeOf,xf=Object.prototype.hasOwnProperty;var Jr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var qf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of wf(t))!xf.call(e,i)&&i!==r&&Kr(e,i,{get:()=>t[i],enumerable:!(n=bf(t,i))||n.enumerable});return e};var Hr=(e,t,r)=>(r=e!=null?hf(vf(e)):{},qf(t||!e||!e.__esModule?Kr(r,"default",{value:e,enumerable:!0}):r,e));var Yr=a((AA,Wr)=>{"use strict";function If(){this.__data__=[],this.size=0}Wr.exports=If});var We=a((PA,Zr)=>{"use strict";function Sf(e,t){return e===t||e!==e&&t!==t}Zr.exports=Sf});var Se=a((kA,Xr)=>{"use strict";var Af=We();function Pf(e,t){for(var r=e.length;r--;)if(Af(e[r][0],t))return r;return-1}Xr.exports=Pf});var en=a((EA,Qr)=>{"use strict";var kf=Se(),Ef=Array.prototype,Of=Ef.splice;function _f(e){var t=this.__data__,r=kf(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Of.call(t,r,1),--this.size,!0}Qr.exports=_f});var rn=a((OA,tn)=>{"use strict";var Tf=Se();function jf(e){var t=this.__data__,r=Tf(t,e);return r<0?void 0:t[r][1]}tn.exports=jf});var sn=a((_A,nn)=>{"use strict";var Rf=Se();function Nf(e){return Rf(this.__data__,e)>-1}nn.exports=Nf});var an=a((TA,on)=>{"use strict";var Cf=Se();function Mf(e,t){var r=this.__data__,n=Cf(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}on.exports=Mf});var Ae=a((jA,un)=>{"use strict";var $f=Yr(),Df=en(),Ff=rn(),Lf=sn(),Vf=an();function pe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}pe.prototype.clear=$f;pe.prototype.delete=Df;pe.prototype.get=Ff;pe.prototype.has=Lf;pe.prototype.set=Vf;un.exports=pe});var ln=a((RA,cn)=>{"use strict";var Uf=Ae();function Bf(){this.__data__=new Uf,this.size=0}cn.exports=Bf});var pn=a((NA,fn)=>{"use strict";function Gf(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}fn.exports=Gf});var yn=a((CA,dn)=>{"use strict";function zf(e){return this.__data__.get(e)}dn.exports=zf});var gn=a((MA,mn)=>{"use strict";function Kf(e){return this.__data__.has(e)}mn.exports=Kf});var Mt=a(($A,hn)=>{"use strict";var Jf=typeof global=="object"&&global&&global.Object===Object&&global;hn.exports=Jf});var V=a((DA,bn)=>{"use strict";var Hf=Mt(),Wf=typeof self=="object"&&self&&self.Object===Object&&self,Yf=Hf||Wf||Function("return this")();bn.exports=Yf});var oe=a((FA,wn)=>{"use strict";var Zf=V(),Xf=Zf.Symbol;wn.exports=Xf});var In=a((LA,qn)=>{"use strict";var vn=oe(),xn=Object.prototype,Qf=xn.hasOwnProperty,ep=xn.toString,Pe=vn?vn.toStringTag:void 0;function tp(e){var t=Qf.call(e,Pe),r=e[Pe];try{e[Pe]=void 0;var n=!0}catch{}var i=ep.call(e);return n&&(t?e[Pe]=r:delete e[Pe]),i}qn.exports=tp});var An=a((VA,Sn)=>{"use strict";var rp=Object.prototype,np=rp.toString;function ip(e){return np.call(e)}Sn.exports=ip});var ae=a((UA,En)=>{"use strict";var Pn=oe(),sp=In(),op=An(),ap="[object Null]",up="[object Undefined]",kn=Pn?Pn.toStringTag:void 0;function cp(e){return e==null?e===void 0?up:ap:kn&&kn in Object(e)?sp(e):op(e)}En.exports=cp});var X=a((BA,On)=>{"use strict";function lp(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}On.exports=lp});var ke=a((GA,_n)=>{"use strict";var fp=ae(),pp=X(),dp="[object AsyncFunction]",yp="[object Function]",mp="[object GeneratorFunction]",gp="[object Proxy]";function hp(e){if(!pp(e))return!1;var t=fp(e);return t==yp||t==mp||t==dp||t==gp}_n.exports=hp});var jn=a((zA,Tn)=>{"use strict";var bp=V(),wp=bp["__core-js_shared__"];Tn.exports=wp});var Cn=a((KA,Nn)=>{"use strict";var $t=jn(),Rn=(function(){var e=/[^.]+$/.exec($t&&$t.keys&&$t.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function vp(e){return!!Rn&&Rn in e}Nn.exports=vp});var Dt=a((JA,Mn)=>{"use strict";var xp=Function.prototype,qp=xp.toString;function Ip(e){if(e!=null){try{return qp.call(e)}catch{}try{return e+""}catch{}}return""}Mn.exports=Ip});var Dn=a((HA,$n)=>{"use strict";var Sp=ke(),Ap=Cn(),Pp=X(),kp=Dt(),Ep=/[\\^$.*+?()[\]{}|]/g,Op=/^\[object .+?Constructor\]$/,_p=Function.prototype,Tp=Object.prototype,jp=_p.toString,Rp=Tp.hasOwnProperty,Np=RegExp("^"+jp.call(Rp).replace(Ep,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Cp(e){if(!Pp(e)||Ap(e))return!1;var t=Sp(e)?Np:Op;return t.test(kp(e))}$n.exports=Cp});var Ln=a((WA,Fn)=>{"use strict";function Mp(e,t){return e?.[t]}Fn.exports=Mp});var Q=a((YA,Vn)=>{"use strict";var $p=Dn(),Dp=Ln();function Fp(e,t){var r=Dp(e,t);return $p(r)?r:void 0}Vn.exports=Fp});var Ye=a((ZA,Un)=>{"use strict";var Lp=Q(),Vp=V(),Up=Lp(Vp,"Map");Un.exports=Up});var Ee=a((XA,Bn)=>{"use strict";var Bp=Q(),Gp=Bp(Object,"create");Bn.exports=Gp});var Kn=a((QA,zn)=>{"use strict";var Gn=Ee();function zp(){this.__data__=Gn?Gn(null):{},this.size=0}zn.exports=zp});var Hn=a((eP,Jn)=>{"use strict";function Kp(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Jn.exports=Kp});var Yn=a((tP,Wn)=>{"use strict";var Jp=Ee(),Hp="__lodash_hash_undefined__",Wp=Object.prototype,Yp=Wp.hasOwnProperty;function Zp(e){var t=this.__data__;if(Jp){var r=t[e];return r===Hp?void 0:r}return Yp.call(t,e)?t[e]:void 0}Wn.exports=Zp});var Xn=a((rP,Zn)=>{"use strict";var Xp=Ee(),Qp=Object.prototype,ed=Qp.hasOwnProperty;function td(e){var t=this.__data__;return Xp?t[e]!==void 0:ed.call(t,e)}Zn.exports=td});var ei=a((nP,Qn)=>{"use strict";var rd=Ee(),nd="__lodash_hash_undefined__";function id(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=rd&&t===void 0?nd:t,this}Qn.exports=id});var ri=a((iP,ti)=>{"use strict";var sd=Kn(),od=Hn(),ad=Yn(),ud=Xn(),cd=ei();function de(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}de.prototype.clear=sd;de.prototype.delete=od;de.prototype.get=ad;de.prototype.has=ud;de.prototype.set=cd;ti.exports=de});var si=a((sP,ii)=>{"use strict";var ni=ri(),ld=Ae(),fd=Ye();function pd(){this.size=0,this.__data__={hash:new ni,map:new(fd||ld),string:new ni}}ii.exports=pd});var ai=a((oP,oi)=>{"use strict";function dd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}oi.exports=dd});var Oe=a((aP,ui)=>{"use strict";var yd=ai();function md(e,t){var r=e.__data__;return yd(t)?r[typeof t=="string"?"string":"hash"]:r.map}ui.exports=md});var li=a((uP,ci)=>{"use strict";var gd=Oe();function hd(e){var t=gd(this,e).delete(e);return this.size-=t?1:0,t}ci.exports=hd});var pi=a((cP,fi)=>{"use strict";var bd=Oe();function wd(e){return bd(this,e).get(e)}fi.exports=wd});var yi=a((lP,di)=>{"use strict";var vd=Oe();function xd(e){return vd(this,e).has(e)}di.exports=xd});var gi=a((fP,mi)=>{"use strict";var qd=Oe();function Id(e,t){var r=qd(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}mi.exports=Id});var Ze=a((pP,hi)=>{"use strict";var Sd=si(),Ad=li(),Pd=pi(),kd=yi(),Ed=gi();function ye(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ye.prototype.clear=Sd;ye.prototype.delete=Ad;ye.prototype.get=Pd;ye.prototype.has=kd;ye.prototype.set=Ed;hi.exports=ye});var wi=a((dP,bi)=>{"use strict";var Od=Ae(),_d=Ye(),Td=Ze(),jd=200;function Rd(e,t){var r=this.__data__;if(r instanceof Od){var n=r.__data__;if(!_d||n.length<jd-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Td(n)}return r.set(e,t),this.size=r.size,this}bi.exports=Rd});var Xe=a((yP,vi)=>{"use strict";var Nd=Ae(),Cd=ln(),Md=pn(),$d=yn(),Dd=gn(),Fd=wi();function me(e){var t=this.__data__=new Nd(e);this.size=t.size}me.prototype.clear=Cd;me.prototype.delete=Md;me.prototype.get=$d;me.prototype.has=Dd;me.prototype.set=Fd;vi.exports=me});var Qe=a((mP,xi)=>{"use strict";function Ld(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}xi.exports=Ld});var Ft=a((gP,qi)=>{"use strict";var Vd=Q(),Ud=(function(){try{var e=Vd(Object,"defineProperty");return e({},"",{}),e}catch{}})();qi.exports=Ud});var Lt=a((hP,Si)=>{"use strict";var Ii=Ft();function Bd(e,t,r){t=="__proto__"&&Ii?Ii(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}Si.exports=Bd});var Vt=a((bP,Ai)=>{"use strict";var Gd=Lt(),zd=We(),Kd=Object.prototype,Jd=Kd.hasOwnProperty;function Hd(e,t,r){var n=e[t];(!(Jd.call(e,t)&&zd(n,r))||r===void 0&&!(t in e))&&Gd(e,t,r)}Ai.exports=Hd});var _e=a((wP,Pi)=>{"use strict";var Wd=Vt(),Yd=Lt();function Zd(e,t,r,n){var i=!r;r||(r={});for(var s=-1,o=t.length;++s<o;){var u=t[s],c=n?n(r[u],e[u],u,r,e):void 0;c===void 0&&(c=e[u]),i?Yd(r,u,c):Wd(r,u,c)}return r}Pi.exports=Zd});var Ei=a((vP,ki)=>{"use strict";function Xd(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}ki.exports=Xd});var K=a((xP,Oi)=>{"use strict";function Qd(e){return e!=null&&typeof e=="object"}Oi.exports=Qd});var Ti=a((qP,_i)=>{"use strict";var ey=ae(),ty=K(),ry="[object Arguments]";function ny(e){return ty(e)&&ey(e)==ry}_i.exports=ny});var Te=a((IP,Ni)=>{"use strict";var ji=Ti(),iy=K(),Ri=Object.prototype,sy=Ri.hasOwnProperty,oy=Ri.propertyIsEnumerable,ay=ji((function(){return arguments})())?ji:function(e){return iy(e)&&sy.call(e,"callee")&&!oy.call(e,"callee")};Ni.exports=ay});var N=a((SP,Ci)=>{"use strict";var uy=Array.isArray;Ci.exports=uy});var $i=a((AP,Mi)=>{"use strict";function cy(){return!1}Mi.exports=cy});var he=a((je,ge)=>{"use strict";var ly=V(),fy=$i(),Li=typeof je=="object"&&je&&!je.nodeType&&je,Di=Li&&typeof ge=="object"&&ge&&!ge.nodeType&&ge,py=Di&&Di.exports===Li,Fi=py?ly.Buffer:void 0,dy=Fi?Fi.isBuffer:void 0,yy=dy||fy;ge.exports=yy});var Ut=a((PP,Vi)=>{"use strict";var my=9007199254740991,gy=/^(?:0|[1-9]\d*)$/;function hy(e,t){var r=typeof e;return t=t??my,!!t&&(r=="number"||r!="symbol"&&gy.test(e))&&e>-1&&e%1==0&&e<t}Vi.exports=hy});var et=a((kP,Ui)=>{"use strict";var by=9007199254740991;function wy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=by}Ui.exports=wy});var Gi=a((EP,Bi)=>{"use strict";var vy=ae(),xy=et(),qy=K(),Iy="[object Arguments]",Sy="[object Array]",Ay="[object Boolean]",Py="[object Date]",ky="[object Error]",Ey="[object Function]",Oy="[object Map]",_y="[object Number]",Ty="[object Object]",jy="[object RegExp]",Ry="[object Set]",Ny="[object String]",Cy="[object WeakMap]",My="[object ArrayBuffer]",$y="[object DataView]",Dy="[object Float32Array]",Fy="[object Float64Array]",Ly="[object Int8Array]",Vy="[object Int16Array]",Uy="[object Int32Array]",By="[object Uint8Array]",Gy="[object Uint8ClampedArray]",zy="[object Uint16Array]",Ky="[object Uint32Array]",T={};T[Dy]=T[Fy]=T[Ly]=T[Vy]=T[Uy]=T[By]=T[Gy]=T[zy]=T[Ky]=!0;T[Iy]=T[Sy]=T[My]=T[Ay]=T[$y]=T[Py]=T[ky]=T[Ey]=T[Oy]=T[_y]=T[Ty]=T[jy]=T[Ry]=T[Ny]=T[Cy]=!1;function Jy(e){return qy(e)&&xy(e.length)&&!!T[vy(e)]}Bi.exports=Jy});var tt=a((OP,zi)=>{"use strict";function Hy(e){return function(t){return e(t)}}zi.exports=Hy});var rt=a((Re,be)=>{"use strict";var Wy=Mt(),Ki=typeof Re=="object"&&Re&&!Re.nodeType&&Re,Ne=Ki&&typeof be=="object"&&be&&!be.nodeType&&be,Yy=Ne&&Ne.exports===Ki,Bt=Yy&&Wy.process,Zy=(function(){try{var e=Ne&&Ne.require&&Ne.require("util").types;return e||Bt&&Bt.binding&&Bt.binding("util")}catch{}})();be.exports=Zy});var Ce=a((_P,Wi)=>{"use strict";var Xy=Gi(),Qy=tt(),Ji=rt(),Hi=Ji&&Ji.isTypedArray,em=Hi?Qy(Hi):Xy;Wi.exports=em});var Gt=a((TP,Yi)=>{"use strict";var tm=Ei(),rm=Te(),nm=N(),im=he(),sm=Ut(),om=Ce(),am=Object.prototype,um=am.hasOwnProperty;function cm(e,t){var r=nm(e),n=!r&&rm(e),i=!r&&!n&&im(e),s=!r&&!n&&!i&&om(e),o=r||n||i||s,u=o?tm(e.length,String):[],c=u.length;for(var f in e)(t||um.call(e,f))&&!(o&&(f=="length"||i&&(f=="offset"||f=="parent")||s&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||sm(f,c)))&&u.push(f);return u}Yi.exports=cm});var Me=a((jP,Zi)=>{"use strict";var lm=Object.prototype;function fm(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||lm;return e===r}Zi.exports=fm});var zt=a((RP,Xi)=>{"use strict";function pm(e,t){return function(r){return e(t(r))}}Xi.exports=pm});var es=a((NP,Qi)=>{"use strict";var dm=zt(),ym=dm(Object.keys,Object);Qi.exports=ym});var nt=a((CP,ts)=>{"use strict";var mm=Me(),gm=es(),hm=Object.prototype,bm=hm.hasOwnProperty;function wm(e){if(!mm(e))return gm(e);var t=[];for(var r in Object(e))bm.call(e,r)&&r!="constructor"&&t.push(r);return t}ts.exports=wm});var ee=a((MP,rs)=>{"use strict";var vm=ke(),xm=et();function qm(e){return e!=null&&xm(e.length)&&!vm(e)}rs.exports=qm});var te=a(($P,ns)=>{"use strict";var Im=Gt(),Sm=nt(),Am=ee();function Pm(e){return Am(e)?Im(e):Sm(e)}ns.exports=Pm});var ss=a((DP,is)=>{"use strict";var km=_e(),Em=te();function Om(e,t){return e&&km(t,Em(t),e)}is.exports=Om});var as=a((FP,os)=>{"use strict";function _m(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}os.exports=_m});var cs=a((LP,us)=>{"use strict";var Tm=X(),jm=Me(),Rm=as(),Nm=Object.prototype,Cm=Nm.hasOwnProperty;function Mm(e){if(!Tm(e))return Rm(e);var t=jm(e),r=[];for(var n in e)n=="constructor"&&(t||!Cm.call(e,n))||r.push(n);return r}us.exports=Mm});var it=a((VP,ls)=>{"use strict";var $m=Gt(),Dm=cs(),Fm=ee();function Lm(e){return Fm(e)?$m(e,!0):Dm(e)}ls.exports=Lm});var ps=a((UP,fs)=>{"use strict";var Vm=_e(),Um=it();function Bm(e,t){return e&&Vm(t,Um(t),e)}fs.exports=Bm});var hs=a(($e,we)=>{"use strict";var Gm=V(),gs=typeof $e=="object"&&$e&&!$e.nodeType&&$e,ds=gs&&typeof we=="object"&&we&&!we.nodeType&&we,zm=ds&&ds.exports===gs,ys=zm?Gm.Buffer:void 0,ms=ys?ys.allocUnsafe:void 0;function Km(e,t){if(t)return e.slice();var r=e.length,n=ms?ms(r):new e.constructor(r);return e.copy(n),n}we.exports=Km});var ws=a((BP,bs)=>{"use strict";function Jm(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}bs.exports=Jm});var Kt=a((GP,vs)=>{"use strict";function Hm(e,t){for(var r=-1,n=e==null?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}vs.exports=Hm});var Jt=a((zP,xs)=>{"use strict";function Wm(){return[]}xs.exports=Wm});var st=a((KP,Is)=>{"use strict";var Ym=Kt(),Zm=Jt(),Xm=Object.prototype,Qm=Xm.propertyIsEnumerable,qs=Object.getOwnPropertySymbols,eg=qs?function(e){return e==null?[]:(e=Object(e),Ym(qs(e),function(t){return Qm.call(e,t)}))}:Zm;Is.exports=eg});var As=a((JP,Ss)=>{"use strict";var tg=_e(),rg=st();function ng(e,t){return tg(e,rg(e),t)}Ss.exports=ng});var ot=a((HP,Ps)=>{"use strict";function ig(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}Ps.exports=ig});var at=a((WP,ks)=>{"use strict";var sg=zt(),og=sg(Object.getPrototypeOf,Object);ks.exports=og});var Ht=a((YP,Es)=>{"use strict";var ag=ot(),ug=at(),cg=st(),lg=Jt(),fg=Object.getOwnPropertySymbols,pg=fg?function(e){for(var t=[];e;)ag(t,cg(e)),e=ug(e);return t}:lg;Es.exports=pg});var _s=a((ZP,Os)=>{"use strict";var dg=_e(),yg=Ht();function mg(e,t){return dg(e,yg(e),t)}Os.exports=mg});var Wt=a((XP,Ts)=>{"use strict";var gg=ot(),hg=N();function bg(e,t,r){var n=t(e);return hg(e)?n:gg(n,r(e))}Ts.exports=bg});var Yt=a((QP,js)=>{"use strict";var wg=Wt(),vg=st(),xg=te();function qg(e){return wg(e,xg,vg)}js.exports=qg});var Ns=a((ek,Rs)=>{"use strict";var Ig=Wt(),Sg=Ht(),Ag=it();function Pg(e){return Ig(e,Ag,Sg)}Rs.exports=Pg});var Ms=a((tk,Cs)=>{"use strict";var kg=Q(),Eg=V(),Og=kg(Eg,"DataView");Cs.exports=Og});var Ds=a((rk,$s)=>{"use strict";var _g=Q(),Tg=V(),jg=_g(Tg,"Promise");$s.exports=jg});var Zt=a((nk,Fs)=>{"use strict";var Rg=Q(),Ng=V(),Cg=Rg(Ng,"Set");Fs.exports=Cg});var Vs=a((ik,Ls)=>{"use strict";var Mg=Q(),$g=V(),Dg=Mg($g,"WeakMap");Ls.exports=Dg});var ce=a((sk,Hs)=>{"use strict";var Xt=Ms(),Qt=Ye(),er=Ds(),tr=Zt(),rr=Vs(),Js=ae(),ve=Dt(),Us="[object Map]",Fg="[object Object]",Bs="[object Promise]",Gs="[object Set]",zs="[object WeakMap]",Ks="[object DataView]",Lg=ve(Xt),Vg=ve(Qt),Ug=ve(er),Bg=ve(tr),Gg=ve(rr),ue=Js;(Xt&&ue(new Xt(new ArrayBuffer(1)))!=Ks||Qt&&ue(new Qt)!=Us||er&&ue(er.resolve())!=Bs||tr&&ue(new tr)!=Gs||rr&&ue(new rr)!=zs)&&(ue=function(e){var t=Js(e),r=t==Fg?e.constructor:void 0,n=r?ve(r):"";if(n)switch(n){case Lg:return Ks;case Vg:return Us;case Ug:return Bs;case Bg:return Gs;case Gg:return zs}return t});Hs.exports=ue});var Ys=a((ok,Ws)=>{"use strict";var zg=Object.prototype,Kg=zg.hasOwnProperty;function Jg(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Kg.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Ws.exports=Jg});var nr=a((ak,Zs)=>{"use strict";var Hg=V(),Wg=Hg.Uint8Array;Zs.exports=Wg});var ut=a((uk,Qs)=>{"use strict";var Xs=nr();function Yg(e){var t=new e.constructor(e.byteLength);return new Xs(t).set(new Xs(e)),t}Qs.exports=Yg});var to=a((ck,eo)=>{"use strict";var Zg=ut();function Xg(e,t){var r=t?Zg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}eo.exports=Xg});var no=a((lk,ro)=>{"use strict";var Qg=/\w*$/;function eh(e){var t=new e.constructor(e.source,Qg.exec(e));return t.lastIndex=e.lastIndex,t}ro.exports=eh});var uo=a((fk,ao)=>{"use strict";var io=oe(),so=io?io.prototype:void 0,oo=so?so.valueOf:void 0;function th(e){return oo?Object(oo.call(e)):{}}ao.exports=th});var lo=a((pk,co)=>{"use strict";var rh=ut();function nh(e,t){var r=t?rh(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}co.exports=nh});var po=a((dk,fo)=>{"use strict";var ih=ut(),sh=to(),oh=no(),ah=uo(),uh=lo(),ch="[object Boolean]",lh="[object Date]",fh="[object Map]",ph="[object Number]",dh="[object RegExp]",yh="[object Set]",mh="[object String]",gh="[object Symbol]",hh="[object ArrayBuffer]",bh="[object DataView]",wh="[object Float32Array]",vh="[object Float64Array]",xh="[object Int8Array]",qh="[object Int16Array]",Ih="[object Int32Array]",Sh="[object Uint8Array]",Ah="[object Uint8ClampedArray]",Ph="[object Uint16Array]",kh="[object Uint32Array]";function Eh(e,t,r){var n=e.constructor;switch(t){case hh:return ih(e);case ch:case lh:return new n(+e);case bh:return sh(e,r);case wh:case vh:case xh:case qh:case Ih:case Sh:case Ah:case Ph:case kh:return uh(e,r);case fh:return new n;case ph:case mh:return new n(e);case dh:return oh(e);case yh:return new n;case gh:return ah(e)}}fo.exports=Eh});var ir=a((yk,mo)=>{"use strict";var Oh=X(),yo=Object.create,_h=(function(){function e(){}return function(t){if(!Oh(t))return{};if(yo)return yo(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();mo.exports=_h});var ho=a((mk,go)=>{"use strict";var Th=ir(),jh=at(),Rh=Me();function Nh(e){return typeof e.constructor=="function"&&!Rh(e)?Th(jh(e)):{}}go.exports=Nh});var wo=a((gk,bo)=>{"use strict";var Ch=ce(),Mh=K(),$h="[object Map]";function Dh(e){return Mh(e)&&Ch(e)==$h}bo.exports=Dh});var Io=a((hk,qo)=>{"use strict";var Fh=wo(),Lh=tt(),vo=rt(),xo=vo&&vo.isMap,Vh=xo?Lh(xo):Fh;qo.exports=Vh});var Ao=a((bk,So)=>{"use strict";var Uh=ce(),Bh=K(),Gh="[object Set]";function zh(e){return Bh(e)&&Uh(e)==Gh}So.exports=zh});var Oo=a((wk,Eo)=>{"use strict";var Kh=Ao(),Jh=tt(),Po=rt(),ko=Po&&Po.isSet,Hh=ko?Jh(ko):Kh;Eo.exports=Hh});var No=a((vk,Ro)=>{"use strict";var Wh=Xe(),Yh=Qe(),Zh=Vt(),Xh=ss(),Qh=ps(),eb=hs(),tb=ws(),rb=As(),nb=_s(),ib=Yt(),sb=Ns(),ob=ce(),ab=Ys(),ub=po(),cb=ho(),lb=N(),fb=he(),pb=Io(),db=X(),yb=Oo(),mb=te(),gb=it(),hb=1,bb=2,wb=4,_o="[object Arguments]",vb="[object Array]",xb="[object Boolean]",qb="[object Date]",Ib="[object Error]",To="[object Function]",Sb="[object GeneratorFunction]",Ab="[object Map]",Pb="[object Number]",jo="[object Object]",kb="[object RegExp]",Eb="[object Set]",Ob="[object String]",_b="[object Symbol]",Tb="[object WeakMap]",jb="[object ArrayBuffer]",Rb="[object DataView]",Nb="[object Float32Array]",Cb="[object Float64Array]",Mb="[object Int8Array]",$b="[object Int16Array]",Db="[object Int32Array]",Fb="[object Uint8Array]",Lb="[object Uint8ClampedArray]",Vb="[object Uint16Array]",Ub="[object Uint32Array]",_={};_[_o]=_[vb]=_[jb]=_[Rb]=_[xb]=_[qb]=_[Nb]=_[Cb]=_[Mb]=_[$b]=_[Db]=_[Ab]=_[Pb]=_[jo]=_[kb]=_[Eb]=_[Ob]=_[_b]=_[Fb]=_[Lb]=_[Vb]=_[Ub]=!0;_[Ib]=_[To]=_[Tb]=!1;function ct(e,t,r,n,i,s){var o,u=t&hb,c=t&bb,f=t&wb;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!db(e))return e;var p=lb(e);if(p){if(o=ab(e),!u)return tb(e,o)}else{var h=ob(e),l=h==To||h==Sb;if(fb(e))return eb(e,u);if(h==jo||h==_o||l&&!i){if(o=c||l?{}:cb(e),!u)return c?nb(e,Qh(o,e)):rb(e,Xh(o,e))}else{if(!_[h])return i?e:{};o=ub(e,h,u)}}s||(s=new Wh);var w=s.get(e);if(w)return w;s.set(e,o),yb(e)?e.forEach(function(d){o.add(ct(d,t,r,d,e,s))}):pb(e)&&e.forEach(function(d,y){o.set(y,ct(d,t,r,y,e,s))});var m=f?c?sb:ib:c?gb:mb,g=p?void 0:m(e);return Yh(g||e,function(d,y){g&&(y=d,d=e[y]),Zh(o,y,ct(d,t,r,y,e,s))}),o}Ro.exports=ct});var Mo=a((xk,Co)=>{"use strict";var Bb=No(),Gb=4;function zb(e){return Bb(e,Gb)}Co.exports=zb});var sr=a((qk,$o)=>{"use strict";function Kb(e){return function(){return e}}$o.exports=Kb});var Fo=a((Ik,Do)=>{"use strict";function Jb(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),u=o.length;u--;){var c=o[e?u:++i];if(r(s[c],c,s)===!1)break}return t}}Do.exports=Jb});var Vo=a((Sk,Lo)=>{"use strict";var Hb=Fo(),Wb=Hb();Lo.exports=Wb});var or=a((Ak,Uo)=>{"use strict";var Yb=Vo(),Zb=te();function Xb(e,t){return e&&Yb(e,t,Zb)}Uo.exports=Xb});var Go=a((Pk,Bo)=>{"use strict";var Qb=ee();function ew(e,t){return function(r,n){if(r==null)return r;if(!Qb(r))return e(r,n);for(var i=r.length,s=t?i:-1,o=Object(r);(t?s--:++s<i)&&n(o[s],s,o)!==!1;);return r}}Bo.exports=ew});var De=a((kk,zo)=>{"use strict";var tw=or(),rw=Go(),nw=rw(tw);zo.exports=nw});var Fe=a((Ek,Ko)=>{"use strict";function iw(e){return e}Ko.exports=iw});var Ho=a((Ok,Jo)=>{"use strict";var sw=Fe();function ow(e){return typeof e=="function"?e:sw}Jo.exports=ow});var Yo=a((_k,Wo)=>{"use strict";var aw=Qe(),uw=De(),cw=Ho(),lw=N();function fw(e,t){var r=lw(e)?aw:uw;return r(e,cw(t))}Wo.exports=fw});var Xo=a((Tk,Zo)=>{"use strict";Zo.exports=Yo()});var ea=a((jk,Qo)=>{"use strict";var pw=De();function dw(e,t){var r=[];return pw(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}Qo.exports=dw});var ra=a((Rk,ta)=>{"use strict";var yw="__lodash_hash_undefined__";function mw(e){return this.__data__.set(e,yw),this}ta.exports=mw});var ia=a((Nk,na)=>{"use strict";function gw(e){return this.__data__.has(e)}na.exports=gw});var ar=a((Ck,sa)=>{"use strict";var hw=Ze(),bw=ra(),ww=ia();function lt(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new hw;++t<r;)this.add(e[t])}lt.prototype.add=lt.prototype.push=bw;lt.prototype.has=ww;sa.exports=lt});var aa=a((Mk,oa)=>{"use strict";function vw(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}oa.exports=vw});var ur=a(($k,ua)=>{"use strict";function xw(e,t){return e.has(t)}ua.exports=xw});var cr=a((Dk,ca)=>{"use strict";var qw=ar(),Iw=aa(),Sw=ur(),Aw=1,Pw=2;function kw(e,t,r,n,i,s){var o=r&Aw,u=e.length,c=t.length;if(u!=c&&!(o&&c>u))return!1;var f=s.get(e),p=s.get(t);if(f&&p)return f==t&&p==e;var h=-1,l=!0,w=r&Pw?new qw:void 0;for(s.set(e,t),s.set(t,e);++h<u;){var m=e[h],g=t[h];if(n)var d=o?n(g,m,h,t,e,s):n(m,g,h,e,t,s);if(d!==void 0){if(d)continue;l=!1;break}if(w){if(!Iw(t,function(y,v){if(!Sw(w,v)&&(m===y||i(m,y,r,n,s)))return w.push(v)})){l=!1;break}}else if(!(m===g||i(m,g,r,n,s))){l=!1;break}}return s.delete(e),s.delete(t),l}ca.exports=kw});var fa=a((Fk,la)=>{"use strict";function Ew(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}la.exports=Ew});var ft=a((Lk,pa)=>{"use strict";function Ow(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}pa.exports=Ow});var ha=a((Vk,ga)=>{"use strict";var da=oe(),ya=nr(),_w=We(),Tw=cr(),jw=fa(),Rw=ft(),Nw=1,Cw=2,Mw="[object Boolean]",$w="[object Date]",Dw="[object Error]",Fw="[object Map]",Lw="[object Number]",Vw="[object RegExp]",Uw="[object Set]",Bw="[object String]",Gw="[object Symbol]",zw="[object ArrayBuffer]",Kw="[object DataView]",ma=da?da.prototype:void 0,lr=ma?ma.valueOf:void 0;function Jw(e,t,r,n,i,s,o){switch(r){case Kw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case zw:return!(e.byteLength!=t.byteLength||!s(new ya(e),new ya(t)));case Mw:case $w:case Lw:return _w(+e,+t);case Dw:return e.name==t.name&&e.message==t.message;case Vw:case Bw:return e==t+"";case Fw:var u=jw;case Uw:var c=n&Nw;if(u||(u=Rw),e.size!=t.size&&!c)return!1;var f=o.get(e);if(f)return f==t;n|=Cw,o.set(e,t);var p=Tw(u(e),u(t),n,i,s,o);return o.delete(e),p;case Gw:if(lr)return lr.call(e)==lr.call(t)}return!1}ga.exports=Jw});var va=a((Uk,wa)=>{"use strict";var ba=Yt(),Hw=1,Ww=Object.prototype,Yw=Ww.hasOwnProperty;function Zw(e,t,r,n,i,s){var o=r&Hw,u=ba(e),c=u.length,f=ba(t),p=f.length;if(c!=p&&!o)return!1;for(var h=c;h--;){var l=u[h];if(!(o?l in t:Yw.call(t,l)))return!1}var w=s.get(e),m=s.get(t);if(w&&m)return w==t&&m==e;var g=!0;s.set(e,t),s.set(t,e);for(var d=o;++h<c;){l=u[h];var y=e[l],v=t[l];if(n)var x=o?n(v,y,l,t,e,s):n(y,v,l,e,t,s);if(!(x===void 0?y===v||i(y,v,r,n,s):x)){g=!1;break}d||(d=l=="constructor")}if(g&&!d){var E=e.constructor,O=t.constructor;E!=O&&"constructor"in e&&"constructor"in t&&!(typeof E=="function"&&E instanceof E&&typeof O=="function"&&O instanceof O)&&(g=!1)}return s.delete(e),s.delete(t),g}wa.exports=Zw});var Ea=a((Bk,ka)=>{"use strict";var fr=Xe(),Xw=cr(),Qw=ha(),ev=va(),xa=ce(),qa=N(),Ia=he(),tv=Ce(),rv=1,Sa="[object Arguments]",Aa="[object Array]",pt="[object Object]",nv=Object.prototype,Pa=nv.hasOwnProperty;function iv(e,t,r,n,i,s){var o=qa(e),u=qa(t),c=o?Aa:xa(e),f=u?Aa:xa(t);c=c==Sa?pt:c,f=f==Sa?pt:f;var p=c==pt,h=f==pt,l=c==f;if(l&&Ia(e)){if(!Ia(t))return!1;o=!0,p=!1}if(l&&!p)return s||(s=new fr),o||tv(e)?Xw(e,t,r,n,i,s):Qw(e,t,c,r,n,i,s);if(!(r&rv)){var w=p&&Pa.call(e,"__wrapped__"),m=h&&Pa.call(t,"__wrapped__");if(w||m){var g=w?e.value():e,d=m?t.value():t;return s||(s=new fr),i(g,d,r,n,s)}}return l?(s||(s=new fr),ev(e,t,r,n,i,s)):!1}ka.exports=iv});var pr=a((Gk,Ta)=>{"use strict";var sv=Ea(),Oa=K();function _a(e,t,r,n,i){return e===t?!0:e==null||t==null||!Oa(e)&&!Oa(t)?e!==e&&t!==t:sv(e,t,r,n,_a,i)}Ta.exports=_a});var Ra=a((zk,ja)=>{"use strict";var ov=Xe(),av=pr(),uv=1,cv=2;function lv(e,t,r,n){var i=r.length,s=i,o=!n;if(e==null)return!s;for(e=Object(e);i--;){var u=r[i];if(o&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<s;){u=r[i];var c=u[0],f=e[c],p=u[1];if(o&&u[2]){if(f===void 0&&!(c in e))return!1}else{var h=new ov;if(n)var l=n(f,p,c,e,t,h);if(!(l===void 0?av(p,f,uv|cv,n,h):l))return!1}}return!0}ja.exports=lv});var dr=a((Kk,Na)=>{"use strict";var fv=X();function pv(e){return e===e&&!fv(e)}Na.exports=pv});var Ma=a((Jk,Ca)=>{"use strict";var dv=dr(),yv=te();function mv(e){for(var t=yv(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,dv(i)]}return t}Ca.exports=mv});var yr=a((Hk,$a)=>{"use strict";function gv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}$a.exports=gv});var Fa=a((Wk,Da)=>{"use strict";var hv=Ra(),bv=Ma(),wv=yr();function vv(e){var t=bv(e);return t.length==1&&t[0][2]?wv(t[0][0],t[0][1]):function(r){return r===e||hv(r,e,t)}}Da.exports=vv});var dt=a((Yk,La)=>{"use strict";var xv=ae(),qv=K(),Iv="[object Symbol]";function Sv(e){return typeof e=="symbol"||qv(e)&&xv(e)==Iv}La.exports=Sv});var yt=a((Zk,Va)=>{"use strict";var Av=N(),Pv=dt(),kv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ev=/^\w*$/;function Ov(e,t){if(Av(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Pv(e)?!0:Ev.test(e)||!kv.test(e)||t!=null&&e in Object(t)}Va.exports=Ov});var Ga=a((Xk,Ba)=>{"use strict";var Ua=Ze(),_v="Expected a function";function mr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(_v);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o)||s,o};return r.cache=new(mr.Cache||Ua),r}mr.Cache=Ua;Ba.exports=mr});var Ka=a((Qk,za)=>{"use strict";var Tv=Ga(),jv=500;function Rv(e){var t=Tv(e,function(n){return r.size===jv&&r.clear(),n}),r=t.cache;return t}za.exports=Rv});var Ha=a((eE,Ja)=>{"use strict";var Nv=Ka(),Cv=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mv=/\\(\\)?/g,$v=Nv(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Cv,function(r,n,i,s){t.push(i?s.replace(Mv,"$1"):n||r)}),t});Ja.exports=$v});var mt=a((tE,Wa)=>{"use strict";function Dv(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}Wa.exports=Dv});var tu=a((rE,eu)=>{"use strict";var Ya=oe(),Fv=mt(),Lv=N(),Vv=dt(),Uv=1/0,Za=Ya?Ya.prototype:void 0,Xa=Za?Za.toString:void 0;function Qa(e){if(typeof e=="string")return e;if(Lv(e))return Fv(e,Qa)+"";if(Vv(e))return Xa?Xa.call(e):"";var t=e+"";return t=="0"&&1/e==-Uv?"-0":t}eu.exports=Qa});var nu=a((nE,ru)=>{"use strict";var Bv=tu();function Gv(e){return e==null?"":Bv(e)}ru.exports=Gv});var gr=a((iE,iu)=>{"use strict";var zv=N(),Kv=yt(),Jv=Ha(),Hv=nu();function Wv(e,t){return zv(e)?e:Kv(e,t)?[e]:Jv(Hv(e))}iu.exports=Wv});var Le=a((sE,su)=>{"use strict";var Yv=dt(),Zv=1/0;function Xv(e){if(typeof e=="string"||Yv(e))return e;var t=e+"";return t=="0"&&1/e==-Zv?"-0":t}su.exports=Xv});var hr=a((oE,ou)=>{"use strict";var Qv=gr(),ex=Le();function tx(e,t){t=Qv(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[ex(t[r++])];return r&&r==n?e:void 0}ou.exports=tx});var uu=a((aE,au)=>{"use strict";var rx=hr();function nx(e,t,r){var n=e==null?void 0:rx(e,t);return n===void 0?r:n}au.exports=nx});var lu=a((uE,cu)=>{"use strict";function ix(e,t){return e!=null&&t in Object(e)}cu.exports=ix});var br=a((cE,fu)=>{"use strict";var sx=gr(),ox=Te(),ax=N(),ux=Ut(),cx=et(),lx=Le();function fx(e,t,r){t=sx(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var o=lx(t[n]);if(!(s=e!=null&&r(e,o)))break;e=e[o]}return s||++n!=i?s:(i=e==null?0:e.length,!!i&&cx(i)&&ux(o,i)&&(ax(e)||ox(e)))}fu.exports=fx});var du=a((lE,pu)=>{"use strict";var px=lu(),dx=br();function yx(e,t){return e!=null&&dx(e,t,px)}pu.exports=yx});var mu=a((fE,yu)=>{"use strict";var mx=pr(),gx=uu(),hx=du(),bx=yt(),wx=dr(),vx=yr(),xx=Le(),qx=1,Ix=2;function Sx(e,t){return bx(e)&&wx(t)?vx(xx(e),t):function(r){var n=gx(r,e);return n===void 0&&n===t?hx(r,e):mx(t,n,qx|Ix)}}yu.exports=Sx});var wr=a((pE,gu)=>{"use strict";function Ax(e){return function(t){return t?.[e]}}gu.exports=Ax});var bu=a((dE,hu)=>{"use strict";var Px=hr();function kx(e){return function(t){return Px(t,e)}}hu.exports=kx});var vu=a((yE,wu)=>{"use strict";var Ex=wr(),Ox=bu(),_x=yt(),Tx=Le();function jx(e){return _x(e)?Ex(Tx(e)):Ox(e)}wu.exports=jx});var Ve=a((mE,xu)=>{"use strict";var Rx=Fa(),Nx=mu(),Cx=Fe(),Mx=N(),$x=vu();function Dx(e){return typeof e=="function"?e:e==null?Cx:typeof e=="object"?Mx(e)?Nx(e[0],e[1]):Rx(e):$x(e)}xu.exports=Dx});var Iu=a((gE,qu)=>{"use strict";var Fx=Kt(),Lx=ea(),Vx=Ve(),Ux=N();function Bx(e,t){var r=Ux(e)?Fx:Lx;return r(e,Vx(t,3))}qu.exports=Bx});var Au=a((hE,Su)=>{"use strict";var Gx=Object.prototype,zx=Gx.hasOwnProperty;function Kx(e,t){return e!=null&&zx.call(e,t)}Su.exports=Kx});var ku=a((bE,Pu)=>{"use strict";var Jx=Au(),Hx=br();function Wx(e,t){return e!=null&&Hx(e,t,Jx)}Pu.exports=Wx});var Ou=a((wE,Eu)=>{"use strict";var Yx=nt(),Zx=ce(),Xx=Te(),Qx=N(),eq=ee(),tq=he(),rq=Me(),nq=Ce(),iq="[object Map]",sq="[object Set]",oq=Object.prototype,aq=oq.hasOwnProperty;function uq(e){if(e==null)return!0;if(eq(e)&&(Qx(e)||typeof e=="string"||typeof e.splice=="function"||tq(e)||nq(e)||Xx(e)))return!e.length;var t=Zx(e);if(t==iq||t==sq)return!e.size;if(rq(e))return!Yx(e).length;for(var r in e)if(aq.call(e,r))return!1;return!0}Eu.exports=uq});var Tu=a((vE,_u)=>{"use strict";function cq(e){return e===void 0}_u.exports=cq});var Ru=a((xE,ju)=>{"use strict";var lq=De(),fq=ee();function pq(e,t){var r=-1,n=fq(e)?Array(e.length):[];return lq(e,function(i,s,o){n[++r]=t(i,s,o)}),n}ju.exports=pq});var Cu=a((qE,Nu)=>{"use strict";var dq=mt(),yq=Ve(),mq=Ru(),gq=N();function hq(e,t){var r=gq(e)?dq:mq;return r(e,yq(t,3))}Nu.exports=hq});var $u=a((IE,Mu)=>{"use strict";function bq(e,t,r,n){var i=-1,s=e==null?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}Mu.exports=bq});var Fu=a((SE,Du)=>{"use strict";function wq(e,t,r,n,i){return i(e,function(s,o,u){r=n?(n=!1,s):t(r,s,o,u)}),r}Du.exports=wq});var Vu=a((AE,Lu)=>{"use strict";var vq=$u(),xq=De(),qq=Ve(),Iq=Fu(),Sq=N();function Aq(e,t,r){var n=Sq(e)?vq:Iq,i=arguments.length<3;return n(e,qq(t,4),r,i,xq)}Lu.exports=Aq});var Bu=a((PE,Uu)=>{"use strict";var Pq=ae(),kq=N(),Eq=K(),Oq="[object String]";function _q(e){return typeof e=="string"||!kq(e)&&Eq(e)&&Pq(e)==Oq}Uu.exports=_q});var zu=a((kE,Gu)=>{"use strict";var Tq=wr(),jq=Tq("length");Gu.exports=jq});var Ju=a((EE,Ku)=>{"use strict";var Rq="\\ud800-\\udfff",Nq="\\u0300-\\u036f",Cq="\\ufe20-\\ufe2f",Mq="\\u20d0-\\u20ff",$q=Nq+Cq+Mq,Dq="\\ufe0e\\ufe0f",Fq="\\u200d",Lq=RegExp("["+Fq+Rq+$q+Dq+"]");function Vq(e){return Lq.test(e)}Ku.exports=Vq});var rc=a((OE,tc)=>{"use strict";var Wu="\\ud800-\\udfff",Uq="\\u0300-\\u036f",Bq="\\ufe20-\\ufe2f",Gq="\\u20d0-\\u20ff",zq=Uq+Bq+Gq,Kq="\\ufe0e\\ufe0f",Jq="["+Wu+"]",vr="["+zq+"]",xr="\\ud83c[\\udffb-\\udfff]",Hq="(?:"+vr+"|"+xr+")",Yu="[^"+Wu+"]",Zu="(?:\\ud83c[\\udde6-\\uddff]){2}",Xu="[\\ud800-\\udbff][\\udc00-\\udfff]",Wq="\\u200d",Qu=Hq+"?",ec="["+Kq+"]?",Yq="(?:"+Wq+"(?:"+[Yu,Zu,Xu].join("|")+")"+ec+Qu+")*",Zq=ec+Qu+Yq,Xq="(?:"+[Yu+vr+"?",vr,Zu,Xu,Jq].join("|")+")",Hu=RegExp(xr+"(?="+xr+")|"+Xq+Zq,"g");function Qq(e){for(var t=Hu.lastIndex=0;Hu.test(e);)++t;return t}tc.exports=Qq});var ic=a((_E,nc)=>{"use strict";var eI=zu(),tI=Ju(),rI=rc();function nI(e){return tI(e)?rI(e):eI(e)}nc.exports=nI});var oc=a((TE,sc)=>{"use strict";var iI=nt(),sI=ce(),oI=ee(),aI=Bu(),uI=ic(),cI="[object Map]",lI="[object Set]";function fI(e){if(e==null)return 0;if(oI(e))return aI(e)?uI(e):e.length;var t=sI(e);return t==cI||t==lI?e.size:iI(e).length}sc.exports=fI});var uc=a((jE,ac)=>{"use strict";var pI=Qe(),dI=ir(),yI=or(),mI=Ve(),gI=at(),hI=N(),bI=he(),wI=ke(),vI=X(),xI=Ce();function qI(e,t,r){var n=hI(e),i=n||bI(e)||xI(e);if(t=mI(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:vI(e)?r=wI(s)?dI(gI(e)):{}:r={}}return(i?pI:yI)(e,function(o,u,c){return t(r,o,u,c)}),r}ac.exports=qI});var pc=a((RE,fc)=>{"use strict";var cc=oe(),II=Te(),SI=N(),lc=cc?cc.isConcatSpreadable:void 0;function AI(e){return SI(e)||II(e)||!!(lc&&e&&e[lc])}fc.exports=AI});var mc=a((NE,yc)=>{"use strict";var PI=ot(),kI=pc();function dc(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=kI),i||(i=[]);++s<o;){var u=e[s];t>0&&r(u)?t>1?dc(u,t-1,r,n,i):PI(i,u):n||(i[i.length]=u)}return i}yc.exports=dc});var hc=a((CE,gc)=>{"use strict";function EI(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}gc.exports=EI});var vc=a((ME,wc)=>{"use strict";var OI=hc(),bc=Math.max;function _I(e,t,r){return t=bc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=bc(n.length-t,0),o=Array(s);++i<s;)o[i]=n[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=n[i];return u[t]=r(o),OI(e,this,u)}}wc.exports=_I});var Ic=a(($E,qc)=>{"use strict";var TI=sr(),xc=Ft(),jI=Fe(),RI=xc?function(e,t){return xc(e,"toString",{configurable:!0,enumerable:!1,value:TI(t),writable:!0})}:jI;qc.exports=RI});var Ac=a((DE,Sc)=>{"use strict";var NI=800,CI=16,MI=Date.now;function $I(e){var t=0,r=0;return function(){var n=MI(),i=CI-(n-r);if(r=n,i>0){if(++t>=NI)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}Sc.exports=$I});var kc=a((FE,Pc)=>{"use strict";var DI=Ic(),FI=Ac(),LI=FI(DI);Pc.exports=LI});var Oc=a((LE,Ec)=>{"use strict";var VI=Fe(),UI=vc(),BI=kc();function GI(e,t){return BI(UI(e,t,VI),e+"")}Ec.exports=GI});var Tc=a((VE,_c)=>{"use strict";function zI(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}_c.exports=zI});var Rc=a((UE,jc)=>{"use strict";function KI(e){return e!==e}jc.exports=KI});var Cc=a((BE,Nc)=>{"use strict";function JI(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}Nc.exports=JI});var $c=a((GE,Mc)=>{"use strict";var HI=Tc(),WI=Rc(),YI=Cc();function ZI(e,t,r){return t===t?YI(e,t,r):HI(e,WI,r)}Mc.exports=ZI});var Fc=a((zE,Dc)=>{"use strict";var XI=$c();function QI(e,t){var r=e==null?0:e.length;return!!r&&XI(e,t,0)>-1}Dc.exports=QI});var Vc=a((KE,Lc)=>{"use strict";function eS(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Lc.exports=eS});var Bc=a((JE,Uc)=>{"use strict";function tS(){}Uc.exports=tS});var zc=a((HE,Gc)=>{"use strict";var qr=Zt(),rS=Bc(),nS=ft(),iS=1/0,sS=qr&&1/nS(new qr([,-0]))[1]==iS?function(e){return new qr(e)}:rS;Gc.exports=sS});var Jc=a((WE,Kc)=>{"use strict";var oS=ar(),aS=Fc(),uS=Vc(),cS=ur(),lS=zc(),fS=ft(),pS=200;function dS(e,t,r){var n=-1,i=aS,s=e.length,o=!0,u=[],c=u;if(r)o=!1,i=uS;else if(s>=pS){var f=t?null:lS(e);if(f)return fS(f);o=!1,i=cS,c=new oS}else c=t?[]:u;e:for(;++n<s;){var p=e[n],h=t?t(p):p;if(p=r||p!==0?p:0,o&&h===h){for(var l=c.length;l--;)if(c[l]===h)continue e;t&&c.push(h),u.push(p)}else i(c,h,r)||(c!==u&&c.push(h),u.push(p))}return u}Kc.exports=dS});var Wc=a((YE,Hc)=>{"use strict";var yS=ee(),mS=K();function gS(e){return mS(e)&&yS(e)}Hc.exports=gS});var Zc=a((ZE,Yc)=>{"use strict";var hS=mc(),bS=Oc(),wS=Jc(),vS=Wc(),xS=bS(function(e){return wS(hS(e,1,vS,!0))});Yc.exports=xS});var Qc=a((XE,Xc)=>{"use strict";var qS=mt();function IS(e,t){return qS(t,function(r){return e[r]})}Xc.exports=IS});var tl=a((QE,el)=>{"use strict";var SS=Qc(),AS=te();function PS(e){return e==null?[]:SS(e,AS(e))}el.exports=PS});var $=a((eO,rl)=>{"use strict";var gt;if(typeof Jr=="function")try{gt={clone:Mo(),constant:sr(),each:Xo(),filter:Iu(),has:ku(),isArray:N(),isEmpty:Ou(),isFunction:ke(),isUndefined:Tu(),keys:te(),map:Cu(),reduce:Vu(),size:oc(),transform:uc(),union:Zc(),values:tl()}}catch{}gt||(gt=window._);rl.exports=gt});var ht=a((rO,ol)=>{"use strict";var S=$();ol.exports=k;var kS="\0",le="\0",nl="";function k(e){this._isDirected=S.has(e,"directed")?e.directed:!0,this._isMultigraph=S.has(e,"multigraph")?e.multigraph:!1,this._isCompound=S.has(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=S.constant(void 0),this._defaultEdgeLabelFn=S.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[le]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}k.prototype._nodeCount=0;k.prototype._edgeCount=0;k.prototype.isDirected=function(){return this._isDirected};k.prototype.isMultigraph=function(){return this._isMultigraph};k.prototype.isCompound=function(){return this._isCompound};k.prototype.setGraph=function(e){return this._label=e,this};k.prototype.graph=function(){return this._label};k.prototype.setDefaultNodeLabel=function(e){return S.isFunction(e)||(e=S.constant(e)),this._defaultNodeLabelFn=e,this};k.prototype.nodeCount=function(){return this._nodeCount};k.prototype.nodes=function(){return S.keys(this._nodes)};k.prototype.sources=function(){var e=this;return S.filter(this.nodes(),function(t){return S.isEmpty(e._in[t])})};k.prototype.sinks=function(){var e=this;return S.filter(this.nodes(),function(t){return S.isEmpty(e._out[t])})};k.prototype.setNodes=function(e,t){var r=arguments,n=this;return S.each(e,function(i){r.length>1?n.setNode(i,t):n.setNode(i)}),this};k.prototype.setNode=function(e,t){return S.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=le,this._children[e]={},this._children[le][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)};k.prototype.node=function(e){return this._nodes[e]};k.prototype.hasNode=function(e){return S.has(this._nodes,e)};k.prototype.removeNode=function(e){var t=this;if(S.has(this._nodes,e)){var r=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],S.each(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),S.each(S.keys(this._in[e]),r),delete this._in[e],delete this._preds[e],S.each(S.keys(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this};k.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(S.isUndefined(t))t=le;else{t+="";for(var r=t;!S.isUndefined(r);r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this};k.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]};k.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==le)return t}};k.prototype.children=function(e){if(S.isUndefined(e)&&(e=le),this._isCompound){var t=this._children[e];if(t)return S.keys(t)}else{if(e===le)return this.nodes();if(this.hasNode(e))return[]}};k.prototype.predecessors=function(e){var t=this._preds[e];if(t)return S.keys(t)};k.prototype.successors=function(e){var t=this._sucs[e];if(t)return S.keys(t)};k.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return S.union(t,this.successors(e))};k.prototype.isLeaf=function(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0};k.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var r=this;S.each(this._nodes,function(s,o){e(o)&&t.setNode(o,s)}),S.each(this._edgeObjs,function(s){t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,r.edge(s))});var n={};function i(s){var o=r.parent(s);return o===void 0||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:i(o)}return this._isCompound&&S.each(t.nodes(),function(s){t.setParent(s,i(s))}),t};k.prototype.setDefaultEdgeLabel=function(e){return S.isFunction(e)||(e=S.constant(e)),this._defaultEdgeLabelFn=e,this};k.prototype.edgeCount=function(){return this._edgeCount};k.prototype.edges=function(){return S.values(this._edgeObjs)};k.prototype.setPath=function(e,t){var r=this,n=arguments;return S.reduce(e,function(i,s){return n.length>1?r.setEdge(i,s,t):r.setEdge(i,s),s}),this};k.prototype.setEdge=function(){var e,t,r,n,i=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,t=s.w,r=s.name,arguments.length===2&&(n=arguments[1],i=!0)):(e=s,t=arguments[1],r=arguments[3],arguments.length>2&&(n=arguments[2],i=!0)),e=""+e,t=""+t,S.isUndefined(r)||(r=""+r);var o=Ue(this._isDirected,e,t,r);if(S.has(this._edgeLabels,o))return i&&(this._edgeLabels[o]=n),this;if(!S.isUndefined(r)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[o]=i?n:this._defaultEdgeLabelFn(e,t,r);var u=ES(this._isDirected,e,t,r);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[o]=u,il(this._preds[t],e),il(this._sucs[e],t),this._in[t][o]=u,this._out[e][o]=u,this._edgeCount++,this};k.prototype.edge=function(e,t,r){var n=arguments.length===1?Ir(this._isDirected,arguments[0]):Ue(this._isDirected,e,t,r);return this._edgeLabels[n]};k.prototype.hasEdge=function(e,t,r){var n=arguments.length===1?Ir(this._isDirected,arguments[0]):Ue(this._isDirected,e,t,r);return S.has(this._edgeLabels,n)};k.prototype.removeEdge=function(e,t,r){var n=arguments.length===1?Ir(this._isDirected,arguments[0]):Ue(this._isDirected,e,t,r),i=this._edgeObjs[n];return i&&(e=i.v,t=i.w,delete this._edgeLabels[n],delete this._edgeObjs[n],sl(this._preds[t],e),sl(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this};k.prototype.inEdges=function(e,t){var r=this._in[e];if(r){var n=S.values(r);return t?S.filter(n,function(i){return i.v===t}):n}};k.prototype.outEdges=function(e,t){var r=this._out[e];if(r){var n=S.values(r);return t?S.filter(n,function(i){return i.w===t}):n}};k.prototype.nodeEdges=function(e,t){var r=this.inEdges(e,t);if(r)return r.concat(this.outEdges(e,t))};function il(e,t){e[t]?e[t]++:e[t]=1}function sl(e,t){--e[t]||delete e[t]}function Ue(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}return i+nl+s+nl+(S.isUndefined(n)?kS:n)}function ES(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}var u={v:i,w:s};return n&&(u.name=n),u}function Ir(e,t){return Ue(e,t.v,t.w,t.name)}});var ul=a((nO,al)=>{"use strict";al.exports="2.1.8"});var ll=a((iO,cl)=>{"use strict";cl.exports={Graph:ht(),version:ul()}});var pl=a((sO,fl)=>{"use strict";var J=$(),OS=ht();fl.exports={write:_S,read:RS};function _S(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:TS(e),edges:jS(e)};return J.isUndefined(e.graph())||(t.value=J.clone(e.graph())),t}function TS(e){return J.map(e.nodes(),function(t){var r=e.node(t),n=e.parent(t),i={v:t};return J.isUndefined(r)||(i.value=r),J.isUndefined(n)||(i.parent=n),i})}function jS(e){return J.map(e.edges(),function(t){var r=e.edge(t),n={v:t.v,w:t.w};return J.isUndefined(t.name)||(n.name=t.name),J.isUndefined(r)||(n.value=r),n})}function RS(e){var t=new OS(e.options).setGraph(e.value);return J.each(e.nodes,function(r){t.setNode(r.v,r.value),r.parent&&t.setParent(r.v,r.parent)}),J.each(e.edges,function(r){t.setEdge({v:r.v,w:r.w,name:r.name},r.value)}),t}});var yl=a((oO,dl)=>{"use strict";var bt=$();dl.exports=NS;function NS(e){var t={},r=[],n;function i(s){bt.has(t,s)||(t[s]=!0,n.push(s),bt.each(e.successors(s),i),bt.each(e.predecessors(s),i))}return bt.each(e.nodes(),function(s){n=[],i(s),n.length&&r.push(n)}),r}});var Sr=a((aO,gl)=>{"use strict";var ml=$();gl.exports=F;function F(){this._arr=[],this._keyIndices={}}F.prototype.size=function(){return this._arr.length};F.prototype.keys=function(){return this._arr.map(function(e){return e.key})};F.prototype.has=function(e){return ml.has(this._keyIndices,e)};F.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority};F.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key};F.prototype.add=function(e,t){var r=this._keyIndices;if(e=String(e),!ml.has(r,e)){var n=this._arr,i=n.length;return r[e]=i,n.push({key:e,priority:t}),this._decrease(i),!0}return!1};F.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key};F.prototype.decrease=function(e,t){var r=this._keyIndices[e];if(t>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[r].priority+" New: "+t);this._arr[r].priority=t,this._decrease(r)};F.prototype._heapify=function(e){var t=this._arr,r=2*e,n=r+1,i=e;r<t.length&&(i=t[r].priority<t[i].priority?r:i,n<t.length&&(i=t[n].priority<t[i].priority?n:i),i!==e&&(this._swap(e,i),this._heapify(i)))};F.prototype._decrease=function(e){for(var t=this._arr,r=t[e].priority,n;e!==0&&(n=e>>1,!(t[n].priority<r));)this._swap(e,n),e=n};F.prototype._swap=function(e,t){var r=this._arr,n=this._keyIndices,i=r[e],s=r[t];r[e]=s,r[t]=i,n[s.key]=e,n[i.key]=t}});var Ar=a((uO,hl)=>{"use strict";var CS=$(),MS=Sr();hl.exports=DS;var $S=CS.constant(1);function DS(e,t,r,n){return FS(e,String(t),r||$S,n||function(i){return e.outEdges(i)})}function FS(e,t,r,n){var i={},s=new MS,o,u,c=function(f){var p=f.v!==o?f.v:f.w,h=i[p],l=r(f),w=u.distance+l;if(l<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+f+" Weight: "+l);w<h.distance&&(h.distance=w,h.predecessor=o,s.decrease(p,w))};for(e.nodes().forEach(function(f){var p=f===t?0:Number.POSITIVE_INFINITY;i[f]={distance:p},s.add(f,p)});s.size()>0&&(o=s.removeMin(),u=i[o],u.distance!==Number.POSITIVE_INFINITY);)n(o).forEach(c);return i}});var wl=a((cO,bl)=>{"use strict";var LS=Ar(),VS=$();bl.exports=US;function US(e,t,r){return VS.transform(e.nodes(),function(n,i){n[i]=LS(e,i,t,r)},{})}});var Pr=a((lO,xl)=>{"use strict";var vl=$();xl.exports=BS;function BS(e){var t=0,r=[],n={},i=[];function s(o){var u=n[o]={onStack:!0,lowlink:t,index:t++};if(r.push(o),e.successors(o).forEach(function(p){vl.has(n,p)?n[p].onStack&&(u.lowlink=Math.min(u.lowlink,n[p].index)):(s(p),u.lowlink=Math.min(u.lowlink,n[p].lowlink))}),u.lowlink===u.index){var c=[],f;do f=r.pop(),n[f].onStack=!1,c.push(f);while(o!==f);i.push(c)}}return e.nodes().forEach(function(o){vl.has(n,o)||s(o)}),i}});var Il=a((fO,ql)=>{"use strict";var GS=$(),zS=Pr();ql.exports=KS;function KS(e){return GS.filter(zS(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var Al=a((pO,Sl)=>{"use strict";var JS=$();Sl.exports=WS;var HS=JS.constant(1);function WS(e,t,r){return YS(e,t||HS,r||function(n){return e.outEdges(n)})}function YS(e,t,r){var n={},i=e.nodes();return i.forEach(function(s){n[s]={},n[s][s]={distance:0},i.forEach(function(o){s!==o&&(n[s][o]={distance:Number.POSITIVE_INFINITY})}),r(s).forEach(function(o){var u=o.v===s?o.w:o.v,c=t(o);n[s][u]={distance:c,predecessor:s}})}),i.forEach(function(s){var o=n[s];i.forEach(function(u){var c=n[u];i.forEach(function(f){var p=c[s],h=o[f],l=c[f],w=p.distance+h.distance;w<l.distance&&(l.distance=w,l.predecessor=h.predecessor)})})}),n}});var kr=a((dO,kl)=>{"use strict";var Be=$();kl.exports=Pl;Pl.CycleException=wt;function Pl(e){var t={},r={},n=[];function i(s){if(Be.has(r,s))throw new wt;Be.has(t,s)||(r[s]=!0,t[s]=!0,Be.each(e.predecessors(s),i),delete r[s],n.push(s))}if(Be.each(e.sinks(),i),Be.size(t)!==e.nodeCount())throw new wt;return n}function wt(){}wt.prototype=new Error});var _l=a((yO,Ol)=>{"use strict";var El=kr();Ol.exports=ZS;function ZS(e){try{El(e)}catch(t){if(t instanceof El.CycleException)return!1;throw t}return!0}});var Er=a((mO,jl)=>{"use strict";var vt=$();jl.exports=XS;function XS(e,t,r){vt.isArray(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],s={};return vt.each(t,function(o){if(!e.hasNode(o))throw new Error("Graph does not have node: "+o);Tl(e,o,r==="post",s,n,i)}),i}function Tl(e,t,r,n,i,s){vt.has(n,t)||(n[t]=!0,r||s.push(t),vt.each(i(t),function(o){Tl(e,o,r,n,i,s)}),r&&s.push(t))}});var Nl=a((gO,Rl)=>{"use strict";var QS=Er();Rl.exports=eA;function eA(e,t){return QS(e,t,"post")}});var Ml=a((hO,Cl)=>{"use strict";var tA=Er();Cl.exports=rA;function rA(e,t){return tA(e,t,"pre")}});var Fl=a((bO,Dl)=>{"use strict";var $l=$(),nA=ht(),iA=Sr();Dl.exports=sA;function sA(e,t){var r=new nA,n={},i=new iA,s;function o(c){var f=c.v===s?c.w:c.v,p=i.priority(f);if(p!==void 0){var h=t(c);h<p&&(n[f]=s,i.decrease(f,h))}}if(e.nodeCount()===0)return r;$l.each(e.nodes(),function(c){i.add(c,Number.POSITIVE_INFINITY),r.setNode(c)}),i.decrease(e.nodes()[0],0);for(var u=!1;i.size()>0;){if(s=i.removeMin(),$l.has(n,s))r.setEdge(s,n[s]);else{if(u)throw new Error("Input graph is not connected: "+e);u=!0}e.nodeEdges(s).forEach(o)}return r}});var Vl=a((wO,Ll)=>{"use strict";Ll.exports={components:yl(),dijkstra:Ar(),dijkstraAll:wl(),findCycles:Il(),floydWarshall:Al(),isAcyclic:_l(),postorder:Nl(),preorder:Ml(),prim:Fl(),tarjan:Pr(),topsort:kr()}});var Or=a((vO,Bl)=>{"use strict";var Ul=ll();Bl.exports={Graph:Ul.Graph,json:pl(),alg:Vl(),version:Ul.version}});var uf=Hr(Or());var xt=class{constructor(){this.eventListeners=new Map}addEventListener(t,r){this.eventListeners.has(t)||this.eventListeners.set(t,new Set),this.eventListeners.get(t).add(r)}removeEventListener(t,r){this.eventListeners.get(t)?.delete(r)}emitEvent(t){let r=this.eventListeners.get(t.type);if(r)for(let n of r)try{n(t)}catch(i){console.error("Error in data instance event listener:",i)}}};function Gl(e,t,r){let n=e.atoms.length,i=Array.isArray(t?.types)?t.types:[],o=(t?.tuples?.length??0)>0&&i.length!==n;if(!o&&i.length===n)return{tuple:{...e,types:[...i]},relationTypes:[...i]};let u=Array.isArray(e.types)?e.types:[],c=e.atoms.map((f,p)=>r(f)??u[p]??"untyped");return{tuple:{...e,types:c},relationTypes:o?[]:c}}function re(e){if(!Object.prototype.hasOwnProperty.call(e,"$pyretValue"))return;let t=e.$pyretValue;if(t?.kind==="nothing"||t?.kind==="object"||t?.kind==="tuple"||t?.kind==="raw-array"||t?.kind==="table")return{kind:t.kind};if(t?.kind==="reference"&&typeof t.unrestricted=="boolean")return{kind:t.kind,unrestricted:t.unrestricted};if(t?.kind==="string-dict"&&typeof t.mutable=="boolean"&&typeof t.sealed=="boolean"&&(t.mutable||!t.sealed))return{kind:t.kind,mutable:t.mutable,sealed:t.sealed};throw new Error("Malformed reconstructed Pyret value")}function _r(e){if(!e||typeof e!="object"||"dict"in e)return!1;let t=e;return Number.isInteger(t.state)&&"value"in t&&!!t.anns&&Array.isArray(t.anns.anns)&&typeof t.anns.check=="function"&&typeof t.anns.addAnn=="function"&&Object.keys(t).every(r=>r==="state"||r==="value"||r==="anns")}function zl(e){if(_r(e)){if(e.state!==2)throw new Error("Only initialized mutable Pyret references are supported");return{kind:"reference",unrestricted:e.anns.anns.every(t=>t.ann?.name==="Any")}}}function Kl(e){return!!e.dict&&typeof e.dict=="object"&&Object.keys(e.dict).length===0&&typeof e.brand=="function"&&typeof e.extendWith=="function"&&!("updateDict"in e)&&Object.keys(e).every(t=>t==="dict"||t==="brands")}function qt(e){return typeof e=="function"||e!==null&&typeof e=="object"&&("app"in e||"meth"in e&&"full_meth"in e)}function Jl(e,t){let r=[];for(let n in e)(t||!qt(e[n]))&&r.push(n);return r}var It=e=>typeof e=="string"&&/^-?(0|[1-9][0-9]*)$/.test(e);function W(e,t=1n){if(t===0n)throw new Error("Invalid Pyret rational denominator");t<0n&&(e=-e,t=-t);let r=e<0n?-e:e,n=t;for(;n!==0n;){let i=r%n;r=n,n=i}return e/=r,t/=r,t===1n?{version:1,kind:"integer",value:e.toString()}:{version:1,kind:"rational",numerator:e.toString(),denominator:t.toString()}}function Hl(e){let t=e;if(t?.version===1){if(t.kind==="integer"&&It(t.value))return W(BigInt(t.value));if(t.kind==="rational"&&It(t.numerator)&&It(t.denominator))return W(BigInt(t.numerator),BigInt(t.denominator));if(t.kind==="roughnum"&&typeof t.value=="string"&&/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?$/i.test(t.value)&&Number.isFinite(Number(t.value)))return{version:1,kind:"roughnum",value:t.value}}throw new Error("Malformed Pyret number")}function Wl(e){if(e.startsWith("~"))return Hl({version:1,kind:"roughnum",value:e.slice(1)});let t=/^(-?(?:0|[1-9][0-9]*))\/(-?(?:0|[1-9][0-9]*))$/.exec(e);if(t)return W(BigInt(t[1]),BigInt(t[2]));let r=/^(-?(?:0|[1-9][0-9]*))(?:\.([0-9]+))?(?:e([+-]?[0-9]+))?$/i.exec(e);if(!r)throw new Error("Malformed Pyret number label");let n=BigInt(r[3]??"0")-BigInt(r[2]?.length??0),i=BigInt(r[1]+(r[2]??""));return n>=0n?W(i*10n**n):W(i,10n**-n)}function Tr(e){if(typeof e=="number"&&Number.isInteger(e))return BigInt(e).toString();if(typeof e=="bigint")return e.toString();if(!e||typeof e!="object")return;let t=e;if(typeof t.isInteger=="function"&&t.isInteger()&&typeof t.isExact=="function"&&t.isExact()){let r=t.toString();if(It(r))return r}}function Y(e){if(e&&typeof e=="object"){if("$pyretNumber"in e)return Hl(e.$pyretNumber);if("n"in e&&"d"in e){let n=Tr(e.n),i=Tr(e.d);if(n!==void 0&&i!==void 0)return W(BigInt(n),BigInt(i))}let r=e;if(typeof r.isRoughnum=="function"&&r.isRoughnum()){if(typeof r.n!="number"||!Number.isFinite(r.n))throw new Error("Invalid Pyret roughnum");return{version:1,kind:"roughnum",value:Object.is(r.n,-0)?"-0":String(r.n)}}}let t=Tr(e);if(t!==void 0)return W(BigInt(t));if(typeof e=="number"){if(!Number.isFinite(e))throw new Error("Invalid Pyret number");let[r,n="0"]=String(e).split("e"),i=r.split(".")[1]?.length??0,s=Number(n)-i,o=BigInt(r.replace(".",""));return s>=0?W(o*10n**BigInt(s)):W(o,10n**BigInt(-s))}}function St(e){switch(e.kind){case"integer":return e.value;case"rational":return`${e.numerator}/${e.denominator}`;case"roughnum":return`~${e.value}`}}function Yl(e){if(e.kind==="integer"){let t=BigInt(e.value);if(t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER))return Number(t)}return{$pyretNumber:e}}var jr="pyret:field:v1:",Rr="pyret:constructor:v1:";function Zl(e,t,r){return Rr+JSON.stringify([e,t,r])}function U(e){if(!e.startsWith(Rr))return;let t=JSON.parse(e.slice(Rr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!t[0]||!Number.isSafeInteger(t[1])||t[1]<0||typeof t[2]!="string"||!t[2])throw new Error("Malformed Pyret constructor identity");return{scope:t[0],index:t[1],name:t[2]}}function B(e){return U(e)?.name??e}function G(e){let{$name:t,$arity:r}=e;if(typeof t!="string"||!Number.isInteger(r)||r<-1)return;let n=e.$constructor?.$fieldNames;if(r===-1)return{name:t,arity:r,fields:[]};if(!Array.isArray(n)||n.length!==r||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new Error(`Invalid Pyret constructor metadata for ${t}`);let i=e.$mut_fields_mask;if(i!==void 0&&(!Array.isArray(i)||i.length!==r||i.some(o=>typeof o!="boolean")))throw new Error(`Invalid Pyret mutable field mask for ${t}`);let s=i?.flatMap((o,u)=>o?[u]:[])??[];return{name:t,arity:r,fields:n,...s.length?{mutableFields:s}:{}}}function Xl(e,t){return jr+JSON.stringify([e.name,t,e.fields[t]])}function xe(e){if(!e.startsWith(jr))return;let t=JSON.parse(e.slice(jr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!Number.isInteger(t[1])||t[1]<0||typeof t[2]!="string")throw new Error("Malformed Pyret field ID");return{name:t[0],position:t[1],field:t[2]}}var ef=new Set(["Number","String","Boolean"]),Nr=new Set([...ef,"Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);function Ge(e){if(e?.type!=="Index"||!/^(0|[1-9][0-9]*)$/.test(e.label)||!Number.isSafeInteger(Number(e.label)))throw new Error("Malformed Pyret position label");return Number(e.label)}function Ql(e,t,r){if(e.has(t)&&e.get(t)!==r||[...e].some(([n,i])=>n!==t&&i===r))throw new Error("Conflicting Pyret field positions");e.set(t,r)}function ze(e,t){let r=[];for(let n=0;n<e.size;n++){if(!e.has(n))throw new Error(`Incomplete Pyret ${t}: positions must be contiguous from zero`);r.push(e.get(n))}return r}function oA(e){let t={fields:new Map,targets:new Set,constructors:new Map,objectPositions:new Map,elements:new Map,columns:new Map,rows:new Map,references:new Map,entries:new Map,mutableFields:new Map,sealed:new Set,unrestricted:new Set,nullary:new Set},r=new Map(e.getAtoms().map(n=>[n.id,n]));for(let n of e.getRelations()){let i=xe(n.id);if(i){if(n.name!==i.field)throw new Error("Pyret field ID disagrees with its name");let s=t.constructors.get(i.name)??new Map;Ql(s,i.field,i.position),t.constructors.set(i.name,s)}for(let s of n.tuples){if(!s.atoms.length||s.atoms.some(g=>!r.has(g)))throw new Error("Malformed Pyret relation tuple");let[o,u,c,f]=s.atoms,p=r.get(o).type,h=s.atoms.length;for(let g of s.atoms.slice(1))t.targets.add(g);if(!i&&p!=="Object"){if(n.name==="sealed"&&p==="MutableStringDict"){if(h!==1)throw new Error("Malformed Pyret sealed fact");t.sealed.add(o);continue}if(n.name==="unrestricted"&&p==="Reference"){if(h!==1)throw new Error("Malformed Pyret unrestricted fact");t.unrestricted.add(o);continue}if(n.name==="nullary-constructor"&&!Nr.has(p)){if(h!==1)throw new Error("Malformed Pyret nullary constructor fact");t.nullary.add(o);continue}if(n.name==="mutable-field"&&!Nr.has(p)){if(h!==2)throw new Error("Malformed Pyret mutable field positions");let g=t.mutableFields.get(o)??new Set;g.add(Ge(r.get(u))),t.mutableFields.set(o,g);continue}}if(h<2)throw new Error("Malformed Pyret unary relation");if(p==="Table"){if(i)throw new Error("Pyret table relations must have opaque IDs");let g=Ge(r.get(u));if(n.name==="column"&&h===3&&r.get(c)?.type==="String"){let d=t.columns.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret table column positions");d.set(g,c),t.columns.set(o,d)}else if(n.name==="row"){let d=t.rows.get(o)??new Map,y=s.atoms.slice(2);if(d.has(g)&&JSON.stringify(d.get(g))!==JSON.stringify(y))throw new Error("Conflicting Pyret table row positions");if(y.some(v=>r.get(v)?.type==="Index"))throw new Error("Pyret table cells cannot be positions");d.set(g,y),t.rows.set(o,d)}else throw new Error("Malformed Pyret table relation");continue}if(p==="StringDict"||p==="MutableStringDict"){if(n.name!=="entry"||h!==4||r.get(c)?.type!=="String")throw new Error("Malformed Pyret dictionary entry");let g=Ge(r.get(u)),d=t.entries.get(o)??new Map,y=d.get(g);if(y&&(y.key!==c||y.value!==f))throw new Error("Conflicting Pyret dictionary entry positions");d.set(g,{key:c,value:f}),t.entries.set(o,d);continue}if(p==="Reference"){if(n.name!=="target"||h!==2)throw new Error("Malformed Pyret reference target");if(t.references.has(o)&&t.references.get(o)!==u)throw new Error("Conflicting Pyret reference targets");t.references.set(o,u);continue}if(p==="Tuple"||p==="RawArray"){if(n.name!=="element"||h!==3)throw new Error("Malformed Pyret indexed element");let g=Ge(r.get(u)),d=t.elements.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret element positions");d.set(g,c),t.elements.set(o,d);continue}if(Nr.has(p)&&p!=="Object")throw new Error("Pyret primitive cannot have fields");if(i&&(p!==i.name||h!==2))throw new Error("Pyret field ID disagrees with its source constructor");if(p==="Object"){if(h!==3||i)throw new Error("Pyret object field must have a position and one value");let g=t.objectPositions.get(o)??new Map;Ql(g,n.name,Ge(r.get(u))),t.objectPositions.set(o,g)}let l=t.fields.get(o)??new Map,w=i?.field??n.name,m=l.get(w)??[];for(let g of p==="Object"?[c]:s.atoms.slice(1))m.includes(g)||m.push(g);l.set(w,m),t.fields.set(o,l)}}return t}function aA(e,t){switch(e.type){case"Nothing":return{kind:"nothing"};case"Object":return{kind:"object"};case"Tuple":return{kind:"tuple"};case"RawArray":return{kind:"raw-array"};case"Table":return{kind:"table"};case"Reference":return{kind:"reference",unrestricted:t.unrestricted.has(e.id)};case"StringDict":case"MutableStringDict":return{kind:"string-dict",mutable:e.type==="MutableStringDict",sealed:t.sealed.has(e.id)};default:return}}function uA(e){switch(e.type){case"Number":return Yl(Wl(e.label));case"Boolean":if(e.label!=="true"&&e.label!=="false")throw new Error("Malformed Pyret boolean label");return e.label==="true";default:return e.label}}function Cr(e,t){let r=/^\d+$/.test(e),n=/^\d+$/.test(t);return r&&n?parseInt(e,10)-parseInt(t,10):e.localeCompare(t)}function cA(e,t){let n=ne.getGlobalConstructorCache().get(e);if(n&&n.length){let i=n.filter(o=>t.includes(o)),s=t.filter(o=>!n.includes(o));return[...i,...s.sort(Cr)]}return[...t].sort(Cr)}function lA(e){return e.length>0&&e.every(t=>/^\d+$/.test(t))}function Mr(e,t,r={}){let n=At(e,t===void 0?void 0:[t],r);return n.length?n[0]:null}function At(e,t,r={}){let n=new Map(e.getAtoms().map(y=>[y.id,y])),i=oA(e),{fields:s,targets:o,elements:u,references:c,entries:f}=i,p=new Map,h=0,l=new Set,w=new Map,m=y=>{if(w.has(y)){if(!r.allowContainerCycles&&p.get(y)===h&&l.size)throw new Error("Cyclic Pyret containers are not supported");return w.get(y)}let v=n.get(y);if(!v)throw new Error("Unknown Pyret atom ID: "+y);if(ef.has(v.type)){let A=uA(v);return w.set(y,A),A}let x=aA(v,i);if(x?.kind==="nothing"){let A={$pyretValue:x};return w.set(y,A),A}if(p.set(y,h),x?.kind==="table"){let A=ze(i.columns.get(y)??new Map,"table columns").map(P=>n.get(P).label);if(new Set(A).size!==A.length)throw new Error("Duplicate Pyret table column name");let b=ze(i.rows.get(y)??new Map,"table rows");if(b.some(P=>P.length!==A.length))throw new Error("Pyret table row width must match its columns");let q=[],I={$pyretValue:x,dict:{"_header-raw-array":A,"_rows-raw-array":q}};w.set(y,I),l.add(y);for(let P of b)q.push(P.map(m));return l.delete(y),p.delete(y),I}if(x?.kind==="string-dict"){let A=f.get(y)??new Map,b=ze(A,"dictionary entries"),q={$pyretValue:x,entries:[]};w.set(y,q);let I=new Set;x.mutable&&h++;for(let P of b){let M=n.get(P.key).label;if(I.has(M))throw new Error("Duplicate Pyret dictionary key");I.add(M),q.entries.push([M,m(P.value)])}return x.mutable&&h--,p.delete(y),q}if(x?.kind==="reference"){let A=c.get(y);if(A===void 0)throw new Error("Incomplete Pyret reference target");let b={$pyretValue:x};return w.set(y,b),h++,b.value=m(A),h--,p.delete(y),b}if(x?.kind==="raw-array"||x?.kind==="tuple"){let A=u.get(y)??new Map,b=ze(A,"container elements"),q=[],I=x.kind==="raw-array"?q:{vals:q};w.set(y,I),l.add(y);for(let P of b)q.push(m(P));return l.delete(y),p.delete(y),I}let E=s.get(y)??new Map,O=Array.from(E.keys()),C=i.constructors.get(v.type),D=x?void 0:i.nullary.has(y)?0:C?.size??(O.length?void 0:-1),z=[...i.mutableFields.get(y)??[]];if(z.some(A=>D===void 0||A>=D))throw new Error("Malformed Pyret mutable field positions");if(!x&&D===void 0&&lA(O)){let A=[];w.set(y,A);let b=O.slice().sort(Cr);for(let q of b){let I=E.get(q)??[];A.push(I.length===1?m(I[0]):I.map(P=>m(P)))}return p.delete(y),A}let L={dict:Object.create(null),...x?.kind==="object"?{$pyretValue:x}:{$name:v.type}};w.set(y,L);let H;if(x?.kind==="object"){let A=i.objectPositions.get(y)??new Map;H=ze(new Map([...A].map(([b,q])=>[q,b])),"object fields")}else if(D!==void 0){let A=C??new Map,b=Math.max(0,D);if(O.length!==b||A.size!==b||[...A].some(([q,I])=>I>=b||!E.has(q)))throw new Error("Incomplete Pyret constructor fields");H=[...A].sort((q,I)=>q[1]-I[1]).map(([q])=>q),L.$arity=D,L.$constructor={$fieldNames:H},z.length&&(L.$mut_fields_mask=H.map((q,I)=>z.includes(I)))}else H=cA(v.type,O);for(let A of H){let b=E.get(A)??[];if((x?.kind==="object"||D!==void 0)&&b.length!==1)throw new Error("Pyret constructor field must have one value");b.length===1?L.dict[A]=m(b[0]):L.dict[A]=b.map(q=>m(q))}for(let A of z){let b=L.dict[H[A]];if(!b||typeof b!="object"||re(b)?.kind!=="reference")throw new Error("Pyret mutable field must contain a reference")}return p.delete(y),L};if(t!==void 0)return t.map(y=>{if(!n.has(y))throw new Error("Unknown Pyret root ID: "+y);return m(y)});let g=e.getAtoms().map(y=>y.id);if(!g.length)return[];let d=g.filter(y=>!o.has(y));if(d.length!==1)throw new Error("Pyret graph has no unique root; supply an explicit root ID");return[m(d[0])]}function qe(e,t,r){if(!e||typeof e!="object"||Array.isArray(e)||!("$name"in e)||B(String(e.$name))!==t)return!1;let n=G(e);return!!n&&!n.mutableFields?.length&&n.arity===(r.length||-1)&&n.fields.length===r.length&&n.fields.every((i,s)=>i===r[s])&&!!e.dict&&r.every(i=>Object.prototype.hasOwnProperty.call(e.dict,i))}function Ke(e){let t=qe(e,"list-set",["elems"])?"list-set":qe(e,"tree-set",["elems"])?"tree-set":void 0;if(!t)return;let r=e.dict.elems,n=[],i=new Set,s=()=>new Error(`Malformed Pyret ${t} backing structure`);if(t==="list-set"){let o=r;for(;!qe(o,"empty",[]);){if(!qe(o,"link",["first","rest"])||i.has(o))throw s();i.add(o),n.push(o.dict.first),o=o.dict.rest}}else{let o=[{node:r,phase:"enter"}];for(;o.length;){let{node:u,phase:c}=o.pop();if(!qe(u,"leaf",[])){if(!qe(u,"branch",["value","h","left","right"]))throw s();if(c==="exit")i.delete(u);else if(c==="emit")n.push(u.dict.value);else{if(i.has(u))throw s();i.add(u),o.push({node:u,phase:"exit"},{node:u.dict.right,phase:"enter"},{node:u,phase:"emit"},{node:u.dict.left,phase:"enter"})}}}}return{kind:t,elements:n}}function tf(e,t){return e.kind==="tree-set"?`[tree-set: ${e.elements.map(t).join(", ")}]`:"[list-set: ]"+[...e.elements].reverse().map(r=>`.add(${t(r)})`).join("")}function Pt(e){return!!e.dict&&typeof e.dict=="object"&&"_header-raw-array"in e.dict&&"_rows-raw-array"in e.dict&&(!e.brands||Object.keys(e.brands).some(t=>t.includes("brandtable")))}function kt(e){return Array.isArray(e.$rowData)&&!!e.$underlyingTable}function fe(e){let t=e.dict?.["_header-raw-array"],r=e.dict?.["_rows-raw-array"];if(!Array.isArray(t)||!Array.isArray(r)||Array.from(t).some(n=>typeof n!="string")||new Set(t).size!==t.length||Array.from(r).some(n=>!Array.isArray(n)||n.length!==t.length))throw new Error("Malformed Pyret table: unique string headers and rectangular rows required");return{headers:t,rows:r}}function rf(e,t,r){let{headers:n,rows:i}=fe(e);if(!n.length)return i.length?`for fold(spytial-table from empty-table([list: ]), spytial-row from range(0, ${i.length})):
|
|
2
2
|
spytial-table.add-row([raw-row: ])
|
|
3
3
|
end`:"empty-table([list: ])";let s;try{s=n.map(r)}catch{}return s?`table: ${s.join(", ")}${i.map(o=>`
|
|
4
4
|
row: `+o.map(t).join(", ")).join("")}
|
|
5
|
-
end`:`[table-from-columns: ${n.map((o,
|
|
6
|
-
${x.map(
|
|
5
|
+
end`:`[table-from-columns: ${n.map((o,u)=>`{${t(o)}; [list: ${i.map(c=>t(c[u])).join(", ")}]}`).join(", ")}]`}function nf(e,t,r){let n=re,i=b=>!!b&&typeof b=="object"&&!Y(b)&&n(b)?.kind!=="nothing",s=b=>{if(Array.isArray(b))return b;let q=n(b);if(q?.kind==="reference")return[b.value];if(q?.kind==="string-dict")return b.entries.map(P=>P[1]);if(q?.kind==="table")return fe(b).rows.flat();if(Array.isArray(b.vals))return b.vals;let I=Ke(b);return I?I.elements:Object.keys(b.dict??{}).map(P=>b.dict[P])},o=new Set,u=new Set,c=new Map,f=!1,p=!1,h=[e];for(;h.length;){let b=h.pop();if(!i(b))continue;if(o.has(b)){f=!0;continue}if(o.add(b),!Array.isArray(b)&&n(b)?.kind==="reference"&&u.add(b),!Array.isArray(b)){let I=n(b);I?.kind==="string-dict"&&I.mutable&&c.set(b,I),I?.kind==="table"&&(p=!0)}let q=s(b);for(let I=q.length-1;I>=0;I--)h.push(q[I])}if(!u.size&&!((c.size||p)&&f))return;let l=new Map,w=new Map,m=new Set(["nothing"]);for(let b of o){if(Array.isArray(b))continue;typeof b.$name=="string"&&m.add(B(b.$name));let q=G(b),I=q?.mutableFields?.map(P=>q.fields[P])??[];w.set(b,I);for(let P of I){let M=b.dict[P];if(!u.has(M))throw new Error("Pyret mutable field must contain a reference");if(l.has(M))throw new Error("A Pyret reference shared by multiple mutable constructor fields cannot be reconstructed");l.set(M,{value:b,field:P})}}let g=0,d=b=>{let q;do q=b+g++;while(m.has(q));return m.add(q),q},y=new Map,v=new Set,x=[],E=new Map,O=b=>!i(b)||v.has(b),C=b=>{if(!i(b))return t(b,C);if(!v.has(b))throw new Error("Unresolved Pyret construction dependency");return y.get(b)};for(let b of o)u.has(b)||y.set(b,d("spytial-value"));if([...u].some(b=>!l.has(b)))throw new Error("Pyret reference source requires a reachable mutable constructor field for each reference");let D=new Map;for(let[b,q]of c){let I=y.get(b),P=q.sealed?d("spytial-dict"):I;x.push(`shadow ${P} = ${t({$pyretValue:{...q,sealed:!1},entries:[]},C)}`),q.sealed&&x.push(`shadow ${I} = ${P}.seal()`),v.add(b),D.set(b,P)}let z=new Map(D),L=()=>{for(let[b,q]of z)if(s(b).every(O)){for(let[I,P]of b.entries)x.push(`${q}.set-now(${C(I)}, ${C(P)})`);z.delete(b)}for(let[b,{owner:q,field:I}]of E)O(b.value)&&(x.push(`${q}!{${r(I)}: ${C(b.value)}}`),E.delete(b))},H=b=>{let q=new Set,I=[b];for(;I.length;){let P=I.pop();if(!(!i(P)||q.has(P))){if(!v.has(P)||z.has(P)||E.has(P))return!1;q.add(P),I.push(...s(P))}}return!0},A=[...o].filter(b=>!u.has(b)&&!c.has(b));for(;A.length;){L();let b=!1;for(let q=0;q<A.length;){let I=A[q],P=Array.isArray(I)?[]:w.get(I)??[],M=I;if(P.length){let Z=I,se={...Z.dict};for(let Gr of P){let He=Z.dict[Gr],zr=n(He);se[Gr]=O(He.value)?He.value:zr?.kind==="reference"&&zr.unrestricted?null:He.value}M={...Z,dict:se}}if(!s(M).every(O)){q++;continue}if(Ke(M)&&!s(M).every(H)){q++;continue}let Ct=y.get(I);x.push(`shadow ${Ct} = ${t(M,C)}`),v.add(I);for(let Z of P){let se=I.dict[Z];y.set(se,`${Ct}.${r(Z).trim()}`),v.add(se),(!O(se.value)||M.dict[Z]===null)&&E.set(se,{owner:Ct,field:Z})}A.splice(q,1),b=!0}if(!b)throw new Error("Pyret graph cannot be constructed: cycles need allocatable mutable fields and set elements need complete contents")}return L(),x.push(C(e)),`block:
|
|
6
|
+
${x.map(b=>" "+b).join(`
|
|
7
7
|
`)}
|
|
8
|
-
end`}function Et(e){let t=n=>{let i=e.dict?.[n];return i&&typeof i.meth=="function"&&typeof i.full_meth=="function"},r=e.$underlyingMap;if(r&&t("keys-list")&&t("get-value")&&t("unfreeze")){if(!Number.isSafeInteger(r.size)||r.size<0||typeof r.keys!="function"||typeof r.get!="function")throw new Error("Malformed Pyret string dictionary backing map");return{kind:"string-dict",mutable:!1,sealed:!1}}if(e.$underlyingDict&&t("keys-list-now")&&t("get-value-now")&&t("freeze")){if(typeof e.$underlyingDict!="object"||e.$sealed!==void 0&&typeof e.$sealed!="boolean")throw new Error("Malformed Pyret mutable string dictionary backing map");return{kind:"string-dict",mutable:!0,sealed:e.$sealed===!0}}}function Ot(e,t){let r;if("$pyretValue"in e)r=e.entries;else if(t.mutable)r=Object.entries(e.$underlyingDict);else{let n=e.$underlyingMap,i=n.keys();if(!Array.isArray(i)||i.some(s=>typeof s!="string"))throw new Error("Malformed Pyret dictionary keys");r=i.map(s=>[s,n.get(s)])}if(!Array.isArray(r)||r.some(n=>!Array.isArray(n)||n.length!==2||typeof n[0]!="string")||new Set(r.map(n=>n[0])).size!==r.length)throw new Error("Malformed Pyret dictionary entries");return r}function
|
|
8
|
+
end`}function Et(e){let t=n=>{let i=e.dict?.[n];return i&&typeof i.meth=="function"&&typeof i.full_meth=="function"},r=e.$underlyingMap;if(r&&t("keys-list")&&t("get-value")&&t("unfreeze")){if(!Number.isSafeInteger(r.size)||r.size<0||typeof r.keys!="function"||typeof r.get!="function")throw new Error("Malformed Pyret string dictionary backing map");return{kind:"string-dict",mutable:!1,sealed:!1}}if(e.$underlyingDict&&t("keys-list-now")&&t("get-value-now")&&t("freeze")){if(typeof e.$underlyingDict!="object"||e.$sealed!==void 0&&typeof e.$sealed!="boolean")throw new Error("Malformed Pyret mutable string dictionary backing map");return{kind:"string-dict",mutable:!0,sealed:e.$sealed===!0}}}function Ot(e,t){let r;if("$pyretValue"in e)r=e.entries;else if(t.mutable)r=Object.entries(e.$underlyingDict);else{let n=e.$underlyingMap,i=n.keys();if(!Array.isArray(i)||i.some(s=>typeof s!="string"))throw new Error("Malformed Pyret dictionary keys");r=i.map(s=>[s,n.get(s)])}if(!Array.isArray(r)||r.some(n=>!Array.isArray(n)||n.length!==2||typeof n[0]!="string")||new Set(r.map(n=>n[0])).size!==r.length)throw new Error("Malformed Pyret dictionary entries");return r}function sf(e,t,r){let n=e.mutable?"mutable-string-dict":"string-dict",i=[...t];if(!e.mutable&&i.length>8){let s=c=>{let f=0;for(let p=0;p<c.length;p++)f=31*f+c.charCodeAt(p)|0;return f>>>1&1073741824|f&3221225471},o=s(i[8][0]),u=i.findIndex(([c])=>s(c)===o);i.splice(8,0,i.splice(u,1)[0])}return`[${n}: ${i.flatMap(([s,o])=>[r(s),r(o)]).join(", ")}]`+(e.sealed?".seal()":"")}function fA(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&"dict"in e}function pA(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/[^\x20-\x7E]/g,t=>"\\u"+t.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0"))+'"'}var dA=new Set(`and as ascending ask by cases check data descending do does-not-raise
|
|
9
9
|
else end examples extend extract false for from fun hiding if import include is is-not is-roughly
|
|
10
10
|
is-not-roughly because lam lazy let letrec load-table method module newtype of or provide provide-types
|
|
11
11
|
raises raises-other-than raises-satisfies raises-violates reactor rec ref sanitize satisfies select
|
|
12
|
-
shadow sieve spy order transform true type type-let using use var violates when`.split(/\s+/)),
|
|
12
|
+
shadow sieve spy order transform true type type-let using use var violates when`.split(/\s+/)),yA=new Set(`function break return do yield throw continue while class interface
|
|
13
13
|
type generator alias extends implements module package namespace public private protected static const
|
|
14
|
-
enum super export new try finally debug spy switch this match case with __proto__`.split(/\s+/)),yS=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function $r(e){if(fS.has(e)||dS.has(e)||!/^[A-Za-z_][A-Za-z0-9_]*(?:-+[A-Za-z0-9_]+)*$/.test(e))throw new Error(`Pyret object field has no literal spelling: ${JSON.stringify(e)}`);return yS.has(e)?e+" ":e}function Dr(e,t,r=n=>Dr(n,t)){if(e==null)return"nothing";if(typeof e=="number")return String(e);if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return pS(e);let n=Y(e);if(n)return At(n);let i=re(e);if(i?.kind==="nothing")return"nothing";if(i?.kind==="table"){if(t.has(e))throw new Error("Cyclic Pyret table construction is not supported");t.add(e);let s=rp(e,r,$r);return t.delete(e),s}if(i?.kind==="string-dict"){if(t.has(e))throw new Error("Cyclic immutable Pyret dictionary construction is not supported");t.add(e);let s=ip(i,e.entries,r);return t.delete(e),s}if("vals"in e&&Array.isArray(e.vals)){if(t.has(e))throw new Error("Cyclic Pyret containers are not supported");if(!e.vals.length)throw new Error("Pyret has no empty tuple literal");t.add(e);let s=`{${e.vals.map(o=>r(o)).join("; ")}${e.vals.length===1?";":""}}`;return t.delete(e),s}if(Array.isArray(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=`[raw-array: ${e.map(r).join(", ")}]`;return t.delete(e),s}if(lS(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=Ke(e);if(s){let f=tp(s,r);return t.delete(e),f}let o=B(e.$name||"object"),a=e.dict||{},c=Object.keys(a),p=i?.kind==="object"?`{${c.map(f=>`${$r(f)}: ${r(a[f])}`).join(", ")}}`:c.length||e.$arity===0?`${o}(${c.map(f=>r(a[f])).join(", ")})`:o;return t.delete(e),p}return String(e)}function Ie(e,t){let r=new Map;for(let i of e.getAtoms()){let s=U(i.type);if(s){if(r.has(s.name)&&r.get(s.name)!==i.type)throw new Error(`Source reconstruction needs explicit bindings for same-named constructor ${s.name}`);r.set(s.name,i.type)}}let n=Mr(e,t);return np(n,(i,s)=>Dr(i,new Set,s),$r)??Dr(n,new Set)}function _t(e){return JSON.stringify(e.atoms)}function sp(e){let t=new Set;return e.filter(r=>{let n=_t(r);return t.has(n)?!1:(t.add(n),!0)}).map(r=>({...r,atoms:[...r.atoms],types:[...r.types]}))}function op(e,t=[]){if(!e.length)return[...t];let r=e[0].atoms.length;return e.some(n=>n.atoms.length!==r)?[]:Array.from({length:r},(n,i)=>{let s=new Set(e.map(o=>o.types[i]??"univ"));return s.size===1?[...s][0]:"univ"})}function Fr(e,t){if(e.name!==t.name)throw new Error(`Conflicting names for relation ID ${JSON.stringify(e.id)}: ${JSON.stringify(e.name)} and ${JSON.stringify(t.name)}`)}function mS(e,t){let r=e.id,n=t.atoms;return`${r}:${n.join("->")}`}var j=class j extends xt{constructor(r,n={},i){super();this.atoms=new Map;this.relations=new Map;this.types=new Map;this.objectToAtomId=new WeakMap;this.atomCounter=0;this.valueRelations=new Map;this.indexAtoms=new Map;this.typeLabelCounters=new Map;this.originalObjects=new Map;this.externalEvaluator=null;this.options={stringsIdempotent:n.stringsIdempotent??!0,numbersIdempotent:n.numbersIdempotent??!0,booleansIdempotent:n.booleansIdempotent??!0,showFunctions:n.showFunctions??!1},this.externalEvaluator=i||null,this.initializeBuiltinTypes(),this.isAtomicValue(r)?this.createAtomFromPrimitive(r):r!=null&&this.parseObjectIteratively(r)}static fromValues(r){let n=new j,i=new WeakSet,s=r.map(o=>{if(n.isAtomicValue(o))return n.createAtomFromPrimitive(o);if(!Array.isArray(o)&&!n.isPyretObject(o))throw new Error("Unsupported normalized Pyret root");return n.parseObjectIteratively(o,i),n.objectToAtomId.get(o)});return{instance:n,rootIds:s}}setExternalEvaluator(r){this.externalEvaluator=r}getExternalEvaluator(){return this.externalEvaluator}getOptions(){return{...this.options}}cacheConstructorPattern(r,n){if(n.length===0)return;let i=j.globalConstructorCache.get(r),s=++j.instantiationCounter;(!i||s>i.instantiation)&&j.globalConstructorCache.set(r,{pattern:[...n],instantiation:s})}static getGlobalConstructorCache(){let r=new Map;for(let[n,i]of j.globalConstructorCache)r.set(n,[...i.pattern]);return r}static getGlobalConstructorCacheWithPriority(){return new Map(j.globalConstructorCache)}static clearGlobalConstructorCache(){j.globalConstructorCache.clear()}static async fromExpression(r,n={},i){let s=await j.evaluateExpression(r,i);if(!s.success)throw new Error(`Failed to evaluate Pyret expression: ${j.formatError(s.exn)}`);if(j.isPrimitive(s.result)){let o=new j(null,n,i),a=typeof s.result=="string"?"String":typeof s.result=="number"?"Number":"Boolean",c={id:`result_${s.result}`,label:String(s.result),type:a};return o.addAtom(c),o}return new j(s.result,n,i)}static async evaluateExpression(r,n){try{let i=await n.run(r),s=j.findKeyAtAnyLevel(i,"exn");if(s!==void 0)return{success:!1,exn:s};let o=j.findKeyAtAnyLevel(i,"answer");return o!==void 0?{success:!0,result:o}:j.isPrimitive(i)?{success:!0,result:i}:{success:!1,exn:"Unable to find answer or exn in evaluation result"}}catch(i){return{success:!1,exn:i instanceof Error?i.message:"Unknown evaluation error"}}}static findKeyAtAnyLevel(r,n){if(!(!r||typeof r!="object")){if(n in r)return r[n];for(let i of Object.values(r))if(i&&typeof i=="object"){let s=j.findKeyAtAnyLevel(i,n);if(s!==void 0)return s}}}static isPrimitive(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"}static formatError(r){if(!r)return"Unknown error";if(typeof r=="string")return r;if(typeof r=="object"&&r!==null){let n=r;if(n.message)return n.message;if(n.toString&&typeof n.toString=="function")return n.toString()}return String(r)}hasExternalEvaluator(){return this.externalEvaluator!==null}addAtom(r){this.atoms.set(r.id,r),this.ensureTypeExists(r.type);let n=this.types.get(r.type);n&&!n.atoms.some(i=>i.id===r.id)&&n.atoms.push(r),this.emitEvent({type:"atomAdded",data:{atom:r}})}removeAtom(r){let n=this.atoms.get(r);this.atoms.delete(r),this.types.forEach(i=>{i.atoms=i.atoms.filter(s=>s.id!==r)}),this.relations.forEach(i=>{i.tuples=i.tuples.filter(s=>!s.atoms.includes(r))}),n&&this.emitEvent({type:"atomRemoved",data:{atomId:r}})}removeRelationTuple(r,n){let i=this.relations.get(r);if(i){let s=i.tuples.length;i.tuples=i.tuples.filter(o=>!o.atoms.every((a,c)=>a===n.atoms[c])),i.tuples.length<s&&this.emitEvent({type:"relationTupleRemoved",data:{relationId:r,tuple:n}})}}reify(r){return Ie(this,r)}parseObjectIteratively(r,n=new WeakSet){let i=[{obj:r}],s=(o,a,c,p)=>{if(this.isAtomicValue(o)){let f=this.createAtomFromPrimitive(o);this.addRelationTuple(c,{atoms:[...a,f],types:[]},p)}else(Array.isArray(o)||this.isPyretObject(o))&&i.push({obj:o,parentInfo:{atoms:a,relationId:c,relationName:p}})};for(let o=0;o<i.length;o++){let{obj:a,parentInfo:c}=i[o],p=this.objectToAtomId.get(a);if(p||(p=this.createAtomFromObject(a)),c&&this.addRelationTuple(c.relationId,{atoms:[...c.atoms,p],types:[]},c.relationName),n.has(a))continue;n.add(a);let f=this.valueInfo(a);if(f?.kind==="nothing")continue;if(f?.kind==="table"){this.processTableSemantics(p,a,m=>{if(this.isAtomicValue(m))return this.createAtomFromPrimitive(m);if(qt(m)||!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret table cell");let g=m,d=this.objectToAtomId.get(g)??this.createAtomFromObject(g);return i.push({obj:g}),d});continue}if(f?.kind==="string-dict"){f.sealed&&this.addValueFact("sealed",p,"MutableStringDict"),Ot(a,f).forEach(([g,d],y)=>{if(!this.isAtomicValue(d)&&!Array.isArray(d)&&!this.isPyretObject(d))throw new Error("Unsupported Pyret dictionary value");let v=this.valueRelationId("dictionary-entries","entry",["PyretObject","Index","String","PyretObject"]);s(d,[p,this.createIndexAtom(y),this.createAtomFromPrimitive(g)],v,"entry")});continue}if(f?.kind==="reference"){f.unrestricted&&this.addValueFact("unrestricted",p,"Reference");let m=a.value;if(!this.isAtomicValue(m)&&!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret reference target");let g=this.valueRelationId("reference-target","target",["Reference","PyretObject"]);s(m,[p],g,"target");continue}if(f?.kind==="tuple"||f?.kind==="raw-array"){let m=Array.isArray(a)?a:a.vals;for(let g=0;g<m.length;g++){let d=this.valueRelationId("sequence-elements","element",["PyretObject","Index","PyretObject"]);s(m[g],[p,this.createIndexAtom(g)],d,"element")}continue}let b=a;this.originalObjects.set(p,b);let l=z(b);l?.arity===0&&this.addValueFact("nullary-constructor",p,"PyretObject");for(let m of l?.mutableFields??[]){let g=this.valueRelationId("mutable-field","mutable-field",["PyretObject","Index"]);this.addRelationTuple(g,{atoms:[p,this.createIndexAtom(m)],types:[]},"mutable-field")}if(!b.dict||typeof b.dict!="object")continue;let w=l?.fields??(f?.kind==="object"?Jl(b.dict,this.options.showFunctions):Object.keys(b.dict));!f&&!U(this.extractType(b))&&this.cacheConstructorPattern(this.extractType(b),w),w.forEach((m,g)=>{let d=b.dict[m],y=l?Xl(l,g):f?.kind==="object"?this.valueRelationId("object-field:"+m,m,["Object","Index","PyretObject"]):m;if(l&&!this.relations.has(y)&&this.relations.set(y,{id:y,name:m,types:[l.name,"PyretObject"],tuples:[]}),!this.options.showFunctions&&qt(d))return;let v=f?.kind==="object"?[p,this.createIndexAtom(g)]:[p];s(d,v,y,f?.kind==="object"?m:void 0)})}}addValueFact(r,n,i){let s=this.valueRelationId(r,r,[i]);this.addRelationTuple(s,{atoms:[n],types:[]},r)}valueRelationId(r,n,i){let s=this.valueRelations.get(r);return s||(s=globalThis.crypto?.randomUUID?.()??`relation-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${this.valueRelations.size}`,this.valueRelations.set(r,s),this.relations.set(s,{id:s,name:n,types:i,tuples:[]})),s}createIndexAtom(r){let n=this.indexAtoms.get(r);if(n)return n;let i=this.generateAtomId("Index");return this.atoms.set(i,{id:i,type:"Index",label:String(r)}),this.ensureTypeExists("Index"),this.indexAtoms.set(r,i),i}valueInfo(r){if(Array.isArray(r))return{kind:"raw-array"};if("$pyretValue"in r)return re(r);if(kt(r))throw new Error("Standalone Pyret Row values are not supported");if(Pt(r))return{kind:"table"};let n=Gl(r);if(n)return n;let i=Et(r);if(i)return i;if(Kl(r))return{kind:"nothing"};if(Array.isArray(r.vals))return{kind:"tuple"};if(!z(r)&&r.dict&&(typeof r.updateDict=="function"||this.extractType(r)==="PyretObject"))return{kind:"object"}}processTableSemantics(r,n,i){let{headers:s,rows:o}=pe(n),a=this.valueRelationId("table-columns","column",["Table","Index","String"]);s.forEach((p,f)=>this.addRelationTuple(a,{atoms:[r,this.createIndexAtom(f),this.createAtomFromPrimitive(p)],types:[]},"column"));let c=this.valueRelationId("table-rows:"+s.length,"row",["Table","Index",...s.map(()=>"PyretObject")]);o.forEach((p,f)=>this.addRelationTuple(c,{atoms:[r,this.createIndexAtom(f),...Array.from(p,i)],types:[]},"row"))}createAtomFromObject(r){let n=this.valueInfo(r),i=n?{nothing:"Nothing",reference:"Reference",object:"Object",tuple:"Tuple","raw-array":"RawArray",table:"Table","string-dict":n.kind==="string-dict"&&n.mutable?"MutableStringDict":"StringDict"}[n.kind]:this.extractType(r),s=this.generateAtomId(i),o={id:s,type:i,label:n?i:this.extractLabel(r)};return this.atoms.set(s,o),this.objectToAtomId.set(r,s),this.ensureTypeExists(i),s}createAtomFromPrimitive(r){let n=Y(r),i=n?"Number":this.mapPrimitiveType(r),s=n?At(n):String(r);if(i==="String"&&this.options.stringsIdempotent||i==="Number"&&this.options.numbersIdempotent||i==="Boolean"&&this.options.booleansIdempotent){let p=Array.from(this.atoms.values()).find(f=>f.type===i&&f.label===s);if(p)return p.id}let a=this.generateAtomId(i),c={id:a,type:i,label:s};return this.atoms.set(a,c),this.ensureTypeExists(i),a}mapPrimitiveType(r){switch(typeof r){case"number":return"Number";case"string":return"String";case"boolean":return"Boolean";default:return"Value"}}extractMostSpecificBrand(r){let n=-1,i,s;for(let o of Object.keys(r)){let a=/^\$brand([a-zA-Z_]+)(\d+)$/.exec(o);if(a){let[,c,p]=a,f=parseInt(p,10);f>n&&(n=f,i=c)}else{let c=/^\$brand_?([a-zA-Z_]+)$/.exec(o);if(c){let[,p]=c;(!s||p>s)&&(s=p)}}}return i||s}extractType(r){if(r.$name&&typeof r.$name=="string")return r.$name;if(r.brands&&typeof r.brands=="object"){let n=this.extractMostSpecificBrand(r.brands);if(n)return n}return"PyretObject"}extractLabel(r){if(r.$name&&typeof r.$name=="string")return B(r.$name);let n=this.extractType(r),s=(this.typeLabelCounters.get(n)??0)+1;return this.typeLabelCounters.set(n,s),`${n}$${s}`}addRelationTuple(r,n,i){let s=n.atoms[0],o=n.atoms[n.atoms.length-1],a=this.atoms.get(s),c=this.atoms.get(o);if(!a||!c){console.warn(`Cannot create relation ${r}: missing atoms ${s} or ${o}`);return}let p=this.relations.get(r),f=i??p?.name??xe(r)?.field??r;p&&Fr(p,{...p,name:f});let b=zl(n,p,w=>this.atoms.get(w)?.type);p?p.types=b.relationTypes:(p={id:r,name:f,types:b.relationTypes,tuples:[]},this.relations.set(r,p)),p.tuples.some(w=>_t(w)===_t(n))||(p.tuples.push(b.tuple),this.emitEvent({type:"relationTupleAdded",data:{relationId:r,tuple:b.tuple}}))}ensureTypeExists(r){if(!this.types.has(r)){let n=U(r),i=n&&!["Number","String","Boolean","PyretObject","Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"].includes(n.name)?n.name:void 0;i&&this.ensureTypeExists(i);let s={id:r,types:i?[r,i,"PyretObject"]:[r,"PyretObject"],atoms:[],isBuiltin:this.isBuiltinType(r)};this.types.set(r,s)}}initializeBuiltinTypes(){["Number","String","Boolean","PyretObject"].forEach(n=>{let i={id:n,types:n==="PyretObject"?["PyretObject"]:[n,"PyretObject"],atoms:[],isBuiltin:!0};this.types.set(n,i)})}isBuiltinType(r){return["Number","String","Boolean","PyretObject"].includes(r)}isAtomicValue(r){return typeof r=="string"||typeof r=="boolean"||Y(r)!==void 0}isPyretObject(r){return typeof r=="object"&&r!==null&&("dict"in r||"brands"in r||"$name"in r||"vals"in r||"$pyretValue"in r||_r(r))}generateAtomId(r){return`${r?r.toLowerCase().substring(0,3):"atom"}_${++this.atomCounter}`}getAtoms(){return Array.from(this.atoms.values())}getRelations(){let r=this.relations.values();return Array.from(r)}getTypes(){return this.types.forEach(r=>{r.atoms=this.getAtoms().filter(n=>n.type===r.id||!!U(n.type)&&this.types.get(n.type)?.types.includes(r.id))}),Array.from(this.types.values())}getAtomType(r){let n=this.atoms.get(r);if(!n)throw new Error(`Atom with id '${r}' not found`);let i=this.types.get(n.type);return i||(this.ensureTypeExists(n.type),this.types.get(n.type))}generateGraph(r=!1,n=!1){let i=new ap.Graph({directed:!0,multigraph:!0});if(this.getAtoms().forEach(s=>{i.setNode(s.id,{label:s.label})}),this.getRelations().forEach(s=>{s.tuples.forEach(o=>{if(o.atoms.length>=2){let a=o.atoms[0],c=o.atoms[o.atoms.length-1],p=o.atoms.slice(1,-1),f=s.name;if(p.length>0){let l=p.map(w=>{let m=this.atoms.get(w);return m?m.label:w});f=`${s.name}[${l.join(", ")}]`}let b=mS(s,o);i.setEdge(a,c,f,b)}})}),r||n){let s=[];i.nodes().forEach(o=>{let a=i.inEdges(o)||[],c=i.outEdges(o)||[];if(a.length===0&&c.length===0&&this.atoms.get(o)){let l=this.getAtomType(o).isBuiltin;(r||l&&n)&&s.push(o)}}),s.forEach(o=>i.removeNode(o))}return i}addFromDataInstance(r,n){if(!(r instanceof j))return!1;let i=r;for(let o of i.getRelations()){let a=this.relations.get(o.id);a&&Fr(a,o)}let s=new Map;return i.getAtoms().forEach(o=>{let a=this.isBuiltinType(o.type);if(n&&a&&(o.type==="String"&&this.options.stringsIdempotent||o.type==="Number"&&this.options.numbersIdempotent||o.type==="Boolean"&&this.options.booleansIdempotent)){let l=Array.from(this.atoms.values()).find(w=>w.type===o.type&&w.label===o.label);if(l){s.set(o.id,l.id);return}}let c=this.generateAtomId(o.type);s.set(o.id,c);let p={...o,id:c};this.addAtom(p);let f=i.originalObjects.get(o.id);f&&this.originalObjects.set(c,f)}),i.getTypes().forEach(o=>{if(!this.types.has(o.id))this.types.set(o.id,{...o,atoms:o.atoms.map(a=>({...a,id:s.get(a.id)||a.id}))});else{let a=this.types.get(o.id),c=o.atoms.map(p=>({...p,id:s.get(p.id)||p.id}));a.atoms.push(...c)}}),i.getRelations().forEach(o=>{let a=o.tuples.map(p=>({atoms:p.atoms.map(f=>s.get(f)||f),types:p.types})),c=this.relations.get(o.id);c?(c.tuples=sp([...c.tuples,...a]),c.types=op(c.tuples,c.types)):this.relations.set(o.id,{...o,tuples:a})}),!0}};j.globalConstructorCache=new Map,j.instantiationCounter=0;var ne=j,a_=(e,t={})=>{try{let r=JSON.parse(e);return new ne(r,t)}catch(r){throw new Error(`Failed to parse Pyret JSON: ${r instanceof Error?r.message:"Unknown error"}`)}},u_=e=>e instanceof ne;var up=Hr(Or()),Tt=class{constructor(t){this.datum=t;this.atoms=new Map(t.atoms.map(r=>[r.id,r])),this.types=new Map(t.types.map(r=>[r.id,r]))}getAtoms(){return this.datum.atoms}getRelations(){return this.datum.relations}getTypes(){return this.datum.types}getAtomType(t){let r=this.atoms.get(t);if(!r)throw new Error(`Unknown captured atom ${t}`);let n=this.types.get(r.type);if(!n)throw new Error(`Unknown captured type ${r.type}`);return n}generateGraph(t=!1,r=!1){let n=new up.Graph({directed:!0,multigraph:!0});for(let i of this.datum.atoms)n.setNode(i.id,{label:i.label});for(let i of this.datum.relations)for(let s of i.tuples){if(s.atoms.length<2)continue;let o=s.atoms[0],a=s.atoms[s.atoms.length-1],c=s.atoms.slice(1,-1).map(f=>this.atoms.get(f).label),p=i.name+(c.length?`[${c.join(", ")}]`:"");n.setEdge(o,a,p,JSON.stringify([i.id,s.atoms]))}if(t||r)for(let i of n.nodes())!(n.nodeEdges(i)||[]).length&&(t||this.getAtomType(i).isBuiltin)&&n.removeNode(i);return n}};var jt=class extends Error{constructor(r,n,i){super(`Cannot capture ${JSON.stringify(r)}${n.map(s=>`[${JSON.stringify(s)}]`).join("")}: ${i}`);this.root=r;this.path=n;this.reason=i;this.name="PyretCaptureError"}};function cp(e){let t=new Set;function r(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n))return;let i=n&&typeof n=="object"?Object.getPrototypeOf(n):void 0;if(!n||typeof n!="object"||!Array.isArray(n)&&i!==null&&Object.getPrototypeOf(i)!==null)throw new Error("Capture metadata must contain only JSON values");if(t.has(n))throw new Error("Capture metadata must not contain cycles");t.add(n);for(let s of Reflect.ownKeys(n)){let o=Object.getOwnPropertyDescriptor(n,s);if(typeof s!="string"||o.get||o.set)throw new Error("Capture metadata must not contain symbols or accessors")}for(let s of Array.isArray(n)?Array.from(n):Object.values(n))r(s);t.delete(n)}return r(e),JSON.parse(JSON.stringify(e))}function Lr(e,t,r){if(!Array.isArray(e)||!e.length)throw new Error("Capture requires at least one named root");let n=new Set;for(let l of e){if(!l||typeof l.name!="string"||!l.name||n.has(l.name))throw new Error("Capture root names must be nonempty and unique");n.add(l.name)}let i=globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,s=new Map,o=new Map,a=[],c=(l,w,m)=>{if(s.has(l))return s.get(l);try{let g=t.observe(l);if(g.kind==="primitive")return g.value;let d;switch(g.kind){case"nothing":d={$pyretValue:{kind:"nothing"}};break;case"raw-array":d=[];break;case"tuple":d={vals:[]};break;case"object":d={$pyretValue:{kind:"object"},dict:Object.create(null)};break;case"reference":d={$pyretValue:{kind:"reference",unrestricted:!0}};break;case"string-dict":d={$pyretValue:{kind:"string-dict",mutable:g.mutable,sealed:g.sealed},entries:[]};break;case"table":d={$pyretValue:{kind:"table"},dict:Object.create(null)};break;case"constructor":{let y=JSON.stringify(g.info),v=o.get(g.identity);if(v&&v.schema!==y)throw new Error("Constructor schema changed during capture");v||(v={id:Zl(i,o.size,g.info.name),schema:y},o.set(g.identity,v)),d={$name:v.id,$arity:g.info.arity,$constructor:{$fieldNames:g.info.fields.slice()},$mut_fields_mask:g.info.fields.map((x,E)=>(g.info.mutableFields??[]).includes(E)),dict:Object.create(null)};break}default:throw new Error("Unsupported adapter observation")}return s.set(l,d),a.push({carrier:d,observed:g,root:w,path:m}),d}catch(g){throw g instanceof jt?g:new jt(w,m,g instanceof Error?g.message:String(g))}},p=e.map(l=>c(l.value,l.name,[]));for(let l=0;l<a.length;l++){let{carrier:w,observed:m,root:g,path:d}=a[l],y=(v,...x)=>c(v,g,[...d,...x]);switch(m.kind){case"constructor":m.info.fields.forEach((v,x)=>{w.dict[v]=y(m.values[x],v)});break;case"object":m.fields.forEach(([v,x])=>{w.dict[v]=y(x,v)});break;case"raw-array":m.values.forEach((v,x)=>w.push(y(v,x)));break;case"tuple":m.values.forEach((v,x)=>w.vals.push(y(v,x)));break;case"reference":w.value=y(m.value,"target");break;case"string-dict":m.entries.forEach(([v,x])=>w.entries.push([v,y(x,v)]));break;case"table":w.dict["_header-raw-array"]=m.headers.slice(),w.dict["_rows-raw-array"]=m.rows.map((v,x)=>v.map((E,O)=>y(E,"rows",x,m.headers[O])));break}}let{instance:f,rootIds:b}=ne.fromValues(p);return cp({format:"spytial-pyret-capture",version:1,datum:{atoms:[...f.getAtoms()],relations:[...f.getRelations()],types:[...f.getTypes()]},roots:e.map((l,w)=>({name:l.name,atomId:b[w],...l.observation===void 0?{}:{observation:l.observation}})),...r===void 0?{}:{provenance:r}})}function Vr(e){let t=cp(e);if(!t||t.format!=="spytial-pyret-capture"||t.version!==1)throw new Error("Unsupported Pyret capture format/version");if(!Array.isArray(t.roots)||!t.roots.length||!t.datum||!Array.isArray(t.datum.atoms)||!Array.isArray(t.datum.relations)||!Array.isArray(t.datum.types))throw new Error("Malformed Pyret capture");let r=new Map,n=new Set(["Number","String","Boolean","Nothing","Object","Index","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);for(let l of t.datum.atoms){if(!l||typeof l.id!="string"||!l.id||r.has(l.id)||typeof l.label!="string"||typeof l.type!="string"||!n.has(l.type)&&!U(l.type))throw new Error("Malformed or duplicate Pyret capture atom");if(l.type==="Index"&&(!/^(0|[1-9][0-9]*)$/.test(l.label)||!Number.isSafeInteger(Number(l.label))))throw new Error("Malformed Pyret capture index");r.set(l.id,l)}let i=new Set,s=(l,w)=>l===w.type||l==="PyretObject"||!n.has(l)&&l===U(w.type)?.name,o=new Set;for(let l of t.datum.types){if(!l||typeof l.id!="string"||o.has(l.id)||!Array.isArray(l.types)||l.types[0]!==l.id||l.types.some(m=>typeof m!="string")||!Array.isArray(l.atoms)||typeof l.isBuiltin!="boolean")throw new Error("Malformed Pyret capture type");o.add(l.id);let w=new Set;for(let m of l.atoms){let g=m&&r.get(m.id);if(!g||w.has(m.id)||m.type!==g.type||m.label!==g.label||!s(l.id,g))throw new Error("Invalid Pyret capture type membership");w.add(m.id)}}if([...r.values()].some(l=>!o.has(l.type))||t.datum.types.some(l=>l.types.some(w=>!o.has(w))))throw new Error("Unknown Pyret capture type");for(let l of t.datum.relations){if(!l||typeof l.id!="string"||i.has(l.id)||typeof l.name!="string"||!Array.isArray(l.tuples)||!Array.isArray(l.types)||l.types.some(m=>typeof m!="string"))throw new Error("Malformed or duplicate Pyret capture relation");i.add(l.id);let w=new Set;for(let m of l.tuples){if(!m||!Array.isArray(m.atoms)||!m.atoms.length||m.atoms.some(d=>!r.has(d))||!Array.isArray(m.types)||m.types.length!==m.atoms.length||m.types.some((d,y)=>!s(d,r.get(m.atoms[y]))))throw new Error("Malformed Pyret capture tuple");let g=JSON.stringify(m.atoms);if(w.has(g))throw new Error("Duplicate Pyret capture tuple");w.add(g)}}let a=new Set;for(let l of t.roots){if(!l||typeof l.name!="string"||!l.name||a.has(l.name)||!r.has(l.atomId)||r.get(l.atomId).type==="Index")throw new Error("Invalid Pyret capture root");a.add(l.name)}let c=new Tt(t.datum),p=[...r.values()].filter(l=>l.type!=="Index").map(l=>l.id),f=St(c,p,{allowContainerCycles:!0}),b=new Map(p.map((l,w)=>[l,f[w]]));return{snapshot:t,instance:c,values:new Map(t.roots.map(l=>[l.name,b.get(l.atomId)]))}}function Je(e){for(let t of["isNumber","isNothing","isDataValue","isTuple","isRef","isFunction","isMethod","isOpaque","isObject"])if(typeof e?.[t]!="function")throw new Error(`Pyret runtime lacks ${t}`);return{observe(t){if(typeof t=="string"||typeof t=="boolean")return{kind:"primitive",value:t};if(e.isNumber(t)){let n=Y(t);if(!n)throw new Error("Unsupported Pyret numeric representation");return{kind:"primitive",value:{$pyretNumber:n}}}if(e.isFunction(t))throw new Error("Unsupported Pyret function");if(e.isMethod(t))throw new Error("Unsupported Pyret method");if(e.isOpaque(t))throw new Error("Unsupported Pyret opaque value");if(e.isNothing(t))return{kind:"nothing"};if(Array.isArray(t)){if(Array.from({length:t.length},(n,i)=>i).some(n=>!(n in t)))throw new Error("Unsupported sparse raw array");return{kind:"raw-array",values:t.slice()}}let r=t;if(e.isRef(t)){if(r.state!==2)throw new Error("Unsupported Pyret reference state: only initialized mutable references are supported");if(!Array.isArray(r.anns?.anns)||!r.anns.anns.every(n=>n.ann===e.Any))throw new Error("Unsupported Pyret reference annotation: only the runtime Any annotation is supported");return{kind:"reference",value:r.value}}if(e.isTuple(t))return{kind:"tuple",values:r.vals.slice()};if(e.isDataValue(t)){let n=z(r);if(!n||!r.$constructor||typeof r.$constructor!="object")throw new Error("Invalid Pyret constructor metadata");for(let i in r.dict)if(!n.fields.includes(i)&&i!=="$fieldNames"&&!e.isMethod(r.dict[i])&&!(i==="_spytial"&&e.isFunction(r.dict[i])))throw new Error(`Unsupported extra constructor field ${JSON.stringify(i)}`);return{kind:"constructor",identity:r.$constructor,info:n,values:n.fields.map(i=>r.dict[i])}}if(e.isObject(t)){if(kt(r))throw new Error("Unsupported standalone Pyret Row");if(Pt(r))return{kind:"table",...pe(r)};let n=Et(r);if(n)return{...n,entries:Ot(r,n)};if(r.brands&&Object.keys(r.brands).some(s=>s!=="brandCount"&&r.brands[s]===!0))throw new Error("Unsupported branded Pyret object");let i=[];for(let s in r.dict)s==="_spytial"&&(e.isFunction(r.dict[s])||e.isMethod(r.dict[s]))||i.push([s,r.dict[s]]);return{kind:"object",fields:i}}throw new Error("Unsupported value from this Pyret runtime")}}}function __(e,t){return Vr(Lr([{name:"value",value:e}],Je(t))).instance}function T_(e,t){let r=Lr([{name:"value",value:e}],Je(t)),{instance:n}=Vr(r),i;try{i=Ie(n,r.roots[0].atomId)}catch(s){i="Source preview unavailable: "+(s instanceof Error?s.message:String(s))}return{snapshot:r,instance:n,sourcePreview:i}}function j_(e){return{...e,nodes:e.nodes.map(t=>({...t,mostSpecificType:B(t.mostSpecificType)}))}}var Nt={languageVersion:"2026-09-18",coreVersion:"6.3.2",enums:{TextSize:{"text-size-small":"small","text-size-normal":"normal","text-size-large":"large"},LinePattern:{"line-pattern-solid":"solid","line-pattern-dashed":"dashed","line-pattern-dotted":"dotted"},IconPlacement:{"icon-placement-full":"full","icon-placement-badge":"badge"},Direction:{"direction-above":"above","direction-below":"below","direction-left":"left","direction-right":"right","direction-directly-above":"directlyAbove","direction-directly-below":"directlyBelow","direction-directly-left":"directlyLeft","direction-directly-right":"directlyRight"},Hold:{"hold-always":"always","hold-never":"never"},Rotation:{"rotation-clockwise":"clockwise","rotation-counterclockwise":"counterclockwise"},Alignment:{"alignment-horizontal":"horizontal","alignment-vertical":"vertical"},GroupEdgeDirection:{"group-edge-direction-none":"none","group-edge-direction-togroup":"togroup","group-edge-direction-fromgroup":"fromgroup"},LayoutFlag:{"layout-flag-hide-disconnected":"hideDisconnected","layout-flag-hide-disconnected-built-ins":"hideDisconnectedBuiltIns"}},blocks:{textStyle:{name:"textStyle",typeName:"TextStyle",constructor:"text-style",fields:[{name:"size",pyretName:"size",type:"enum",required:!1,enum:"TextSize"},{name:"color",pyretName:"color",type:"color",required:!1}]},lineStyle:{name:"lineStyle",typeName:"LineStyle",constructor:"line-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"pattern",pyretName:"pattern",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1}]},fillStyle:{name:"fillStyle",typeName:"FillStyle",constructor:"fill-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1}]},borderStyle:{name:"borderStyle",typeName:"BorderStyle",constructor:"border-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"width",pyretName:"width",type:"number",required:!1,exclusiveMinimum:0}]},iconStyle:{name:"iconStyle",typeName:"IconStyle",constructor:"icon-style",fields:[{name:"path",pyretName:"path",type:"icon-path",required:!1},{name:"placement",pyretName:"placement",type:"enum",required:!1,enum:"IconPlacement"},{name:"opacity",pyretName:"opacity",type:"number",required:!1,minimum:0,maximum:1}]},ruleSource:{name:"ruleSource",typeName:"RuleSource",constructor:"rule-source",fields:[{name:"text",pyretName:"text",type:"string",required:!0},{name:"location",pyretName:"location",type:"string",required:!1}]},groupAddEdge:{name:"groupAddEdge",typeName:"GroupAddEdge",constructor:"group-add-edge",fields:[{name:"points",pyretName:"points",type:"enum",required:!1,enum:"GroupEdgeDirection"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"}]}},rules:{orientation:{name:"orientation",yamlKey:"orientation",section:"constraints",shape:"mapping",constructor:"spytial-orientation",optionsConstructor:"orientation-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"directions",pyretName:"directions",type:"enum-list",required:!0,listRules:{atMostOneOf:[["above","below"],["left","right"]],narrowsListTo:{directlyAbove:["above","directlyAbove"],directlyBelow:["below","directlyBelow"],directlyLeft:["left","directlyLeft"],directlyRight:["right","directlyRight"]}},enum:"Direction"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},cyclic:{name:"cyclic",yamlKey:"cyclic",section:"constraints",shape:"mapping",constructor:"spytial-cyclic",optionsConstructor:"cyclic-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!1,enum:"Rotation"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},align:{name:"align",yamlKey:"align",section:"constraints",shape:"mapping",constructor:"spytial-align",optionsConstructor:"align-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!0,enum:"Alignment"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},group:{name:"group",yamlKey:"group",section:"constraints",shape:"mapping",constructor:"spytial-group",optionsConstructor:"group-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"addEdge",pyretName:"add-edge",type:"block",required:!1,block:"groupAddEdge"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},size:{name:"size",yamlKey:"size",section:"constraints",shape:"mapping",constructor:"spytial-size",optionsConstructor:"size-options",fields:[{name:"width",pyretName:"width",type:"number",required:!0,exclusiveMinimum:0},{name:"height",pyretName:"height",type:"number",required:!0,exclusiveMinimum:0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideAtom:{name:"hideAtom",yamlKey:"hideAtom",section:"constraints",shape:"mapping",constructor:"spytial-hide-atom",optionsConstructor:"hide-atom-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},flag:{name:"flag",yamlKey:"flag",section:"directives",shape:"scalar",constructor:"spytial-flag",optionsConstructor:"flag-options",fields:[{name:"flag",pyretName:"name",type:"enum",required:!0,enum:"LayoutFlag"}]},atomStyle:{name:"atomStyle",yamlKey:"atomStyle",section:"directives",shape:"mapping",constructor:"spytial-atom-style",optionsConstructor:"atom-style-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"fillStyle",pyretName:"fill-style",type:"block",required:!1,block:"fillStyle"},{name:"borderStyle",pyretName:"border-style",type:"block",required:!1,block:"borderStyle"},{name:"iconStyle",pyretName:"icon-style",type:"block",required:!1,block:"iconStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeStyle:{name:"edgeStyle",yamlKey:"edgeStyle",section:"directives",shape:"mapping",constructor:"spytial-edge-style",optionsConstructor:"edge-style-options",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},attribute:{name:"attribute",yamlKey:"attribute",section:"directives",shape:"mapping",constructor:"spytial-attribute",optionsConstructor:"attribute-options",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},tag:{name:"tag",yamlKey:"tag",section:"directives",shape:"mapping",constructor:"spytial-tag",optionsConstructor:"tag-options",fields:[{name:"toTag",pyretName:"to-tag",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"value",pyretName:"value",type:"selector",required:!0},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideField:{name:"hideField",yamlKey:"hideField",section:"directives",shape:"mapping",constructor:"spytial-hide-field",optionsConstructor:"hide-field-options",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},inferredEdge:{name:"inferredEdge",yamlKey:"inferredEdge",section:"directives",shape:"mapping",constructor:"spytial-inferred-edge",optionsConstructor:"inferred-edge-options",fields:[{name:"name",pyretName:"name",type:"string",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"draw",pyretName:"draw",type:"string",required:!1,pattern:"^\\s*[^\\s](?:(?!->)[\\s\\S])*->(?:(?!->)[\\s\\S])*[^\\s]\\s*$"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"color",pyretName:"color",type:"color",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},icon:{name:"icon",yamlKey:"icon",section:"directives",shape:"mapping",constructor:"spytial-icon",optionsConstructor:"icon-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"path",pyretName:"path",type:"icon-path",required:!0},{name:"showLabels",pyretName:"show-labels",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},atomColor:{name:"atomColor",yamlKey:"atomColor",section:"directives",shape:"mapping",constructor:"spytial-atom-color",optionsConstructor:"atom-color-options",fields:[{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeColor:{name:"edgeColor",yamlKey:"edgeColor",section:"directives",shape:"mapping",constructor:"spytial-edge-color",optionsConstructor:"edge-color-options",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]}}};var ie=class extends Error{constructor(r,n){super(`${r}: ${n}`);this.path=r;this.name="SpytialSpecError"}},gS=Object.values(Nt.rules),hS=Nt.blocks,bS=Nt.enums;function C(e,t){throw new ie(e,t)}function Rt(e,t,r,n,i){if(!t.isDataValue(e))return C(r,`expected ${n}`);let s=e,o=z(s);return s.$name!==n||!o||o.fields.length!==i.length||o.fields.some((a,c)=>a!==i[c])?C(r,`expected ${n}`):s.dict}function lp(e,t,r){let n=new Set,i=[];for(;!t.ffi.isEmpty(e);){if(!t.ffi.isLink(e))return C(r,"expected a Pyret List");if(n.has(e))return C(r,"cyclic rule list");n.add(e);let s=e.dict;i.push(s.first),e=s.rest}return i}function wS(e,t,r,n){if(t.type==="enum"||t.type==="enum-list"){let i=bS[t.enum],s=(a,c)=>{let p=a?.$name;return!p||!Object.prototype.hasOwnProperty.call(i,p)?C(c,`expected ${t.enum}`):(Rt(a,r,c,p,[]),i[p])};if(t.type==="enum")return s(e,n);let o=lp(e,r,n).map((a,c)=>s(a,`${n}[${c}]`));for(let a of t.listRules?.atMostOneOf??[])a.filter(c=>o.includes(c)).length>1&&C(n,"incompatible directions");for(let[a,c]of Object.entries(t.listRules?.narrowsListTo??{}))o.includes(a)&&o.some(p=>!c.includes(p))&&C(n,"incompatible directions");return o}if(t.type==="block")return fp(e,hS[t.block],r,n);if(t.type==="boolean")return typeof e!="boolean"?C(n,"expected Boolean"):e;if(t.type==="number"||t.type==="integer"){if(!r.isNumber(e))return C(n,"expected Number");let i=r.num_to_fixnum(e);return!Number.isFinite(i)||t.type==="integer"&&!Number.isSafeInteger(i)||t.minimum!==void 0&&i<t.minimum||t.maximum!==void 0&&i>t.maximum||t.exclusiveMinimum!==void 0&&i<=t.exclusiveMinimum?C(n,"number is outside the manifest bounds"):i}return typeof e!="string"?C(n,"expected String"):t.required&&!e.trim()?C(n,"required string must not be empty"):t.pattern&&!new RegExp(t.pattern).test(e)?C(n,"string does not match the manifest pattern"):e}function pp(e,t,r,n){let i={};for(let s of t){let o=e[s.pyretName],a=`${n}.${s.pyretName}`;if(!s.required){if(r.ffi.isNone(o))continue;r.ffi.isSome(o)||C(a,"expected Option"),o=o.dict.value}i[s.name]=wS(o,s,r,a)}return i}function fp(e,t,r,n){return pp(Rt(e,r,n,t.constructor,t.fields.map(i=>i.pyretName)),t.fields,r,n)}function Br(e,t=0){let r=" ".repeat(t);if(Array.isArray(e))return e.length?`
|
|
14
|
+
enum super export new try finally debug spy switch this match case with __proto__`.split(/\s+/)),mA=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function $r(e){if(dA.has(e)||yA.has(e)||!/^[A-Za-z_][A-Za-z0-9_]*(?:-+[A-Za-z0-9_]+)*$/.test(e))throw new Error(`Pyret object field has no literal spelling: ${JSON.stringify(e)}`);return mA.has(e)?e+" ":e}function Dr(e,t,r=n=>Dr(n,t)){if(e==null)return"nothing";if(typeof e=="number")return String(e);if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return pA(e);let n=Y(e);if(n)return St(n);let i=re(e);if(i?.kind==="nothing")return"nothing";if(i?.kind==="table"){if(t.has(e))throw new Error("Cyclic Pyret table construction is not supported");t.add(e);let s=rf(e,r,$r);return t.delete(e),s}if(i?.kind==="string-dict"){if(t.has(e))throw new Error("Cyclic immutable Pyret dictionary construction is not supported");t.add(e);let s=sf(i,e.entries,r);return t.delete(e),s}if("vals"in e&&Array.isArray(e.vals)){if(t.has(e))throw new Error("Cyclic Pyret containers are not supported");if(!e.vals.length)throw new Error("Pyret has no empty tuple literal");t.add(e);let s=`{${e.vals.map(o=>r(o)).join("; ")}${e.vals.length===1?";":""}}`;return t.delete(e),s}if(Array.isArray(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=`[raw-array: ${e.map(r).join(", ")}]`;return t.delete(e),s}if(fA(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=Ke(e);if(s){let p=tf(s,r);return t.delete(e),p}let o=B(e.$name||"object"),u=e.dict||{},c=Object.keys(u),f=i?.kind==="object"?`{${c.map(p=>`${$r(p)}: ${r(u[p])}`).join(", ")}}`:c.length||e.$arity===0?`${o}(${c.map(p=>r(u[p])).join(", ")})`:o;return t.delete(e),f}return String(e)}function Ie(e,t){let r=new Map;for(let i of e.getAtoms()){let s=U(i.type);if(s){if(r.has(s.name)&&r.get(s.name)!==i.type)throw new Error(`Source reconstruction needs explicit bindings for same-named constructor ${s.name}`);r.set(s.name,i.type)}}let n=Mr(e,t);return nf(n,(i,s)=>Dr(i,new Set,s),$r)??Dr(n,new Set)}function _t(e){return JSON.stringify(e.atoms)}function of(e){let t=new Set;return e.filter(r=>{let n=_t(r);return t.has(n)?!1:(t.add(n),!0)}).map(r=>({...r,atoms:[...r.atoms],types:[...r.types]}))}function af(e,t=[]){if(!e.length)return[...t];let r=e[0].atoms.length;return e.some(n=>n.atoms.length!==r)?[]:Array.from({length:r},(n,i)=>{let s=new Set(e.map(o=>o.types[i]??"univ"));return s.size===1?[...s][0]:"univ"})}function Fr(e,t){if(e.name!==t.name)throw new Error(`Conflicting names for relation ID ${JSON.stringify(e.id)}: ${JSON.stringify(e.name)} and ${JSON.stringify(t.name)}`)}function gA(e,t){let r=e.id,n=t.atoms;return`${r}:${n.join("->")}`}var j=class j extends xt{constructor(r,n={},i){super();this.atoms=new Map;this.relations=new Map;this.types=new Map;this.objectToAtomId=new WeakMap;this.atomCounter=0;this.valueRelations=new Map;this.indexAtoms=new Map;this.typeLabelCounters=new Map;this.originalObjects=new Map;this.externalEvaluator=null;this.options={stringsIdempotent:n.stringsIdempotent??!0,numbersIdempotent:n.numbersIdempotent??!0,booleansIdempotent:n.booleansIdempotent??!0,showFunctions:n.showFunctions??!1},this.externalEvaluator=i||null,this.initializeBuiltinTypes(),this.isAtomicValue(r)?this.createAtomFromPrimitive(r):r!=null&&this.parseObjectIteratively(r)}static fromValues(r){let n=new j,i=new WeakSet,s=r.map(o=>{if(n.isAtomicValue(o))return n.createAtomFromPrimitive(o);if(!Array.isArray(o)&&!n.isPyretObject(o))throw new Error("Unsupported normalized Pyret root");return n.parseObjectIteratively(o,i),n.objectToAtomId.get(o)});return{instance:n,rootIds:s}}setExternalEvaluator(r){this.externalEvaluator=r}getExternalEvaluator(){return this.externalEvaluator}getOptions(){return{...this.options}}cacheConstructorPattern(r,n){if(n.length===0)return;let i=j.globalConstructorCache.get(r),s=++j.instantiationCounter;(!i||s>i.instantiation)&&j.globalConstructorCache.set(r,{pattern:[...n],instantiation:s})}static getGlobalConstructorCache(){let r=new Map;for(let[n,i]of j.globalConstructorCache)r.set(n,[...i.pattern]);return r}static getGlobalConstructorCacheWithPriority(){return new Map(j.globalConstructorCache)}static clearGlobalConstructorCache(){j.globalConstructorCache.clear()}static async fromExpression(r,n={},i){let s=await j.evaluateExpression(r,i);if(!s.success)throw new Error(`Failed to evaluate Pyret expression: ${j.formatError(s.exn)}`);if(j.isPrimitive(s.result)){let o=new j(null,n,i),u=typeof s.result=="string"?"String":typeof s.result=="number"?"Number":"Boolean",c={id:`result_${s.result}`,label:String(s.result),type:u};return o.addAtom(c),o}return new j(s.result,n,i)}static async evaluateExpression(r,n){try{let i=await n.run(r),s=j.findKeyAtAnyLevel(i,"exn");if(s!==void 0)return{success:!1,exn:s};let o=j.findKeyAtAnyLevel(i,"answer");return o!==void 0?{success:!0,result:o}:j.isPrimitive(i)?{success:!0,result:i}:{success:!1,exn:"Unable to find answer or exn in evaluation result"}}catch(i){return{success:!1,exn:i instanceof Error?i.message:"Unknown evaluation error"}}}static findKeyAtAnyLevel(r,n){if(!(!r||typeof r!="object")){if(n in r)return r[n];for(let i of Object.values(r))if(i&&typeof i=="object"){let s=j.findKeyAtAnyLevel(i,n);if(s!==void 0)return s}}}static isPrimitive(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"}static formatError(r){if(!r)return"Unknown error";if(typeof r=="string")return r;if(typeof r=="object"&&r!==null){let n=r;if(n.message)return n.message;if(n.toString&&typeof n.toString=="function")return n.toString()}return String(r)}hasExternalEvaluator(){return this.externalEvaluator!==null}addAtom(r){this.atoms.set(r.id,r),this.ensureTypeExists(r.type);let n=this.types.get(r.type);n&&!n.atoms.some(i=>i.id===r.id)&&n.atoms.push(r),this.emitEvent({type:"atomAdded",data:{atom:r}})}removeAtom(r){let n=this.atoms.get(r);this.atoms.delete(r),this.types.forEach(i=>{i.atoms=i.atoms.filter(s=>s.id!==r)}),this.relations.forEach(i=>{i.tuples=i.tuples.filter(s=>!s.atoms.includes(r))}),n&&this.emitEvent({type:"atomRemoved",data:{atomId:r}})}removeRelationTuple(r,n){let i=this.relations.get(r);if(i){let s=i.tuples.length;i.tuples=i.tuples.filter(o=>!o.atoms.every((u,c)=>u===n.atoms[c])),i.tuples.length<s&&this.emitEvent({type:"relationTupleRemoved",data:{relationId:r,tuple:n}})}}reify(r){return Ie(this,r)}parseObjectIteratively(r,n=new WeakSet){let i=[{obj:r}],s=(o,u,c,f)=>{if(this.isAtomicValue(o)){let p=this.createAtomFromPrimitive(o);this.addRelationTuple(c,{atoms:[...u,p],types:[]},f)}else(Array.isArray(o)||this.isPyretObject(o))&&i.push({obj:o,parentInfo:{atoms:u,relationId:c,relationName:f}})};for(let o=0;o<i.length;o++){let{obj:u,parentInfo:c}=i[o],f=this.objectToAtomId.get(u);if(f||(f=this.createAtomFromObject(u)),c&&this.addRelationTuple(c.relationId,{atoms:[...c.atoms,f],types:[]},c.relationName),n.has(u))continue;n.add(u);let p=this.valueInfo(u);if(p?.kind==="nothing")continue;if(p?.kind==="table"){this.processTableSemantics(f,u,m=>{if(this.isAtomicValue(m))return this.createAtomFromPrimitive(m);if(qt(m)||!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret table cell");let g=m,d=this.objectToAtomId.get(g)??this.createAtomFromObject(g);return i.push({obj:g}),d});continue}if(p?.kind==="string-dict"){p.sealed&&this.addValueFact("sealed",f,"MutableStringDict"),Ot(u,p).forEach(([g,d],y)=>{if(!this.isAtomicValue(d)&&!Array.isArray(d)&&!this.isPyretObject(d))throw new Error("Unsupported Pyret dictionary value");let v=this.valueRelationId("dictionary-entries","entry",["PyretObject","Index","String","PyretObject"]);s(d,[f,this.createIndexAtom(y),this.createAtomFromPrimitive(g)],v,"entry")});continue}if(p?.kind==="reference"){p.unrestricted&&this.addValueFact("unrestricted",f,"Reference");let m=u.value;if(!this.isAtomicValue(m)&&!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret reference target");let g=this.valueRelationId("reference-target","target",["Reference","PyretObject"]);s(m,[f],g,"target");continue}if(p?.kind==="tuple"||p?.kind==="raw-array"){let m=Array.isArray(u)?u:u.vals;for(let g=0;g<m.length;g++){let d=this.valueRelationId("sequence-elements","element",["PyretObject","Index","PyretObject"]);s(m[g],[f,this.createIndexAtom(g)],d,"element")}continue}let h=u;this.originalObjects.set(f,h);let l=G(h);l?.arity===0&&this.addValueFact("nullary-constructor",f,"PyretObject");for(let m of l?.mutableFields??[]){let g=this.valueRelationId("mutable-field","mutable-field",["PyretObject","Index"]);this.addRelationTuple(g,{atoms:[f,this.createIndexAtom(m)],types:[]},"mutable-field")}if(!h.dict||typeof h.dict!="object")continue;let w=l?.fields??(p?.kind==="object"?Jl(h.dict,this.options.showFunctions):Object.keys(h.dict));!p&&!U(this.extractType(h))&&this.cacheConstructorPattern(this.extractType(h),w),w.forEach((m,g)=>{let d=h.dict[m],y=l?Xl(l,g):p?.kind==="object"?this.valueRelationId("object-field:"+m,m,["Object","Index","PyretObject"]):m;if(l&&!this.relations.has(y)&&this.relations.set(y,{id:y,name:m,types:[l.name,"PyretObject"],tuples:[]}),!this.options.showFunctions&&qt(d))return;let v=p?.kind==="object"?[f,this.createIndexAtom(g)]:[f];s(d,v,y,p?.kind==="object"?m:void 0)})}}addValueFact(r,n,i){let s=this.valueRelationId(r,r,[i]);this.addRelationTuple(s,{atoms:[n],types:[]},r)}valueRelationId(r,n,i){let s=this.valueRelations.get(r);return s||(s=globalThis.crypto?.randomUUID?.()??`relation-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${this.valueRelations.size}`,this.valueRelations.set(r,s),this.relations.set(s,{id:s,name:n,types:i,tuples:[]})),s}createIndexAtom(r){let n=this.indexAtoms.get(r);if(n)return n;let i=this.generateAtomId("Index");return this.atoms.set(i,{id:i,type:"Index",label:String(r)}),this.ensureTypeExists("Index"),this.indexAtoms.set(r,i),i}valueInfo(r){if(Array.isArray(r))return{kind:"raw-array"};if("$pyretValue"in r)return re(r);if(kt(r))throw new Error("Standalone Pyret Row values are not supported");if(Pt(r))return{kind:"table"};let n=zl(r);if(n)return n;let i=Et(r);if(i)return i;if(Kl(r))return{kind:"nothing"};if(Array.isArray(r.vals))return{kind:"tuple"};if(!G(r)&&r.dict&&(typeof r.updateDict=="function"||this.extractType(r)==="PyretObject"))return{kind:"object"}}processTableSemantics(r,n,i){let{headers:s,rows:o}=fe(n),u=this.valueRelationId("table-columns","column",["Table","Index","String"]);s.forEach((f,p)=>this.addRelationTuple(u,{atoms:[r,this.createIndexAtom(p),this.createAtomFromPrimitive(f)],types:[]},"column"));let c=this.valueRelationId("table-rows:"+s.length,"row",["Table","Index",...s.map(()=>"PyretObject")]);o.forEach((f,p)=>this.addRelationTuple(c,{atoms:[r,this.createIndexAtom(p),...Array.from(f,i)],types:[]},"row"))}createAtomFromObject(r){let n=this.valueInfo(r),i=n?{nothing:"Nothing",reference:"Reference",object:"Object",tuple:"Tuple","raw-array":"RawArray",table:"Table","string-dict":n.kind==="string-dict"&&n.mutable?"MutableStringDict":"StringDict"}[n.kind]:this.extractType(r),s=this.generateAtomId(i),o={id:s,type:i,label:n?i:this.extractLabel(r)};return this.atoms.set(s,o),this.objectToAtomId.set(r,s),this.ensureTypeExists(i),s}createAtomFromPrimitive(r){let n=Y(r),i=n?"Number":this.mapPrimitiveType(r),s=n?St(n):String(r);if(i==="String"&&this.options.stringsIdempotent||i==="Number"&&this.options.numbersIdempotent||i==="Boolean"&&this.options.booleansIdempotent){let f=Array.from(this.atoms.values()).find(p=>p.type===i&&p.label===s);if(f)return f.id}let u=this.generateAtomId(i),c={id:u,type:i,label:s};return this.atoms.set(u,c),this.ensureTypeExists(i),u}mapPrimitiveType(r){switch(typeof r){case"number":return"Number";case"string":return"String";case"boolean":return"Boolean";default:return"Value"}}extractMostSpecificBrand(r){let n=-1,i,s;for(let o of Object.keys(r)){let u=/^\$brand([a-zA-Z_]+)(\d+)$/.exec(o);if(u){let[,c,f]=u,p=parseInt(f,10);p>n&&(n=p,i=c)}else{let c=/^\$brand_?([a-zA-Z_]+)$/.exec(o);if(c){let[,f]=c;(!s||f>s)&&(s=f)}}}return i||s}extractType(r){if(r.$name&&typeof r.$name=="string")return r.$name;if(r.brands&&typeof r.brands=="object"){let n=this.extractMostSpecificBrand(r.brands);if(n)return n}return"PyretObject"}extractLabel(r){if(r.$name&&typeof r.$name=="string")return B(r.$name);let n=this.extractType(r),s=(this.typeLabelCounters.get(n)??0)+1;return this.typeLabelCounters.set(n,s),`${n}$${s}`}addRelationTuple(r,n,i){let s=n.atoms[0],o=n.atoms[n.atoms.length-1],u=this.atoms.get(s),c=this.atoms.get(o);if(!u||!c){console.warn(`Cannot create relation ${r}: missing atoms ${s} or ${o}`);return}let f=this.relations.get(r),p=i??f?.name??xe(r)?.field??r;f&&Fr(f,{...f,name:p});let h=Gl(n,f,w=>this.atoms.get(w)?.type);f?f.types=h.relationTypes:(f={id:r,name:p,types:h.relationTypes,tuples:[]},this.relations.set(r,f)),f.tuples.some(w=>_t(w)===_t(n))||(f.tuples.push(h.tuple),this.emitEvent({type:"relationTupleAdded",data:{relationId:r,tuple:h.tuple}}))}ensureTypeExists(r){if(!this.types.has(r)){let n=U(r),i=n&&!["Number","String","Boolean","PyretObject","Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"].includes(n.name)?n.name:void 0;i&&this.ensureTypeExists(i);let s={id:r,types:i?[r,i,"PyretObject"]:[r,"PyretObject"],atoms:[],isBuiltin:this.isBuiltinType(r)};this.types.set(r,s)}}initializeBuiltinTypes(){["Number","String","Boolean","PyretObject"].forEach(n=>{let i={id:n,types:n==="PyretObject"?["PyretObject"]:[n,"PyretObject"],atoms:[],isBuiltin:!0};this.types.set(n,i)})}isBuiltinType(r){return["Number","String","Boolean","PyretObject"].includes(r)}isAtomicValue(r){return typeof r=="string"||typeof r=="boolean"||Y(r)!==void 0}isPyretObject(r){return typeof r=="object"&&r!==null&&("dict"in r||"brands"in r||"$name"in r||"vals"in r||"$pyretValue"in r||_r(r))}generateAtomId(r){return`${r?r.toLowerCase().substring(0,3):"atom"}_${++this.atomCounter}`}getAtoms(){return Array.from(this.atoms.values())}getRelations(){let r=this.relations.values();return Array.from(r)}getTypes(){return this.types.forEach(r=>{r.atoms=this.getAtoms().filter(n=>n.type===r.id||!!U(n.type)&&this.types.get(n.type)?.types.includes(r.id))}),Array.from(this.types.values())}getAtomType(r){let n=this.atoms.get(r);if(!n)throw new Error(`Atom with id '${r}' not found`);let i=this.types.get(n.type);return i||(this.ensureTypeExists(n.type),this.types.get(n.type))}generateGraph(r=!1,n=!1){let i=new uf.Graph({directed:!0,multigraph:!0});if(this.getAtoms().forEach(s=>{i.setNode(s.id,{label:s.label})}),this.getRelations().forEach(s=>{s.tuples.forEach(o=>{if(o.atoms.length>=2){let u=o.atoms[0],c=o.atoms[o.atoms.length-1],f=o.atoms.slice(1,-1),p=s.name;if(f.length>0){let l=f.map(w=>{let m=this.atoms.get(w);return m?m.label:w});p=`${s.name}[${l.join(", ")}]`}let h=gA(s,o);i.setEdge(u,c,p,h)}})}),r||n){let s=[];i.nodes().forEach(o=>{let u=i.inEdges(o)||[],c=i.outEdges(o)||[];if(u.length===0&&c.length===0&&this.atoms.get(o)){let l=this.getAtomType(o).isBuiltin;(r||l&&n)&&s.push(o)}}),s.forEach(o=>i.removeNode(o))}return i}addFromDataInstance(r,n){if(!(r instanceof j))return!1;let i=r;for(let o of i.getRelations()){let u=this.relations.get(o.id);u&&Fr(u,o)}let s=new Map;return i.getAtoms().forEach(o=>{let u=this.isBuiltinType(o.type);if(n&&u&&(o.type==="String"&&this.options.stringsIdempotent||o.type==="Number"&&this.options.numbersIdempotent||o.type==="Boolean"&&this.options.booleansIdempotent)){let l=Array.from(this.atoms.values()).find(w=>w.type===o.type&&w.label===o.label);if(l){s.set(o.id,l.id);return}}let c=this.generateAtomId(o.type);s.set(o.id,c);let f={...o,id:c};this.addAtom(f);let p=i.originalObjects.get(o.id);p&&this.originalObjects.set(c,p)}),i.getTypes().forEach(o=>{if(!this.types.has(o.id))this.types.set(o.id,{...o,atoms:o.atoms.map(u=>({...u,id:s.get(u.id)||u.id}))});else{let u=this.types.get(o.id),c=o.atoms.map(f=>({...f,id:s.get(f.id)||f.id}));u.atoms.push(...c)}}),i.getRelations().forEach(o=>{let u=o.tuples.map(f=>({atoms:f.atoms.map(p=>s.get(p)||p),types:f.types})),c=this.relations.get(o.id);c?(c.tuples=of([...c.tuples,...u]),c.types=af(c.tuples,c.types)):this.relations.set(o.id,{...o,tuples:u})}),!0}};j.globalConstructorCache=new Map,j.instantiationCounter=0;var ne=j,u_=(e,t={})=>{try{let r=JSON.parse(e);return new ne(r,t)}catch(r){throw new Error(`Failed to parse Pyret JSON: ${r instanceof Error?r.message:"Unknown error"}`)}},c_=e=>e instanceof ne;var cf=Hr(Or()),Tt=class{constructor(t){this.datum=t;this.atoms=new Map(t.atoms.map(r=>[r.id,r])),this.types=new Map(t.types.map(r=>[r.id,r]))}getAtoms(){return this.datum.atoms}getRelations(){return this.datum.relations}getTypes(){return this.datum.types}getAtomType(t){let r=this.atoms.get(t);if(!r)throw new Error(`Unknown captured atom ${t}`);let n=this.types.get(r.type);if(!n)throw new Error(`Unknown captured type ${r.type}`);return n}generateGraph(t=!1,r=!1){let n=new cf.Graph({directed:!0,multigraph:!0});for(let i of this.datum.atoms)n.setNode(i.id,{label:i.label});for(let i of this.datum.relations)for(let s of i.tuples){if(s.atoms.length<2)continue;let o=s.atoms[0],u=s.atoms[s.atoms.length-1],c=s.atoms.slice(1,-1).map(p=>this.atoms.get(p).label),f=i.name+(c.length?`[${c.join(", ")}]`:"");n.setEdge(o,u,f,JSON.stringify([i.id,s.atoms]))}if(t||r)for(let i of n.nodes())!(n.nodeEdges(i)||[]).length&&(t||this.getAtomType(i).isBuiltin)&&n.removeNode(i);return n}};var jt=class extends Error{constructor(r,n,i){super(`Cannot capture ${JSON.stringify(r)}${n.map(s=>`[${JSON.stringify(s)}]`).join("")}: ${i}`);this.root=r;this.path=n;this.reason=i;this.name="PyretCaptureError"}};function lf(e){let t=new Set;function r(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n))return;let i=n&&typeof n=="object"?Object.getPrototypeOf(n):void 0;if(!n||typeof n!="object"||!Array.isArray(n)&&i!==null&&Object.getPrototypeOf(i)!==null)throw new Error("Capture metadata must contain only JSON values");if(t.has(n))throw new Error("Capture metadata must not contain cycles");t.add(n);for(let s of Reflect.ownKeys(n)){let o=Object.getOwnPropertyDescriptor(n,s);if(typeof s!="string"||o.get||o.set)throw new Error("Capture metadata must not contain symbols or accessors")}for(let s of Array.isArray(n)?Array.from(n):Object.values(n))r(s);t.delete(n)}return r(e),JSON.parse(JSON.stringify(e))}function Lr(e,t,r){if(!Array.isArray(e)||!e.length)throw new Error("Capture requires at least one named root");let n=new Set;for(let l of e){if(!l||typeof l.name!="string"||!l.name||n.has(l.name))throw new Error("Capture root names must be nonempty and unique");n.add(l.name)}let i=globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,s=new Map,o=new Map,u=[],c=(l,w,m)=>{if(s.has(l))return s.get(l);try{let g=t.observe(l);if(g.kind==="primitive")return g.value;let d;switch(g.kind){case"nothing":d={$pyretValue:{kind:"nothing"}};break;case"raw-array":d=[];break;case"tuple":d={vals:[]};break;case"object":d={$pyretValue:{kind:"object"},dict:Object.create(null)};break;case"reference":d={$pyretValue:{kind:"reference",unrestricted:!0}};break;case"string-dict":d={$pyretValue:{kind:"string-dict",mutable:g.mutable,sealed:g.sealed},entries:[]};break;case"table":d={$pyretValue:{kind:"table"},dict:Object.create(null)};break;case"constructor":{let y=JSON.stringify(g.info),v=o.get(g.identity);if(v&&v.schema!==y)throw new Error("Constructor schema changed during capture");v||(v={id:Zl(i,o.size,g.info.name),schema:y},o.set(g.identity,v)),d={$name:v.id,$arity:g.info.arity,$constructor:{$fieldNames:g.info.fields.slice()},$mut_fields_mask:g.info.fields.map((x,E)=>(g.info.mutableFields??[]).includes(E)),dict:Object.create(null)};break}default:throw new Error("Unsupported adapter observation")}return s.set(l,d),u.push({carrier:d,observed:g,root:w,path:m}),d}catch(g){throw g instanceof jt?g:new jt(w,m,g instanceof Error?g.message:String(g))}},f=e.map(l=>c(l.value,l.name,[]));for(let l=0;l<u.length;l++){let{carrier:w,observed:m,root:g,path:d}=u[l],y=(v,...x)=>c(v,g,[...d,...x]);switch(m.kind){case"constructor":m.info.fields.forEach((v,x)=>{w.dict[v]=y(m.values[x],v)});break;case"object":m.fields.forEach(([v,x])=>{w.dict[v]=y(x,v)});break;case"raw-array":m.values.forEach((v,x)=>w.push(y(v,x)));break;case"tuple":m.values.forEach((v,x)=>w.vals.push(y(v,x)));break;case"reference":w.value=y(m.value,"target");break;case"string-dict":m.entries.forEach(([v,x])=>w.entries.push([v,y(x,v)]));break;case"table":w.dict["_header-raw-array"]=m.headers.slice(),w.dict["_rows-raw-array"]=m.rows.map((v,x)=>v.map((E,O)=>y(E,"rows",x,m.headers[O])));break}}let{instance:p,rootIds:h}=ne.fromValues(f);return lf({format:"spytial-pyret-capture",version:1,datum:{atoms:[...p.getAtoms()],relations:[...p.getRelations()],types:[...p.getTypes()]},roots:e.map((l,w)=>({name:l.name,atomId:h[w],...l.observation===void 0?{}:{observation:l.observation}})),...r===void 0?{}:{provenance:r}})}function Vr(e){let t=lf(e);if(!t||t.format!=="spytial-pyret-capture"||t.version!==1)throw new Error("Unsupported Pyret capture format/version");if(!Array.isArray(t.roots)||!t.roots.length||!t.datum||!Array.isArray(t.datum.atoms)||!Array.isArray(t.datum.relations)||!Array.isArray(t.datum.types))throw new Error("Malformed Pyret capture");let r=new Map,n=new Set(["Number","String","Boolean","Nothing","Object","Index","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);for(let l of t.datum.atoms){if(!l||typeof l.id!="string"||!l.id||r.has(l.id)||typeof l.label!="string"||typeof l.type!="string"||!n.has(l.type)&&!U(l.type))throw new Error("Malformed or duplicate Pyret capture atom");if(l.type==="Index"&&(!/^(0|[1-9][0-9]*)$/.test(l.label)||!Number.isSafeInteger(Number(l.label))))throw new Error("Malformed Pyret capture index");r.set(l.id,l)}let i=new Set,s=(l,w)=>l===w.type||l==="PyretObject"||!n.has(l)&&l===U(w.type)?.name,o=new Set;for(let l of t.datum.types){if(!l||typeof l.id!="string"||o.has(l.id)||!Array.isArray(l.types)||l.types[0]!==l.id||l.types.some(m=>typeof m!="string")||!Array.isArray(l.atoms)||typeof l.isBuiltin!="boolean")throw new Error("Malformed Pyret capture type");o.add(l.id);let w=new Set;for(let m of l.atoms){let g=m&&r.get(m.id);if(!g||w.has(m.id)||m.type!==g.type||m.label!==g.label||!s(l.id,g))throw new Error("Invalid Pyret capture type membership");w.add(m.id)}}if([...r.values()].some(l=>!o.has(l.type))||t.datum.types.some(l=>l.types.some(w=>!o.has(w))))throw new Error("Unknown Pyret capture type");for(let l of t.datum.relations){if(!l||typeof l.id!="string"||i.has(l.id)||typeof l.name!="string"||!Array.isArray(l.tuples)||!Array.isArray(l.types)||l.types.some(m=>typeof m!="string"))throw new Error("Malformed or duplicate Pyret capture relation");i.add(l.id);let w=new Set;for(let m of l.tuples){if(!m||!Array.isArray(m.atoms)||!m.atoms.length||m.atoms.some(d=>!r.has(d))||!Array.isArray(m.types)||m.types.length!==m.atoms.length||m.types.some((d,y)=>!s(d,r.get(m.atoms[y]))))throw new Error("Malformed Pyret capture tuple");let g=JSON.stringify(m.atoms);if(w.has(g))throw new Error("Duplicate Pyret capture tuple");w.add(g)}}let u=new Set;for(let l of t.roots){if(!l||typeof l.name!="string"||!l.name||u.has(l.name)||!r.has(l.atomId)||r.get(l.atomId).type==="Index")throw new Error("Invalid Pyret capture root");u.add(l.name)}let c=new Tt(t.datum),f=[...r.values()].filter(l=>l.type!=="Index").map(l=>l.id),p=At(c,f,{allowContainerCycles:!0}),h=new Map(f.map((l,w)=>[l,p[w]]));return{snapshot:t,instance:c,values:new Map(t.roots.map(l=>[l.name,h.get(l.atomId)]))}}function Je(e){for(let t of["isNumber","isNothing","isDataValue","isTuple","isRef","isFunction","isMethod","isOpaque","isObject"])if(typeof e?.[t]!="function")throw new Error(`Pyret runtime lacks ${t}`);return{observe(t){if(typeof t=="string"||typeof t=="boolean")return{kind:"primitive",value:t};if(e.isNumber(t)){let n=Y(t);if(!n)throw new Error("Unsupported Pyret numeric representation");return{kind:"primitive",value:{$pyretNumber:n}}}if(e.isFunction(t))throw new Error("Unsupported Pyret function");if(e.isMethod(t))throw new Error("Unsupported Pyret method");if(e.isOpaque(t))throw new Error("Unsupported Pyret opaque value");if(e.isNothing(t))return{kind:"nothing"};if(Array.isArray(t)){if(Array.from({length:t.length},(n,i)=>i).some(n=>!(n in t)))throw new Error("Unsupported sparse raw array");return{kind:"raw-array",values:t.slice()}}let r=t;if(e.isRef(t)){if(r.state!==2)throw new Error("Unsupported Pyret reference state: only initialized mutable references are supported");if(!Array.isArray(r.anns?.anns)||!r.anns.anns.every(n=>n.ann===e.Any))throw new Error("Unsupported Pyret reference annotation: only the runtime Any annotation is supported");return{kind:"reference",value:r.value}}if(e.isTuple(t))return{kind:"tuple",values:r.vals.slice()};if(e.isDataValue(t)){let n=G(r);if(!n||!r.$constructor||typeof r.$constructor!="object")throw new Error("Invalid Pyret constructor metadata");for(let i in r.dict)if(!n.fields.includes(i)&&i!=="$fieldNames"&&!e.isMethod(r.dict[i])&&!(i==="_spytial"&&e.isFunction(r.dict[i])))throw new Error(`Unsupported extra constructor field ${JSON.stringify(i)}`);return{kind:"constructor",identity:r.$constructor,info:n,values:n.fields.map(i=>r.dict[i])}}if(e.isObject(t)){if(kt(r))throw new Error("Unsupported standalone Pyret Row");if(Pt(r))return{kind:"table",...fe(r)};let n=Et(r);if(n)return{...n,entries:Ot(r,n)};if(r.brands&&Object.keys(r.brands).some(s=>s!=="brandCount"&&r.brands[s]===!0))throw new Error("Unsupported branded Pyret object");let i=[];for(let s in r.dict)s==="_spytial"&&(e.isFunction(r.dict[s])||e.isMethod(r.dict[s]))||i.push([s,r.dict[s]]);return{kind:"object",fields:i}}throw new Error("Unsupported value from this Pyret runtime")}}}function T_(e,t){return Vr(Lr([{name:"value",value:e}],Je(t))).instance}function j_(e,t){let r=Lr([{name:"value",value:e}],Je(t)),{instance:n}=Vr(r),i;try{i=Ie(n,r.roots[0].atomId)}catch(s){i="Source preview unavailable: "+(s instanceof Error?s.message:String(s))}return{snapshot:r,instance:n,sourcePreview:i}}function R_(e){return{...e,nodes:e.nodes.map(t=>({...t,mostSpecificType:B(t.mostSpecificType)}))}}var Rt={languageVersion:"2026-09-18",coreVersion:"6.3.2",enums:{TextSize:{small:"small",normal:"normal",large:"large"},LinePattern:{solid:"solid",dashed:"dashed",dotted:"dotted"},IconPlacement:{full:"full",badge:"badge"},Direction:{above:"above",below:"below",left:"left",right:"right","directly-above":"directlyAbove","directly-below":"directlyBelow","directly-left":"directlyLeft","directly-right":"directlyRight"},Hold:{always:"always",never:"never"},Rotation:{clockwise:"clockwise",counterclockwise:"counterclockwise"},Alignment:{horizontal:"horizontal",vertical:"vertical"},GroupEdgeDirection:{"no-group-edge":"none",togroup:"togroup",fromgroup:"fromgroup"},LayoutFlag:{"hide-disconnected":"hideDisconnected","hide-disconnected-built-ins":"hideDisconnectedBuiltIns"}},blocks:{textStyle:{name:"textStyle",typeName:"TextStyle",constructor:"text-style",fields:[{name:"size",pyretName:"size",type:"enum",required:!1,enum:"TextSize"},{name:"color",pyretName:"color",type:"color",required:!1}]},lineStyle:{name:"lineStyle",typeName:"LineStyle",constructor:"line-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"pattern",pyretName:"pattern",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1}]},fillStyle:{name:"fillStyle",typeName:"FillStyle",constructor:"fill-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1}]},borderStyle:{name:"borderStyle",typeName:"BorderStyle",constructor:"border-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"width",pyretName:"width",type:"number",required:!1,exclusiveMinimum:0}]},iconStyle:{name:"iconStyle",typeName:"IconStyle",constructor:"icon-style",fields:[{name:"path",pyretName:"path",type:"icon-path",required:!1},{name:"placement",pyretName:"placement",type:"enum",required:!1,enum:"IconPlacement"},{name:"opacity",pyretName:"opacity",type:"number",required:!1,minimum:0,maximum:1}]},ruleSource:{name:"ruleSource",typeName:"RuleSource",constructor:"rule-source",fields:[{name:"text",pyretName:"text",type:"string",required:!0},{name:"location",pyretName:"location",type:"string",required:!1}]},groupAddEdge:{name:"groupAddEdge",typeName:"GroupAddEdge",constructor:"group-add-edge",fields:[{name:"points",pyretName:"points",type:"enum",required:!1,enum:"GroupEdgeDirection"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"}]}},rules:{orientation:{name:"orientation",yamlKey:"orientation",section:"constraints",shape:"mapping",constructor:"spytial-orientation",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"directions",pyretName:"directions",type:"enum-list",required:!0,listRules:{atMostOneOf:[["above","below"],["left","right"]],narrowsListTo:{directlyAbove:["above","directlyAbove"],directlyBelow:["below","directlyBelow"],directlyLeft:["left","directlyLeft"],directlyRight:["right","directlyRight"]}},enum:"Direction"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},cyclic:{name:"cyclic",yamlKey:"cyclic",section:"constraints",shape:"mapping",constructor:"spytial-cyclic",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!1,enum:"Rotation"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},align:{name:"align",yamlKey:"align",section:"constraints",shape:"mapping",constructor:"spytial-align",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!0,enum:"Alignment"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},group:{name:"group",yamlKey:"group",section:"constraints",shape:"mapping",constructor:"spytial-group",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"addEdge",pyretName:"add-edge",type:"block",required:!1,block:"groupAddEdge"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},size:{name:"size",yamlKey:"size",section:"constraints",shape:"mapping",constructor:"spytial-size",fields:[{name:"width",pyretName:"width",type:"number",required:!0,exclusiveMinimum:0},{name:"height",pyretName:"height",type:"number",required:!0,exclusiveMinimum:0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideAtom:{name:"hideAtom",yamlKey:"hideAtom",section:"constraints",shape:"mapping",constructor:"spytial-hide-atom",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},flag:{name:"flag",yamlKey:"flag",section:"directives",shape:"scalar",constructor:"spytial-flag",fields:[{name:"flag",pyretName:"name",type:"enum",required:!0,enum:"LayoutFlag"}]},atomStyle:{name:"atomStyle",yamlKey:"atomStyle",section:"directives",shape:"mapping",constructor:"spytial-atom-style",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"fillStyle",pyretName:"fill-style",type:"block",required:!1,block:"fillStyle"},{name:"borderStyle",pyretName:"border-style",type:"block",required:!1,block:"borderStyle"},{name:"iconStyle",pyretName:"icon-style",type:"block",required:!1,block:"iconStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeStyle:{name:"edgeStyle",yamlKey:"edgeStyle",section:"directives",shape:"mapping",constructor:"spytial-edge-style",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},attribute:{name:"attribute",yamlKey:"attribute",section:"directives",shape:"mapping",constructor:"spytial-attribute",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},tag:{name:"tag",yamlKey:"tag",section:"directives",shape:"mapping",constructor:"spytial-tag",fields:[{name:"toTag",pyretName:"to-tag",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"value",pyretName:"value",type:"selector",required:!0},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideField:{name:"hideField",yamlKey:"hideField",section:"directives",shape:"mapping",constructor:"spytial-hide-field",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},inferredEdge:{name:"inferredEdge",yamlKey:"inferredEdge",section:"directives",shape:"mapping",constructor:"spytial-inferred-edge",fields:[{name:"name",pyretName:"name",type:"string",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"draw",pyretName:"draw",type:"string",required:!1,pattern:"^\\s*[^\\s](?:(?!->)[\\s\\S])*->(?:(?!->)[\\s\\S])*[^\\s]\\s*$"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"color",pyretName:"color",type:"color",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},icon:{name:"icon",yamlKey:"icon",section:"directives",shape:"mapping",constructor:"spytial-icon",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"path",pyretName:"path",type:"icon-path",required:!0},{name:"showLabels",pyretName:"show-labels",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},atomColor:{name:"atomColor",yamlKey:"atomColor",section:"directives",shape:"mapping",constructor:"spytial-atom-color",fields:[{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeColor:{name:"edgeColor",yamlKey:"edgeColor",section:"directives",shape:"mapping",constructor:"spytial-edge-color",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]}}};var ie=class extends Error{constructor(r,n){super(`${r}: ${n}`);this.path=r;this.name="SpytialSpecError"}},hA=Object.values(Rt.rules),bA=Rt.blocks,wA=Rt.enums;function R(e,t){throw new ie(e,t)}function Nt(e,t,r,n,i){if(!t.isDataValue(e))return R(r,`expected ${n}`);let s=e,o=G(s);return s.$name!==n||!o||o.fields.length!==i.length||o.fields.some((u,c)=>u!==i[c])?R(r,`expected ${n}`):s.dict}function ff(e,t,r){let n=new Set,i=[];for(;!t.ffi.isEmpty(e);){if(!t.ffi.isLink(e))return R(r,"expected a Pyret List");if(n.has(e))return R(r,"cyclic rule list");n.add(e);let s=e.dict;i.push(s.first),e=s.rest}return i}function pf(e,t,r,n){if(t.type==="enum"||t.type==="enum-list"){let i=wA[t.enum],s=(u,c)=>{let f=u?.$name;return!f||!Object.prototype.hasOwnProperty.call(i,f)?R(c,`expected ${t.enum}`):(Nt(u,r,c,f,[]),i[f])};if(t.type==="enum")return s(e,n);let o=ff(e,r,n).map((u,c)=>s(u,`${n}[${c}]`));for(let u of t.listRules?.atMostOneOf??[])u.filter(c=>o.includes(c)).length>1&&R(n,"incompatible directions");for(let[u,c]of Object.entries(t.listRules?.narrowsListTo??{}))o.includes(u)&&o.some(f=>!c.includes(f))&&R(n,"incompatible directions");return o}if(t.type==="block")return vA(e,bA[t.block],r,n);if(t.type==="boolean")return typeof e!="boolean"?R(n,"expected Boolean"):e;if(t.type==="number"||t.type==="integer"){if(!r.isNumber(e))return R(n,"expected Number");let i=r.num_to_fixnum(e);return!Number.isFinite(i)||t.type==="integer"&&!Number.isSafeInteger(i)||t.minimum!==void 0&&i<t.minimum||t.maximum!==void 0&&i>t.maximum||t.exclusiveMinimum!==void 0&&i<=t.exclusiveMinimum?R(n,"number is outside the manifest bounds"):i}return typeof e!="string"?R(n,"expected String"):t.required&&!e.trim()?R(n,"required string must not be empty"):t.pattern&&!new RegExp(t.pattern).test(e)?R(n,"string does not match the manifest pattern"):e}function df(e,t,r,n){let i={};for(let s of t){let o=`${n}.${s.pyretName}`;if(!Object.prototype.hasOwnProperty.call(e,s.pyretName)){s.required&&R(o,"missing required field");continue}i[s.name]=pf(e[s.pyretName],s,r,o)}return i}function yf(e,t,r,n){(!r.isObject(e)||r.isDataValue(e))&&R(n,"expected a Pyret record");let i=e.dict,s=new Set(t.map(o=>o.pyretName));for(let o of Object.keys(i))s.has(o)||R(`${n}.${o}`,"unknown field");return df(i,t,r,n)}function vA(e,t,r,n){let i=Nt(e,r,n,t.constructor,["fields"]);return yf(i.fields,t.fields,r,n)}function Br(e,t=0){let r=" ".repeat(t);if(Array.isArray(e))return e.length?`
|
|
15
15
|
`+e.map(i=>`${r}- ${Br(i,t+2).trimStart()}`).join(`
|
|
16
16
|
`):"[]";if(typeof e!="object")return JSON.stringify(e);let n=Object.entries(e);return n.length?`
|
|
17
|
-
`+n.map(([i,s])=>{let o=Array.isArray(s)&&s.every(
|
|
17
|
+
`+n.map(([i,s])=>{let o=Array.isArray(s)&&s.every(u=>typeof u!="object")?JSON.stringify(s):Br(s,t+2);return`${r}${JSON.stringify(i)}:${o.startsWith(`
|
|
18
18
|
`)?"":" "}${o}`}).join(`
|
|
19
|
-
`):"{}"}function
|
|
20
|
-
`}function Ur(e){let t=[];for(;e;e=e.parent)t.push(e.key);return"value"+t.reverse().map(r=>`[${JSON.stringify(r)}]`).join("")}function
|
|
19
|
+
`):"{}"}function mf(e,t){let r={constraints:[],directives:[]};for(let[n,i]of ff(e,t,"rules").entries()){let s=`rules[${n}]`,o=i?.$name;o!=="constraint"&&o!=="directive"&&R(s,"expected SpytialRule");let u=Nt(i,t,s,o,["value"]).value,c=u?.$name,f=hA.find(m=>m.constructor===c);(!f||f.section!==`${o}s`)&&R(s,`invalid ${o} variant`);let p=f.fields.filter(m=>m.required),h=f.fields.filter(m=>!m.required),l=Nt(u,t,s,f.constructor,[...p.map(m=>m.pyretName),...f.name==="atomStyle"?["selector"]:[],...h.length?["options"]:[]]),w=df(l,p,t,s);if(f.name==="atomStyle"){let m=h.find(g=>g.name==="selector");m||R(s,"missing atomStyle selector schema"),w.selector=pf(l.selector,{...m,required:!0},t,`${s}.selector`)}h.length&&Object.assign(w,yf(l.options,h.filter(m=>f.name!=="atomStyle"||m.name!=="selector"),t,`${s}.options`)),r[f.section].push({[f.yamlKey]:f.shape==="scalar"?w[f.fields[0].name]:w})}return Br(r).trimStart()+`
|
|
20
|
+
`}function Ur(e){let t=[];for(;e;e=e.parent)t.push(e.key);return"value"+t.reverse().map(r=>`[${JSON.stringify(r)}]`).join("")}function xA(e,t,r){let n=Je(t),i=new Set,s=new Set,o=[],u=[{value:e}];for(let l=0;l<u.length;l++){let{value:w,path:m}=u[l];if(i.has(w)||(i.add(w),t.isFunction(w)||t.isMethod(w)))continue;let g=(d,y)=>u.push({value:d,path:{parent:m,key:y}});try{if(t.isObject(w)&&t.hasField(w,"_spytial")){let y=t.getColonField(w,"_spytial");!t.isFunction(y)&&!t.isMethod(y)&&R(Ur(m),"_spytial must be a function or method"),s.has(y)||(s.add(y),o.push({fn:t.getField(w,"_spytial"),path:m}))}let d=n.observe(w);switch(d.kind){case"constructor":d.values.forEach((y,v)=>g(y,d.info.fields[v]));break;case"object":d.fields.forEach(([y,v])=>g(v,y));break;case"raw-array":case"tuple":d.values.forEach(g);break;case"reference":g(d.value,"target");break;case"string-dict":d.entries.forEach(([y,v])=>g(v,y));break;case"table":d.rows.forEach((y,v)=>y.forEach((x,E)=>u.push({value:x,path:{parent:{parent:{parent:m,key:"rows"},key:v},key:d.headers[E]}})));break}}catch(d){throw d instanceof ie?d:new ie(Ur(m),d instanceof Error?d.message:String(d))}}let c=[],f=0,p="value",h=()=>{if(f===o.length)return c;let l=o[f++];return p=`${Ur(l.path)}._spytial`,t.safeCall(()=>l.fn.app(),w=>{try{c.push(typeof w=="string"?w:mf(w,t))}catch(m){let g=new ie(p,m instanceof Error?m.message:String(m));throw r&&r(g),g}return h()},p)};return{next:h,documents:c,hasHooks:o.length>0,activePath:()=>p}}async function qA(e,t){let r=xA(e,t);return r.hasHooks?new Promise((n,i)=>{t.runThunk(r.next,s=>{t.isSuccessResult(s)?n(r.documents):i(new ie(r.activePath(),s.exn instanceof Error?s.exn.message:String(s.exn)))})}):[]}var gf=new Set(["Number","String","Boolean","Index"]);function IA(e,t){let r=e.getAtoms(),n=e.getRelations(),i=new Map(r.map(d=>[d.id,d])),s=d=>xe(d.id)?d.id:d.name,o=new Map,u=new Set;for(let d of n)for(let y of d.tuples){if(y.atoms.length<1)continue;let v=y.atoms[0];for(let E=1;E<y.atoms.length;E++)u.add(y.atoms[E]);let x=o.get(v)??[];x.push({rel:s(d),tuple:y.atoms.slice()}),o.set(v,x)}let c=d=>{let y=i.get(d);return y?JSON.stringify([y.type,gf.has(y.type)?y.label:void 0]):"?"},f=t?[t]:r.map(d=>d.id).filter(d=>!u.has(d)),p=(f.length?f:r.map(d=>d.id)).slice().sort((d,y)=>{let v=c(d).localeCompare(c(y));return v!==0?v:d.localeCompare(y)}),h=new Map,l=0,w=d=>{let y=[d];for(;y.length;){let v=y.pop();if(h.has(v))continue;h.set(v,l++);let x=(o.get(v)??[]).slice().sort((E,O)=>{let C=E.rel.localeCompare(O.rel);if(C!==0)return C;let D=E.tuple.slice(1).map(c).join("|"),z=O.tuple.slice(1).map(c).join("|");return D.localeCompare(z)});for(let E=x.length-1;E>=0;E--){let O=x[E].tuple;for(let C=O.length-1;C>=1;C--)y.push(O[C])}}};for(let d of p)w(d);r.map(d=>d.id).sort().forEach(d=>{h.has(d)||h.set(d,l++)});let m=r.map(d=>({id:h.get(d.id),type:d.type,label:gf.has(d.type)?d.label:void 0})).sort((d,y)=>d.id-y.id),g=n.map(d=>{let y=d.tuples.filter(v=>v.atoms.length>=1).map(v=>v.atoms.map(x=>h.get(x)??-1));return y.sort((v,x)=>{let E=Math.min(v.length,x.length);for(let O=0;O<E;O++)if(v[O]!==x[O])return v[O]-x[O];return v.length-x.length}),{name:s(d),tuples:y}}).filter(d=>d.tuples.length>0).sort((d,y)=>d.name.localeCompare(y.name)||JSON.stringify(d.tuples).localeCompare(JSON.stringify(y.tuples)));return JSON.stringify({atoms:m,relations:g})}export{jt as PyretCaptureError,ne as PyretDataInstance,ie as SpytialSpecError,IA as canon,Lr as capturePyret,B as constructorDisplayName,u_ as createPyretDataInstance,Je as createPyretRuntimeAdapter,R_ as diagramTypeNames,gA as generateEdgeId,qA as getSpytialSpec,Vr as importPyretCapture,c_ as isPyretDataInstance,j_ as prepareDiagram,Ie as pyretCaptureSource,U as readConstructorTypeId,Mr as reifyToValue,At as reifyToValues,Ie as replit,mf as spytialRulesToYaml,T_ as toDataInstance};
|