@drincs/pixi-vn-ink 1.1.6 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,109 @@
1
+ import {RegisteredCharacters}from'@drincs/pixi-vn/characters';import D,{ZodType}from'zod';import {PixiError,createExportableElement}from'@drincs/pixi-vn';import {canvas,VideoSprite,showVideo,Assets,Text,showText,ImageSprite,showImage,ImageContainer,showImageContainer,shakeEffect,pushOut,zoomOut,moveOut,removeWithDissolve,removeWithFade,pushIn,zoomIn,moveIn,showWithDissolve,showWithFade}from'@drincs/pixi-vn/canvas';import {NarrationManagerStatic,narration,RegisteredLabels,LabelAbstract}from'@drincs/pixi-vn/narration';import {sound}from'@drincs/pixi-vn/sound';import {storage}from'@drincs/pixi-vn/storage';var F0=Object.create;var $f=Object.defineProperty;var I0=Object.getOwnPropertyDescriptor;var k0=Object.getOwnPropertyNames;var V0=Object.getPrototypeOf,R0=Object.prototype.hasOwnProperty;var An=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var E=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var $0=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of k0(e))!R0.call(n,i)&&i!==t&&$f(n,i,{get:()=>e[i],enumerable:!(r=I0(e,i))||r.enumerable});return n};var Xr=(n,e,t)=>(t=n!=null?F0(V0(n)):{},$0(e||!n||!n.__esModule?$f(t,"default",{value:n,enumerable:true}):t,n));var si=E(X=>{Object.defineProperty(X,"__esModule",{value:true});X.regexpCode=X.getEsmExportName=X.getProperty=X.safeStringify=X.stringify=X.strConcat=X.addCodeArg=X.str=X._=X.nil=X._Code=X.Name=X.IDENTIFIER=X._CodeOrName=void 0;var ri=class{};X._CodeOrName=ri;X.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Nn=class extends ri{constructor(e){if(super(),!X.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e;}toString(){return this.str}emptyStr(){return false}get names(){return {[this.str]:1}}};X.Name=Nn;var ht=class extends ri{constructor(e){super(),this._items=typeof e=="string"?[e]:e;}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;let e=this._items[0];return e===""||e==='""'}get str(){var e;return (e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((t,r)=>`${t}${r}`,"")}get names(){var e;return (e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((t,r)=>(r instanceof Nn&&(t[r.str]=(t[r.str]||0)+1),t),{})}};X._Code=ht;X.nil=new ht("");function xp(n,...e){let t=[n[0]],r=0;for(;r<e.length;)tl(t,e[r]),t.push(n[++r]);return new ht(t)}X._=xp;var el=new ht("+");function Tp(n,...e){let t=[ii(n[0])],r=0;for(;r<e.length;)t.push(el),tl(t,e[r]),t.push(el,ii(n[++r]));return KC(t),new ht(t)}X.str=Tp;function tl(n,e){e instanceof ht?n.push(...e._items):e instanceof Nn?n.push(e):n.push(ZC(e));}X.addCodeArg=tl;function KC(n){let e=1;for(;e<n.length-1;){if(n[e]===el){let t=XC(n[e-1],n[e+1]);if(t!==void 0){n.splice(e-1,3,t);continue}n[e++]="+";}e++;}}function XC(n,e){if(e==='""')return n;if(n==='""')return e;if(typeof n=="string")return e instanceof Nn||n[n.length-1]!=='"'?void 0:typeof e!="string"?`${n.slice(0,-1)}${e}"`:e[0]==='"'?n.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(n instanceof Nn))return `"${n}${e.slice(1)}`}function YC(n,e){return e.emptyStr()?n:n.emptyStr()?e:Tp`${n}${e}`}X.strConcat=YC;function ZC(n){return typeof n=="number"||typeof n=="boolean"||n===null?n:ii(Array.isArray(n)?n.join(","):n)}function QC(n){return new ht(ii(n))}X.stringify=QC;function ii(n){return JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}X.safeStringify=ii;function eb(n){return typeof n=="string"&&X.IDENTIFIER.test(n)?new ht(`.${n}`):xp`[${n}]`}X.getProperty=eb;function tb(n){if(typeof n=="string"&&X.IDENTIFIER.test(n))return new ht(`${n}`);throw new Error(`CodeGen: invalid export name: ${n}, use explicit $id name mapping`)}X.getEsmExportName=tb;function nb(n){return new ht(n.toString())}X.regexpCode=nb;});var il=E(Qe=>{Object.defineProperty(Qe,"__esModule",{value:true});Qe.ValueScope=Qe.ValueScopeName=Qe.Scope=Qe.varKinds=Qe.UsedValueState=void 0;var Ze=si(),nl=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value;}},xs;(function(n){n[n.Started=0]="Started",n[n.Completed=1]="Completed";})(xs||(Qe.UsedValueState=xs={}));Qe.varKinds={const:new Ze.Name("const"),let:new Ze.Name("let"),var:new Ze.Name("var")};var Ts=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t;}toName(e){return e instanceof Ze.Name?e:this.name(e)}name(e){return new Ze.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return `${e}${t.index++}`}_nameGroup(e){var t,r;if(!((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0)&&r.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Qe.Scope=Ts;var Ns=class extends Ze.Name{constructor(e,t){super(t),this.prefix=e;}setValue(e,{property:t,itemIndex:r}){this.value=e,this.scopePath=(0, Ze._)`.${new Ze.Name(t)}[${r}]`;}};Qe.ValueScopeName=Ns;var rb=(0, Ze._)`\n`,rl=class extends Ts{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?rb:Ze.nil};}get(){return this._scope}name(e){return new Ns(e,this._newName(e))}value(e,t){var r;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(e),{prefix:a}=i,s=(r=t.key)!==null&&r!==void 0?r:t.ref,o=this._values[a];if(o){let c=o.get(s);if(c)return c}else o=this._values[a]=new Map;o.set(s,i);let u=this._scope[a]||(this._scope[a]=[]),l=u.length;return u[l]=t.ref,i.setValue(t,{property:a,itemIndex:l}),i}getValue(e,t){let r=this._values[e];if(r)return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return (0, Ze._)`${e}${r.scopePath}`})}scopeCode(e=this._values,t,r){return this._reduceValues(e,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},t,r)}_reduceValues(e,t,r={},i){let a=Ze.nil;for(let s in e){let o=e[s];if(!o)continue;let u=r[s]=r[s]||new Map;o.forEach(l=>{if(u.has(l))return;u.set(l,xs.Started);let c=t(l);if(c){let h=this.opts.es5?Qe.varKinds.var:Qe.varKinds.const;a=(0, Ze._)`${a}${h} ${l} = ${c};${this.opts._n}`;}else if(c=i?.(l))a=(0, Ze._)`${a}${c}${this.opts._n}`;else throw new nl(l);u.set(l,xs.Completed);});}return a}};Qe.ValueScope=rl;});var $=E(q=>{Object.defineProperty(q,"__esModule",{value:true});q.or=q.and=q.not=q.CodeGen=q.operators=q.varKinds=q.ValueScopeName=q.ValueScope=q.Scope=q.Name=q.regexpCode=q.stringify=q.getProperty=q.nil=q.strConcat=q.str=q._=void 0;var J=si(),Dt=il(),un=si();Object.defineProperty(q,"_",{enumerable:true,get:function(){return un._}});Object.defineProperty(q,"str",{enumerable:true,get:function(){return un.str}});Object.defineProperty(q,"strConcat",{enumerable:true,get:function(){return un.strConcat}});Object.defineProperty(q,"nil",{enumerable:true,get:function(){return un.nil}});Object.defineProperty(q,"getProperty",{enumerable:true,get:function(){return un.getProperty}});Object.defineProperty(q,"stringify",{enumerable:true,get:function(){return un.stringify}});Object.defineProperty(q,"regexpCode",{enumerable:true,get:function(){return un.regexpCode}});Object.defineProperty(q,"Name",{enumerable:true,get:function(){return un.Name}});var Vs=il();Object.defineProperty(q,"Scope",{enumerable:true,get:function(){return Vs.Scope}});Object.defineProperty(q,"ValueScope",{enumerable:true,get:function(){return Vs.ValueScope}});Object.defineProperty(q,"ValueScopeName",{enumerable:true,get:function(){return Vs.ValueScopeName}});Object.defineProperty(q,"varKinds",{enumerable:true,get:function(){return Vs.varKinds}});q.operators={GT:new J._Code(">"),GTE:new J._Code(">="),LT:new J._Code("<"),LTE:new J._Code("<="),EQ:new J._Code("==="),NEQ:new J._Code("!=="),NOT:new J._Code("!"),OR:new J._Code("||"),AND:new J._Code("&&"),ADD:new J._Code("+")};var Xt=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},sl=class extends Xt{constructor(e,t,r){super(),this.varKind=e,this.name=t,this.rhs=r;}render({es5:e,_n:t}){let r=e?Dt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return `${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=sr(this.rhs,e,t)),this}get names(){return this.rhs instanceof J._CodeOrName?this.rhs.names:{}}},Fs=class extends Xt{constructor(e,t,r){super(),this.lhs=e,this.rhs=t,this.sideEffects=r;}render({_n:e}){return `${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof J.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=sr(this.rhs,e,t),this}get names(){let e=this.lhs instanceof J.Name?{}:{...this.lhs.names};return ks(e,this.rhs)}},al=class extends Fs{constructor(e,t,r,i){super(e,r,i),this.op=t;}render({_n:e}){return `${this.lhs} ${this.op}= ${this.rhs};`+e}},ol=class extends Xt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `${this.label}:`+e}},ul=class extends Xt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `break${this.label?` ${this.label}`:""};`+e}},ll=class extends Xt{constructor(e){super(),this.error=e;}render({_n:e}){return `throw ${this.error};`+e}get names(){return this.error.names}},cl=class extends Xt{constructor(e){super(),this.code=e;}render({_n:e}){return `${this.code};`+e}optimizeNodes(){return `${this.code}`?this:void 0}optimizeNames(e,t){return this.code=sr(this.code,e,t),this}get names(){return this.code instanceof J._CodeOrName?this.code.names:{}}},ai=class extends Xt{constructor(e=[]){super(),this.nodes=e;}render(e){return this.nodes.reduce((t,r)=>t+r.render(e),"")}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let r=e[t].optimizeNodes();Array.isArray(r)?e.splice(t,1,...r):r?e[t]=r:e.splice(t,1);}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:r}=this,i=r.length;for(;i--;){let a=r[i];a.optimizeNames(e,t)||(ib(e,a.names),r.splice(i,1));}return r.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>kn(e,t.names),{})}},Yt=class extends ai{render(e){return "{"+e._n+super.render(e)+"}"+e._n}},hl=class extends ai{},ir=class extends Yt{};ir.kind="else";var Fn=class n extends Yt{constructor(e,t){super(t),this.condition=e;}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){let r=t.optimizeNodes();t=this.else=Array.isArray(r)?new ir(r):r;}if(t)return e===false?t instanceof n?t:t.nodes:this.nodes.length?this:new n(Np(e),t instanceof n?[t]:t.nodes);if(!(e===false||!this.nodes.length))return this}optimizeNames(e,t){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t),!!(super.optimizeNames(e,t)||this.else))return this.condition=sr(this.condition,e,t),this}get names(){let e=super.names;return ks(e,this.condition),this.else&&kn(e,this.else.names),e}};Fn.kind="if";var In=class extends Yt{};In.kind="for";var dl=class extends In{constructor(e){super(),this.iteration=e;}render(e){return `for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=sr(this.iteration,e,t),this}get names(){return kn(super.names,this.iteration.names)}},fl=class extends In{constructor(e,t,r,i){super(),this.varKind=e,this.name=t,this.from=r,this.to=i;}render(e){let t=e.es5?Dt.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return `for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){let e=ks(super.names,this.from);return ks(e,this.to)}},Is=class extends In{constructor(e,t,r,i){super(),this.loop=e,this.varKind=t,this.name=r,this.iterable=i;}render(e){return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=sr(this.iterable,e,t),this}get names(){return kn(super.names,this.iterable.names)}},oi=class extends Yt{constructor(e,t,r){super(),this.name=e,this.args=t,this.async=r;}render(e){return `${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};oi.kind="func";var ui=class extends ai{render(e){return "return "+super.render(e)}};ui.kind="return";var pl=class extends Yt{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(t=this.finally)===null||t===void 0||t.optimizeNodes(),this}optimizeNames(e,t){var r,i;return super.optimizeNames(e,t),(r=this.catch)===null||r===void 0||r.optimizeNames(e,t),(i=this.finally)===null||i===void 0||i.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&kn(e,this.catch.names),this.finally&&kn(e,this.finally.names),e}},li=class extends Yt{constructor(e){super(),this.error=e;}render(e){return `catch(${this.error})`+super.render(e)}};li.kind="catch";var ci=class extends Yt{render(e){return "finally"+super.render(e)}};ci.kind="finally";var ml=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
2
+ `:""},this._extScope=e,this._scope=new Dt.Scope({parent:e}),this._nodes=[new hl];}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let r=this._extScope.value(e,t);return (this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,i){let a=this._scope.toName(t);return r!==void 0&&i&&(this._constants[a.str]=r),this._leafNode(new sl(e,a,r)),a}const(e,t,r){return this._def(Dt.varKinds.const,e,t,r)}let(e,t,r){return this._def(Dt.varKinds.let,e,t,r)}var(e,t,r){return this._def(Dt.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new Fs(e,t,r))}add(e,t){return this._leafNode(new al(e,q.operators.ADD,t))}code(e){return typeof e=="function"?e():e!==J.nil&&this._leafNode(new cl(e)),this}object(...e){let t=["{"];for(let[r,i]of e)t.length>1&&t.push(","),t.push(r),(r!==i||this.opts.es5)&&(t.push(":"),(0, J.addCodeArg)(t,i));return t.push("}"),new J._Code(t)}if(e,t,r){if(this._blockNode(new Fn(e)),t&&r)this.code(t).else().code(r).endIf();else if(t)this.code(t).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new Fn(e))}else(){return this._elseNode(new ir)}endIf(){return this._endBlockNode(Fn,ir)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new dl(e),t)}forRange(e,t,r,i,a=this.opts.es5?Dt.varKinds.var:Dt.varKinds.let){let s=this._scope.toName(e);return this._for(new fl(a,s,t,r),()=>i(s))}forOf(e,t,r,i=Dt.varKinds.const){let a=this._scope.toName(e);if(this.opts.es5){let s=t instanceof J.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0, J._)`${s}.length`,o=>{this.var(a,(0, J._)`${s}[${o}]`),r(a);})}return this._for(new Is("of",i,a,t),()=>r(a))}forIn(e,t,r,i=this.opts.es5?Dt.varKinds.var:Dt.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0, J._)`Object.keys(${t})`,r);let a=this._scope.toName(e);return this._for(new Is("in",i,a,t),()=>r(a))}endFor(){return this._endBlockNode(In)}label(e){return this._leafNode(new ol(e))}break(e){return this._leafNode(new ul(e))}return(e){let t=new ui;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(ui)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new pl;if(this._blockNode(i),this.code(e),t){let a=this.name("e");this._currNode=i.catch=new li(a),t(a);}return r&&(this._currNode=i.finally=new ci,this.code(r)),this._endBlockNode(li,ci)}throw(e){return this._leafNode(new ll(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-t;if(r<0||e!==void 0&&r!==e)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=J.nil,r,i){return this._blockNode(new oi(e,t,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(oi)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants);}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e);}_endBlockNode(e,t){let r=this._currNode;if(r instanceof e||t&&r instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof Fn))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e;}};q.CodeGen=ml;function kn(n,e){for(let t in e)n[t]=(n[t]||0)+(e[t]||0);return n}function ks(n,e){return e instanceof J._CodeOrName?kn(n,e.names):n}function sr(n,e,t){if(n instanceof J.Name)return r(n);if(!i(n))return n;return new J._Code(n._items.reduce((a,s)=>(s instanceof J.Name&&(s=r(s)),s instanceof J._Code?a.push(...s._items):a.push(s),a),[]));function r(a){let s=t[a.str];return s===void 0||e[a.str]!==1?a:(delete e[a.str],s)}function i(a){return a instanceof J._Code&&a._items.some(s=>s instanceof J.Name&&e[s.str]===1&&t[s.str]!==void 0)}}function ib(n,e){for(let t in e)n[t]=(n[t]||0)-(e[t]||0);}function Np(n){return typeof n=="boolean"||typeof n=="number"||n===null?!n:(0, J._)`!${gl(n)}`}q.not=Np;var sb=Fp(q.operators.AND);function ab(...n){return n.reduce(sb)}q.and=ab;var ob=Fp(q.operators.OR);function ub(...n){return n.reduce(ob)}q.or=ub;function Fp(n){return (e,t)=>e===J.nil?t:t===J.nil?e:(0, J._)`${gl(e)} ${n} ${gl(t)}`}function gl(n){return n instanceof J.Name?n:(0, J._)`(${n})`}});var M=E(W=>{Object.defineProperty(W,"__esModule",{value:true});W.checkStrictMode=W.getErrorPath=W.Type=W.useFunc=W.setEvaluated=W.evaluatedPropsToName=W.mergeEvaluated=W.eachItem=W.unescapeJsonPointer=W.escapeJsonPointer=W.escapeFragment=W.unescapeFragment=W.schemaRefOrVal=W.schemaHasRulesButRef=W.schemaHasRules=W.checkUnknownRules=W.alwaysValidSchema=W.toHash=void 0;var oe=$(),lb=si();function cb(n){let e={};for(let t of n)e[t]=true;return e}W.toHash=cb;function hb(n,e){return typeof e=="boolean"?e:Object.keys(e).length===0?true:(Vp(n,e),!Rp(e,n.self.RULES.all))}W.alwaysValidSchema=hb;function Vp(n,e=n.schema){let{opts:t,self:r}=n;if(!t.strictSchema||typeof e=="boolean")return;let i=r.RULES.keywords;for(let a in e)i[a]||Lp(n,`unknown keyword: "${a}"`);}W.checkUnknownRules=Vp;function Rp(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(e[t])return true;return false}W.schemaHasRules=Rp;function db(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(t!=="$ref"&&e.all[t])return true;return false}W.schemaHasRulesButRef=db;function fb({topSchemaRef:n,schemaPath:e},t,r,i){if(!i){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return (0, oe._)`${t}`}return (0, oe._)`${n}${e}${(0, oe.getProperty)(r)}`}W.schemaRefOrVal=fb;function pb(n){return $p(decodeURIComponent(n))}W.unescapeFragment=pb;function mb(n){return encodeURIComponent(vl(n))}W.escapeFragment=mb;function vl(n){return typeof n=="number"?`${n}`:n.replace(/~/g,"~0").replace(/\//g,"~1")}W.escapeJsonPointer=vl;function $p(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}W.unescapeJsonPointer=$p;function gb(n,e){if(Array.isArray(n))for(let t of n)e(t);else e(n);}W.eachItem=gb;function Ip({mergeNames:n,mergeToName:e,mergeValues:t,resultToName:r}){return (i,a,s,o)=>{let u=s===void 0?a:s instanceof oe.Name?(a instanceof oe.Name?n(i,a,s):e(i,a,s),s):a instanceof oe.Name?(e(i,s,a),a):t(a,s);return o===oe.Name&&!(u instanceof oe.Name)?r(i,u):u}}W.mergeEvaluated={props:Ip({mergeNames:(n,e,t)=>n.if((0, oe._)`${t} !== true && ${e} !== undefined`,()=>{n.if((0, oe._)`${e} === true`,()=>n.assign(t,true),()=>n.assign(t,(0, oe._)`${t} || {}`).code((0, oe._)`Object.assign(${t}, ${e})`));}),mergeToName:(n,e,t)=>n.if((0, oe._)`${t} !== true`,()=>{e===true?n.assign(t,true):(n.assign(t,(0, oe._)`${t} || {}`),Cl(n,t,e));}),mergeValues:(n,e)=>n===true?true:{...n,...e},resultToName:jp}),items:Ip({mergeNames:(n,e,t)=>n.if((0, oe._)`${t} !== true && ${e} !== undefined`,()=>n.assign(t,(0, oe._)`${e} === true ? true : ${t} > ${e} ? ${t} : ${e}`)),mergeToName:(n,e,t)=>n.if((0, oe._)`${t} !== true`,()=>n.assign(t,e===true?true:(0, oe._)`${t} > ${e} ? ${t} : ${e}`)),mergeValues:(n,e)=>n===true?true:Math.max(n,e),resultToName:(n,e)=>n.var("items",e)})};function jp(n,e){if(e===true)return n.var("props",true);let t=n.var("props",(0, oe._)`{}`);return e!==void 0&&Cl(n,t,e),t}W.evaluatedPropsToName=jp;function Cl(n,e,t){Object.keys(t).forEach(r=>n.assign((0, oe._)`${e}${(0, oe.getProperty)(r)}`,true));}W.setEvaluated=Cl;var kp={};function yb(n,e){return n.scopeValue("func",{ref:e,code:kp[e.code]||(kp[e.code]=new lb._Code(e.code))})}W.useFunc=yb;var yl;(function(n){n[n.Num=0]="Num",n[n.Str=1]="Str";})(yl||(W.Type=yl={}));function vb(n,e,t){if(n instanceof oe.Name){let r=e===yl.Num;return t?r?(0, oe._)`"[" + ${n} + "]"`:(0, oe._)`"['" + ${n} + "']"`:r?(0, oe._)`"/" + ${n}`:(0, oe._)`"/" + ${n}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0, oe.getProperty)(n).toString():"/"+vl(n)}W.getErrorPath=vb;function Lp(n,e,t=n.opts.strictSchema){if(t){if(e=`strict mode: ${e}`,t===true)throw new Error(e);n.self.logger.warn(e);}}W.checkStrictMode=Lp;});var dt=E(bl=>{Object.defineProperty(bl,"__esModule",{value:true});var ke=$(),Cb={data:new ke.Name("data"),valCxt:new ke.Name("valCxt"),instancePath:new ke.Name("instancePath"),parentData:new ke.Name("parentData"),parentDataProperty:new ke.Name("parentDataProperty"),rootData:new ke.Name("rootData"),dynamicAnchors:new ke.Name("dynamicAnchors"),vErrors:new ke.Name("vErrors"),errors:new ke.Name("errors"),this:new ke.Name("this"),self:new ke.Name("self"),scope:new ke.Name("scope"),json:new ke.Name("json"),jsonPos:new ke.Name("jsonPos"),jsonLen:new ke.Name("jsonLen"),jsonPart:new ke.Name("jsonPart")};bl.default=Cb;});var hi=E(Ve=>{Object.defineProperty(Ve,"__esModule",{value:true});Ve.extendErrors=Ve.resetErrorsCount=Ve.reportExtraError=Ve.reportError=Ve.keyword$DataError=Ve.keywordError=void 0;var U=$(),Rs=M(),ze=dt();Ve.keywordError={message:({keyword:n})=>(0, U.str)`must pass "${n}" keyword validation`};Ve.keyword$DataError={message:({keyword:n,schemaType:e})=>e?(0, U.str)`"${n}" keyword must be ${e} ($data)`:(0, U.str)`"${n}" keyword is invalid ($data)`};function bb(n,e=Ve.keywordError,t,r){let{it:i}=n,{gen:a,compositeRule:s,allErrors:o}=i,u=Wp(n,e,t);r??(s||o)?qp(a,u):Bp(i,(0, U._)`[${u}]`);}Ve.reportError=bb;function _b(n,e=Ve.keywordError,t){let{it:r}=n,{gen:i,compositeRule:a,allErrors:s}=r,o=Wp(n,e,t);qp(i,o),a||s||Bp(r,ze.default.vErrors);}Ve.reportExtraError=_b;function Sb(n,e){n.assign(ze.default.errors,e),n.if((0, U._)`${ze.default.vErrors} !== null`,()=>n.if(e,()=>n.assign((0, U._)`${ze.default.vErrors}.length`,e),()=>n.assign(ze.default.vErrors,null)));}Ve.resetErrorsCount=Sb;function Eb({gen:n,keyword:e,schemaValue:t,data:r,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let s=n.name("err");n.forRange("i",i,ze.default.errors,o=>{n.const(s,(0, U._)`${ze.default.vErrors}[${o}]`),n.if((0, U._)`${s}.instancePath === undefined`,()=>n.assign((0, U._)`${s}.instancePath`,(0, U.strConcat)(ze.default.instancePath,a.errorPath))),n.assign((0, U._)`${s}.schemaPath`,(0, U.str)`${a.errSchemaPath}/${e}`),a.opts.verbose&&(n.assign((0, U._)`${s}.schema`,t),n.assign((0, U._)`${s}.data`,r));});}Ve.extendErrors=Eb;function qp(n,e){let t=n.const("err",e);n.if((0, U._)`${ze.default.vErrors} === null`,()=>n.assign(ze.default.vErrors,(0, U._)`[${t}]`),(0, U._)`${ze.default.vErrors}.push(${t})`),n.code((0, U._)`${ze.default.errors}++`);}function Bp(n,e){let{gen:t,validateName:r,schemaEnv:i}=n;i.$async?t.throw((0, U._)`new ${n.ValidationError}(${e})`):(t.assign((0, U._)`${r}.errors`,e),t.return(false));}var Vn={keyword:new U.Name("keyword"),schemaPath:new U.Name("schemaPath"),params:new U.Name("params"),propertyName:new U.Name("propertyName"),message:new U.Name("message"),schema:new U.Name("schema"),parentSchema:new U.Name("parentSchema")};function Wp(n,e,t){let{createErrors:r}=n.it;return r===false?(0, U._)`{}`:wb(n,e,t)}function wb(n,e,t={}){let{gen:r,it:i}=n,a=[Db(i,t),Ab(n,t)];return Pb(n,e,a),r.object(...a)}function Db({errorPath:n},{instancePath:e}){let t=e?(0, U.str)`${n}${(0, Rs.getErrorPath)(e,Rs.Type.Str)}`:n;return [ze.default.instancePath,(0, U.strConcat)(ze.default.instancePath,t)]}function Ab({keyword:n,it:{errSchemaPath:e}},{schemaPath:t,parentSchema:r}){let i=r?e:(0, U.str)`${e}/${n}`;return t&&(i=(0, U.str)`${i}${(0, Rs.getErrorPath)(t,Rs.Type.Str)}`),[Vn.schemaPath,i]}function Pb(n,{params:e,message:t},r){let{keyword:i,data:a,schemaValue:s,it:o}=n,{opts:u,propertyName:l,topSchemaRef:c,schemaPath:h}=o;r.push([Vn.keyword,i],[Vn.params,typeof e=="function"?e(n):e||(0, U._)`{}`]),u.messages&&r.push([Vn.message,typeof t=="function"?t(n):t]),u.verbose&&r.push([Vn.schema,s],[Vn.parentSchema,(0, U._)`${c}${h}`],[ze.default.data,a]),l&&r.push([Vn.propertyName,l]);}});var Gp=E(ar=>{Object.defineProperty(ar,"__esModule",{value:true});ar.boolOrEmptySchema=ar.topBoolOrEmptySchema=void 0;var Ob=hi(),xb=$(),Tb=dt(),Nb={message:"boolean schema is false"};function Fb(n){let{gen:e,schema:t,validateName:r}=n;t===false?Mp(n,false):typeof t=="object"&&t.$async===true?e.return(Tb.default.data):(e.assign((0, xb._)`${r}.errors`,null),e.return(true));}ar.topBoolOrEmptySchema=Fb;function Ib(n,e){let{gen:t,schema:r}=n;r===false?(t.var(e,false),Mp(n)):t.var(e,true);}ar.boolOrEmptySchema=Ib;function Mp(n,e){let{gen:t,data:r}=n,i={gen:t,keyword:"false schema",data:r,schema:false,schemaCode:false,schemaValue:false,params:{},it:n};(0, Ob.reportError)(i,Nb,void 0,e);}});var _l=E(or=>{Object.defineProperty(or,"__esModule",{value:true});or.getRules=or.isJSONType=void 0;var kb=["string","number","integer","boolean","null","object","array"],Vb=new Set(kb);function Rb(n){return typeof n=="string"&&Vb.has(n)}or.isJSONType=Rb;function $b(){let n={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return {types:{...n,integer:true,boolean:true,null:true},rules:[{rules:[]},n.number,n.string,n.array,n.object],post:{rules:[]},all:{},keywords:{}}}or.getRules=$b;});var Sl=E(ln=>{Object.defineProperty(ln,"__esModule",{value:true});ln.shouldUseRule=ln.shouldUseGroup=ln.schemaHasRulesForType=void 0;function jb({schema:n,self:e},t){let r=e.RULES.types[t];return r&&r!==true&&zp(n,r)}ln.schemaHasRulesForType=jb;function zp(n,e){return e.rules.some(t=>Jp(n,t))}ln.shouldUseGroup=zp;function Jp(n,e){var t;return n[e.keyword]!==void 0||((t=e.definition.implements)===null||t===void 0?void 0:t.some(r=>n[r]!==void 0))}ln.shouldUseRule=Jp;});var di=E(Re=>{Object.defineProperty(Re,"__esModule",{value:true});Re.reportTypeError=Re.checkDataTypes=Re.checkDataType=Re.coerceAndCheckDataType=Re.getJSONTypes=Re.getSchemaTypes=Re.DataType=void 0;var Lb=_l(),qb=Sl(),Bb=hi(),j=$(),Hp=M(),ur;(function(n){n[n.Correct=0]="Correct",n[n.Wrong=1]="Wrong";})(ur||(Re.DataType=ur={}));function Wb(n){let e=Up(n.type);if(e.includes("null")){if(n.nullable===false)throw new Error("type: null contradicts nullable: false")}else {if(!e.length&&n.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');n.nullable===true&&e.push("null");}return e}Re.getSchemaTypes=Wb;function Up(n){let e=Array.isArray(n)?n:n?[n]:[];if(e.every(Lb.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Re.getJSONTypes=Up;function Mb(n,e){let{gen:t,data:r,opts:i}=n,a=Gb(e,i.coerceTypes),s=e.length>0&&!(a.length===0&&e.length===1&&(0, qb.schemaHasRulesForType)(n,e[0]));if(s){let o=wl(e,r,i.strictNumbers,ur.Wrong);t.if(o,()=>{a.length?zb(n,e,a):Dl(n);});}return s}Re.coerceAndCheckDataType=Mb;var Kp=new Set(["string","number","integer","boolean","null"]);function Gb(n,e){return e?n.filter(t=>Kp.has(t)||e==="array"&&t==="array"):[]}function zb(n,e,t){let{gen:r,data:i,opts:a}=n,s=r.let("dataType",(0, j._)`typeof ${i}`),o=r.let("coerced",(0, j._)`undefined`);a.coerceTypes==="array"&&r.if((0, j._)`${s} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0, j._)`${i}[0]`).assign(s,(0, j._)`typeof ${i}`).if(wl(e,i,a.strictNumbers),()=>r.assign(o,i))),r.if((0, j._)`${o} !== undefined`);for(let l of t)(Kp.has(l)||l==="array"&&a.coerceTypes==="array")&&u(l);r.else(),Dl(n),r.endIf(),r.if((0, j._)`${o} !== undefined`,()=>{r.assign(i,o),Jb(n,o);});function u(l){switch(l){case "string":r.elseIf((0, j._)`${s} == "number" || ${s} == "boolean"`).assign(o,(0, j._)`"" + ${i}`).elseIf((0, j._)`${i} === null`).assign(o,(0, j._)`""`);return;case "number":r.elseIf((0, j._)`${s} == "boolean" || ${i} === null
3
+ || (${s} == "string" && ${i} && ${i} == +${i})`).assign(o,(0, j._)`+${i}`);return;case "integer":r.elseIf((0, j._)`${s} === "boolean" || ${i} === null
4
+ || (${s} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(o,(0, j._)`+${i}`);return;case "boolean":r.elseIf((0, j._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(o,false).elseIf((0, j._)`${i} === "true" || ${i} === 1`).assign(o,true);return;case "null":r.elseIf((0, j._)`${i} === "" || ${i} === 0 || ${i} === false`),r.assign(o,null);return;case "array":r.elseIf((0, j._)`${s} === "string" || ${s} === "number"
5
+ || ${s} === "boolean" || ${i} === null`).assign(o,(0, j._)`[${i}]`);}}}function Jb({gen:n,parentData:e,parentDataProperty:t},r){n.if((0, j._)`${e} !== undefined`,()=>n.assign((0, j._)`${e}[${t}]`,r));}function El(n,e,t,r=ur.Correct){let i=r===ur.Correct?j.operators.EQ:j.operators.NEQ,a;switch(n){case "null":return (0, j._)`${e} ${i} null`;case "array":a=(0, j._)`Array.isArray(${e})`;break;case "object":a=(0, j._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case "integer":a=s((0, j._)`!(${e} % 1) && !isNaN(${e})`);break;case "number":a=s();break;default:return (0, j._)`typeof ${e} ${i} ${n}`}return r===ur.Correct?a:(0, j.not)(a);function s(o=j.nil){return (0, j.and)((0, j._)`typeof ${e} == "number"`,o,t?(0, j._)`isFinite(${e})`:j.nil)}}Re.checkDataType=El;function wl(n,e,t,r){if(n.length===1)return El(n[0],e,t,r);let i,a=(0, Hp.toHash)(n);if(a.array&&a.object){let s=(0, j._)`typeof ${e} != "object"`;i=a.null?s:(0, j._)`!${e} || ${s}`,delete a.null,delete a.array,delete a.object;}else i=j.nil;a.number&&delete a.integer;for(let s in a)i=(0, j.and)(i,El(s,e,t,r));return i}Re.checkDataTypes=wl;var Hb={message:({schema:n})=>`must be ${n}`,params:({schema:n,schemaValue:e})=>typeof n=="string"?(0, j._)`{type: ${n}}`:(0, j._)`{type: ${e}}`};function Dl(n){let e=Ub(n);(0, Bb.reportError)(e,Hb);}Re.reportTypeError=Dl;function Ub(n){let{gen:e,data:t,schema:r}=n,i=(0, Hp.schemaRefOrVal)(n,r,"type");return {gen:e,keyword:"type",data:t,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:n}}});var Yp=E($s=>{Object.defineProperty($s,"__esModule",{value:true});$s.assignDefaults=void 0;var lr=$(),Kb=M();function Xb(n,e){let{properties:t,items:r}=n.schema;if(e==="object"&&t)for(let i in t)Xp(n,i,t[i].default);else e==="array"&&Array.isArray(r)&&r.forEach((i,a)=>Xp(n,a,i.default));}$s.assignDefaults=Xb;function Xp(n,e,t){let{gen:r,compositeRule:i,data:a,opts:s}=n;if(t===void 0)return;let o=(0, lr._)`${a}${(0, lr.getProperty)(e)}`;if(i){(0, Kb.checkStrictMode)(n,`default is ignored for: ${o}`);return}let u=(0, lr._)`${o} === undefined`;s.useDefaults==="empty"&&(u=(0, lr._)`${u} || ${o} === null || ${o} === ""`),r.if(u,(0, lr._)`${o} = ${(0, lr.stringify)(t)}`);}});var ft=E(se=>{Object.defineProperty(se,"__esModule",{value:true});se.validateUnion=se.validateArray=se.usePattern=se.callValidateCode=se.schemaProperties=se.allSchemaProperties=se.noPropertyInData=se.propertyInData=se.isOwnProperty=se.hasPropFunc=se.reportMissingProp=se.checkMissingProp=se.checkReportMissingProp=void 0;var fe=$(),Al=M(),cn=dt(),Yb=M();function Zb(n,e){let{gen:t,data:r,it:i}=n;t.if(Ol(t,r,e,i.opts.ownProperties),()=>{n.setParams({missingProperty:(0, fe._)`${e}`},true),n.error();});}se.checkReportMissingProp=Zb;function Qb({gen:n,data:e,it:{opts:t}},r,i){return (0, fe.or)(...r.map(a=>(0, fe.and)(Ol(n,e,a,t.ownProperties),(0, fe._)`${i} = ${a}`)))}se.checkMissingProp=Qb;function e_(n,e){n.setParams({missingProperty:e},true),n.error();}se.reportMissingProp=e_;function Zp(n){return n.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0, fe._)`Object.prototype.hasOwnProperty`})}se.hasPropFunc=Zp;function Pl(n,e,t){return (0, fe._)`${Zp(n)}.call(${e}, ${t})`}se.isOwnProperty=Pl;function t_(n,e,t,r){let i=(0, fe._)`${e}${(0, fe.getProperty)(t)} !== undefined`;return r?(0, fe._)`${i} && ${Pl(n,e,t)}`:i}se.propertyInData=t_;function Ol(n,e,t,r){let i=(0, fe._)`${e}${(0, fe.getProperty)(t)} === undefined`;return r?(0, fe.or)(i,(0, fe.not)(Pl(n,e,t))):i}se.noPropertyInData=Ol;function Qp(n){return n?Object.keys(n).filter(e=>e!=="__proto__"):[]}se.allSchemaProperties=Qp;function n_(n,e){return Qp(e).filter(t=>!(0, Al.alwaysValidSchema)(n,e[t]))}se.schemaProperties=n_;function r_({schemaCode:n,data:e,it:{gen:t,topSchemaRef:r,schemaPath:i,errorPath:a},it:s},o,u,l){let c=l?(0, fe._)`${n}, ${e}, ${r}${i}`:e,h=[[cn.default.instancePath,(0, fe.strConcat)(cn.default.instancePath,a)],[cn.default.parentData,s.parentData],[cn.default.parentDataProperty,s.parentDataProperty],[cn.default.rootData,cn.default.rootData]];s.opts.dynamicRef&&h.push([cn.default.dynamicAnchors,cn.default.dynamicAnchors]);let f=(0, fe._)`${c}, ${t.object(...h)}`;return u!==fe.nil?(0, fe._)`${o}.call(${u}, ${f})`:(0, fe._)`${o}(${f})`}se.callValidateCode=r_;var i_=(0, fe._)`new RegExp`;function s_({gen:n,it:{opts:e}},t){let r=e.unicodeRegExp?"u":"",{regExp:i}=e.code,a=i(t,r);return n.scopeValue("pattern",{key:a.toString(),ref:a,code:(0, fe._)`${i.code==="new RegExp"?i_:(0, Yb.useFunc)(n,i)}(${t}, ${r})`})}se.usePattern=s_;function a_(n){let{gen:e,data:t,keyword:r,it:i}=n,a=e.name("valid");if(i.allErrors){let o=e.let("valid",true);return s(()=>e.assign(o,false)),o}return e.var(a,true),s(()=>e.break()),a;function s(o){let u=e.const("len",(0, fe._)`${t}.length`);e.forRange("i",0,u,l=>{n.subschema({keyword:r,dataProp:l,dataPropType:Al.Type.Num},a),e.if((0, fe.not)(a),o);});}}se.validateArray=a_;function o_(n){let{gen:e,schema:t,keyword:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(t.some(u=>(0, Al.alwaysValidSchema)(i,u))&&!i.opts.unevaluated)return;let s=e.let("valid",false),o=e.name("_valid");e.block(()=>t.forEach((u,l)=>{let c=n.subschema({keyword:r,schemaProp:l,compositeRule:true},o);e.assign(s,(0, fe._)`${s} || ${o}`),n.mergeValidEvaluated(c,o)||e.if((0, fe.not)(s));})),n.result(s,()=>n.reset(),()=>n.error(true));}se.validateUnion=o_;});var nm=E(It=>{Object.defineProperty(It,"__esModule",{value:true});It.validateKeywordUsage=It.validSchemaType=It.funcKeywordCode=It.macroKeywordCode=void 0;var Je=$(),Rn=dt(),u_=ft(),l_=hi();function c_(n,e){let{gen:t,keyword:r,schema:i,parentSchema:a,it:s}=n,o=e.macro.call(s.self,i,a,s),u=tm(t,r,o);s.opts.validateSchema!==false&&s.self.validateSchema(o,true);let l=t.name("valid");n.subschema({schema:o,schemaPath:Je.nil,errSchemaPath:`${s.errSchemaPath}/${r}`,topSchemaRef:u,compositeRule:true},l),n.pass(l,()=>n.error(true));}It.macroKeywordCode=c_;function h_(n,e){var t;let{gen:r,keyword:i,schema:a,parentSchema:s,$data:o,it:u}=n;f_(u,e);let l=!o&&e.compile?e.compile.call(u.self,a,s,u):e.validate,c=tm(r,i,l),h=r.let("valid");n.block$data(h,f),n.ok((t=e.valid)!==null&&t!==void 0?t:h);function f(){if(e.errors===false)y(),e.modifying&&em(n),S(()=>n.error());else {let _=e.async?d():m();e.modifying&&em(n),S(()=>d_(n,_));}}function d(){let _=r.let("ruleErrs",null);return r.try(()=>y((0, Je._)`await `),b=>r.assign(h,false).if((0, Je._)`${b} instanceof ${u.ValidationError}`,()=>r.assign(_,(0, Je._)`${b}.errors`),()=>r.throw(b))),_}function m(){let _=(0, Je._)`${c}.errors`;return r.assign(_,null),y(Je.nil),_}function y(_=e.async?(0, Je._)`await `:Je.nil){let b=u.opts.passContext?Rn.default.this:Rn.default.self,g=!("compile"in e&&!o||e.schema===false);r.assign(h,(0, Je._)`${_}${(0, u_.callValidateCode)(n,c,b,g)}`,e.modifying);}function S(_){var b;r.if((0, Je.not)((b=e.valid)!==null&&b!==void 0?b:h),_);}}It.funcKeywordCode=h_;function em(n){let{gen:e,data:t,it:r}=n;e.if(r.parentData,()=>e.assign(t,(0, Je._)`${r.parentData}[${r.parentDataProperty}]`));}function d_(n,e){let{gen:t}=n;t.if((0, Je._)`Array.isArray(${e})`,()=>{t.assign(Rn.default.vErrors,(0, Je._)`${Rn.default.vErrors} === null ? ${e} : ${Rn.default.vErrors}.concat(${e})`).assign(Rn.default.errors,(0, Je._)`${Rn.default.vErrors}.length`),(0, l_.extendErrors)(n);},()=>n.error());}function f_({schemaEnv:n},e){if(e.async&&!n.$async)throw new Error("async keyword in sync schema")}function tm(n,e,t){if(t===void 0)throw new Error(`keyword "${e}" failed to compile`);return n.scopeValue("keyword",typeof t=="function"?{ref:t}:{ref:t,code:(0, Je.stringify)(t)})}function p_(n,e,t=false){return !e.length||e.some(r=>r==="array"?Array.isArray(n):r==="object"?n&&typeof n=="object"&&!Array.isArray(n):typeof n==r||t&&typeof n>"u")}It.validSchemaType=p_;function m_({schema:n,opts:e,self:t,errSchemaPath:r},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let s=i.dependencies;if(s?.some(o=>!Object.prototype.hasOwnProperty.call(n,o)))throw new Error(`parent schema must have dependencies of ${a}: ${s.join(",")}`);if(i.validateSchema&&!i.validateSchema(n[a])){let u=`keyword "${a}" value is invalid at path "${r}": `+t.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")t.logger.error(u);else throw new Error(u)}}It.validateKeywordUsage=m_;});var im=E(hn=>{Object.defineProperty(hn,"__esModule",{value:true});hn.extendSubschemaMode=hn.extendSubschemaData=hn.getSubschema=void 0;var kt=$(),rm=M();function g_(n,{keyword:e,schemaProp:t,schema:r,schemaPath:i,errSchemaPath:a,topSchemaRef:s}){if(e!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=n.schema[e];return t===void 0?{schema:o,schemaPath:(0, kt._)`${n.schemaPath}${(0, kt.getProperty)(e)}`,errSchemaPath:`${n.errSchemaPath}/${e}`}:{schema:o[t],schemaPath:(0, kt._)`${n.schemaPath}${(0, kt.getProperty)(e)}${(0, kt.getProperty)(t)}`,errSchemaPath:`${n.errSchemaPath}/${e}/${(0, rm.escapeFragment)(t)}`}}if(r!==void 0){if(i===void 0||a===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return {schema:r,schemaPath:i,topSchemaRef:s,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}hn.getSubschema=g_;function y_(n,e,{dataProp:t,dataPropType:r,data:i,dataTypes:a,propertyName:s}){if(i!==void 0&&t!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(t!==void 0){let{errorPath:l,dataPathArr:c,opts:h}=e,f=o.let("data",(0, kt._)`${e.data}${(0, kt.getProperty)(t)}`,true);u(f),n.errorPath=(0, kt.str)`${l}${(0, rm.getErrorPath)(t,r,h.jsPropertySyntax)}`,n.parentDataProperty=(0, kt._)`${t}`,n.dataPathArr=[...c,n.parentDataProperty];}if(i!==void 0){let l=i instanceof kt.Name?i:o.let("data",i,true);u(l),s!==void 0&&(n.propertyName=s);}a&&(n.dataTypes=a);function u(l){n.data=l,n.dataLevel=e.dataLevel+1,n.dataTypes=[],e.definedProperties=new Set,n.parentData=e.data,n.dataNames=[...e.dataNames,l];}}hn.extendSubschemaData=y_;function v_(n,{jtdDiscriminator:e,jtdMetadata:t,compositeRule:r,createErrors:i,allErrors:a}){r!==void 0&&(n.compositeRule=r),i!==void 0&&(n.createErrors=i),a!==void 0&&(n.allErrors=a),n.jtdDiscriminator=e,n.jtdMetadata=t;}hn.extendSubschemaMode=v_;});var xl=E((lI,sm)=>{sm.exports=function n(e,t){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var r,i,a;if(Array.isArray(e)){if(r=e.length,r!=t.length)return false;for(i=r;i--!==0;)if(!n(e[i],t[i]))return false;return true}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(a=Object.keys(e),r=a.length,r!==Object.keys(t).length)return false;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,a[i]))return false;for(i=r;i--!==0;){var s=a[i];if(!n(e[s],t[s]))return false}return true}return e!==e&&t!==t};});var om=E((cI,am)=>{var dn=am.exports=function(n,e,t){typeof e=="function"&&(t=e,e={}),t=e.cb||t;var r=typeof t=="function"?t:t.pre||function(){},i=t.post||function(){};js(e,r,i,n,"",n);};dn.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true,if:true,then:true,else:true};dn.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};dn.propsKeywords={$defs:true,definitions:true,properties:true,patternProperties:true,dependencies:true};dn.skipKeywords={default:true,enum:true,const:true,required:true,maximum:true,minimum:true,exclusiveMaximum:true,exclusiveMinimum:true,multipleOf:true,maxLength:true,minLength:true,pattern:true,format:true,maxItems:true,minItems:true,uniqueItems:true,maxProperties:true,minProperties:true};function js(n,e,t,r,i,a,s,o,u,l){if(r&&typeof r=="object"&&!Array.isArray(r)){e(r,i,a,s,o,u,l);for(var c in r){var h=r[c];if(Array.isArray(h)){if(c in dn.arrayKeywords)for(var f=0;f<h.length;f++)js(n,e,t,h[f],i+"/"+c+"/"+f,a,i,c,r,f);}else if(c in dn.propsKeywords){if(h&&typeof h=="object")for(var d in h)js(n,e,t,h[d],i+"/"+c+"/"+C_(d),a,i,c,r,d);}else (c in dn.keywords||n.allKeys&&!(c in dn.skipKeywords))&&js(n,e,t,h,i+"/"+c,a,i,c,r);}t(r,i,a,s,o,u,l);}}function C_(n){return n.replace(/~/g,"~0").replace(/\//g,"~1")}});var fi=E(et=>{Object.defineProperty(et,"__esModule",{value:true});et.getSchemaRefs=et.resolveUrl=et.normalizeId=et._getFullPath=et.getFullPath=et.inlineRef=void 0;var b_=M(),__=xl(),S_=om(),E_=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function w_(n,e=true){return typeof n=="boolean"?true:e===true?!Tl(n):e?um(n)<=e:false}et.inlineRef=w_;var D_=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Tl(n){for(let e in n){if(D_.has(e))return true;let t=n[e];if(Array.isArray(t)&&t.some(Tl)||typeof t=="object"&&Tl(t))return true}return false}function um(n){let e=0;for(let t in n){if(t==="$ref")return 1/0;if(e++,!E_.has(t)&&(typeof n[t]=="object"&&(0, b_.eachItem)(n[t],r=>e+=um(r)),e===1/0))return 1/0}return e}function lm(n,e="",t){t!==false&&(e=cr(e));let r=n.parse(e);return cm(n,r)}et.getFullPath=lm;function cm(n,e){return n.serialize(e).split("#")[0]+"#"}et._getFullPath=cm;var A_=/#\/?$/;function cr(n){return n?n.replace(A_,""):""}et.normalizeId=cr;function P_(n,e,t){return t=cr(t),n.resolve(e,t)}et.resolveUrl=P_;var O_=/^[a-z_][-a-z0-9._]*$/i;function x_(n,e){if(typeof n=="boolean")return {};let{schemaId:t,uriResolver:r}=this.opts,i=cr(n[t]||e),a={"":i},s=lm(r,i,false),o={},u=new Set;return S_(n,{allKeys:true},(h,f,d,m)=>{if(m===void 0)return;let y=s+f,S=a[m];typeof h[t]=="string"&&(S=_.call(this,h[t])),b.call(this,h.$anchor),b.call(this,h.$dynamicAnchor),a[f]=S;function _(g){let v=this.opts.uriResolver.resolve;if(g=cr(S?v(S,g):g),u.has(g))throw c(g);u.add(g);let p=this.refs[g];return typeof p=="string"&&(p=this.refs[p]),typeof p=="object"?l(h,p.schema,g):g!==cr(y)&&(g[0]==="#"?(l(h,o[g],g),o[g]=h):this.refs[g]=y),g}function b(g){if(typeof g=="string"){if(!O_.test(g))throw new Error(`invalid anchor "${g}"`);_.call(this,`#${g}`);}}}),o;function l(h,f,d){if(f!==void 0&&!__(h,f))throw c(d)}function c(h){return new Error(`reference "${h}" resolves to more than one schema`)}}et.getSchemaRefs=x_;});var hr=E(fn=>{Object.defineProperty(fn,"__esModule",{value:true});fn.getData=fn.KeywordCxt=fn.validateFunctionCode=void 0;var mm=Gp(),hm=di(),Fl=Sl(),Ls=di(),T_=Yp(),mi=nm(),Nl=im(),F=$(),V=dt(),N_=fi(),Zt=M(),pi=hi();function F_(n){if(vm(n)&&(Cm(n),ym(n))){V_(n);return}gm(n,()=>(0, mm.topBoolOrEmptySchema)(n));}fn.validateFunctionCode=F_;function gm({gen:n,validateName:e,schema:t,schemaEnv:r,opts:i},a){i.code.es5?n.func(e,(0, F._)`${V.default.data}, ${V.default.valCxt}`,r.$async,()=>{n.code((0, F._)`"use strict"; ${dm(t,i)}`),k_(n,i),n.code(a);}):n.func(e,(0, F._)`${V.default.data}, ${I_(i)}`,r.$async,()=>n.code(dm(t,i)).code(a));}function I_(n){return (0, F._)`{${V.default.instancePath}="", ${V.default.parentData}, ${V.default.parentDataProperty}, ${V.default.rootData}=${V.default.data}${n.dynamicRef?(0, F._)`, ${V.default.dynamicAnchors}={}`:F.nil}}={}`}function k_(n,e){n.if(V.default.valCxt,()=>{n.var(V.default.instancePath,(0, F._)`${V.default.valCxt}.${V.default.instancePath}`),n.var(V.default.parentData,(0, F._)`${V.default.valCxt}.${V.default.parentData}`),n.var(V.default.parentDataProperty,(0, F._)`${V.default.valCxt}.${V.default.parentDataProperty}`),n.var(V.default.rootData,(0, F._)`${V.default.valCxt}.${V.default.rootData}`),e.dynamicRef&&n.var(V.default.dynamicAnchors,(0, F._)`${V.default.valCxt}.${V.default.dynamicAnchors}`);},()=>{n.var(V.default.instancePath,(0, F._)`""`),n.var(V.default.parentData,(0, F._)`undefined`),n.var(V.default.parentDataProperty,(0, F._)`undefined`),n.var(V.default.rootData,V.default.data),e.dynamicRef&&n.var(V.default.dynamicAnchors,(0, F._)`{}`);});}function V_(n){let{schema:e,opts:t,gen:r}=n;gm(n,()=>{t.$comment&&e.$comment&&_m(n),q_(n),r.let(V.default.vErrors,null),r.let(V.default.errors,0),t.unevaluated&&R_(n),bm(n),M_(n);});}function R_(n){let{gen:e,validateName:t}=n;n.evaluated=e.const("evaluated",(0, F._)`${t}.evaluated`),e.if((0, F._)`${n.evaluated}.dynamicProps`,()=>e.assign((0, F._)`${n.evaluated}.props`,(0, F._)`undefined`)),e.if((0, F._)`${n.evaluated}.dynamicItems`,()=>e.assign((0, F._)`${n.evaluated}.items`,(0, F._)`undefined`));}function dm(n,e){let t=typeof n=="object"&&n[e.schemaId];return t&&(e.code.source||e.code.process)?(0, F._)`/*# sourceURL=${t} */`:F.nil}function $_(n,e){if(vm(n)&&(Cm(n),ym(n))){j_(n,e);return}(0, mm.boolOrEmptySchema)(n,e);}function ym({schema:n,self:e}){if(typeof n=="boolean")return !n;for(let t in n)if(e.RULES.all[t])return true;return false}function vm(n){return typeof n.schema!="boolean"}function j_(n,e){let{schema:t,gen:r,opts:i}=n;i.$comment&&t.$comment&&_m(n),B_(n),W_(n);let a=r.const("_errs",V.default.errors);bm(n,a),r.var(e,(0, F._)`${a} === ${V.default.errors}`);}function Cm(n){(0, Zt.checkUnknownRules)(n),L_(n);}function bm(n,e){if(n.opts.jtd)return fm(n,[],false,e);let t=(0, hm.getSchemaTypes)(n.schema),r=(0, hm.coerceAndCheckDataType)(n,t);fm(n,t,!r,e);}function L_(n){let{schema:e,errSchemaPath:t,opts:r,self:i}=n;e.$ref&&r.ignoreKeywordsWithRef&&(0, Zt.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${t}"`);}function q_(n){let{schema:e,opts:t}=n;e.default!==void 0&&t.useDefaults&&t.strictSchema&&(0, Zt.checkStrictMode)(n,"default is ignored in the schema root");}function B_(n){let e=n.schema[n.opts.schemaId];e&&(n.baseId=(0, N_.resolveUrl)(n.opts.uriResolver,n.baseId,e));}function W_(n){if(n.schema.$async&&!n.schemaEnv.$async)throw new Error("async schema in sync schema")}function _m({gen:n,schemaEnv:e,schema:t,errSchemaPath:r,opts:i}){let a=t.$comment;if(i.$comment===true)n.code((0, F._)`${V.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let s=(0, F.str)`${r}/$comment`,o=n.scopeValue("root",{ref:e.root});n.code((0, F._)`${V.default.self}.opts.$comment(${a}, ${s}, ${o}.schema)`);}}function M_(n){let{gen:e,schemaEnv:t,validateName:r,ValidationError:i,opts:a}=n;t.$async?e.if((0, F._)`${V.default.errors} === 0`,()=>e.return(V.default.data),()=>e.throw((0, F._)`new ${i}(${V.default.vErrors})`)):(e.assign((0, F._)`${r}.errors`,V.default.vErrors),a.unevaluated&&G_(n),e.return((0, F._)`${V.default.errors} === 0`));}function G_({gen:n,evaluated:e,props:t,items:r}){t instanceof F.Name&&n.assign((0, F._)`${e}.props`,t),r instanceof F.Name&&n.assign((0, F._)`${e}.items`,r);}function fm(n,e,t,r){let{gen:i,schema:a,data:s,allErrors:o,opts:u,self:l}=n,{RULES:c}=l;if(a.$ref&&(u.ignoreKeywordsWithRef||!(0, Zt.schemaHasRulesButRef)(a,c))){i.block(()=>Em(n,"$ref",c.all.$ref.definition));return}u.jtd||z_(n,e),i.block(()=>{for(let f of c.rules)h(f);h(c.post);});function h(f){(0, Fl.shouldUseGroup)(a,f)&&(f.type?(i.if((0, Ls.checkDataType)(f.type,s,u.strictNumbers)),pm(n,f),e.length===1&&e[0]===f.type&&t&&(i.else(),(0, Ls.reportTypeError)(n)),i.endIf()):pm(n,f),o||i.if((0, F._)`${V.default.errors} === ${r||0}`));}}function pm(n,e){let{gen:t,schema:r,opts:{useDefaults:i}}=n;i&&(0, T_.assignDefaults)(n,e.type),t.block(()=>{for(let a of e.rules)(0, Fl.shouldUseRule)(r,a)&&Em(n,a.keyword,a.definition,e.type);});}function z_(n,e){n.schemaEnv.meta||!n.opts.strictTypes||(J_(n,e),n.opts.allowUnionTypes||H_(n,e),U_(n,n.dataTypes));}function J_(n,e){if(e.length){if(!n.dataTypes.length){n.dataTypes=e;return}e.forEach(t=>{Sm(n.dataTypes,t)||Il(n,`type "${t}" not allowed by context "${n.dataTypes.join(",")}"`);}),X_(n,e);}}function H_(n,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Il(n,"use allowUnionTypes to allow union type keyword");}function U_(n,e){let t=n.self.RULES.all;for(let r in t){let i=t[r];if(typeof i=="object"&&(0, Fl.shouldUseRule)(n.schema,i)){let{type:a}=i.definition;a.length&&!a.some(s=>K_(e,s))&&Il(n,`missing type "${a.join(",")}" for keyword "${r}"`);}}}function K_(n,e){return n.includes(e)||e==="number"&&n.includes("integer")}function Sm(n,e){return n.includes(e)||e==="integer"&&n.includes("number")}function X_(n,e){let t=[];for(let r of n.dataTypes)Sm(e,r)?t.push(r):e.includes("integer")&&r==="number"&&t.push("integer");n.dataTypes=t;}function Il(n,e){let t=n.schemaEnv.baseId+n.errSchemaPath;e+=` at "${t}" (strictTypes)`,(0, Zt.checkStrictMode)(n,e,n.opts.strictTypes);}var qs=class{constructor(e,t,r){if((0, mi.validateKeywordUsage)(e,t,r),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=r,this.data=e.data,this.schema=e.schema[r],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0, Zt.schemaRefOrVal)(e,this.schema,r,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",wm(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0, mi.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:t.errors!==false)&&(this.errsCount=e.gen.const("_errs",V.default.errors));}result(e,t,r){this.failResult((0, F.not)(e),t,r);}failResult(e,t,r){this.gen.if(e),r?r():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else();}pass(e,t){this.failResult((0, F.not)(e),void 0,t);}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(false);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else();}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:t}=this;this.fail((0, F._)`${t} !== undefined && (${(0, F.or)(this.invalid$data(),e)})`);}error(e,t,r){if(t){this.setParams(t),this._error(e,r),this.setParams({});return}this._error(e,r);}_error(e,t){(e?pi.reportExtraError:pi.reportError)(this,this.def.error,t);}$dataError(){(0, pi.reportError)(this,this.def.$dataError||pi.keyword$DataError);}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0, pi.resetErrorsCount)(this.gen,this.errsCount);}ok(e){this.allErrors||this.gen.if(e);}setParams(e,t){t?Object.assign(this.params,e):this.params=e;}block$data(e,t,r=F.nil){this.gen.block(()=>{this.check$data(e,r),t();});}check$data(e=F.nil,t=F.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:a,def:s}=this;r.if((0, F.or)((0, F._)`${i} === undefined`,t)),e!==F.nil&&r.assign(e,true),(a.length||s.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),e!==F.nil&&r.assign(e,false)),r.else();}invalid$data(){let{gen:e,schemaCode:t,schemaType:r,def:i,it:a}=this;return (0, F.or)(s(),o());function s(){if(r.length){if(!(t instanceof F.Name))throw new Error("ajv implementation error");let u=Array.isArray(r)?r:[r];return (0, F._)`${(0, Ls.checkDataTypes)(u,t,a.opts.strictNumbers,Ls.DataType.Wrong)}`}return F.nil}function o(){if(i.validateSchema){let u=e.scopeValue("validate$data",{ref:i.validateSchema});return (0, F._)`!${u}(${t})`}return F.nil}}subschema(e,t){let r=(0, Nl.getSubschema)(this.it,e);(0, Nl.extendSubschemaData)(r,this.it,e),(0, Nl.extendSubschemaMode)(r,e);let i={...this.it,...r,items:void 0,props:void 0};return $_(i,t),i}mergeEvaluated(e,t){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==true&&e.props!==void 0&&(r.props=Zt.mergeEvaluated.props(i,e.props,r.props,t)),r.items!==true&&e.items!==void 0&&(r.items=Zt.mergeEvaluated.items(i,e.items,r.items,t)));}mergeValidEvaluated(e,t){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==true||r.items!==true))return i.if(t,()=>this.mergeEvaluated(e,F.Name)),true}};fn.KeywordCxt=qs;function Em(n,e,t,r){let i=new qs(n,t,e);"code"in t?t.code(i,r):i.$data&&t.validate?(0, mi.funcKeywordCode)(i,t):"macro"in t?(0, mi.macroKeywordCode)(i,t):(t.compile||t.validate)&&(0, mi.funcKeywordCode)(i,t);}var Y_=/^\/(?:[^~]|~0|~1)*$/,Z_=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function wm(n,{dataLevel:e,dataNames:t,dataPathArr:r}){let i,a;if(n==="")return V.default.rootData;if(n[0]==="/"){if(!Y_.test(n))throw new Error(`Invalid JSON-pointer: ${n}`);i=n,a=V.default.rootData;}else {let l=Z_.exec(n);if(!l)throw new Error(`Invalid JSON-pointer: ${n}`);let c=+l[1];if(i=l[2],i==="#"){if(c>=e)throw new Error(u("property/index",c));return r[e-c]}if(c>e)throw new Error(u("data",c));if(a=t[e-c],!i)return a}let s=a,o=i.split("/");for(let l of o)l&&(a=(0, F._)`${a}${(0, F.getProperty)((0, Zt.unescapeJsonPointer)(l))}`,s=(0, F._)`${s} && ${a}`);return s;function u(l,c){return `Cannot access ${l} ${c} levels up, current level is ${e}`}}fn.getData=wm;});var gi=E(Vl=>{Object.defineProperty(Vl,"__esModule",{value:true});var kl=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=true;}};Vl.default=kl;});var dr=E(jl=>{Object.defineProperty(jl,"__esModule",{value:true});var Rl=fi(),$l=class extends Error{constructor(e,t,r,i){super(i||`can't resolve reference ${r} from id ${t}`),this.missingRef=(0, Rl.resolveUrl)(e,t,r),this.missingSchema=(0, Rl.normalizeId)((0, Rl.getFullPath)(e,this.missingRef));}};jl.default=$l;});var yi=E(pt=>{Object.defineProperty(pt,"__esModule",{value:true});pt.resolveSchema=pt.getCompilingSchema=pt.resolveRef=pt.compileSchema=pt.SchemaEnv=void 0;var At=$(),Q_=gi(),$n=dt(),Pt=fi(),Dm=M(),eS=hr(),fr=class{constructor(e){var t;this.refs={},this.dynamicAnchors={};let r;typeof e.schema=="object"&&(r=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0, Pt.normalizeId)(r?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=r?.$async,this.refs={};}};pt.SchemaEnv=fr;function ql(n){let e=Am.call(this,n);if(e)return e;let t=(0, Pt.getFullPath)(this.opts.uriResolver,n.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:a}=this.opts,s=new At.CodeGen(this.scope,{es5:r,lines:i,ownProperties:a}),o;n.$async&&(o=s.scopeValue("Error",{ref:Q_.default,code:(0, At._)`require("ajv/dist/runtime/validation_error").default`}));let u=s.scopeName("validate");n.validateName=u;let l={gen:s,allErrors:this.opts.allErrors,data:$n.default.data,parentData:$n.default.parentData,parentDataProperty:$n.default.parentDataProperty,dataNames:[$n.default.data],dataPathArr:[At.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===true?{ref:n.schema,code:(0, At.stringify)(n.schema)}:{ref:n.schema}),validateName:u,ValidationError:o,schema:n.schema,schemaEnv:n,rootId:t,baseId:n.baseId||t,schemaPath:At.nil,errSchemaPath:n.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0, At._)`""`,opts:this.opts,self:this},c;try{this._compilations.add(n),(0,eS.validateFunctionCode)(l),s.optimize(this.opts.code.optimize);let h=s.toString();c=`${s.scopeRefs($n.default.scope)}return ${h}`,this.opts.code.process&&(c=this.opts.code.process(c,n));let d=new Function(`${$n.default.self}`,`${$n.default.scope}`,c)(this,this.scope.get());if(this.scope.value(u,{ref:d}),d.errors=null,d.schema=n.schema,d.schemaEnv=n,n.$async&&(d.$async=!0),this.opts.code.source===!0&&(d.source={validateName:u,validateCode:h,scopeValues:s._values}),this.opts.unevaluated){let{props:m,items:y}=l;d.evaluated={props:m instanceof At.Name?void 0:m,items:y instanceof At.Name?void 0:y,dynamicProps:m instanceof At.Name,dynamicItems:y instanceof At.Name},d.source&&(d.source.evaluated=(0,At.stringify)(d.evaluated));}return n.validate=d,n}catch(h){throw delete n.validate,delete n.validateName,c&&this.logger.error("Error compiling schema, function code:",c),h}finally{this._compilations.delete(n);}}pt.compileSchema=ql;function tS(n,e,t){var r;t=(0, Pt.resolveUrl)(this.opts.uriResolver,e,t);let i=n.refs[t];if(i)return i;let a=iS.call(this,n,t);if(a===void 0){let s=(r=n.localRefs)===null||r===void 0?void 0:r[t],{schemaId:o}=this.opts;s&&(a=new fr({schema:s,schemaId:o,root:n,baseId:e}));}if(a!==void 0)return n.refs[t]=nS.call(this,a)}pt.resolveRef=tS;function nS(n){return (0, Pt.inlineRef)(n.schema,this.opts.inlineRefs)?n.schema:n.validate?n:ql.call(this,n)}function Am(n){for(let e of this._compilations)if(rS(e,n))return e}pt.getCompilingSchema=Am;function rS(n,e){return n.schema===e.schema&&n.root===e.root&&n.baseId===e.baseId}function iS(n,e){let t;for(;typeof(t=this.refs[e])=="string";)e=t;return t||this.schemas[e]||Bs.call(this,n,e)}function Bs(n,e){let t=this.opts.uriResolver.parse(e),r=(0, Pt._getFullPath)(this.opts.uriResolver,t),i=(0, Pt.getFullPath)(this.opts.uriResolver,n.baseId,void 0);if(Object.keys(n.schema).length>0&&r===i)return Ll.call(this,t,n);let a=(0, Pt.normalizeId)(r),s=this.refs[a]||this.schemas[a];if(typeof s=="string"){let o=Bs.call(this,n,s);return typeof o?.schema!="object"?void 0:Ll.call(this,t,o)}if(typeof s?.schema=="object"){if(s.validate||ql.call(this,s),a===(0, Pt.normalizeId)(e)){let{schema:o}=s,{schemaId:u}=this.opts,l=o[u];return l&&(i=(0, Pt.resolveUrl)(this.opts.uriResolver,i,l)),new fr({schema:o,schemaId:u,root:n,baseId:i})}return Ll.call(this,t,s)}}pt.resolveSchema=Bs;var sS=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Ll(n,{baseId:e,schema:t,root:r}){var i;if(((i=n.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let o of n.fragment.slice(1).split("/")){if(typeof t=="boolean")return;let u=t[(0, Dm.unescapeFragment)(o)];if(u===void 0)return;t=u;let l=typeof t=="object"&&t[this.opts.schemaId];!sS.has(o)&&l&&(e=(0, Pt.resolveUrl)(this.opts.uriResolver,e,l));}let a;if(typeof t!="boolean"&&t.$ref&&!(0, Dm.schemaHasRulesButRef)(t,this.RULES)){let o=(0, Pt.resolveUrl)(this.opts.uriResolver,e,t.$ref);a=Bs.call(this,r,o);}let{schemaId:s}=this.opts;if(a=a||new fr({schema:t,schemaId:s,root:r,baseId:e}),a.schema!==a.root.schema)return a}});var Pm=E((gI,aS)=>{aS.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:false};});var Ml=E((yI,Im)=>{var oS=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),xm=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),Bl=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Tm=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),uS=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Wl(n){let e="",t=0,r=0;for(r=0;r<n.length;r++)if(t=n[r].charCodeAt(0),t!==48){if(!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];break}for(r+=1;r<n.length;r++){if(t=n[r].charCodeAt(0),!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];}return e}var lS=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Om(n){return n.length=0,true}function cS(n,e,t){if(n.length){let r=Wl(n);if(r!=="")e.push(r);else return t.error=true,false;n.length=0;}return true}function hS(n){let e=0,t={error:false,address:"",zone:""},r=[],i=[],a=false,s=false,o=cS;for(let u=0;u<n.length;u++){let l=n[u];if(!(l==="["||l==="]"))if(l===":"){if(a===true&&(s=true),!o(i,r,t))break;if(++e>7){t.error=true;break}u>0&&n[u-1]===":"&&(a=true),r.push(":");continue}else if(l==="%"){if(!o(i,r,t))break;o=Om;}else {i.push(l);continue}}return i.length&&(o===Om?t.zone=i.join(""):s?r.push(i.join("")):r.push(Wl(i))),t.address=r.join(""),t}function Nm(n){if(dS(n,":")<2)return {host:n,isIPV6:false};let e=hS(n);if(e.error)return {host:n,isIPV6:false};{let t=e.address,r=e.address;return e.zone&&(t+="%"+e.zone,r+="%25"+e.zone),{host:t,isIPV6:true,escapedHost:r}}}function dS(n,e){let t=0;for(let r=0;r<n.length;r++)n[r]===e&&t++;return t}function fS(n){let e=n,t=[],r=-1,i=0;for(;i=e.length;){if(i===1){if(e===".")break;if(e==="/"){t.push("/");break}else {t.push(e);break}}else if(i===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){t.push("/");break}}else if(i===3&&e==="/.."){t.length!==0&&t.pop(),t.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),t.length!==0&&t.pop();continue}}if((r=e.indexOf("/",1))===-1){t.push(e);break}else t.push(e.slice(0,r)),e=e.slice(r);}return t.join("")}var pS={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},mS=/[@/?#:]/g,gS=/[@/?#]/g;function Fm(n,e){let t=e?gS:mS;return t.lastIndex=0,n.replace(t,r=>pS[r])}function yS(n,e=false){if(n.indexOf("%")===-1)return n;let t="";for(let r=0;r<n.length;r++){if(n[r]==="%"&&r+2<n.length){let i=n.slice(r+1,r+3);if(Bl(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));e&&Tm(s)?t+=s:t+="%"+a,r+=2;continue}}t+=n[r];}return t}function vS(n){let e="";for(let t=0;t<n.length;t++){if(n[t]==="%"&&t+2<n.length){let r=n.slice(t+1,t+3);if(Bl(r)){let i=r.toUpperCase(),a=String.fromCharCode(parseInt(i,16));a!=="."&&Tm(a)?e+=a:e+="%"+i,t+=2;continue}}uS(n[t])?e+=n[t]:e+=escape(n[t]);}return e}function CS(n){let e="";for(let t=0;t<n.length;t++){if(n[t]==="%"&&t+2<n.length){let r=n.slice(t+1,t+3);if(Bl(r)){e+="%"+r.toUpperCase(),t+=2;continue}}e+=escape(n[t]);}return e}function bS(n){let e=[];if(n.userinfo!==void 0&&(e.push(n.userinfo),e.push("@")),n.host!==void 0){let t=unescape(n.host);if(!xm(t)){let r=Nm(t);r.isIPV6===true?t=`[${r.escapedHost}]`:t=Fm(t,false);}e.push(t);}return (typeof n.port=="number"||typeof n.port=="string")&&(e.push(":"),e.push(String(n.port))),e.length?e.join(""):void 0}Im.exports={nonSimpleDomain:lS,recomposeAuthority:bS,reescapeHostDelimiters:Fm,normalizePercentEncoding:yS,normalizePathEncoding:vS,escapePreservingEscapes:CS,removeDotSegments:fS,isIPv4:xm,isUUID:oS,normalizeIPv6:Nm,stringArrayToHexStripped:Wl};});var jm=E((vI,$m)=>{var{isUUID:_S}=Ml(),SS=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,ES=["http","https","ws","wss","urn","urn:uuid"];function wS(n){return ES.indexOf(n)!==-1}function Gl(n){return n.secure===true?true:n.secure===false?false:n.scheme?n.scheme.length===3&&(n.scheme[0]==="w"||n.scheme[0]==="W")&&(n.scheme[1]==="s"||n.scheme[1]==="S")&&(n.scheme[2]==="s"||n.scheme[2]==="S"):false}function km(n){return n.host||(n.error=n.error||"HTTP URIs must have a host."),n}function Vm(n){let e=String(n.scheme).toLowerCase()==="https";return (n.port===(e?443:80)||n.port==="")&&(n.port=void 0),n.path||(n.path="/"),n}function DS(n){return n.secure=Gl(n),n.resourceName=(n.path||"/")+(n.query?"?"+n.query:""),n.path=void 0,n.query=void 0,n}function AS(n){if((n.port===(Gl(n)?443:80)||n.port==="")&&(n.port=void 0),typeof n.secure=="boolean"&&(n.scheme=n.secure?"wss":"ws",n.secure=void 0),n.resourceName){let[e,t]=n.resourceName.split("?");n.path=e&&e!=="/"?e:void 0,n.query=t,n.resourceName=void 0;}return n.fragment=void 0,n}function PS(n,e){if(!n.path)return n.error="URN can not be parsed",n;let t=n.path.match(SS);if(t){let r=e.scheme||n.scheme||"urn";n.nid=t[1].toLowerCase(),n.nss=t[2];let i=`${r}:${e.nid||n.nid}`,a=zl(i);n.path=void 0,a&&(n=a.parse(n,e));}else n.error=n.error||"URN can not be parsed.";return n}function OS(n,e){if(n.nid===void 0)throw new Error("URN without nid cannot be serialized");let t=e.scheme||n.scheme||"urn",r=n.nid.toLowerCase(),i=`${t}:${e.nid||r}`,a=zl(i);a&&(n=a.serialize(n,e));let s=n,o=n.nss;return s.path=`${r||e.nid}:${o}`,e.skipEscape=true,s}function xS(n,e){let t=n;return t.uuid=t.nss,t.nss=void 0,!e.tolerant&&(!t.uuid||!_S(t.uuid))&&(t.error=t.error||"UUID is not valid."),t}function TS(n){let e=n;return e.nss=(n.uuid||"").toLowerCase(),e}var Rm={scheme:"http",domainHost:true,parse:km,serialize:Vm},NS={scheme:"https",domainHost:Rm.domainHost,parse:km,serialize:Vm},Ws={scheme:"ws",domainHost:true,parse:DS,serialize:AS},FS={scheme:"wss",domainHost:Ws.domainHost,parse:Ws.parse,serialize:Ws.serialize},IS={scheme:"urn",parse:PS,serialize:OS,skipNormalize:true},kS={scheme:"urn:uuid",parse:xS,serialize:TS,skipNormalize:true},Ms={http:Rm,https:NS,ws:Ws,wss:FS,urn:IS,"urn:uuid":kS};Object.setPrototypeOf(Ms,null);function zl(n){return n&&(Ms[n]||Ms[n.toLowerCase()])||void 0}$m.exports={wsIsSecure:Gl,SCHEMES:Ms,isValidSchemeName:wS,getSchemeHandler:zl};});var Gm=E((CI,Gs)=>{var{normalizeIPv6:VS,removeDotSegments:vi,recomposeAuthority:RS,normalizePercentEncoding:$S,normalizePathEncoding:jS,escapePreservingEscapes:LS,reescapeHostDelimiters:qS,isIPv4:BS,nonSimpleDomain:WS}=Ml(),{SCHEMES:MS,getSchemeHandler:qm}=jm();function GS(n,e){return typeof n=="string"?n=KS(n,e):typeof n=="object"&&(n=pr(jn(n,e),e)),n}function zS(n,e,t){let r=t?Object.assign({scheme:"null"},t):{scheme:"null"},i=Bm(pr(n,r),pr(e,r),r,true);return r.skipEscape=true,jn(i,r)}function Bm(n,e,t,r){let i={};return r||(n=pr(jn(n,t),t),e=pr(jn(e,t),t)),t=t||{},!t.tolerant&&e.scheme?(i.scheme=e.scheme,i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=vi(e.path||""),i.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=vi(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=vi(e.path):((n.userinfo!==void 0||n.host!==void 0||n.port!==void 0)&&!n.path?i.path="/"+e.path:n.path?i.path=n.path.slice(0,n.path.lastIndexOf("/")+1)+e.path:i.path=e.path,i.path=vi(i.path)),i.query=e.query):(i.path=n.path,e.query!==void 0?i.query=e.query:i.query=n.query),i.userinfo=n.userinfo,i.host=n.host,i.port=n.port),i.scheme=n.scheme),i.fragment=e.fragment,i}function JS(n,e,t){let r=Lm(n,t),i=Lm(e,t);return r!==void 0&&i!==void 0&&r.toLowerCase()===i.toLowerCase()}function jn(n,e){let t={host:n.host,scheme:n.scheme,userinfo:n.userinfo,port:n.port,path:n.path,query:n.query,nid:n.nid,nss:n.nss,uuid:n.uuid,fragment:n.fragment,reference:n.reference,resourceName:n.resourceName,secure:n.secure,error:""},r=Object.assign({},e),i=[],a=qm(r.scheme||t.scheme);a&&a.serialize&&a.serialize(t,r),t.path!==void 0&&(r.skipEscape?t.path=$S(t.path):(t.path=LS(t.path),t.scheme!==void 0&&(t.path=t.path.split("%3A").join(":")))),r.reference!=="suffix"&&t.scheme&&i.push(t.scheme,":");let s=RS(t);if(s!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(s),t.path&&t.path[0]!=="/"&&i.push("/")),t.path!==void 0){let o=t.path;!r.absolutePath&&(!a||!a.absolutePath)&&(o=vi(o)),s===void 0&&o[0]==="/"&&o[1]==="/"&&(o="/%2F"+o.slice(2)),i.push(o);}return t.query!==void 0&&i.push("?",t.query),t.fragment!==void 0&&i.push("#",t.fragment),i.join("")}var HS=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function US(n,e){if(e[2]!==void 0&&n.path&&n.path[0]!=="/")return 'URI path must start with "/" when authority is present.';if(typeof n.port=="number"&&(n.port<0||n.port>65535))return "URI port is malformed."}function Wm(n,e){let t=Object.assign({},e),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=false,a=false;t.reference==="suffix"&&(t.scheme?n=t.scheme+":"+n:n="//"+n);let s=n.match(HS);if(s){r.scheme=s[1],r.userinfo=s[3],r.host=s[4],r.port=parseInt(s[5],10),r.path=s[6]||"",r.query=s[7],r.fragment=s[8],isNaN(r.port)&&(r.port=s[5]);let o=US(r,s);if(o!==void 0&&(r.error=r.error||o,i=true),r.host)if(BS(r.host)===false){let c=VS(r.host);r.host=c.host.toLowerCase(),a=c.isIPV6;}else a=true;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",t.reference&&t.reference!=="suffix"&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");let u=qm(t.scheme||r.scheme);if(!t.unicodeSupport&&(!u||!u.unicodeSupport)&&r.host&&(t.domainHost||u&&u.domainHost)&&a===false&&WS(r.host))try{r.host=new URL("http://"+r.host).hostname;}catch(l){r.error=r.error||"Host's domain name can not be converted to ASCII: "+l;}if((!u||u&&!u.skipNormalize)&&(n.indexOf("%")!==-1&&(r.scheme!==void 0&&(r.scheme=unescape(r.scheme)),r.host!==void 0&&(r.host=qS(unescape(r.host),a))),r.path&&(r.path=jS(r.path)),r.fragment))try{r.fragment=encodeURI(decodeURIComponent(r.fragment));}catch{r.error=r.error||"URI malformed";}u&&u.parse&&u.parse(r,t);}else r.error=r.error||"URI can not be parsed.";return {parsed:r,malformedAuthorityOrPort:i}}function pr(n,e){return Wm(n,e).parsed}function KS(n,e){return Mm(n,e).normalized}function Mm(n,e){let{parsed:t,malformedAuthorityOrPort:r}=Wm(n,e);return {normalized:r?n:jn(t,e),malformedAuthorityOrPort:r}}function Lm(n,e){if(typeof n=="string"){let{normalized:t,malformedAuthorityOrPort:r}=Mm(n,e);return r?void 0:t}if(typeof n=="object")return jn(n,e)}var Jl={SCHEMES:MS,normalize:GS,resolve:zS,resolveComponent:Bm,equal:JS,serialize:jn,parse:pr};Gs.exports=Jl;Gs.exports.default=Jl;Gs.exports.fastUri=Jl;});var Jm=E(Hl=>{Object.defineProperty(Hl,"__esModule",{value:true});var zm=Gm();zm.code='require("ajv/dist/runtime/uri").default';Hl.default=zm;});var Xl=E(Ne=>{Object.defineProperty(Ne,"__esModule",{value:true});Ne.CodeGen=Ne.Name=Ne.nil=Ne.stringify=Ne.str=Ne._=Ne.KeywordCxt=void 0;var XS=hr();Object.defineProperty(Ne,"KeywordCxt",{enumerable:true,get:function(){return XS.KeywordCxt}});var mr=$();Object.defineProperty(Ne,"_",{enumerable:true,get:function(){return mr._}});Object.defineProperty(Ne,"str",{enumerable:true,get:function(){return mr.str}});Object.defineProperty(Ne,"stringify",{enumerable:true,get:function(){return mr.stringify}});Object.defineProperty(Ne,"nil",{enumerable:true,get:function(){return mr.nil}});Object.defineProperty(Ne,"Name",{enumerable:true,get:function(){return mr.Name}});Object.defineProperty(Ne,"CodeGen",{enumerable:true,get:function(){return mr.CodeGen}});var YS=gi(),Ym=dr(),ZS=_l(),Ci=yi(),QS=$(),bi=fi(),zs=di(),Kl=M(),Hm=Pm(),eE=Jm(),Zm=(n,e)=>new RegExp(n,e);Zm.code="new RegExp";var tE=["removeAdditional","useDefaults","coerceTypes"],nE=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),rE={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},iE={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Um=200;function sE(n){var e,t,r,i,a,s,o,u,l,c,h,f,d,m,y,S,_,b,g,v,p,C,w,O,A;let N=n.strict,re=(e=n.code)===null||e===void 0?void 0:e.optimize,Y=re===true||re===void 0?1:re||0,ue=(r=(t=n.code)===null||t===void 0?void 0:t.regExp)!==null&&r!==void 0?r:Zm,rn=(i=n.uriResolver)!==null&&i!==void 0?i:eE.default;return {strictSchema:(s=(a=n.strictSchema)!==null&&a!==void 0?a:N)!==null&&s!==void 0?s:true,strictNumbers:(u=(o=n.strictNumbers)!==null&&o!==void 0?o:N)!==null&&u!==void 0?u:true,strictTypes:(c=(l=n.strictTypes)!==null&&l!==void 0?l:N)!==null&&c!==void 0?c:"log",strictTuples:(f=(h=n.strictTuples)!==null&&h!==void 0?h:N)!==null&&f!==void 0?f:"log",strictRequired:(m=(d=n.strictRequired)!==null&&d!==void 0?d:N)!==null&&m!==void 0?m:false,code:n.code?{...n.code,optimize:Y,regExp:ue}:{optimize:Y,regExp:ue},loopRequired:(y=n.loopRequired)!==null&&y!==void 0?y:Um,loopEnum:(S=n.loopEnum)!==null&&S!==void 0?S:Um,meta:(_=n.meta)!==null&&_!==void 0?_:true,messages:(b=n.messages)!==null&&b!==void 0?b:true,inlineRefs:(g=n.inlineRefs)!==null&&g!==void 0?g:true,schemaId:(v=n.schemaId)!==null&&v!==void 0?v:"$id",addUsedSchema:(p=n.addUsedSchema)!==null&&p!==void 0?p:true,validateSchema:(C=n.validateSchema)!==null&&C!==void 0?C:true,validateFormats:(w=n.validateFormats)!==null&&w!==void 0?w:true,unicodeRegExp:(O=n.unicodeRegExp)!==null&&O!==void 0?O:true,int32range:(A=n.int32range)!==null&&A!==void 0?A:true,uriResolver:rn}}var _i=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...sE(e)};let{es5:t,lines:r}=this.opts.code;this.scope=new QS.ValueScope({scope:{},prefixes:nE,es5:t,lines:r}),this.logger=hE(e.logger);let i=e.validateFormats;e.validateFormats=false,this.RULES=(0, ZS.getRules)(),Km.call(this,rE,e,"NOT SUPPORTED"),Km.call(this,iE,e,"DEPRECATED","warn"),this._metaOpts=lE.call(this),e.formats&&oE.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&uE.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),aE.call(this),e.validateFormats=i;}_addVocabularies(){this.addKeyword("$async");}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:r}=this.opts,i=Hm;r==="id"&&(i={...Hm},i.id=i.$id,delete i.$id),t&&e&&this.addMetaSchema(i,i[r],false);}defaultMeta(){let{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:void 0}validate(e,t){let r;if(typeof e=="string"){if(r=this.getSchema(e),!r)throw new Error(`no schema with key or ref "${e}"`)}else r=this.compile(e);let i=r(t);return "$async"in r||(this.errors=r.errors),i}compile(e,t){let r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return i.call(this,e,t);async function i(c,h){await a.call(this,c.$schema);let f=this._addSchema(c,h);return f.validate||s.call(this,f)}async function a(c){c&&!this.getSchema(c)&&await i.call(this,{$ref:c},true);}async function s(c){try{return this._compileSchemaEnv(c)}catch(h){if(!(h instanceof Ym.default))throw h;return o.call(this,h),await u.call(this,h.missingSchema),s.call(this,c)}}function o({missingSchema:c,missingRef:h}){if(this.refs[c])throw new Error(`AnySchema ${c} is loaded but ${h} cannot be resolved`)}async function u(c){let h=await l.call(this,c);this.refs[c]||await a.call(this,h.$schema),this.refs[c]||this.addSchema(h,c,t);}async function l(c){let h=this._loading[c];if(h)return h;try{return await(this._loading[c]=r(c))}finally{delete this._loading[c];}}}addSchema(e,t,r,i=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,r,i);return this}let a;if(typeof e=="object"){let{schemaId:s}=this.opts;if(a=e[s],a!==void 0&&typeof a!="string")throw new Error(`schema ${s} must be string`)}return t=(0, bi.normalizeId)(t||a),this._checkUnique(t),this.schemas[t]=this._addSchema(e,r,t,i,true),this}addMetaSchema(e,t,r=this.opts.validateSchema){return this.addSchema(e,t,true,r),this}validateSchema(e,t){if(typeof e=="boolean")return true;let r;if(r=e.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,true;let i=this.validate(r,e);if(!i&&t){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(e){let t;for(;typeof(t=Xm.call(this,e))=="string";)e=t;if(t===void 0){let{schemaId:r}=this.opts,i=new Ci.SchemaEnv({schema:{},schemaId:r});if(t=Ci.resolveSchema.call(this,i,e),!t)return;this.refs[e]=t;}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case "undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case "string":{let t=Xm.call(this,e);return typeof t=="object"&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case "object":{let t=e;this._cache.delete(t);let r=e[this.opts.schemaId];return r&&(r=(0, bi.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(typeof e=="string")r=e,typeof t=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=r);else if(typeof e=="object"&&t===void 0){if(t=e,r=t.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(fE.call(this,r,t),!t)return (0, Kl.eachItem)(r,a=>Ul.call(this,a)),this;mE.call(this,t);let i={...t,type:(0, zs.getJSONTypes)(t.type),schemaType:(0, zs.getJSONTypes)(t.schemaType)};return (0, Kl.eachItem)(r,i.type.length===0?a=>Ul.call(this,a,i):a=>i.type.forEach(s=>Ul.call(this,a,i,s))),this}getKeyword(e){let t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){let{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(let r of t.rules){let i=r.rules.findIndex(a=>a.keyword===e);i>=0&&r.rules.splice(i,1);}return this}addFormat(e,t){return typeof t=="string"&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){return !e||e.length===0?"No errors":e.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,a)=>i+t+a)}$dataMetaSchema(e,t){let r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of t){let a=i.split("/").slice(1),s=e;for(let o of a)s=s[o];for(let o in r){let u=r[o];if(typeof u!="object")continue;let{$data:l}=u.definition,c=s[o];l&&c&&(s[o]=Qm(c));}}return e}_removeAllSchemas(e,t){for(let r in e){let i=e[r];(!t||t.test(r))&&(typeof i=="string"?delete e[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete e[r]));}}_addSchema(e,t,r,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let s,{schemaId:o}=this.opts;if(typeof e=="object")s=e[o];else {if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let u=this._cache.get(e);if(u!==void 0)return u;r=(0, bi.normalizeId)(s||r);let l=bi.getSchemaRefs.call(this,e,r);return u=new Ci.SchemaEnv({schema:e,schemaId:o,meta:t,baseId:r,localRefs:l}),this._cache.set(u.schema,u),a&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=u),i&&this.validateSchema(e,true),u}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):Ci.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let t=this.opts;this.opts=this._metaOpts;try{Ci.compileSchema.call(this,e);}finally{this.opts=t;}}};_i.ValidationError=YS.default;_i.MissingRefError=Ym.default;Ne.default=_i;function Km(n,e,t,r="error"){for(let i in n){let a=i;a in e&&this.logger[r](`${t}: option ${i}. ${n[a]}`);}}function Xm(n){return n=(0, bi.normalizeId)(n),this.schemas[n]||this.refs[n]}function aE(){let n=this.opts.schemas;if(n)if(Array.isArray(n))this.addSchema(n);else for(let e in n)this.addSchema(n[e],e);}function oE(){for(let n in this.opts.formats){let e=this.opts.formats[n];e&&this.addFormat(n,e);}}function uE(n){if(Array.isArray(n)){this.addVocabulary(n);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in n){let t=n[e];t.keyword||(t.keyword=e),this.addKeyword(t);}}function lE(){let n={...this.opts};for(let e of tE)delete n[e];return n}var cE={log(){},warn(){},error(){}};function hE(n){if(n===false)return cE;if(n===void 0)return console;if(n.log&&n.warn&&n.error)return n;throw new Error("logger must implement log, warn and error methods")}var dE=/^[a-z_$][a-z0-9_$:-]*$/i;function fE(n,e){let{RULES:t}=this;if((0, Kl.eachItem)(n,r=>{if(t.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!dE.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function Ul(n,e,t){var r;let i=e?.post;if(t&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,s=i?a.post:a.rules.find(({type:u})=>u===t);if(s||(s={type:t,rules:[]},a.rules.push(s)),a.keywords[n]=true,!e)return;let o={keyword:n,definition:{...e,type:(0, zs.getJSONTypes)(e.type),schemaType:(0, zs.getJSONTypes)(e.schemaType)}};e.before?pE.call(this,s,o,e.before):s.rules.push(o),a.all[n]=o,(r=e.implements)===null||r===void 0||r.forEach(u=>this.addKeyword(u));}function pE(n,e,t){let r=n.rules.findIndex(i=>i.keyword===t);r>=0?n.rules.splice(r,0,e):(n.rules.push(e),this.logger.warn(`rule ${t} is not defined`));}function mE(n){let{metaSchema:e}=n;e!==void 0&&(n.$data&&this.opts.$data&&(e=Qm(e)),n.validateSchema=this.compile(e,true));}var gE={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Qm(n){return {anyOf:[n,gE]}}});var eg=E(Yl=>{Object.defineProperty(Yl,"__esModule",{value:true});var yE={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Yl.default=yE;});var Us=E(Ln=>{Object.defineProperty(Ln,"__esModule",{value:true});Ln.callRef=Ln.getValidate=void 0;var vE=dr(),tg=ft(),tt=$(),gr=dt(),ng=yi(),Js=M(),CE={keyword:"$ref",schemaType:"string",code(n){let{gen:e,schema:t,it:r}=n,{baseId:i,schemaEnv:a,validateName:s,opts:o,self:u}=r,{root:l}=a;if((t==="#"||t==="#/")&&i===l.baseId)return h();let c=ng.resolveRef.call(u,l,i,t);if(c===void 0)throw new vE.default(r.opts.uriResolver,i,t);if(c instanceof ng.SchemaEnv)return f(c);return d(c);function h(){if(a===l)return Hs(n,s,a,a.$async);let m=e.scopeValue("root",{ref:l});return Hs(n,(0, tt._)`${m}.validate`,l,l.$async)}function f(m){let y=rg(n,m);Hs(n,y,m,m.$async);}function d(m){let y=e.scopeValue("schema",o.code.source===true?{ref:m,code:(0, tt.stringify)(m)}:{ref:m}),S=e.name("valid"),_=n.subschema({schema:m,dataTypes:[],schemaPath:tt.nil,topSchemaRef:y,errSchemaPath:t},S);n.mergeEvaluated(_),n.ok(S);}}};function rg(n,e){let{gen:t}=n;return e.validate?t.scopeValue("validate",{ref:e.validate}):(0, tt._)`${t.scopeValue("wrapper",{ref:e})}.validate`}Ln.getValidate=rg;function Hs(n,e,t,r){let{gen:i,it:a}=n,{allErrors:s,schemaEnv:o,opts:u}=a,l=u.passContext?gr.default.this:tt.nil;r?c():h();function c(){if(!o.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0, tt._)`await ${(0, tg.callValidateCode)(n,e,l)}`),d(e),s||i.assign(m,true);},y=>{i.if((0, tt._)`!(${y} instanceof ${a.ValidationError})`,()=>i.throw(y)),f(y),s||i.assign(m,false);}),n.ok(m);}function h(){n.result((0, tg.callValidateCode)(n,e,l),()=>d(e),()=>f(e));}function f(m){let y=(0, tt._)`${m}.errors`;i.assign(gr.default.vErrors,(0, tt._)`${gr.default.vErrors} === null ? ${y} : ${gr.default.vErrors}.concat(${y})`),i.assign(gr.default.errors,(0, tt._)`${gr.default.vErrors}.length`);}function d(m){var y;if(!a.opts.unevaluated)return;let S=(y=t?.validate)===null||y===void 0?void 0:y.evaluated;if(a.props!==true)if(S&&!S.dynamicProps)S.props!==void 0&&(a.props=Js.mergeEvaluated.props(i,S.props,a.props));else {let _=i.var("props",(0, tt._)`${m}.evaluated.props`);a.props=Js.mergeEvaluated.props(i,_,a.props,tt.Name);}if(a.items!==true)if(S&&!S.dynamicItems)S.items!==void 0&&(a.items=Js.mergeEvaluated.items(i,S.items,a.items));else {let _=i.var("items",(0, tt._)`${m}.evaluated.items`);a.items=Js.mergeEvaluated.items(i,_,a.items,tt.Name);}}}Ln.callRef=Hs;Ln.default=CE;});var Ql=E(Zl=>{Object.defineProperty(Zl,"__esModule",{value:true});var bE=eg(),_E=Us(),SE=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",bE.default,_E.default];Zl.default=SE;});var ig=E(ec=>{Object.defineProperty(ec,"__esModule",{value:true});var Ks=$(),pn=Ks.operators,Xs={maximum:{okStr:"<=",ok:pn.LTE,fail:pn.GT},minimum:{okStr:">=",ok:pn.GTE,fail:pn.LT},exclusiveMaximum:{okStr:"<",ok:pn.LT,fail:pn.GTE},exclusiveMinimum:{okStr:">",ok:pn.GT,fail:pn.LTE}},EE={message:({keyword:n,schemaCode:e})=>(0, Ks.str)`must be ${Xs[n].okStr} ${e}`,params:({keyword:n,schemaCode:e})=>(0, Ks._)`{comparison: ${Xs[n].okStr}, limit: ${e}}`},wE={keyword:Object.keys(Xs),type:"number",schemaType:"number",$data:true,error:EE,code(n){let{keyword:e,data:t,schemaCode:r}=n;n.fail$data((0, Ks._)`${t} ${Xs[e].fail} ${r} || isNaN(${t})`);}};ec.default=wE;});var sg=E(tc=>{Object.defineProperty(tc,"__esModule",{value:true});var Si=$(),DE={message:({schemaCode:n})=>(0, Si.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0, Si._)`{multipleOf: ${n}}`},AE={keyword:"multipleOf",type:"number",schemaType:"number",$data:true,error:DE,code(n){let{gen:e,data:t,schemaCode:r,it:i}=n,a=i.opts.multipleOfPrecision,s=e.let("res"),o=a?(0, Si._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:(0, Si._)`${s} !== parseInt(${s})`;n.fail$data((0, Si._)`(${r} === 0 || (${s} = ${t}/${r}, ${o}))`);}};tc.default=AE;});var og=E(nc=>{Object.defineProperty(nc,"__esModule",{value:true});function ag(n){let e=n.length,t=0,r=0,i;for(;r<e;)t++,i=n.charCodeAt(r++),i>=55296&&i<=56319&&r<e&&(i=n.charCodeAt(r),(i&64512)===56320&&r++);return t}nc.default=ag;ag.code='require("ajv/dist/runtime/ucs2length").default';});var ug=E(rc=>{Object.defineProperty(rc,"__esModule",{value:true});var qn=$(),PE=M(),OE=og(),xE={message({keyword:n,schemaCode:e}){let t=n==="maxLength"?"more":"fewer";return (0, qn.str)`must NOT have ${t} than ${e} characters`},params:({schemaCode:n})=>(0, qn._)`{limit: ${n}}`},TE={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:true,error:xE,code(n){let{keyword:e,data:t,schemaCode:r,it:i}=n,a=e==="maxLength"?qn.operators.GT:qn.operators.LT,s=i.opts.unicode===false?(0, qn._)`${t}.length`:(0, qn._)`${(0, PE.useFunc)(n.gen,OE.default)}(${t})`;n.fail$data((0, qn._)`${s} ${a} ${r}`);}};rc.default=TE;});var lg=E(ic=>{Object.defineProperty(ic,"__esModule",{value:true});var NE=ft(),FE=M(),yr=$(),IE={message:({schemaCode:n})=>(0, yr.str)`must match pattern "${n}"`,params:({schemaCode:n})=>(0, yr._)`{pattern: ${n}}`},kE={keyword:"pattern",type:"string",schemaType:"string",$data:true,error:IE,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n,o=s.opts.unicodeRegExp?"u":"";if(r){let{regExp:u}=s.opts.code,l=u.code==="new RegExp"?(0, yr._)`new RegExp`:(0, FE.useFunc)(e,u),c=e.let("valid");e.try(()=>e.assign(c,(0, yr._)`${l}(${a}, ${o}).test(${t})`),()=>e.assign(c,false)),n.fail$data((0, yr._)`!${c}`);}else {let u=(0, NE.usePattern)(n,i);n.fail$data((0, yr._)`!${u}.test(${t})`);}}};ic.default=kE;});var cg=E(sc=>{Object.defineProperty(sc,"__esModule",{value:true});var Ei=$(),VE={message({keyword:n,schemaCode:e}){let t=n==="maxProperties"?"more":"fewer";return (0, Ei.str)`must NOT have ${t} than ${e} properties`},params:({schemaCode:n})=>(0, Ei._)`{limit: ${n}}`},RE={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:true,error:VE,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxProperties"?Ei.operators.GT:Ei.operators.LT;n.fail$data((0, Ei._)`Object.keys(${t}).length ${i} ${r}`);}};sc.default=RE;});var hg=E(ac=>{Object.defineProperty(ac,"__esModule",{value:true});var wi=ft(),Di=$(),$E=M(),jE={message:({params:{missingProperty:n}})=>(0, Di.str)`must have required property '${n}'`,params:({params:{missingProperty:n}})=>(0, Di._)`{missingProperty: ${n}}`},LE={keyword:"required",type:"object",schemaType:"array",$data:true,error:jE,code(n){let{gen:e,schema:t,schemaCode:r,data:i,$data:a,it:s}=n,{opts:o}=s;if(!a&&t.length===0)return;let u=t.length>=o.loopRequired;if(s.allErrors?l():c(),o.strictRequired){let d=n.parentSchema.properties,{definedProperties:m}=n.it;for(let y of t)if(d?.[y]===void 0&&!m.has(y)){let S=s.schemaEnv.baseId+s.errSchemaPath,_=`required property "${y}" is not defined at "${S}" (strictRequired)`;(0, $E.checkStrictMode)(s,_,s.opts.strictRequired);}}function l(){if(u||a)n.block$data(Di.nil,h);else for(let d of t)(0, wi.checkReportMissingProp)(n,d);}function c(){let d=e.let("missing");if(u||a){let m=e.let("valid",true);n.block$data(m,()=>f(d,m)),n.ok(m);}else e.if((0, wi.checkMissingProp)(n,t,d)),(0, wi.reportMissingProp)(n,d),e.else();}function h(){e.forOf("prop",r,d=>{n.setParams({missingProperty:d}),e.if((0, wi.noPropertyInData)(e,i,d,o.ownProperties),()=>n.error());});}function f(d,m){n.setParams({missingProperty:d}),e.forOf(d,r,()=>{e.assign(m,(0, wi.propertyInData)(e,i,d,o.ownProperties)),e.if((0, Di.not)(m),()=>{n.error(),e.break();});},Di.nil);}}};ac.default=LE;});var dg=E(oc=>{Object.defineProperty(oc,"__esModule",{value:true});var Ai=$(),qE={message({keyword:n,schemaCode:e}){let t=n==="maxItems"?"more":"fewer";return (0, Ai.str)`must NOT have ${t} than ${e} items`},params:({schemaCode:n})=>(0, Ai._)`{limit: ${n}}`},BE={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:true,error:qE,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxItems"?Ai.operators.GT:Ai.operators.LT;n.fail$data((0, Ai._)`${t}.length ${i} ${r}`);}};oc.default=BE;});var Ys=E(uc=>{Object.defineProperty(uc,"__esModule",{value:true});var fg=xl();fg.code='require("ajv/dist/runtime/equal").default';uc.default=fg;});var pg=E(cc=>{Object.defineProperty(cc,"__esModule",{value:true});var lc=di(),Fe=$(),WE=M(),ME=Ys(),GE={message:({params:{i:n,j:e}})=>(0, Fe.str)`must NOT have duplicate items (items ## ${e} and ${n} are identical)`,params:({params:{i:n,j:e}})=>(0, Fe._)`{i: ${n}, j: ${e}}`},zE={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:true,error:GE,code(n){let{gen:e,data:t,$data:r,schema:i,parentSchema:a,schemaCode:s,it:o}=n;if(!r&&!i)return;let u=e.let("valid"),l=a.items?(0, lc.getSchemaTypes)(a.items):[];n.block$data(u,c,(0, Fe._)`${s} === false`),n.ok(u);function c(){let m=e.let("i",(0, Fe._)`${t}.length`),y=e.let("j");n.setParams({i:m,j:y}),e.assign(u,true),e.if((0, Fe._)`${m} > 1`,()=>(h()?f:d)(m,y));}function h(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,y){let S=e.name("item"),_=(0, lc.checkDataTypes)(l,S,o.opts.strictNumbers,lc.DataType.Wrong),b=e.const("indices",(0, Fe._)`{}`);e.for((0, Fe._)`;${m}--;`,()=>{e.let(S,(0, Fe._)`${t}[${m}]`),e.if(_,(0, Fe._)`continue`),l.length>1&&e.if((0, Fe._)`typeof ${S} == "string"`,(0, Fe._)`${S} += "_"`),e.if((0, Fe._)`typeof ${b}[${S}] == "number"`,()=>{e.assign(y,(0, Fe._)`${b}[${S}]`),n.error(),e.assign(u,false).break();}).code((0, Fe._)`${b}[${S}] = ${m}`);});}function d(m,y){let S=(0, WE.useFunc)(e,ME.default),_=e.name("outer");e.label(_).for((0, Fe._)`;${m}--;`,()=>e.for((0, Fe._)`${y} = ${m}; ${y}--;`,()=>e.if((0, Fe._)`${S}(${t}[${m}], ${t}[${y}])`,()=>{n.error(),e.assign(u,false).break(_);})));}}};cc.default=zE;});var mg=E(dc=>{Object.defineProperty(dc,"__esModule",{value:true});var hc=$(),JE=M(),HE=Ys(),UE={message:"must be equal to constant",params:({schemaCode:n})=>(0, hc._)`{allowedValue: ${n}}`},KE={keyword:"const",$data:true,error:UE,code(n){let{gen:e,data:t,$data:r,schemaCode:i,schema:a}=n;r||a&&typeof a=="object"?n.fail$data((0, hc._)`!${(0, JE.useFunc)(e,HE.default)}(${t}, ${i})`):n.fail((0, hc._)`${a} !== ${t}`);}};dc.default=KE;});var gg=E(fc=>{Object.defineProperty(fc,"__esModule",{value:true});var Pi=$(),XE=M(),YE=Ys(),ZE={message:"must be equal to one of the allowed values",params:({schemaCode:n})=>(0, Pi._)`{allowedValues: ${n}}`},QE={keyword:"enum",schemaType:"array",$data:true,error:ZE,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let o=i.length>=s.opts.loopEnum,u,l=()=>u??(u=(0, XE.useFunc)(e,YE.default)),c;if(o||r)c=e.let("valid"),n.block$data(c,h);else {if(!Array.isArray(i))throw new Error("ajv implementation error");let d=e.const("vSchema",a);c=(0, Pi.or)(...i.map((m,y)=>f(d,y)));}n.pass(c);function h(){e.assign(c,false),e.forOf("v",a,d=>e.if((0, Pi._)`${l()}(${t}, ${d})`,()=>e.assign(c,true).break()));}function f(d,m){let y=i[m];return typeof y=="object"&&y!==null?(0, Pi._)`${l()}(${t}, ${d}[${m}])`:(0, Pi._)`${t} === ${y}`}}};fc.default=QE;});var mc=E(pc=>{Object.defineProperty(pc,"__esModule",{value:true});var ew=ig(),tw=sg(),nw=ug(),rw=lg(),iw=cg(),sw=hg(),aw=dg(),ow=pg(),uw=mg(),lw=gg(),cw=[ew.default,tw.default,nw.default,rw.default,iw.default,sw.default,aw.default,ow.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},uw.default,lw.default];pc.default=cw;});var yc=E(Oi=>{Object.defineProperty(Oi,"__esModule",{value:true});Oi.validateAdditionalItems=void 0;var Bn=$(),gc=M(),hw={message:({params:{len:n}})=>(0, Bn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Bn._)`{limit: ${n}}`},dw={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:hw,code(n){let{parentSchema:e,it:t}=n,{items:r}=e;if(!Array.isArray(r)){(0, gc.checkStrictMode)(t,'"additionalItems" is ignored when "items" is not an array of schemas');return}yg(n,r);}};function yg(n,e){let{gen:t,schema:r,data:i,keyword:a,it:s}=n;s.items=true;let o=t.const("len",(0, Bn._)`${i}.length`);if(r===false)n.setParams({len:e.length}),n.pass((0, Bn._)`${o} <= ${e.length}`);else if(typeof r=="object"&&!(0, gc.alwaysValidSchema)(s,r)){let l=t.var("valid",(0, Bn._)`${o} <= ${e.length}`);t.if((0, Bn.not)(l),()=>u(l)),n.ok(l);}function u(l){t.forRange("i",e.length,o,c=>{n.subschema({keyword:a,dataProp:c,dataPropType:gc.Type.Num},l),s.allErrors||t.if((0, Bn.not)(l),()=>t.break());});}}Oi.validateAdditionalItems=yg;Oi.default=dw;});var vc=E(xi=>{Object.defineProperty(xi,"__esModule",{value:true});xi.validateTuple=void 0;var vg=$(),Zs=M(),fw=ft(),pw={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(n){let{schema:e,it:t}=n;if(Array.isArray(e))return Cg(n,"additionalItems",e);t.items=true,!(0, Zs.alwaysValidSchema)(t,e)&&n.ok((0, fw.validateArray)(n));}};function Cg(n,e,t=n.schema){let{gen:r,parentSchema:i,data:a,keyword:s,it:o}=n;c(i),o.opts.unevaluated&&t.length&&o.items!==true&&(o.items=Zs.mergeEvaluated.items(r,t.length,o.items));let u=r.name("valid"),l=r.const("len",(0, vg._)`${a}.length`);t.forEach((h,f)=>{(0, Zs.alwaysValidSchema)(o,h)||(r.if((0, vg._)`${l} > ${f}`,()=>n.subschema({keyword:s,schemaProp:f,dataProp:f},u)),n.ok(u));});function c(h){let{opts:f,errSchemaPath:d}=o,m=t.length,y=m===h.minItems&&(m===h.maxItems||h[e]===false);if(f.strictTuples&&!y){let S=`"${s}" is ${m}-tuple, but minItems or maxItems/${e} are not specified or different at path "${d}"`;(0, Zs.checkStrictMode)(o,S,f.strictTuples);}}}xi.validateTuple=Cg;xi.default=pw;});var bg=E(Cc=>{Object.defineProperty(Cc,"__esModule",{value:true});var mw=vc(),gw={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0, mw.validateTuple)(n,"items")};Cc.default=gw;});var Sg=E(bc=>{Object.defineProperty(bc,"__esModule",{value:true});var _g=$(),yw=M(),vw=ft(),Cw=yc(),bw={message:({params:{len:n}})=>(0, _g.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, _g._)`{limit: ${n}}`},_w={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:bw,code(n){let{schema:e,parentSchema:t,it:r}=n,{prefixItems:i}=t;r.items=true,!(0, yw.alwaysValidSchema)(r,e)&&(i?(0, Cw.validateAdditionalItems)(n,i):n.ok((0, vw.validateArray)(n)));}};bc.default=_w;});var Eg=E(_c=>{Object.defineProperty(_c,"__esModule",{value:true});var mt=$(),Qs=M(),Sw={message:({params:{min:n,max:e}})=>e===void 0?(0, mt.str)`must contain at least ${n} valid item(s)`:(0, mt.str)`must contain at least ${n} and no more than ${e} valid item(s)`,params:({params:{min:n,max:e}})=>e===void 0?(0, mt._)`{minContains: ${n}}`:(0, mt._)`{minContains: ${n}, maxContains: ${e}}`},Ew={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:Sw,code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n,s,o,{minContains:u,maxContains:l}=r;a.opts.next?(s=u===void 0?1:u,o=l):s=1;let c=e.const("len",(0, mt._)`${i}.length`);if(n.setParams({min:s,max:o}),o===void 0&&s===0){(0, Qs.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&s>o){(0, Qs.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),n.fail();return}if((0, Qs.alwaysValidSchema)(a,t)){let y=(0, mt._)`${c} >= ${s}`;o!==void 0&&(y=(0, mt._)`${y} && ${c} <= ${o}`),n.pass(y);return}a.items=true;let h=e.name("valid");o===void 0&&s===1?d(h,()=>e.if(h,()=>e.break())):s===0?(e.let(h,true),o!==void 0&&e.if((0, mt._)`${i}.length > 0`,f)):(e.let(h,false),f()),n.result(h,()=>n.reset());function f(){let y=e.name("_valid"),S=e.let("count",0);d(y,()=>e.if(y,()=>m(S)));}function d(y,S){e.forRange("i",0,c,_=>{n.subschema({keyword:"contains",dataProp:_,dataPropType:Qs.Type.Num,compositeRule:true},y),S();});}function m(y){e.code((0, mt._)`${y}++`),o===void 0?e.if((0, mt._)`${y} >= ${s}`,()=>e.assign(h,true).break()):(e.if((0, mt._)`${y} > ${o}`,()=>e.assign(h,false).break()),s===1?e.assign(h,true):e.if((0, mt._)`${y} >= ${s}`,()=>e.assign(h,true)));}}};_c.default=Ew;});var ea=E(Vt=>{Object.defineProperty(Vt,"__esModule",{value:true});Vt.validateSchemaDeps=Vt.validatePropertyDeps=Vt.error=void 0;var Sc=$(),ww=M(),Ti=ft();Vt.error={message:({params:{property:n,depsCount:e,deps:t}})=>{let r=e===1?"property":"properties";return (0, Sc.str)`must have ${r} ${t} when property ${n} is present`},params:({params:{property:n,depsCount:e,deps:t,missingProperty:r}})=>(0, Sc._)`{property: ${n},
6
+ missingProperty: ${r},
7
+ depsCount: ${e},
8
+ deps: ${t}}`};var Dw={keyword:"dependencies",type:"object",schemaType:"object",error:Vt.error,code(n){let[e,t]=Aw(n);wg(n,e),Dg(n,t);}};function Aw({schema:n}){let e={},t={};for(let r in n){if(r==="__proto__")continue;let i=Array.isArray(n[r])?e:t;i[r]=n[r];}return [e,t]}function wg(n,e=n.schema){let{gen:t,data:r,it:i}=n;if(Object.keys(e).length===0)return;let a=t.let("missing");for(let s in e){let o=e[s];if(o.length===0)continue;let u=(0, Ti.propertyInData)(t,r,s,i.opts.ownProperties);n.setParams({property:s,depsCount:o.length,deps:o.join(", ")}),i.allErrors?t.if(u,()=>{for(let l of o)(0, Ti.checkReportMissingProp)(n,l);}):(t.if((0, Sc._)`${u} && (${(0, Ti.checkMissingProp)(n,o,a)})`),(0, Ti.reportMissingProp)(n,a),t.else());}}Vt.validatePropertyDeps=wg;function Dg(n,e=n.schema){let{gen:t,data:r,keyword:i,it:a}=n,s=t.name("valid");for(let o in e)(0, ww.alwaysValidSchema)(a,e[o])||(t.if((0, Ti.propertyInData)(t,r,o,a.opts.ownProperties),()=>{let u=n.subschema({keyword:i,schemaProp:o},s);n.mergeValidEvaluated(u,s);},()=>t.var(s,true)),n.ok(s));}Vt.validateSchemaDeps=Dg;Vt.default=Dw;});var Pg=E(Ec=>{Object.defineProperty(Ec,"__esModule",{value:true});var Ag=$(),Pw=M(),Ow={message:"property name must be valid",params:({params:n})=>(0, Ag._)`{propertyName: ${n.propertyName}}`},xw={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Ow,code(n){let{gen:e,schema:t,data:r,it:i}=n;if((0, Pw.alwaysValidSchema)(i,t))return;let a=e.name("valid");e.forIn("key",r,s=>{n.setParams({propertyName:s}),n.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:true},a),e.if((0, Ag.not)(a),()=>{n.error(true),i.allErrors||e.break();});}),n.ok(a);}};Ec.default=xw;});var Dc=E(wc=>{Object.defineProperty(wc,"__esModule",{value:true});var ta=ft(),Ot=$(),Tw=dt(),na=M(),Nw={message:"must NOT have additional properties",params:({params:n})=>(0, Ot._)`{additionalProperty: ${n.additionalProperty}}`},Fw={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:Nw,code(n){let{gen:e,schema:t,parentSchema:r,data:i,errsCount:a,it:s}=n;if(!a)throw new Error("ajv implementation error");let{allErrors:o,opts:u}=s;if(s.props=true,u.removeAdditional!=="all"&&(0, na.alwaysValidSchema)(s,t))return;let l=(0, ta.allSchemaProperties)(r.properties),c=(0, ta.allSchemaProperties)(r.patternProperties);h(),n.ok((0, Ot._)`${a} === ${Tw.default.errors}`);function h(){e.forIn("key",i,S=>{!l.length&&!c.length?m(S):e.if(f(S),()=>m(S));});}function f(S){let _;if(l.length>8){let b=(0, na.schemaRefOrVal)(s,r.properties,"properties");_=(0, ta.isOwnProperty)(e,b,S);}else l.length?_=(0, Ot.or)(...l.map(b=>(0, Ot._)`${S} === ${b}`)):_=Ot.nil;return c.length&&(_=(0, Ot.or)(_,...c.map(b=>(0, Ot._)`${(0, ta.usePattern)(n,b)}.test(${S})`))),(0, Ot.not)(_)}function d(S){e.code((0, Ot._)`delete ${i}[${S}]`);}function m(S){if(u.removeAdditional==="all"||u.removeAdditional&&t===false){d(S);return}if(t===false){n.setParams({additionalProperty:S}),n.error(),o||e.break();return}if(typeof t=="object"&&!(0, na.alwaysValidSchema)(s,t)){let _=e.name("valid");u.removeAdditional==="failing"?(y(S,_,false),e.if((0, Ot.not)(_),()=>{n.reset(),d(S);})):(y(S,_),o||e.if((0, Ot.not)(_),()=>e.break()));}}function y(S,_,b){let g={keyword:"additionalProperties",dataProp:S,dataPropType:na.Type.Str};b===false&&Object.assign(g,{compositeRule:true,createErrors:false,allErrors:false}),n.subschema(g,_);}}};wc.default=Fw;});var Tg=E(Pc=>{Object.defineProperty(Pc,"__esModule",{value:true});var Iw=hr(),Og=ft(),Ac=M(),xg=Dc(),kw={keyword:"properties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n;a.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&xg.default.code(new Iw.KeywordCxt(a,xg.default,"additionalProperties"));let s=(0, Og.allSchemaProperties)(t);for(let h of s)a.definedProperties.add(h);a.opts.unevaluated&&s.length&&a.props!==true&&(a.props=Ac.mergeEvaluated.props(e,(0, Ac.toHash)(s),a.props));let o=s.filter(h=>!(0, Ac.alwaysValidSchema)(a,t[h]));if(o.length===0)return;let u=e.name("valid");for(let h of o)l(h)?c(h):(e.if((0, Og.propertyInData)(e,i,h,a.opts.ownProperties)),c(h),a.allErrors||e.else().var(u,true),e.endIf()),n.it.definedProperties.add(h),n.ok(u);function l(h){return a.opts.useDefaults&&!a.compositeRule&&t[h].default!==void 0}function c(h){n.subschema({keyword:"properties",schemaProp:h,dataProp:h},u);}}};Pc.default=kw;});var kg=E(Oc=>{Object.defineProperty(Oc,"__esModule",{value:true});var Ng=ft(),ra=$(),Fg=M(),Ig=M(),Vw={keyword:"patternProperties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,data:r,parentSchema:i,it:a}=n,{opts:s}=a,o=(0, Ng.allSchemaProperties)(t),u=o.filter(y=>(0, Fg.alwaysValidSchema)(a,t[y]));if(o.length===0||u.length===o.length&&(!a.opts.unevaluated||a.props===true))return;let l=s.strictSchema&&!s.allowMatchingProperties&&i.properties,c=e.name("valid");a.props!==true&&!(a.props instanceof ra.Name)&&(a.props=(0, Ig.evaluatedPropsToName)(e,a.props));let{props:h}=a;f();function f(){for(let y of o)l&&d(y),a.allErrors?m(y):(e.var(c,true),m(y),e.if(c));}function d(y){for(let S in l)new RegExp(y).test(S)&&(0, Fg.checkStrictMode)(a,`property ${S} matches pattern ${y} (use allowMatchingProperties)`);}function m(y){e.forIn("key",r,S=>{e.if((0, ra._)`${(0, Ng.usePattern)(n,y)}.test(${S})`,()=>{let _=u.includes(y);_||n.subschema({keyword:"patternProperties",schemaProp:y,dataProp:S,dataPropType:Ig.Type.Str},c),a.opts.unevaluated&&h!==true?e.assign((0, ra._)`${h}[${S}]`,true):!_&&!a.allErrors&&e.if((0, ra.not)(c),()=>e.break());});});}}};Oc.default=Vw;});var Vg=E(xc=>{Object.defineProperty(xc,"__esModule",{value:true});var Rw=M(),$w={keyword:"not",schemaType:["object","boolean"],trackErrors:true,code(n){let{gen:e,schema:t,it:r}=n;if((0, Rw.alwaysValidSchema)(r,t)){n.fail();return}let i=e.name("valid");n.subschema({keyword:"not",compositeRule:true,createErrors:false,allErrors:false},i),n.failResult(i,()=>n.reset(),()=>n.error());},error:{message:"must NOT be valid"}};xc.default=$w;});var Rg=E(Tc=>{Object.defineProperty(Tc,"__esModule",{value:true});var jw=ft(),Lw={keyword:"anyOf",schemaType:"array",trackErrors:true,code:jw.validateUnion,error:{message:"must match a schema in anyOf"}};Tc.default=Lw;});var $g=E(Nc=>{Object.defineProperty(Nc,"__esModule",{value:true});var ia=$(),qw=M(),Bw={message:"must match exactly one schema in oneOf",params:({params:n})=>(0, ia._)`{passingSchemas: ${n.passing}}`},Ww={keyword:"oneOf",schemaType:"array",trackErrors:true,error:Bw,code(n){let{gen:e,schema:t,parentSchema:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let a=t,s=e.let("valid",false),o=e.let("passing",null),u=e.name("_valid");n.setParams({passing:o}),e.block(l),n.result(s,()=>n.reset(),()=>n.error(true));function l(){a.forEach((c,h)=>{let f;(0, qw.alwaysValidSchema)(i,c)?e.var(u,true):f=n.subschema({keyword:"oneOf",schemaProp:h,compositeRule:true},u),h>0&&e.if((0, ia._)`${u} && ${s}`).assign(s,false).assign(o,(0, ia._)`[${o}, ${h}]`).else(),e.if(u,()=>{e.assign(s,true),e.assign(o,h),f&&n.mergeEvaluated(f,ia.Name);});});}}};Nc.default=Ww;});var jg=E(Fc=>{Object.defineProperty(Fc,"__esModule",{value:true});var Mw=M(),Gw={keyword:"allOf",schemaType:"array",code(n){let{gen:e,schema:t,it:r}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");let i=e.name("valid");t.forEach((a,s)=>{if((0, Mw.alwaysValidSchema)(r,a))return;let o=n.subschema({keyword:"allOf",schemaProp:s},i);n.ok(i),n.mergeEvaluated(o);});}};Fc.default=Gw;});var Bg=E(Ic=>{Object.defineProperty(Ic,"__esModule",{value:true});var sa=$(),qg=M(),zw={message:({params:n})=>(0, sa.str)`must match "${n.ifClause}" schema`,params:({params:n})=>(0, sa._)`{failingKeyword: ${n.ifClause}}`},Jw={keyword:"if",schemaType:["object","boolean"],trackErrors:true,error:zw,code(n){let{gen:e,parentSchema:t,it:r}=n;t.then===void 0&&t.else===void 0&&(0, qg.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=Lg(r,"then"),a=Lg(r,"else");if(!i&&!a)return;let s=e.let("valid",true),o=e.name("_valid");if(u(),n.reset(),i&&a){let c=e.let("ifClause");n.setParams({ifClause:c}),e.if(o,l("then",c),l("else",c));}else i?e.if(o,l("then")):e.if((0, sa.not)(o),l("else"));n.pass(s,()=>n.error(true));function u(){let c=n.subschema({keyword:"if",compositeRule:true,createErrors:false,allErrors:false},o);n.mergeEvaluated(c);}function l(c,h){return ()=>{let f=n.subschema({keyword:c},o);e.assign(s,o),n.mergeValidEvaluated(f,s),h?e.assign(h,(0, sa._)`${c}`):n.setParams({ifClause:c});}}}};function Lg(n,e){let t=n.schema[e];return t!==void 0&&!(0, qg.alwaysValidSchema)(n,t)}Ic.default=Jw;});var Wg=E(kc=>{Object.defineProperty(kc,"__esModule",{value:true});var Hw=M(),Uw={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:e,it:t}){e.if===void 0&&(0, Hw.checkStrictMode)(t,`"${n}" without "if" is ignored`);}};kc.default=Uw;});var Rc=E(Vc=>{Object.defineProperty(Vc,"__esModule",{value:true});var Kw=yc(),Xw=bg(),Yw=vc(),Zw=Sg(),Qw=Eg(),eD=ea(),tD=Pg(),nD=Dc(),rD=Tg(),iD=kg(),sD=Vg(),aD=Rg(),oD=$g(),uD=jg(),lD=Bg(),cD=Wg();function hD(n=false){let e=[sD.default,aD.default,oD.default,uD.default,lD.default,cD.default,tD.default,nD.default,eD.default,rD.default,iD.default];return n?e.push(Xw.default,Zw.default):e.push(Kw.default,Yw.default),e.push(Qw.default),e}Vc.default=hD;});var Mg=E($c=>{Object.defineProperty($c,"__esModule",{value:true});var _e=$(),dD={message:({schemaCode:n})=>(0, _e.str)`must match format "${n}"`,params:({schemaCode:n})=>(0, _e._)`{format: ${n}}`},fD={keyword:"format",type:["number","string"],schemaType:"string",$data:true,error:dD,code(n,e){let{gen:t,data:r,$data:i,schema:a,schemaCode:s,it:o}=n,{opts:u,errSchemaPath:l,schemaEnv:c,self:h}=o;if(!u.validateFormats)return;i?f():d();function f(){let m=t.scopeValue("formats",{ref:h.formats,code:u.code.formats}),y=t.const("fDef",(0, _e._)`${m}[${s}]`),S=t.let("fType"),_=t.let("format");t.if((0, _e._)`typeof ${y} == "object" && !(${y} instanceof RegExp)`,()=>t.assign(S,(0, _e._)`${y}.type || "string"`).assign(_,(0, _e._)`${y}.validate`),()=>t.assign(S,(0, _e._)`"string"`).assign(_,y)),n.fail$data((0, _e.or)(b(),g()));function b(){return u.strictSchema===false?_e.nil:(0, _e._)`${s} && !${_}`}function g(){let v=c.$async?(0, _e._)`(${y}.async ? await ${_}(${r}) : ${_}(${r}))`:(0, _e._)`${_}(${r})`,p=(0, _e._)`(typeof ${_} == "function" ? ${v} : ${_}.test(${r}))`;return (0, _e._)`${_} && ${_} !== true && ${S} === ${e} && !${p}`}}function d(){let m=h.formats[a];if(!m){b();return}if(m===true)return;let[y,S,_]=g(m);y===e&&n.pass(v());function b(){if(u.strictSchema===false){h.logger.warn(p());return}throw new Error(p());function p(){return `unknown format "${a}" ignored in schema at path "${l}"`}}function g(p){let C=p instanceof RegExp?(0, _e.regexpCode)(p):u.code.formats?(0, _e._)`${u.code.formats}${(0, _e.getProperty)(a)}`:void 0,w=t.scopeValue("formats",{key:a,ref:p,code:C});return typeof p=="object"&&!(p instanceof RegExp)?[p.type||"string",p.validate,(0, _e._)`${w}.validate`]:["string",p,w]}function v(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!c.$async)throw new Error("async format in sync schema");return (0, _e._)`await ${_}(${r})`}return typeof S=="function"?(0, _e._)`${_}(${r})`:(0, _e._)`${_}.test(${r})`}}}};$c.default=fD;});var Lc=E(jc=>{Object.defineProperty(jc,"__esModule",{value:true});var pD=Mg(),mD=[pD.default];jc.default=mD;});var qc=E(vr=>{Object.defineProperty(vr,"__esModule",{value:true});vr.contentVocabulary=vr.metadataVocabulary=void 0;vr.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];vr.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"];});var zg=E(Bc=>{Object.defineProperty(Bc,"__esModule",{value:true});var gD=Ql(),yD=mc(),vD=Rc(),CD=Lc(),Gg=qc(),bD=[gD.default,yD.default,(0, vD.default)(),CD.default,Gg.metadataVocabulary,Gg.contentVocabulary];Bc.default=bD;});var Hg=E(aa=>{Object.defineProperty(aa,"__esModule",{value:true});aa.DiscrError=void 0;var Jg;(function(n){n.Tag="tag",n.Mapping="mapping";})(Jg||(aa.DiscrError=Jg={}));});var Gc=E(Mc=>{Object.defineProperty(Mc,"__esModule",{value:true});var Cr=$(),Wc=Hg(),Ug=yi(),_D=dr(),SD=M(),ED={message:({params:{discrError:n,tagName:e}})=>n===Wc.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:n,tag:e,tagName:t}})=>(0, Cr._)`{error: ${n}, tag: ${t}, tagValue: ${e}}`},wD={keyword:"discriminator",type:"object",schemaType:"object",error:ED,code(n){let{gen:e,data:t,schema:r,parentSchema:i,it:a}=n,{oneOf:s}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=r.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let u=e.let("valid",false),l=e.const("tag",(0, Cr._)`${t}${(0, Cr.getProperty)(o)}`);e.if((0, Cr._)`typeof ${l} == "string"`,()=>c(),()=>n.error(false,{discrError:Wc.DiscrError.Tag,tag:l,tagName:o})),n.ok(u);function c(){let d=f();e.if(false);for(let m in d)e.elseIf((0, Cr._)`${l} === ${m}`),e.assign(u,h(d[m]));e.else(),n.error(false,{discrError:Wc.DiscrError.Mapping,tag:l,tagName:o}),e.endIf();}function h(d){let m=e.name("valid"),y=n.subschema({keyword:"oneOf",schemaProp:d},m);return n.mergeEvaluated(y,Cr.Name),m}function f(){var d;let m={},y=_(i),S=true;for(let v=0;v<s.length;v++){let p=s[v];if(p?.$ref&&!(0, SD.schemaHasRulesButRef)(p,a.self.RULES)){let w=p.$ref;if(p=Ug.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,w),p instanceof Ug.SchemaEnv&&(p=p.schema),p===void 0)throw new _D.default(a.opts.uriResolver,a.baseId,w)}let C=(d=p?.properties)===null||d===void 0?void 0:d[o];if(typeof C!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);S=S&&(y||_(p)),b(C,v);}if(!S)throw new Error(`discriminator: "${o}" must be required`);return m;function _({required:v}){return Array.isArray(v)&&v.includes(o)}function b(v,p){if(v.const)g(v.const,p);else if(v.enum)for(let C of v.enum)g(C,p);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function g(v,p){if(typeof v!="string"||v in m)throw new Error(`discriminator: "${o}" values must be unique strings`);m[v]=p;}}}};Mc.default=wD;});var Kg=E((ok,DD)=>{DD.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:true,readOnly:{type:"boolean",default:false},examples:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:true},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:true,enum:{type:"array",items:true,minItems:1,uniqueItems:true},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:true}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:true};});var Yg=E((pe,zc)=>{Object.defineProperty(pe,"__esModule",{value:true});pe.MissingRefError=pe.ValidationError=pe.CodeGen=pe.Name=pe.nil=pe.stringify=pe.str=pe._=pe.KeywordCxt=pe.Ajv=void 0;var AD=Xl(),PD=zg(),OD=Gc(),Xg=Kg(),xD=["/properties"],oa="http://json-schema.org/draft-07/schema",br=class extends AD.default{_addVocabularies(){super._addVocabularies(),PD.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(OD.default);}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(Xg,xD):Xg;this.addMetaSchema(e,oa,false),this.refs["http://json-schema.org/schema"]=oa;}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(oa)?oa:void 0)}};pe.Ajv=br;zc.exports=pe=br;zc.exports.Ajv=br;Object.defineProperty(pe,"__esModule",{value:true});pe.default=br;var TD=hr();Object.defineProperty(pe,"KeywordCxt",{enumerable:true,get:function(){return TD.KeywordCxt}});var _r=$();Object.defineProperty(pe,"_",{enumerable:true,get:function(){return _r._}});Object.defineProperty(pe,"str",{enumerable:true,get:function(){return _r.str}});Object.defineProperty(pe,"stringify",{enumerable:true,get:function(){return _r.stringify}});Object.defineProperty(pe,"nil",{enumerable:true,get:function(){return _r.nil}});Object.defineProperty(pe,"Name",{enumerable:true,get:function(){return _r.Name}});Object.defineProperty(pe,"CodeGen",{enumerable:true,get:function(){return _r.CodeGen}});var ND=gi();Object.defineProperty(pe,"ValidationError",{enumerable:true,get:function(){return ND.default}});var FD=dr();Object.defineProperty(pe,"MissingRefError",{enumerable:true,get:function(){return FD.default}});});var Hc=E(Ni=>{Object.defineProperty(Ni,"__esModule",{value:true});Ni.dynamicAnchor=void 0;var Jc=$(),ID=dt(),Zg=yi(),kD=Us(),VD={keyword:"$dynamicAnchor",schemaType:"string",code:n=>Qg(n,n.schema)};function Qg(n,e){let{gen:t,it:r}=n;r.schemaEnv.root.dynamicAnchors[e]=true;let i=(0, Jc._)`${ID.default.dynamicAnchors}${(0, Jc.getProperty)(e)}`,a=r.errSchemaPath==="#"?r.validateName:RD(n);t.if((0, Jc._)`!${i}`,()=>t.assign(i,a));}Ni.dynamicAnchor=Qg;function RD(n){let{schemaEnv:e,schema:t,self:r}=n.it,{root:i,baseId:a,localRefs:s,meta:o}=e.root,{schemaId:u}=r.opts,l=new Zg.SchemaEnv({schema:t,schemaId:u,root:i,baseId:a,localRefs:s,meta:o});return Zg.compileSchema.call(r,l),(0, kD.getValidate)(n,l)}Ni.default=VD;});var Uc=E(Fi=>{Object.defineProperty(Fi,"__esModule",{value:true});Fi.dynamicRef=void 0;var ey=$(),$D=dt(),ty=Us(),jD={keyword:"$dynamicRef",schemaType:"string",code:n=>ny(n,n.schema)};function ny(n,e){let{gen:t,keyword:r,it:i}=n;if(e[0]!=="#")throw new Error(`"${r}" only supports hash fragment reference`);let a=e.slice(1);if(i.allErrors)s();else {let u=t.let("valid",false);s(u),n.ok(u);}function s(u){if(i.schemaEnv.root.dynamicAnchors[a]){let l=t.let("_v",(0, ey._)`${$D.default.dynamicAnchors}${(0, ey.getProperty)(a)}`);t.if(l,o(l,u),o(i.validateName,u));}else o(i.validateName,u)();}function o(u,l){return l?()=>t.block(()=>{(0, ty.callRef)(n,u),t.let(l,true);}):()=>(0, ty.callRef)(n,u)}}Fi.dynamicRef=ny;Fi.default=jD;});var ry=E(Kc=>{Object.defineProperty(Kc,"__esModule",{value:true});var LD=Hc(),qD=M(),BD={keyword:"$recursiveAnchor",schemaType:"boolean",code(n){n.schema?(0, LD.dynamicAnchor)(n,""):(0, qD.checkStrictMode)(n.it,"$recursiveAnchor: false is ignored");}};Kc.default=BD;});var iy=E(Xc=>{Object.defineProperty(Xc,"__esModule",{value:true});var WD=Uc(),MD={keyword:"$recursiveRef",schemaType:"string",code:n=>(0, WD.dynamicRef)(n,n.schema)};Xc.default=MD;});var sy=E(Yc=>{Object.defineProperty(Yc,"__esModule",{value:true});var GD=Hc(),zD=Uc(),JD=ry(),HD=iy(),UD=[GD.default,zD.default,JD.default,HD.default];Yc.default=UD;});var oy=E(Zc=>{Object.defineProperty(Zc,"__esModule",{value:true});var ay=ea(),KD={keyword:"dependentRequired",type:"object",schemaType:"object",error:ay.error,code:n=>(0, ay.validatePropertyDeps)(n)};Zc.default=KD;});var uy=E(Qc=>{Object.defineProperty(Qc,"__esModule",{value:true});var XD=ea(),YD={keyword:"dependentSchemas",type:"object",schemaType:"object",code:n=>(0, XD.validateSchemaDeps)(n)};Qc.default=YD;});var ly=E(eh=>{Object.defineProperty(eh,"__esModule",{value:true});var ZD=M(),QD={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:n,parentSchema:e,it:t}){e.contains===void 0&&(0, ZD.checkStrictMode)(t,`"${n}" without "contains" is ignored`);}};eh.default=QD;});var cy=E(th=>{Object.defineProperty(th,"__esModule",{value:true});var eA=oy(),tA=uy(),nA=ly(),rA=[eA.default,tA.default,nA.default];th.default=rA;});var dy=E(nh=>{Object.defineProperty(nh,"__esModule",{value:true});var mn=$(),hy=M(),iA=dt(),sA={message:"must NOT have unevaluated properties",params:({params:n})=>(0, mn._)`{unevaluatedProperty: ${n.unevaluatedProperty}}`},aA={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:true,error:sA,code(n){let{gen:e,schema:t,data:r,errsCount:i,it:a}=n;if(!i)throw new Error("ajv implementation error");let{allErrors:s,props:o}=a;o instanceof mn.Name?e.if((0, mn._)`${o} !== true`,()=>e.forIn("key",r,h=>e.if(l(o,h),()=>u(h)))):o!==true&&e.forIn("key",r,h=>o===void 0?u(h):e.if(c(o,h),()=>u(h))),a.props=true,n.ok((0, mn._)`${i} === ${iA.default.errors}`);function u(h){if(t===false){n.setParams({unevaluatedProperty:h}),n.error(),s||e.break();return}if(!(0, hy.alwaysValidSchema)(a,t)){let f=e.name("valid");n.subschema({keyword:"unevaluatedProperties",dataProp:h,dataPropType:hy.Type.Str},f),s||e.if((0, mn.not)(f),()=>e.break());}}function l(h,f){return (0, mn._)`!${h} || !${h}[${f}]`}function c(h,f){let d=[];for(let m in h)h[m]===true&&d.push((0, mn._)`${f} !== ${m}`);return (0, mn.and)(...d)}}};nh.default=aA;});var py=E(rh=>{Object.defineProperty(rh,"__esModule",{value:true});var Wn=$(),fy=M(),oA={message:({params:{len:n}})=>(0, Wn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Wn._)`{limit: ${n}}`},uA={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:oA,code(n){let{gen:e,schema:t,data:r,it:i}=n,a=i.items||0;if(a===true)return;let s=e.const("len",(0, Wn._)`${r}.length`);if(t===false)n.setParams({len:a}),n.fail((0, Wn._)`${s} > ${a}`);else if(typeof t=="object"&&!(0, fy.alwaysValidSchema)(i,t)){let u=e.var("valid",(0, Wn._)`${s} <= ${a}`);e.if((0, Wn.not)(u),()=>o(u,a)),n.ok(u);}i.items=true;function o(u,l){e.forRange("i",l,s,c=>{n.subschema({keyword:"unevaluatedItems",dataProp:c,dataPropType:fy.Type.Num},u),i.allErrors||e.if((0, Wn.not)(u),()=>e.break());});}}};rh.default=uA;});var my=E(ih=>{Object.defineProperty(ih,"__esModule",{value:true});var lA=dy(),cA=py(),hA=[lA.default,cA.default];ih.default=hA;});var yy=E(sh=>{Object.defineProperty(sh,"__esModule",{value:true});var dA=Ql(),fA=mc(),pA=Rc(),mA=sy(),gA=cy(),yA=my(),vA=Lc(),gy=qc(),CA=[mA.default,dA.default,fA.default,(0, pA.default)(true),vA.default,gy.metadataVocabulary,gy.contentVocabulary,gA.default,yA.default];sh.default=CA;});var vy=E((_k,bA)=>{bA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true,"https://json-schema.org/draft/2020-12/vocab/applicator":true,"https://json-schema.org/draft/2020-12/vocab/unevaluated":true,"https://json-schema.org/draft/2020-12/vocab/validation":true,"https://json-schema.org/draft/2020-12/vocab/meta-data":true,"https://json-schema.org/draft/2020-12/vocab/format-annotation":true,"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:true,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:true,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:true},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:true}}};});var Cy=E((Sk,_A)=>{_A.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":true},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}};});var by=E((Ek,SA)=>{SA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":true},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}};});var _y=E((wk,EA)=>{EA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}};});var Sy=E((Dk,wA)=>{wA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}};});var Ey=E((Ak,DA)=>{DA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":true},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}};});var wy=E((Pk,AA)=>{AA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":true},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:true,deprecated:{type:"boolean",default:false},readOnly:{type:"boolean",default:false},writeOnly:{type:"boolean",default:false},examples:{type:"array",items:true}}};});var Dy=E((Ok,PA)=>{PA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":true},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:true}]},const:true,enum:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}}};});var Ay=E(ah=>{Object.defineProperty(ah,"__esModule",{value:true});var OA=vy(),xA=Cy(),TA=by(),NA=_y(),FA=Sy(),IA=Ey(),kA=wy(),VA=Dy(),RA=["/properties"];function $A(n){return [OA,xA,TA,NA,FA,e(this,IA),kA,e(this,VA)].forEach(t=>this.addMetaSchema(t,void 0,false)),this;function e(t,r){return n?t.$dataMetaSchema(r,RA):r}}ah.default=$A;});var Py=E((me,uh)=>{Object.defineProperty(me,"__esModule",{value:true});me.MissingRefError=me.ValidationError=me.CodeGen=me.Name=me.nil=me.stringify=me.str=me._=me.KeywordCxt=me.Ajv2020=void 0;var jA=Xl(),LA=yy(),qA=Gc(),BA=Ay(),oh="https://json-schema.org/draft/2020-12/schema",Sr=class extends jA.default{constructor(e={}){super({...e,dynamicRef:true,next:true,unevaluated:true});}_addVocabularies(){super._addVocabularies(),LA.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(qA.default);}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(BA.default.call(this,e),this.refs["http://json-schema.org/schema"]=oh);}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(oh)?oh:void 0)}};me.Ajv2020=Sr;uh.exports=me=Sr;uh.exports.Ajv2020=Sr;Object.defineProperty(me,"__esModule",{value:true});me.default=Sr;var WA=hr();Object.defineProperty(me,"KeywordCxt",{enumerable:true,get:function(){return WA.KeywordCxt}});var Er=$();Object.defineProperty(me,"_",{enumerable:true,get:function(){return Er._}});Object.defineProperty(me,"str",{enumerable:true,get:function(){return Er.str}});Object.defineProperty(me,"stringify",{enumerable:true,get:function(){return Er.stringify}});Object.defineProperty(me,"nil",{enumerable:true,get:function(){return Er.nil}});Object.defineProperty(me,"Name",{enumerable:true,get:function(){return Er.Name}});Object.defineProperty(me,"CodeGen",{enumerable:true,get:function(){return Er.CodeGen}});var MA=gi();Object.defineProperty(me,"ValidationError",{enumerable:true,get:function(){return MA.default}});var GA=dr();Object.defineProperty(me,"MissingRefError",{enumerable:true,get:function(){return GA.default}});});var ch=E(ua=>{Object.defineProperty(ua,"__esModule",{value:true});ua.CompilerOptions=void 0;var lh=class{constructor(e=null,t=[],r=false,i=null,a=null){this.sourceFilename=e,this.pluginNames=t,this.countAllVisits=r,this.errorHandler=i,this.fileHandler=a;}};ua.CompilerOptions=lh;});var Oy=E(la=>{Object.defineProperty(la,"__esModule",{value:true});la.DebugSourceRange=void 0;var hh=class{constructor(e,t,r){this.length=e,this.debugMetadata=t,this.text=r;}};la.DebugSourceRange=hh;});var wr=E(ca=>{Object.defineProperty(ca,"__esModule",{value:true});ca.ErrorType=void 0;var xy;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(xy||(ca.ErrorType=xy={}));});var Ty=E(ha=>{Object.defineProperty(ha,"__esModule",{value:true});ha.Argument=void 0;var dh=class{constructor(e=null,t=null,r=null){this.identifier=e,this.isByReference=t,this.isDivertTarget=r;}get typeName(){return "Argument"}};ha.Argument=dh;});var ae=E(Pe=>{Object.defineProperty(Pe,"__esModule",{value:true});Pe.filterUndef=Pe.isEquatable=Pe.nullIfUndefined=Pe.asINamedContentOrNull=Pe.asBooleanOrThrows=Pe.asNumberOrThrows=Pe.asOrThrows=Pe.asOrNull=void 0;function zA(n,e){return n instanceof e?Ny(n):null}Pe.asOrNull=zA;function JA(n,e){if(n instanceof e)return Ny(n);throw new Error(`${n} is not of type ${e}`)}Pe.asOrThrows=JA;function HA(n){if(typeof n=="number")return n;throw new Error(`${n} is not a number`)}Pe.asNumberOrThrows=HA;function UA(n){if(typeof n=="boolean")return n;throw new Error(`${n} is not a boolean`)}Pe.asBooleanOrThrows=UA;function KA(n){return n.hasValidName&&n.name?n:null}Pe.asINamedContentOrNull=KA;function XA(n){return typeof n>"u"?null:n}Pe.nullIfUndefined=XA;function YA(n){return typeof n=="object"&&typeof n.Equals=="function"}Pe.isEquatable=YA;function Ny(n,e){return n}function ZA(n){return n!=null}Pe.filterUndef=ZA;});var ye=E(da=>{Object.defineProperty(da,"__esModule",{value:true});da.ParsedObject=void 0;var Fy=ae(),fh=class{constructor(){this._alreadyHadError=false,this._alreadyHadWarning=false,this._debugMetadata=null,this._runtimeObject=null,this.content=[],this.parent=null,this.GetType=()=>this.typeName,this.AddContent=e=>{this.content===null&&(this.content=[]);let t=Array.isArray(e)?e:[e];for(let r of t)r.hasOwnProperty("parent")&&(r.parent=this),this.content.push(r);if(!Array.isArray(e))return e},this.InsertContent=(e,t)=>(this.content===null&&(this.content=[]),t.parent=this,this.content.splice(e,0,t),t),this.Find=e=>(t=null)=>{let r=(0, Fy.asOrNull)(this,e);if(r!==null&&(t===null||t(r)===true))return r;if(this.content===null)return null;for(let i of this.content){let a=i.Find&&i.Find(e)(t);if(a)return a}return null},this.FindAll=e=>(t,r)=>{let i=Array.isArray(r)?r:[],a=(0, Fy.asOrNull)(this,e);if(a!==null&&(!t||t(a)===true)&&i.push(a),this.content===null)return [];for(let s of this.content)s.FindAll&&s.FindAll(e)(t,i);return i},this.Warning=(e,t=null)=>{this.Error(e,t,true);};}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get hasOwnDebugMetadata(){return !!this.debugMetadata}get typeName(){return "ParsedObject"}get story(){let e=this;for(;e.parent;)e=e.parent;return e}get runtimeObject(){return this._runtimeObject||(this._runtimeObject=this.GenerateRuntimeObject(),this._runtimeObject&&(this._runtimeObject.debugMetadata=this.debugMetadata)),this._runtimeObject}set runtimeObject(e){this._runtimeObject=e;}get runtimePath(){if(!this.runtimeObject.path)throw new Error;return this.runtimeObject.path}get containerForCounting(){return this.runtimeObject}get ancestry(){let e=[],t=this.parent;for(;t;)e.push(t),t=t.parent;return e=e.reverse(),e}ResolveReferences(e){if(this.content!==null)for(let t of this.content)t.ResolveReferences(e);}Error(e,t=null,r=false){if(t===null&&(t=this),!(t._alreadyHadError&&!r||t._alreadyHadWarning&&r)){if(this.parent)this.parent.Error(e,t,r);else throw new Error(`No parent object to send error to: ${e}`);r?t._alreadyHadWarning=true:t._alreadyHadError=true;}}};da.ParsedObject=fh;});var pa=E(fa=>{Object.defineProperty(fa,"__esModule",{value:true});fa.AuthorWarning=void 0;var QA=ye(),ph=class extends QA.ParsedObject{constructor(e){super(),this.warningMessage=e,this.GenerateRuntimeObject=()=>(this.Warning(this.warningMessage),null);}get typeName(){return "AuthorWarning"}};fa.AuthorWarning=ph;});var nt=E(Ii=>{Object.defineProperty(Ii,"__esModule",{value:true});Ii.Path=void 0;var Dr=class n{constructor(){if(this._components=[],this._componentsString=null,this._isRelative=false,typeof arguments[0]=="string"){let e=arguments[0];this.componentsString=e;}else if(arguments[0]instanceof n.Component&&arguments[1]instanceof n){let e=arguments[0],t=arguments[1];this._components.push(e),this._components=this._components.concat(t._components);}else if(arguments[0]instanceof Array){let e=arguments[0],t=!!arguments[1];this._components=this._components.concat(e),this._isRelative=t;}}get isRelative(){return this._isRelative}get componentCount(){return this._components.length}get head(){return this._components.length>0?this._components[0]:null}get tail(){if(this._components.length>=2){let e=this._components.slice(1,this._components.length);return new n(e)}else return n.self}get length(){return this._components.length}get lastComponent(){let e=this._components.length-1;return e>=0?this._components[e]:null}get containsNamedComponent(){for(let e=0,t=this._components.length;e<t;e++)if(!this._components[e].isIndex)return true;return false}static get self(){let e=new n;return e._isRelative=true,e}GetComponent(e){return this._components[e]}PathByAppendingPath(e){let t=new n,r=0;for(let i=0;i<e._components.length&&e._components[i].isParent;++i)r++;for(let i=0;i<this._components.length-r;++i)t._components.push(this._components[i]);for(let i=r;i<e._components.length;++i)t._components.push(e._components[i]);return t}get componentsString(){return this._componentsString==null&&(this._componentsString=this._components.join("."),this.isRelative&&(this._componentsString="."+this._componentsString)),this._componentsString}set componentsString(e){if(this._components.length=0,this._componentsString=e,this._componentsString==null||this._componentsString=="")return;this._componentsString[0]=="."&&(this._isRelative=true,this._componentsString=this._componentsString.substring(1));let t=this._componentsString.split(".");for(let r of t)/^(\-|\+)?([0-9]+|Infinity)$/.test(r)?this._components.push(new n.Component(parseInt(r))):this._components.push(new n.Component(r));}toString(){return this.componentsString}Equals(e){if(e==null||e._components.length!=this._components.length||e.isRelative!=this.isRelative)return false;for(let t=0,r=e._components.length;t<r;t++)if(!e._components[t].Equals(this._components[t]))return false;return true}PathByAppendingComponent(e){let t=new n;return t._components.push(...this._components),t._components.push(e),t}};Ii.Path=Dr;Dr.parentId="^";(function(n){class e{constructor(r){this.index=-1,this.name=null,typeof r=="string"?this.name=r:this.index=r;}get isIndex(){return this.index>=0}get isParent(){return this.name==n.parentId}static ToParent(){return new e(n.parentId)}toString(){return this.isIndex?this.index.toString():this.name}Equals(r){return r!=null&&r.isIndex==this.isIndex?this.isIndex?this.index==r.index:this.name==r.name:false}}n.Component=e;})(Dr||(Ii.Path=Dr={}));});var ki=E(ma=>{Object.defineProperty(ma,"__esModule",{value:true});ma.Debug=void 0;var Iy;(function(n){function e(r,i,a){t(r instanceof i,a);}n.AssertType=e;function t(r,i){if(!r)throw typeof i<"u"&&console.warn(i),console.trace&&console.trace(),new Error("")}n.Assert=t;})(Iy||(ma.Debug=Iy={}));});var $e=E(Ar=>{Object.defineProperty(Ar,"__esModule",{value:true});Ar.throwNullException=Ar.NullException=void 0;var ga=class extends Error{};Ar.NullException=ga;function eP(n){throw new ga(`${n} is null or undefined`)}Ar.throwNullException=eP;});var rt=E(va=>{Object.defineProperty(va,"__esModule",{value:true});va.InkObject=void 0;var Pr=nt(),Vi=Ee(),mh=ki(),Or=ae(),ya=$e(),gh=class{constructor(){this.parent=null,this._debugMetadata=null,this._path=null;}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get ownDebugMetadata(){return this._debugMetadata}DebugLineNumberOfPath(e){if(e===null)return null;let t=this.rootContentContainer;if(t){let r=t.ContentAtPath(e).obj;if(r){let i=r.debugMetadata;if(i!==null)return i.startLineNumber}}return null}get path(){if(this._path==null)if(this.parent==null)this._path=new Pr.Path;else {let e=[],t=this,r=(0, Or.asOrNull)(t.parent,Vi.Container);for(;r!==null;){let i=(0, Or.asINamedContentOrNull)(t);if(i!=null&&i.hasValidName){if(i.name===null)return (0, ya.throwNullException)("namedChild.name");e.unshift(new Pr.Path.Component(i.name));}else e.unshift(new Pr.Path.Component(r.content.indexOf(t)));t=r,r=(0, Or.asOrNull)(r.parent,Vi.Container);}this._path=new Pr.Path(e);}return this._path}ResolvePath(e){if(e===null)return (0, ya.throwNullException)("path");if(e.isRelative){let t=(0, Or.asOrNull)(this,Vi.Container);return t===null&&(mh.Debug.Assert(this.parent!==null,"Can't resolve relative path because we don't have a parent"),t=(0, Or.asOrNull)(this.parent,Vi.Container),mh.Debug.Assert(t!==null,"Expected parent to be a container"),mh.Debug.Assert(e.GetComponent(0).isParent),e=e.tail),t===null?(0, ya.throwNullException)("nearestContainer"):t.ContentAtPath(e)}else {let t=this.rootContentContainer;return t===null?(0, ya.throwNullException)("contentContainer"):t.ContentAtPath(e)}}ConvertPathToRelative(e){let t=this.path,r=Math.min(e.length,t.length),i=-1;for(let u=0;u<r;++u){let l=t.GetComponent(u),c=e.GetComponent(u);if(l.Equals(c))i=u;else break}if(i==-1)return e;let a=t.componentCount-1-i,s=[];for(let u=0;u<a;++u)s.push(Pr.Path.Component.ToParent());for(let u=i+1;u<e.componentCount;++u)s.push(e.GetComponent(u));return new Pr.Path(s,true)}CompactPathString(e){let t=null,r=null;return e.isRelative?(r=e.componentsString,t=this.path.PathByAppendingPath(e).componentsString):(r=this.ConvertPathToRelative(e).componentsString,t=e.componentsString),r.length<t.length?r:t}get rootContentContainer(){let e=this;for(;e.parent;)e=e.parent;return (0, Or.asOrNull)(e,Vi.Container)}Copy(){throw Error("Not Implemented: Doesn't support copying")}SetChild(e,t,r){e[t]&&(e[t]=null),e[t]=r,e[t]&&(e[t].parent=this);}Equals(e){return e===this}};va.InkObject=gh;});var Mn=E(Ca=>{Object.defineProperty(Ca,"__esModule",{value:true});Ca.StringBuilder=void 0;var yh=class{constructor(e){e=typeof e<"u"?e.toString():"",this.string=e;}get Length(){return this.string.length}Append(e){e!==null&&(this.string+=e);}AppendLine(e){typeof e<"u"&&this.Append(e),this.string+=`
9
+ `;}AppendFormat(e,...t){this.string+=e.replace(/{(\d+)}/g,(r,i)=>typeof t[i]<"u"?t[i]:r);}toString(){return this.string}Clear(){this.string="";}};Ca.StringBuilder=yh;});var st=E(xr=>{Object.defineProperty(xr,"__esModule",{value:true});xr.InkList=xr.InkListItem=void 0;var Rt=$e(),tP=Mn(),it=class n{constructor(){if(this.originName=null,this.itemName=null,typeof arguments[1]<"u"){let e=arguments[0],t=arguments[1];this.originName=e,this.itemName=t;}else if(arguments[0]){let t=arguments[0].toString().split(".");this.originName=t[0],this.itemName=t[1];}}static get Null(){return new n(null,null)}get isNull(){return this.originName==null&&this.itemName==null}get fullName(){return (this.originName!==null?this.originName:"?")+"."+this.itemName}toString(){return this.fullName}Equals(e){if(e instanceof n){let t=e;return t.itemName==this.itemName&&t.originName==this.originName}return false}copy(){return new n(this.originName,this.itemName)}serialized(){return JSON.stringify({originName:this.originName,itemName:this.itemName})}static fromSerializedKey(e){let t=JSON.parse(e);if(!n.isLikeInkListItem(t))return n.Null;let r=t;return new n(r.originName,r.itemName)}static isLikeInkListItem(e){return !(typeof e!="object"||!e.hasOwnProperty("originName")||!e.hasOwnProperty("itemName")||typeof e.originName!="string"&&typeof e.originName!==null||typeof e.itemName!="string"&&typeof e.itemName!==null)}};xr.InkListItem=it;var vh=class n extends Map{constructor(){if(super(arguments[0]instanceof n?arguments[0]:[]),this.origins=null,this._originNames=[],arguments[0]instanceof n){let e=arguments[0],t=e.originNames;t!==null&&(this._originNames=t.slice()),e.origins!==null&&(this.origins=e.origins.slice());}else if(typeof arguments[0]=="string"){let e=arguments[0],t=arguments[1];if(this.SetInitialOriginName(e),t.listDefinitions===null)return (0, Rt.throwNullException)("originStory.listDefinitions");let r=t.listDefinitions.TryListGetDefinition(e,null);if(r.exists){if(r.result===null)return (0, Rt.throwNullException)("def.result");this.origins=[r.result];}else throw new Error("InkList origin could not be found in story when constructing new list: "+e)}else if(typeof arguments[0]=="object"&&arguments[0].hasOwnProperty("Key")&&arguments[0].hasOwnProperty("Value")){let e=arguments[0];this.Add(e.Key,e.Value);}}static FromString(e,t){var r;if(e==null||e=="")return new n;let i=(r=t.listDefinitions)===null||r===void 0?void 0:r.FindSingleItemListWithName(e);if(i)return i.value===null?(0, Rt.throwNullException)("listValue.value"):new n(i.value);throw new Error("Could not find the InkListItem from the string '"+e+"' to create an InkList because it doesn't exist in the original list definition in ink.")}AddItem(e,t=null){if(e instanceof it){let r=e;if(r.originName==null){this.AddItem(r.itemName);return}if(this.origins===null)return (0, Rt.throwNullException)("this.origins");for(let i of this.origins)if(i.name==r.originName){let a=i.TryGetValueForItem(r,0);if(a.exists){this.Add(r,a.result);return}else throw new Error("Could not add the item "+r+" to this list because it doesn't exist in the original list definition in ink.")}throw new Error("Failed to add item to list because the item was from a new list definition that wasn't previously known to this list. Only items from previously known lists can be used, so that the int value can be found.")}else if(e!==null){let r=e,i=null;if(this.origins===null)return (0, Rt.throwNullException)("this.origins");for(let a of this.origins){if(r===null)return (0, Rt.throwNullException)("itemName");if(a.ContainsItemWithName(r)){if(i!=null)throw new Error("Could not add the item "+r+" to this list because it could come from either "+a.name+" or "+i.name);i=a;}}if(i==null){if(t==null)throw new Error("Could not add the item "+r+" to this list because it isn't known to any list definitions previously associated with this list.");{let a=n.FromString(r,t).orderedItems[0];this.Add(a.Key,a.Value);}}else {let a=new it(i.name,r),s=i.ValueForItem(a);this.Add(a,s);}}}ContainsItemNamed(e){for(let[t]of this)if(it.fromSerializedKey(t).itemName==e)return true;return false}ContainsKey(e){return this.has(e.serialized())}Add(e,t){let r=e.serialized();if(this.has(r))throw new Error(`The Map already contains an entry for ${e}`);this.set(r,t);}Remove(e){return this.delete(e.serialized())}get Count(){return this.size}get originOfMaxItem(){if(this.origins==null)return null;let e=this.maxItem.Key.originName,t=null;return this.origins.every(r=>r.name==e?(t=r,false):true),t}get originNames(){if(this.Count>0){this._originNames==null&&this.Count>0?this._originNames=[]:(this._originNames||(this._originNames=[]),this._originNames.length=0);for(let[e]of this){let t=it.fromSerializedKey(e);if(t.originName===null)return (0, Rt.throwNullException)("item.originName");this._originNames.push(t.originName);}}return this._originNames}SetInitialOriginName(e){this._originNames=[e];}SetInitialOriginNames(e){e==null?this._originNames=null:this._originNames=e.slice();}get maxItem(){let e={Key:it.Null,Value:0};for(let[t,r]of this){let i=it.fromSerializedKey(t);(e.Key.isNull||r>e.Value)&&(e={Key:i,Value:r});}return e}get minItem(){let e={Key:it.Null,Value:0};for(let[t,r]of this){let i=it.fromSerializedKey(t);(e.Key.isNull||r<e.Value)&&(e={Key:i,Value:r});}return e}get inverse(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=it.fromSerializedKey(r);this.ContainsKey(a)||e.Add(a,i);}return e}get all(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=it.fromSerializedKey(r);e.set(a.serialized(),i);}return e}Union(e){let t=new n(this);for(let[r,i]of e)t.set(r,i);return t}Intersect(e){let t=new n;for(let[r,i]of this)e.has(r)&&t.set(r,i);return t}HasIntersection(e){for(let[t]of this)if(e.has(t))return true;return false}Without(e){let t=new n(this);for(let[r]of e)t.delete(r);return t}Contains(e){if(typeof e=="string")return this.ContainsItemNamed(e);let t=e;if(t.size==0||this.size==0)return false;for(let[r]of t)if(!this.has(r))return false;return true}GreaterThan(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>e.maxItem.Value}GreaterThanOrEquals(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>=e.minItem.Value&&this.maxItem.Value>=e.maxItem.Value}LessThan(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<e.minItem.Value}LessThanOrEquals(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<=e.maxItem.Value&&this.minItem.Value<=e.minItem.Value}MaxAsList(){return this.Count>0?new n(this.maxItem):new n}MinAsList(){return this.Count>0?new n(this.minItem):new n}ListWithSubRange(e,t){if(this.Count==0)return new n;let r=this.orderedItems,i=0,a=Number.MAX_SAFE_INTEGER;Number.isInteger(e)?i=e:e instanceof n&&e.Count>0&&(i=e.minItem.Value),Number.isInteger(t)?a=t:t instanceof n&&t.Count>0&&(a=t.maxItem.Value);let s=new n;s.SetInitialOriginNames(this.originNames);for(let o of r)o.Value>=i&&o.Value<=a&&s.Add(o.Key,o.Value);return s}Equals(e){if(!(e instanceof n)||e.Count!=this.Count)return false;for(let[t]of this)if(!e.has(t))return false;return true}get orderedItems(){let e=new Array;for(let[t,r]of this){let i=it.fromSerializedKey(t);e.push({Key:i,Value:r});}return e.sort((t,r)=>t.Key.originName===null?(0, Rt.throwNullException)("x.Key.originName"):r.Key.originName===null?(0, Rt.throwNullException)("y.Key.originName"):t.Value==r.Value?t.Key.originName.localeCompare(r.Key.originName):t.Value<r.Value?-1:t.Value>r.Value?1:0),e}get singleItem(){for(let e of this.orderedItems)return e.Key;return null}toString(){let e=this.orderedItems,t=new tP.StringBuilder;for(let r=0;r<e.length;r++){r>0&&t.Append(", ");let i=e[r].Key;if(i.itemName===null)return (0, Rt.throwNullException)("item.itemName");t.Append(i.itemName);}return t.toString()}valueOf(){return NaN}};xr.InkList=vh;});var Ri=E(ba=>{Object.defineProperty(ba,"__esModule",{value:true});ba.StoryException=void 0;var Ch=class extends Error{constructor(e){super(e),this.useEndLineNumber=false,this.message=e,this.name="StoryException";}};ba.StoryException=Ch;});var Tr=E(gn=>{Object.defineProperty(gn,"__esModule",{value:true});gn.tryParseFloat=gn.tryParseInt=gn.tryGetValueFromMap=void 0;function nP(n,e,t){if(n===null)return {result:t,exists:false};let r=n.get(e);return typeof r>"u"?{result:t,exists:false}:{result:r,exists:true}}gn.tryGetValueFromMap=nP;function rP(n,e=0){let t=parseInt(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}gn.tryParseInt=rP;function iP(n,e=0){let t=parseFloat(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}gn.tryParseFloat=iP;});var ve=E(Ce=>{Object.defineProperty(Ce,"__esModule",{value:true});Ce.ValueType=Ce.ListValue=Ce.VariablePointerValue=Ce.DivertTargetValue=Ce.StringValue=Ce.FloatValue=Ce.IntValue=Ce.BoolValue=Ce.Value=Ce.AbstractValue=void 0;var ky=rt(),Vy=nt(),Gn=st(),sP=Ri(),$i=ae(),Ry=Tr(),gt=$e(),_a=class n extends ky.InkObject{static Create(e,t){if(t){if(t===ge.Int&&Number.isInteger(Number(e)))return new jt(Number(e));if(t===ge.Float&&!isNaN(e))return new Lt(Number(e))}if(typeof e=="boolean")return new Nr(!!e);if(typeof e=="string")return new Qt(String(e));if(Number.isInteger(Number(e)))return new jt(Number(e));if(isNaN(e)){if(e instanceof Vy.Path)return new Sa((0, $i.asOrThrows)(e,Vy.Path));if(e instanceof Gn.InkList)return new Ea((0, $i.asOrThrows)(e,Gn.InkList))}else return new Lt(Number(e));return null}Copy(){return (0, $i.asOrThrows)(n.Create(this.valueObject),ky.InkObject)}BadCastException(e){return new sP.StoryException("Can't cast "+this.valueObject+" from "+this.valueType+" to "+e)}};Ce.AbstractValue=_a;var $t=class extends _a{constructor(e){super(),this.value=e;}get valueObject(){return this.value}toString(){return this.value===null?(0, gt.throwNullException)("Value.value"):this.value.toString()}};Ce.Value=$t;var Nr=class extends $t{constructor(e){super(e||false);}get isTruthy(){return !!this.value}get valueType(){return ge.Bool}Cast(e){if(this.value===null)return (0, gt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ge.Int)return new jt(this.value?1:0);if(e==ge.Float)return new Lt(this.value?1:0);if(e==ge.String)return new Qt(this.value?"true":"false");throw this.BadCastException(e)}toString(){return this.value?"true":"false"}};Ce.BoolValue=Nr;var jt=class extends $t{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ge.Int}Cast(e){if(this.value===null)return (0, gt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ge.Bool)return new Nr(this.value!==0);if(e==ge.Float)return new Lt(this.value);if(e==ge.String)return new Qt(""+this.value);throw this.BadCastException(e)}};Ce.IntValue=jt;var Lt=class extends $t{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ge.Float}Cast(e){if(this.value===null)return (0, gt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ge.Bool)return new Nr(this.value!==0);if(e==ge.Int)return new jt(this.value);if(e==ge.String)return new Qt(""+this.value);throw this.BadCastException(e)}};Ce.FloatValue=Lt;var Qt=class extends $t{constructor(e){if(super(e||""),this._isNewline=this.value==`
10
+ `,this._isInlineWhitespace=true,this.value===null)return (0, gt.throwNullException)("Value.value");this.value.length>0&&this.value.split("").every(t=>t!=" "&&t!=" "?(this._isInlineWhitespace=false,false):true);}get valueType(){return ge.String}get isTruthy(){return this.value===null?(0, gt.throwNullException)("Value.value"):this.value.length>0}get isNewline(){return this._isNewline}get isInlineWhitespace(){return this._isInlineWhitespace}get isNonWhitespace(){return !this.isNewline&&!this.isInlineWhitespace}Cast(e){if(e==this.valueType)return this;if(e==ge.Int){let t=(0, Ry.tryParseInt)(this.value);if(t.exists)return new jt(t.result);throw this.BadCastException(e)}if(e==ge.Float){let t=(0, Ry.tryParseFloat)(this.value);if(t.exists)return new Lt(t.result);throw this.BadCastException(e)}throw this.BadCastException(e)}};Ce.StringValue=Qt;var Sa=class extends $t{constructor(e=null){super(e);}get valueType(){return ge.DivertTarget}get targetPath(){return this.value===null?(0, gt.throwNullException)("Value.value"):this.value}set targetPath(e){this.value=e;}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a divert target")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "DivertTargetValue("+this.targetPath+")"}};Ce.DivertTargetValue=Sa;var bh=class n extends $t{constructor(e,t=-1){super(e),this._contextIndex=t;}get contextIndex(){return this._contextIndex}set contextIndex(e){this._contextIndex=e;}get variableName(){return this.value===null?(0, gt.throwNullException)("Value.value"):this.value}set variableName(e){this.value=e;}get valueType(){return ge.VariablePointer}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a variable pointer")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "VariablePointerValue("+this.variableName+")"}Copy(){return new n(this.variableName,this.contextIndex)}};Ce.VariablePointerValue=bh;var Ea=class n extends $t{get isTruthy(){return this.value===null?(0, gt.throwNullException)("this.value"):this.value.Count>0}get valueType(){return ge.List}Cast(e){if(this.value===null)return (0, gt.throwNullException)("Value.value");if(e==ge.Int){let t=this.value.maxItem;return t.Key.isNull?new jt(0):new jt(t.Value)}else if(e==ge.Float){let t=this.value.maxItem;return t.Key.isNull?new Lt(0):new Lt(t.Value)}else if(e==ge.String){let t=this.value.maxItem;return t.Key.isNull?new Qt(""):new Qt(t.Key.toString())}if(e==this.valueType)return this;throw this.BadCastException(e)}constructor(e,t){super(null),!e&&!t?this.value=new Gn.InkList:e instanceof Gn.InkList?this.value=new Gn.InkList(e):e instanceof Gn.InkListItem&&typeof t=="number"&&(this.value=new Gn.InkList({Key:e,Value:t}));}static RetainListOriginsForAssignment(e,t){let r=(0, $i.asOrNull)(e,n),i=(0, $i.asOrNull)(t,n);if(i&&i.value===null)return (0, gt.throwNullException)("newList.value");if(r&&r.value===null)return (0, gt.throwNullException)("oldList.value");r&&i&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}};Ce.ListValue=Ea;var ge;(function(n){n[n.Bool=-1]="Bool",n[n.Int=0]="Int",n[n.Float=1]="Float",n[n.List=2]="List",n[n.String=3]="String",n[n.DivertTarget=4]="DivertTarget",n[n.VariablePointer=5]="VariablePointer";})(ge||(Ce.ValueType=ge={}));});var $y=E(wa=>{Object.defineProperty(wa,"__esModule",{value:true});wa.SearchResult=void 0;var aP=Ee(),_h=class n{constructor(){this.obj=null,this.approximate=false;}get correctObj(){return this.approximate?null:this.obj}get container(){return this.obj instanceof aP.Container?this.obj:null}copy(){let e=new n;return e.obj=this.obj,e.approximate=this.approximate,e}};wa.SearchResult=_h;});var Ee=E(Li=>{Object.defineProperty(Li,"__esModule",{value:true});Li.Container=void 0;var oP=ve(),jy=$e(),uP=Mn(),Fr=rt(),lP=$y(),Ly=nt(),qy=ki(),cP=Tr(),yn=ae(),ji=class n extends Fr.InkObject{constructor(){super(...arguments),this.name=null,this._content=[],this.namedContent=new Map,this.visitsShouldBeCounted=false,this.turnIndexShouldBeCounted=false,this.countingAtStartOnly=false,this._pathToFirstLeafContent=null;}get hasValidName(){return this.name!=null&&this.name.length>0}get content(){return this._content}set content(e){this.AddContent(e);}get namedOnlyContent(){let e=new Map;for(let[t,r]of this.namedContent){let i=(0, yn.asOrThrows)(r,Fr.InkObject);e.set(t,i);}for(let t of this.content){let r=(0, yn.asINamedContentOrNull)(t);r!=null&&r.hasValidName&&e.delete(r.name);}return e.size==0&&(e=null),e}set namedOnlyContent(e){let t=this.namedOnlyContent;if(t!=null)for(let[r]of t)this.namedContent.delete(r);if(e!=null)for(let[,r]of e){let i=(0, yn.asINamedContentOrNull)(r);i!=null&&this.AddToNamedContentOnly(i);}}get countFlags(){let e=0;return this.visitsShouldBeCounted&&(e|=n.CountFlags.Visits),this.turnIndexShouldBeCounted&&(e|=n.CountFlags.Turns),this.countingAtStartOnly&&(e|=n.CountFlags.CountStartOnly),e==n.CountFlags.CountStartOnly&&(e=0),e}set countFlags(e){let t=e;(t&n.CountFlags.Visits)>0&&(this.visitsShouldBeCounted=true),(t&n.CountFlags.Turns)>0&&(this.turnIndexShouldBeCounted=true),(t&n.CountFlags.CountStartOnly)>0&&(this.countingAtStartOnly=true);}get pathToFirstLeafContent(){return this._pathToFirstLeafContent==null&&(this._pathToFirstLeafContent=this.path.PathByAppendingPath(this.internalPathToFirstLeafContent)),this._pathToFirstLeafContent}get internalPathToFirstLeafContent(){let e=[],t=this;for(;t instanceof n;)t.content.length>0&&(e.push(new Ly.Path.Component(0)),t=t.content[0]);return new Ly.Path(e)}AddContent(e){if(e instanceof Array){let t=e;for(let r of t)this.AddContent(r);}else {let t=e;if(this._content.push(t),t.parent)throw new Error("content is already in "+t.parent);t.parent=this,this.TryAddNamedContent(t);}}TryAddNamedContent(e){let t=(0, yn.asINamedContentOrNull)(e);t!=null&&t.hasValidName&&this.AddToNamedContentOnly(t);}AddToNamedContentOnly(e){qy.Debug.AssertType(e,Fr.InkObject,"Can only add Runtime.Objects to a Runtime.Container");let t=(0, yn.asOrThrows)(e,Fr.InkObject);if(t.parent=this,e.name===null)return (0, jy.throwNullException)("namedContentObj.name");this.namedContent.set(e.name,e);}ContentAtPath(e,t=0,r=-1){r==-1&&(r=e.length);let i=new lP.SearchResult;i.approximate=false;let a=this,s=this;for(let o=t;o<r;++o){let u=e.GetComponent(o);if(a==null){i.approximate=true;break}let l=a.ContentWithPathComponent(u);if(l==null){i.approximate=true;break}let c=(0, yn.asOrNull)(l,n);if(o<r-1&&c==null){i.approximate=true;break}s=l,a=c;}return i.obj=s,i}InsertContent(e,t){if(this.content.splice(t,0,e),e.parent)throw new Error("content is already in "+e.parent);e.parent=this,this.TryAddNamedContent(e);}AddContentsOfContainer(e){this.content.push(...e.content);for(let t of e.content)t.parent=this,this.TryAddNamedContent(t);}ContentWithPathComponent(e){if(e.isIndex)return e.index>=0&&e.index<this.content.length?this.content[e.index]:null;if(e.isParent)return this.parent;{if(e.name===null)return (0, jy.throwNullException)("component.name");let t=(0, cP.tryGetValueFromMap)(this.namedContent,e.name,null);return t.exists?(0, yn.asOrThrows)(t.result,Fr.InkObject):null}}BuildStringOfHierarchy(){let e;if(arguments.length==0)return e=new uP.StringBuilder,this.BuildStringOfHierarchy(e,0,null),e.toString();e=arguments[0];let t=arguments[1],r=arguments[2];function i(){for(let o=0;o<4*t;++o)e.Append(" ");}i(),e.Append("["),this.hasValidName&&e.AppendFormat(" ({0})",this.name),this==r&&e.Append(" <---"),e.AppendLine(),t++;for(let s=0;s<this.content.length;++s){let o=this.content[s];o instanceof n?o.BuildStringOfHierarchy(e,t,r):(i(),o instanceof oP.StringValue?(e.Append('"'),e.Append(o.toString().replace(`
11
+ `,"\\n")),e.Append('"')):e.Append(o.toString())),s!=this.content.length-1&&e.Append(","),!(o instanceof n)&&o==r&&e.Append(" <---"),e.AppendLine();}let a=new Map;for(let[s,o]of this.namedContent)this.content.indexOf((0, yn.asOrThrows)(o,Fr.InkObject))>=0||a.set(s,o);if(a.size>0){i(),e.AppendLine("-- named: --");for(let[,s]of a)qy.Debug.AssertType(s,n,"Can only print out named Containers"),s.BuildStringOfHierarchy(e,t,r),e.AppendLine();}t--,i(),e.Append("]");}};Li.Container=ji;(function(n){(function(t){t[t.Start=0]="Start",t[t.Visits=1]="Visits",t[t.Turns=2]="Turns",t[t.CountStartOnly=4]="CountStartOnly";})(n.CountFlags||(n.CountFlags={}));})(ji||(Li.Container=ji={}));});var je=E(Bi=>{Object.defineProperty(Bi,"__esModule",{value:true});Bi.ControlCommand=void 0;var hP=rt(),qi=class n extends hP.InkObject{get commandType(){return this._commandType}constructor(e=n.CommandType.NotSet){super(),this._commandType=e;}Copy(){return new n(this.commandType)}static EvalStart(){return new n(n.CommandType.EvalStart)}static EvalOutput(){return new n(n.CommandType.EvalOutput)}static EvalEnd(){return new n(n.CommandType.EvalEnd)}static Duplicate(){return new n(n.CommandType.Duplicate)}static PopEvaluatedValue(){return new n(n.CommandType.PopEvaluatedValue)}static PopFunction(){return new n(n.CommandType.PopFunction)}static PopTunnel(){return new n(n.CommandType.PopTunnel)}static BeginString(){return new n(n.CommandType.BeginString)}static EndString(){return new n(n.CommandType.EndString)}static NoOp(){return new n(n.CommandType.NoOp)}static ChoiceCount(){return new n(n.CommandType.ChoiceCount)}static Turns(){return new n(n.CommandType.Turns)}static TurnsSince(){return new n(n.CommandType.TurnsSince)}static ReadCount(){return new n(n.CommandType.ReadCount)}static Random(){return new n(n.CommandType.Random)}static SeedRandom(){return new n(n.CommandType.SeedRandom)}static VisitIndex(){return new n(n.CommandType.VisitIndex)}static SequenceShuffleIndex(){return new n(n.CommandType.SequenceShuffleIndex)}static StartThread(){return new n(n.CommandType.StartThread)}static Done(){return new n(n.CommandType.Done)}static End(){return new n(n.CommandType.End)}static ListFromInt(){return new n(n.CommandType.ListFromInt)}static ListRange(){return new n(n.CommandType.ListRange)}static ListRandom(){return new n(n.CommandType.ListRandom)}static BeginTag(){return new n(n.CommandType.BeginTag)}static EndTag(){return new n(n.CommandType.EndTag)}toString(){return "ControlCommand "+this.commandType.toString()}};Bi.ControlCommand=qi;(function(n){(function(t){t[t.NotSet=-1]="NotSet",t[t.EvalStart=0]="EvalStart",t[t.EvalOutput=1]="EvalOutput",t[t.EvalEnd=2]="EvalEnd",t[t.Duplicate=3]="Duplicate",t[t.PopEvaluatedValue=4]="PopEvaluatedValue",t[t.PopFunction=5]="PopFunction",t[t.PopTunnel=6]="PopTunnel",t[t.BeginString=7]="BeginString",t[t.EndString=8]="EndString",t[t.NoOp=9]="NoOp",t[t.ChoiceCount=10]="ChoiceCount",t[t.Turns=11]="Turns",t[t.TurnsSince=12]="TurnsSince",t[t.ReadCount=13]="ReadCount",t[t.Random=14]="Random",t[t.SeedRandom=15]="SeedRandom",t[t.VisitIndex=16]="VisitIndex",t[t.SequenceShuffleIndex=17]="SequenceShuffleIndex",t[t.StartThread=18]="StartThread",t[t.Done=19]="Done",t[t.End=20]="End",t[t.ListFromInt=21]="ListFromInt",t[t.ListRange=22]="ListRange",t[t.ListRandom=23]="ListRandom",t[t.BeginTag=24]="BeginTag",t[t.EndTag=25]="EndTag",t[t.TOTAL_VALUES=26]="TOTAL_VALUES";})(n.CommandType||(n.CommandType={}));})(qi||(Bi.ControlCommand=qi={}));});var yt=E(Da=>{Object.defineProperty(Da,"__esModule",{value:true});Da.Expression=void 0;var By=Ee(),Sh=je(),dP=ye(),Eh=class extends dP.ParsedObject{constructor(){super(...arguments),this._prototypeRuntimeConstantExpression=null,this.outputWhenComplete=false,this.GenerateRuntimeObject=()=>{let e=new By.Container;return e.AddContent(Sh.ControlCommand.EvalStart()),this.GenerateIntoContainer(e),this.outputWhenComplete&&e.AddContent(Sh.ControlCommand.EvalOutput()),e.AddContent(Sh.ControlCommand.EvalEnd()),e},this.GenerateConstantIntoContainer=e=>{this._prototypeRuntimeConstantExpression===null&&(this._prototypeRuntimeConstantExpression=new By.Container,this.GenerateIntoContainer(this._prototypeRuntimeConstantExpression));for(let t of this._prototypeRuntimeConstantExpression.content){let r=t.Copy();r&&e.AddContent(r);}},this.toString=()=>"No string value in JavaScript.";}get typeName(){return "Expression"}Equals(e){return false}};Da.Expression=Eh;});var zn=E(Aa=>{Object.defineProperty(Aa,"__esModule",{value:true});Aa.Void=void 0;var fP=rt(),wh=class extends fP.InkObject{toString(){return "Void"}};Aa.Void=wh;});var qt=E(Oa=>{Object.defineProperty(Oa,"__esModule",{value:true});Oa.NativeFunctionCall=void 0;var I=ve(),Wi=Ri(),pP=zn(),Pa=st(),mP=rt(),vt=ae(),at=$e(),H=class n extends mP.InkObject{static CallWithName(e){return new n(e)}static CallExistsWithName(e){return this.GenerateNativeFunctionsIfNecessary(),this._nativeFunctions.get(e)}get name(){return this._name===null?(0, at.throwNullException)("NativeFunctionCall._name"):this._name}set name(e){this._name=e,this._isPrototype||(n._nativeFunctions===null?(0, at.throwNullException)("NativeFunctionCall._nativeFunctions"):this._prototype=n._nativeFunctions.get(this._name)||null);}get numberOfParameters(){return this._prototype?this._prototype.numberOfParameters:this._numberOfParameters}set numberOfParameters(e){this._numberOfParameters=e;}Call(e){if(this._prototype)return this._prototype.Call(e);if(this.numberOfParameters!=e.length)throw new Error("Unexpected number of parameters");let t=false;for(let a of e){if(a instanceof pP.Void)throw new Wi.StoryException("Attempting to perform "+this.name+' on a void value. Did you forget to "return" a value from a function you called here?');a instanceof I.ListValue&&(t=true);}if(e.length==2&&t)return this.CallBinaryListOperation(e);let r=this.CoerceValuesToSingleType(e),i=r[0].valueType;return i==I.ValueType.Int?this.CallType(r):i==I.ValueType.Float?this.CallType(r):i==I.ValueType.String?this.CallType(r):i==I.ValueType.DivertTarget?this.CallType(r):i==I.ValueType.List?this.CallType(r):null}CallType(e){let t=(0, vt.asOrThrows)(e[0],I.Value),r=t.valueType,i=t,a=e.length;if(a==2||a==1){if(this._operationFuncs===null)return (0, at.throwNullException)("NativeFunctionCall._operationFuncs");let s=this._operationFuncs.get(r);if(!s){let o=I.ValueType[r];throw new Wi.StoryException("Cannot perform operation "+this.name+" on "+o)}if(a==2){let u=(0, vt.asOrThrows)(e[1],I.Value),l=s;if(i.value===null||u.value===null)return (0, at.throwNullException)("NativeFunctionCall.Call BinaryOp values");let c=l(i.value,u.value);return I.Value.Create(c)}else {let o=s;if(i.value===null)return (0, at.throwNullException)("NativeFunctionCall.Call UnaryOp value");let u=o(i.value);return this.name===n.Int?I.Value.Create(u,I.ValueType.Int):this.name===n.Float?I.Value.Create(u,I.ValueType.Float):I.Value.Create(u,t.valueType)}}else throw new Error("Unexpected number of parameters to NativeFunctionCall: "+e.length)}CallBinaryListOperation(e){if((this.name=="+"||this.name=="-")&&e[0]instanceof I.ListValue&&e[1]instanceof I.IntValue)return this.CallListIncrementOperation(e);let t=(0, vt.asOrThrows)(e[0],I.Value),r=(0, vt.asOrThrows)(e[1],I.Value);if((this.name=="&&"||this.name=="||")&&(t.valueType!=I.ValueType.List||r.valueType!=I.ValueType.List)){if(this._operationFuncs===null)return (0, at.throwNullException)("NativeFunctionCall._operationFuncs");let i=this._operationFuncs.get(I.ValueType.Int);if(i===null)return (0, at.throwNullException)("NativeFunctionCall.CallBinaryListOperation op");let a=(0, vt.asBooleanOrThrows)(i(t.isTruthy?1:0,r.isTruthy?1:0));return new I.BoolValue(a)}if(t.valueType==I.ValueType.List&&r.valueType==I.ValueType.List)return this.CallType([t,r]);throw new Wi.StoryException("Can not call use "+this.name+" operation on "+I.ValueType[t.valueType]+" and "+I.ValueType[r.valueType])}CallListIncrementOperation(e){let t=(0, vt.asOrThrows)(e[0],I.ListValue),r=(0, vt.asOrThrows)(e[1],I.IntValue),i=new Pa.InkList;if(t.value===null)return (0, at.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value");for(let[a,s]of t.value){let o=Pa.InkListItem.fromSerializedKey(a);if(this._operationFuncs===null)return (0, at.throwNullException)("NativeFunctionCall._operationFuncs");let u=this._operationFuncs.get(I.ValueType.Int);if(r.value===null)return (0, at.throwNullException)("NativeFunctionCall.CallListIncrementOperation intVal.value");let l=u(s,r.value),c=null;if(t.value.origins===null)return (0, at.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value.origins");for(let h of t.value.origins)if(h.name==o.originName){c=h;break}if(c!=null){let h=c.TryGetItemWithValue(l,Pa.InkListItem.Null);h.exists&&i.Add(h.result,l);}}return new I.ListValue(i)}CoerceValuesToSingleType(e){let t=I.ValueType.Int,r=null;for(let a of e){let s=(0, vt.asOrThrows)(a,I.Value);s.valueType>t&&(t=s.valueType),s.valueType==I.ValueType.List&&(r=(0, vt.asOrNull)(s,I.ListValue));}let i=[];if(I.ValueType[t]==I.ValueType[I.ValueType.List])for(let a of e){let s=(0, vt.asOrThrows)(a,I.Value);if(s.valueType==I.ValueType.List)i.push(s);else if(s.valueType==I.ValueType.Int){let o=parseInt(s.valueObject);if(r=(0, vt.asOrThrows)(r,I.ListValue),r.value===null)return (0, at.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType specialCaseList.value");let u=r.value.originOfMaxItem;if(u===null)return (0, at.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType list");let l=u.TryGetItemWithValue(o,Pa.InkListItem.Null);if(l.exists){let c=new I.ListValue(l.result,o);i.push(c);}else throw new Wi.StoryException("Could not find List item with the value "+o+" in "+u.name)}else {let o=I.ValueType[s.valueType];throw new Wi.StoryException("Cannot mix Lists and "+o+" values in this operation")}}else for(let a of e){let o=(0, vt.asOrThrows)(a,I.Value).Cast(t);i.push(o);}return i}constructor(){if(super(),this._name=null,this._numberOfParameters=0,this._prototype=null,this._isPrototype=false,this._operationFuncs=null,arguments.length===0)n.GenerateNativeFunctionsIfNecessary();else if(arguments.length===1){let e=arguments[0];n.GenerateNativeFunctionsIfNecessary(),this.name=e;}else if(arguments.length===2){let e=arguments[0],t=arguments[1];this._isPrototype=true,this.name=e,this.numberOfParameters=t;}}static Identity(e){return e}static GenerateNativeFunctionsIfNecessary(){if(this._nativeFunctions==null){this._nativeFunctions=new Map,this.AddIntBinaryOp(this.Add,(r,i)=>r+i),this.AddIntBinaryOp(this.Subtract,(r,i)=>r-i),this.AddIntBinaryOp(this.Multiply,(r,i)=>r*i),this.AddIntBinaryOp(this.Divide,(r,i)=>Math.floor(r/i)),this.AddIntBinaryOp(this.Mod,(r,i)=>r%i),this.AddIntUnaryOp(this.Negate,r=>-r),this.AddIntBinaryOp(this.Equal,(r,i)=>r==i),this.AddIntBinaryOp(this.Greater,(r,i)=>r>i),this.AddIntBinaryOp(this.Less,(r,i)=>r<i),this.AddIntBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddIntBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddIntBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddIntUnaryOp(this.Not,r=>r==0),this.AddIntBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddIntBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddIntBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddIntBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddIntBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddIntUnaryOp(this.Floor,n.Identity),this.AddIntUnaryOp(this.Ceiling,n.Identity),this.AddIntUnaryOp(this.Int,n.Identity),this.AddIntUnaryOp(this.Float,r=>r),this.AddFloatBinaryOp(this.Add,(r,i)=>r+i),this.AddFloatBinaryOp(this.Subtract,(r,i)=>r-i),this.AddFloatBinaryOp(this.Multiply,(r,i)=>r*i),this.AddFloatBinaryOp(this.Divide,(r,i)=>r/i),this.AddFloatBinaryOp(this.Mod,(r,i)=>r%i),this.AddFloatUnaryOp(this.Negate,r=>-r),this.AddFloatBinaryOp(this.Equal,(r,i)=>r==i),this.AddFloatBinaryOp(this.Greater,(r,i)=>r>i),this.AddFloatBinaryOp(this.Less,(r,i)=>r<i),this.AddFloatBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddFloatBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddFloatBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddFloatUnaryOp(this.Not,r=>r==0),this.AddFloatBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddFloatBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddFloatBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddFloatBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddFloatBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddFloatUnaryOp(this.Floor,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Ceiling,r=>Math.ceil(r)),this.AddFloatUnaryOp(this.Int,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Float,n.Identity),this.AddStringBinaryOp(this.Add,(r,i)=>r+i),this.AddStringBinaryOp(this.Equal,(r,i)=>r===i),this.AddStringBinaryOp(this.NotEquals,(r,i)=>r!==i),this.AddStringBinaryOp(this.Has,(r,i)=>r.includes(i)),this.AddStringBinaryOp(this.Hasnt,(r,i)=>!r.includes(i)),this.AddListBinaryOp(this.Add,(r,i)=>r.Union(i)),this.AddListBinaryOp(this.Subtract,(r,i)=>r.Without(i)),this.AddListBinaryOp(this.Has,(r,i)=>r.Contains(i)),this.AddListBinaryOp(this.Hasnt,(r,i)=>!r.Contains(i)),this.AddListBinaryOp(this.Intersect,(r,i)=>r.Intersect(i)),this.AddListBinaryOp(this.Equal,(r,i)=>r.Equals(i)),this.AddListBinaryOp(this.Greater,(r,i)=>r.GreaterThan(i)),this.AddListBinaryOp(this.Less,(r,i)=>r.LessThan(i)),this.AddListBinaryOp(this.GreaterThanOrEquals,(r,i)=>r.GreaterThanOrEquals(i)),this.AddListBinaryOp(this.LessThanOrEquals,(r,i)=>r.LessThanOrEquals(i)),this.AddListBinaryOp(this.NotEquals,(r,i)=>!r.Equals(i)),this.AddListBinaryOp(this.And,(r,i)=>r.Count>0&&i.Count>0),this.AddListBinaryOp(this.Or,(r,i)=>r.Count>0||i.Count>0),this.AddListUnaryOp(this.Not,r=>r.Count==0?1:0),this.AddListUnaryOp(this.Invert,r=>r.inverse),this.AddListUnaryOp(this.All,r=>r.all),this.AddListUnaryOp(this.ListMin,r=>r.MinAsList()),this.AddListUnaryOp(this.ListMax,r=>r.MaxAsList()),this.AddListUnaryOp(this.Count,r=>r.Count),this.AddListUnaryOp(this.ValueOfList,r=>r.maxItem.Value);let e=(r,i)=>r.Equals(i),t=(r,i)=>!r.Equals(i);this.AddOpToNativeFunc(this.Equal,2,I.ValueType.DivertTarget,e),this.AddOpToNativeFunc(this.NotEquals,2,I.ValueType.DivertTarget,t);}}AddOpFuncForType(e,t){this._operationFuncs==null&&(this._operationFuncs=new Map),this._operationFuncs.set(e,t);}static AddOpToNativeFunc(e,t,r,i){if(this._nativeFunctions===null)return (0, at.throwNullException)("NativeFunctionCall._nativeFunctions");let a=this._nativeFunctions.get(e);a||(a=new n(e,t),this._nativeFunctions.set(e,a)),a.AddOpFuncForType(r,i);}static AddIntBinaryOp(e,t){this.AddOpToNativeFunc(e,2,I.ValueType.Int,t);}static AddIntUnaryOp(e,t){this.AddOpToNativeFunc(e,1,I.ValueType.Int,t);}static AddFloatBinaryOp(e,t){this.AddOpToNativeFunc(e,2,I.ValueType.Float,t);}static AddFloatUnaryOp(e,t){this.AddOpToNativeFunc(e,1,I.ValueType.Float,t);}static AddStringBinaryOp(e,t){this.AddOpToNativeFunc(e,2,I.ValueType.String,t);}static AddListBinaryOp(e,t){this.AddOpToNativeFunc(e,2,I.ValueType.List,t);}static AddListUnaryOp(e,t){this.AddOpToNativeFunc(e,1,I.ValueType.List,t);}toString(){return 'Native "'+this.name+'"'}};Oa.NativeFunctionCall=H;H.Add="+";H.Subtract="-";H.Divide="/";H.Multiply="*";H.Mod="%";H.Negate="_";H.Equal="==";H.Greater=">";H.Less="<";H.GreaterThanOrEquals=">=";H.LessThanOrEquals="<=";H.NotEquals="!=";H.Not="!";H.And="&&";H.Or="||";H.Min="MIN";H.Max="MAX";H.Pow="POW";H.Floor="FLOOR";H.Ceiling="CEILING";H.Int="INT";H.Float="FLOAT";H.Has="?";H.Hasnt="!?";H.Intersect="^";H.ListMin="LIST_MIN";H.ListMax="LIST_MAX";H.All="LIST_ALL";H.Count="LIST_COUNT";H.ValueOfList="LIST_VALUE";H.Invert="LIST_INVERT";H._nativeFunctions=null;});var Ta=E(xa=>{Object.defineProperty(xa,"__esModule",{value:true});xa.NumberExpression=void 0;var gP=yt(),Dh=ve(),yP=ae(),Ah=class n extends gP.Expression{constructor(e,t){if(super(),this.isInt=()=>this.subtype=="int",this.isFloat=()=>this.subtype=="float",this.isBool=()=>this.subtype=="bool",this.GenerateIntoContainer=r=>{this.isInt()?r.AddContent(new Dh.IntValue(this.value)):this.isFloat()?r.AddContent(new Dh.FloatValue(this.value)):this.isBool()&&r.AddContent(new Dh.BoolValue(this.value));},this.toString=()=>String(this.value),typeof e=="number"&&!Number.isNaN(e)||typeof e=="boolean")this.value=e,this.subtype=t;else throw new Error("Unexpected object type in NumberExpression.")}get typeName(){return "Number"}Equals(e){let t=(0, yP.asOrNull)(e,n);return t?t.subtype==this.subtype&&t.value==this.value:false}};xa.NumberExpression=Ah;});var Ph=E(Na=>{Object.defineProperty(Na,"__esModule",{value:true});Na.UnaryExpression=void 0;var vP=yt(),CP=qt(),Ir=Ta(),bP=ae(),Mi=class extends vP.Expression{get nativeNameForOp(){return this.op==="-"?"_":this.op==="not"?"!":this.op}constructor(e,t){super(),this.op=t,this.GenerateIntoContainer=r=>{this.innerExpression.GenerateIntoContainer(r),r.AddContent(CP.NativeFunctionCall.CallWithName(this.nativeNameForOp));},this.toString=()=>this.nativeNameForOp+this.innerExpression,this.innerExpression=this.AddContent(e);}get typeName(){return "UnaryExpression"}};Na.UnaryExpression=Mi;Mi.WithInner=(n,e)=>{let t=(0, bP.asOrNull)(n,Ir.NumberExpression);if(t){if(e==="-"){if(t.isInt())return new Ir.NumberExpression(-t.value,"int");if(t.isFloat())return new Ir.NumberExpression(-t.value,"float")}else if(e=="!"||e=="not"){if(t.isInt())return new Ir.NumberExpression(t.value==0,"bool");if(t.isFloat())return new Ir.NumberExpression(t.value==0,"bool");if(t.isBool())return new Ir.NumberExpression(!t.value,"bool")}throw new Error("Unexpected operation or number type")}return new Mi(n,e)};});var xh=E(Fa=>{Object.defineProperty(Fa,"__esModule",{value:true});Fa.BinaryExpression=void 0;var _P=yt(),SP=qt(),EP=Ph(),wP=ae(),Oh=class extends _P.Expression{constructor(e,t,r){super(),this.opName=r,this.GenerateIntoContainer=i=>{this.leftExpression.GenerateIntoContainer(i),this.rightExpression.GenerateIntoContainer(i),this.opName=this.NativeNameForOp(this.opName),i.AddContent(SP.NativeFunctionCall.CallWithName(this.opName));},this.NativeNameForOp=i=>i==="and"?"&&":i==="or"?"||":i==="mod"?"%":i==="has"?"?":i==="hasnt"?"!?":i,this.toString=()=>`(${this.leftExpression} ${this.opName} ${this.rightExpression})`,this.leftExpression=this.AddContent(e),this.rightExpression=this.AddContent(t),this.opName=r;}get typeName(){return "BinaryExpression"}ResolveReferences(e){if(super.ResolveReferences(e),this.NativeNameForOp(this.opName)==="?"){let t=(0, wP.asOrNull)(this.leftExpression,EP.UnaryExpression);t!==null&&(t.op==="not"||t.op==="!")&&this.Error(`Using 'not' or '!' here negates '${t.innerExpression}' rather than the result of the '?' or 'has' operator. You need to add parentheses around the (A ? B) expression.`);}}};Fa.BinaryExpression=Oh;});var zi=E(Ia=>{Object.defineProperty(Ia,"__esModule",{value:true});Ia.CharacterSet=void 0;var Gi=class{constructor(e){this.set=new Set,this.Add=t=>this.set.add(t),this.AddRange=(t,r)=>{for(let i=t.charCodeAt(0);i<=r.charCodeAt(0);++i)this.Add(String.fromCharCode(i));return this},this.AddCharacters=t=>{if(typeof t=="string"||Array.isArray(t))for(let r of t)this.Add(r);else for(let r of t.set)this.Add(r);return this},e&&this.AddCharacters(e);}};Ia.CharacterSet=Gi;Gi.FromRange=(n,e)=>new Gi().AddRange(n,e);});var My=E(ka=>{Object.defineProperty(ka,"__esModule",{value:true});ka.CharacterRange=void 0;var Wy=zi(),Ji=class{constructor(e,t,r=[]){if(this._start=e,this._end=t,this._correspondingCharSet=new Wy.CharacterSet,this._excludes=new Set,this.ToCharacterSet=()=>{if(this._correspondingCharSet.set.size===0)for(let i=this.start.charCodeAt(0),a;i<=this.end.charCodeAt(0);i+=1)a=String.fromCharCode(i),this._excludes.has(a)||this._correspondingCharSet.AddCharacters(a);return this._correspondingCharSet},r instanceof Wy.CharacterSet)this._excludes=r.set;else for(let i of r)this._excludes.add(i);}get start(){return this._start}get end(){return this._end}};ka.CharacterRange=Ji;Ji.Define=(n,e,t=[])=>new Ji(n,e,t);});var Ra=E(Va=>{Object.defineProperty(Va,"__esModule",{value:true});Va.ChoicePoint=void 0;var DP=rt(),AP=nt(),Th=$e(),Nh=class extends DP.InkObject{constructor(e=true){super(),this._pathOnChoice=null,this.hasCondition=false,this.hasStartContent=false,this.hasChoiceOnlyContent=false,this.isInvisibleDefault=false,this.onceOnly=true,this.onceOnly=e;}get pathOnChoice(){if(this._pathOnChoice!=null&&this._pathOnChoice.isRelative){let e=this.choiceTarget;e&&(this._pathOnChoice=e.path);}return this._pathOnChoice}set pathOnChoice(e){this._pathOnChoice=e;}get choiceTarget(){return this._pathOnChoice===null?(0, Th.throwNullException)("ChoicePoint._pathOnChoice"):this.ResolvePath(this._pathOnChoice).container}get pathStringOnChoice(){return this.pathOnChoice===null?(0, Th.throwNullException)("ChoicePoint.pathOnChoice"):this.CompactPathString(this.pathOnChoice)}set pathStringOnChoice(e){this.pathOnChoice=new AP.Path(e);}get flags(){let e=0;return this.hasCondition&&(e|=1),this.hasStartContent&&(e|=2),this.hasChoiceOnlyContent&&(e|=4),this.isInvisibleDefault&&(e|=8),this.onceOnly&&(e|=16),e}set flags(e){this.hasCondition=(e&1)>0,this.hasStartContent=(e&2)>0,this.hasChoiceOnlyContent=(e&4)>0,this.isInvisibleDefault=(e&8)>0,this.onceOnly=(e&16)>0;}toString(){if(this.pathOnChoice===null)return (0, Th.throwNullException)("ChoicePoint.pathOnChoice");let t=this.pathOnChoice.toString();return "Choice: -> "+t}};Va.ChoicePoint=Nh;});var Jn=E($a=>{Object.defineProperty($a,"__esModule",{value:true});$a.PushPopType=void 0;var Gy;(function(n){n[n.Tunnel=0]="Tunnel",n[n.Function=1]="Function",n[n.FunctionEvaluationFromGame=2]="FunctionEvaluationFromGame";})(Gy||($a.PushPopType=Gy={}));});var Hi=E(ja=>{Object.defineProperty(ja,"__esModule",{value:true});ja.Pointer=void 0;var PP=nt(),Fh=class n{constructor(){this.container=null,this.index=-1,arguments.length===2&&(this.container=arguments[0],this.index=arguments[1]);}Resolve(){return this.index<0?this.container:this.container==null?null:this.container.content.length==0?this.container:this.index>=this.container.content.length?null:this.container.content[this.index]}get isNull(){return this.container==null}get path(){return this.isNull?null:this.index>=0?this.container.path.PathByAppendingComponent(new PP.Path.Component(this.index)):this.container.path}toString(){return this.container?"Ink Pointer -> "+this.container.path.toString()+" -- index "+this.index:"Ink Pointer (null)"}copy(){return new n(this.container,this.index)}static StartOf(e){return new n(e,0)}static get Null(){return new n(null,-1)}};ja.Pointer=Fh;});var Bt=E(qa=>{Object.defineProperty(qa,"__esModule",{value:true});qa.Divert=void 0;var OP=nt(),xP=Jn(),TP=Mn(),NP=rt(),Ih=Hi(),zy=Ee(),La=$e(),kh=class n extends NP.InkObject{get targetPath(){if(this._targetPath!=null&&this._targetPath.isRelative){let e=this.targetPointer.Resolve();e&&(this._targetPath=e.path);}return this._targetPath}set targetPath(e){this._targetPath=e,this._targetPointer=Ih.Pointer.Null;}get targetPointer(){if(this._targetPointer.isNull){let e=this.ResolvePath(this._targetPath).obj;if(this._targetPath===null)return (0, La.throwNullException)("this._targetPath");if(this._targetPath.lastComponent===null)return (0, La.throwNullException)("this._targetPath.lastComponent");if(this._targetPath.lastComponent.isIndex){if(e===null)return (0, La.throwNullException)("targetObj");this._targetPointer.container=e.parent instanceof zy.Container?e.parent:null,this._targetPointer.index=this._targetPath.lastComponent.index;}else this._targetPointer=Ih.Pointer.StartOf(e instanceof zy.Container?e:null);}return this._targetPointer.copy()}get targetPathString(){return this.targetPath==null?null:this.CompactPathString(this.targetPath)}set targetPathString(e){e==null?this.targetPath=null:this.targetPath=new OP.Path(e);}get hasVariableTarget(){return this.variableDivertName!=null}constructor(e){super(),this._targetPath=null,this._targetPointer=Ih.Pointer.Null,this.variableDivertName=null,this.pushesToStack=false,this.stackPushType=0,this.isExternal=false,this.externalArgs=0,this.isConditional=false,this.pushesToStack=false,typeof e<"u"&&(this.pushesToStack=true,this.stackPushType=e);}Equals(e){let t=e;return t instanceof n&&this.hasVariableTarget==t.hasVariableTarget?this.hasVariableTarget?this.variableDivertName==t.variableDivertName:this.targetPath===null?(0, La.throwNullException)("this.targetPath"):this.targetPath.Equals(t.targetPath):false}toString(){if(this.hasVariableTarget)return "Divert(variable: "+this.variableDivertName+")";if(this.targetPath==null)return "Divert(null)";{let e=new TP.StringBuilder,t=this.targetPath.toString();return e.Append("Divert"),this.isConditional&&e.Append("?"),this.pushesToStack&&(this.stackPushType==xP.PushPopType.Function?e.Append(" function"):e.Append(" tunnel")),e.Append(" -> "),e.Append(this.targetPathString),e.Append(" ("),e.Append(t),e.Append(")"),e.toString()}}};qa.Divert=kh;});var en=E(Ba=>{Object.defineProperty(Ba,"__esModule",{value:true});Ba.SymbolType=void 0;var Jy;(function(n){n[n.Knot=0]="Knot",n[n.List=1]="List",n[n.ListItem=2]="ListItem",n[n.Var=3]="Var",n[n.SubFlowAndWeave=4]="SubFlowAndWeave",n[n.Arg=5]="Arg",n[n.Temp=6]="Temp";})(Jy||(Ba.SymbolType=Jy={}));});var vn=E(Wa=>{Object.defineProperty(Wa,"__esModule",{value:true});Wa.VariableAssignment=void 0;var FP=rt(),Vh=class extends FP.InkObject{constructor(e,t){super(),this.variableName=e||null,this.isNewDeclaration=!!t,this.isGlobal=false;}toString(){return "VarAssign to "+this.variableName}};Wa.VariableAssignment=Vh;});var kr=E(Ga=>{Object.defineProperty(Ga,"__esModule",{value:true});Ga.Choice=void 0;var IP=Ra(),Ma=Ee(),Cn=je(),Rh=Bt(),Hy=ve(),kP=ye(),VP=en(),Uy=vn(),$h=class extends kP.ParsedObject{get runtimeChoice(){if(!this._runtimeChoice)throw new Error;return this._runtimeChoice}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get condition(){return this._condition}set condition(e){this._condition=e,e&&this.AddContent(e);}get runtimeContainer(){return this._innerContentContainer}get innerContentContainer(){return this._innerContentContainer}get containerForCounting(){return this._innerContentContainer}get runtimePath(){if(!this.innerContentContainer||!this.innerContentContainer.path)throw new Error;return this.innerContentContainer.path}constructor(e,t,r){super(),this._condition=null,this._innerContentContainer=null,this._outerContainer=null,this._runtimeChoice=null,this._returnToR1=null,this._returnToR2=null,this._r1Label=null,this._r2Label=null,this._divertToStartContentOuter=null,this._divertToStartContentInner=null,this._startContentRuntimeContainer=null,this.isInvisibleDefault=false,this.hasWeaveStyleInlineBrackets=false,this.GenerateRuntimeObject=()=>{if(this._outerContainer=new Ma.Container,this._runtimeChoice=new IP.ChoicePoint(this.onceOnly),this._runtimeChoice.isInvisibleDefault=this.isInvisibleDefault,(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(Cn.ControlCommand.EvalStart()),this.startContent){this._returnToR1=new Hy.DivertTargetValue,this._outerContainer.AddContent(this._returnToR1);let i=new Uy.VariableAssignment("$r",true);this._outerContainer.AddContent(i),this._outerContainer.AddContent(Cn.ControlCommand.BeginString()),this._divertToStartContentOuter=new Rh.Divert,this._outerContainer.AddContent(this._divertToStartContentOuter),this._startContentRuntimeContainer=this.startContent.GenerateRuntimeObject(),this._startContentRuntimeContainer.name="s";let a=new Rh.Divert;a.variableDivertName="$r",this._startContentRuntimeContainer.AddContent(a),this._outerContainer.AddToNamedContentOnly(this._startContentRuntimeContainer),this._r1Label=new Ma.Container,this._r1Label.name="$r1",this._outerContainer.AddContent(this._r1Label),this._outerContainer.AddContent(Cn.ControlCommand.EndString()),this._runtimeChoice.hasStartContent=true;}if(this.choiceOnlyContent){this._outerContainer.AddContent(Cn.ControlCommand.BeginString());let i=this.choiceOnlyContent.GenerateRuntimeObject();this._outerContainer.AddContentsOfContainer(i),this._outerContainer.AddContent(Cn.ControlCommand.EndString()),this._runtimeChoice.hasChoiceOnlyContent=true;}if(this.condition&&(this.condition.GenerateIntoContainer(this._outerContainer),this._runtimeChoice.hasCondition=true),(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(Cn.ControlCommand.EvalEnd()),this._outerContainer.AddContent(this._runtimeChoice),this._innerContentContainer=new Ma.Container,this.startContent){this._returnToR2=new Hy.DivertTargetValue,this._innerContentContainer.AddContent(Cn.ControlCommand.EvalStart()),this._innerContentContainer.AddContent(this._returnToR2),this._innerContentContainer.AddContent(Cn.ControlCommand.EvalEnd());let i=new Uy.VariableAssignment("$r",true);this._innerContentContainer.AddContent(i),this._divertToStartContentInner=new Rh.Divert,this._innerContentContainer.AddContent(this._divertToStartContentInner),this._r2Label=new Ma.Container,this._r2Label.name="$r2",this._innerContentContainer.AddContent(this._r2Label);}if(this.innerContent){let i=this.innerContent.GenerateRuntimeObject();this._innerContentContainer.AddContentsOfContainer(i);}return this.story.countAllVisits&&(this._innerContentContainer.visitsShouldBeCounted=true),this._innerContentContainer.countingAtStartOnly=true,this._outerContainer},this.toString=()=>this.choiceOnlyContent!==null?`* ${this.startContent}[${this.choiceOnlyContent}]...`:`* ${this.startContent}...`,this.startContent=e,this.choiceOnlyContent=t,this.innerContent=r,this.indentationDepth=1,e&&this.AddContent(this.startContent),t&&this.AddContent(this.choiceOnlyContent),r&&this.AddContent(this.innerContent),this.onceOnly=true;}get typeName(){return "Choice"}ResolveReferences(e){var t;if(this._innerContentContainer&&(this.runtimeChoice.pathOnChoice=this._innerContentContainer.path,this.onceOnly&&(this._innerContentContainer.visitsShouldBeCounted=true)),this._returnToR1){if(!this._r1Label)throw new Error;this._returnToR1.targetPath=this._r1Label.path;}if(this._returnToR2){if(!this._r2Label)throw new Error;this._returnToR2.targetPath=this._r2Label.path;}if(this._divertToStartContentOuter){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentOuter.targetPath=this._startContentRuntimeContainer.path;}if(this._divertToStartContentInner){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentInner.targetPath=this._startContentRuntimeContainer.path;}super.ResolveReferences(e),this.identifier&&(((t=this.identifier)===null||t===void 0?void 0:t.name)||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,VP.SymbolType.SubFlowAndWeave);}};Ga.Choice=$h;});var Ky=E(Ja=>{Object.defineProperty(Ja,"__esModule",{value:true});Ja.StringParserElement=void 0;var za=class n{constructor(){this.characterIndex=0,this.characterInLineIndex=0,this.lineIndex=0,this.reportedErrorInScope=false,this.uniqueId=0,this.customFlags=0,this.CopyFrom=e=>{n._uniqueIdCounter++,this.uniqueId=n._uniqueIdCounter,this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.customFlags=e.customFlags,this.reportedErrorInScope=false;},this.SquashFrom=e=>{this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.reportedErrorInScope=e.reportedErrorInScope,this.customFlags=e.customFlags;};}};Ja.StringParserElement=za;za._uniqueIdCounter=1e3;});var Yy=E(Ha=>{Object.defineProperty(Ha,"__esModule",{value:true});Ha.StringParserState=void 0;var Xy=Ky(),jh=class{get currentElement(){return this._stack[this._numElements-1]}get lineIndex(){return this.currentElement.lineIndex}set lineIndex(e){this.currentElement.lineIndex=e;}get characterIndex(){return this.currentElement.characterIndex}set characterIndex(e){this.currentElement.characterIndex=e;}get characterInLineIndex(){return this.currentElement.characterInLineIndex}set characterInLineIndex(e){this.currentElement.characterInLineIndex=e;}get customFlags(){return this.currentElement.customFlags}set customFlags(e){this.currentElement.customFlags=e;}get errorReportedAlreadyInScope(){return this.currentElement.reportedErrorInScope}get stackHeight(){return this._numElements}constructor(){this._stack=[],this._numElements=0,this.StringParserState=()=>{this._stack=new Array(200);for(let r=0;r<200;++r)this._stack[r]=new Xy.StringParserElement;this._numElements=1;},this.Push=()=>{if(this._numElements>=this._stack.length&&this._numElements>0)throw new Error("Stack overflow in parser state.");let t=this._stack[this._numElements-1],r=this._stack[this._numElements];return this._numElements++,r.CopyFrom(t),r.uniqueId},this.Pop=t=>{if(this._numElements==1)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Poping - do you have mismatched Begin/Succeed/Fail?");this._numElements-=1;},this.Peek=t=>{if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Peeking - do you have mismatched Begin/Succeed/Fail?");return this._stack[this._numElements-1]},this.PeekPenultimate=()=>this._numElements>=2?this._stack[this._numElements-2]:null,this.Squash=()=>{if(this._numElements<2)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");let t=this._stack[this._numElements-2],r=this._stack[this._numElements-1];t.SquashFrom(r),this._numElements-=1;},this.NoteErrorReported=()=>{for(let t of this._stack)t.reportedErrorInScope=true;};let e=200;for(let t=0;t<e;t++)this._stack[t]=new Xy.StringParserElement;this._numElements=1;}};Ha.StringParserState=jh;});var qh=E(Hn=>{Object.defineProperty(Hn,"__esModule",{value:true});Hn.StringParser=Hn.ParseSuccess=void 0;var Lh=zi(),RP=Yy();Hn.ParseSuccess=Symbol("ParseSuccessStruct");var Ui=class n{constructor(e){this.ParseRule=null,this.errorHandler=null,this.hadError=false,this.BeginRule=()=>this.state.Push(),this.FailRule=r=>(this.state.Pop(r),null),this.CancelRule=r=>{this.state.Pop(r);},this.SucceedRule=(r,i=null)=>{let a=this.state.Peek(r),s=this.state.PeekPenultimate();this.RuleDidSucceed&&this.RuleDidSucceed(i,s,a),this.state.Squash();let o=i;return o===null&&(o=n.ParseSuccess),o},this.Expect=(r,i=null,a=null)=>{let s=this.ParseObject(r);if(s===null){i===null&&(i=r.name);let o,u=this.LineRemainder();u===null||u.length===0?o="end of line":o=`'${u}'`,this.Error(`Expected ${i} but saw ${o}`),a!==null&&(s=a());}return s},this.Error=(r,i=false)=>{this.ErrorOnLine(r,this.lineIndex+1,i);},this.ErrorWithParsedObject=(r,i,a=false)=>{this.ErrorOnLine(r,i.debugMetadata?i.debugMetadata.startLineNumber:-1,a);},this.ErrorOnLine=(r,i,a)=>{if(!this.state.errorReportedAlreadyInScope){let s=a?"Warning":"Error";if(this.errorHandler)this.errorHandler(r,this.index,i-1,a);else throw new Error(`${s} on line ${i}: ${r}`);this.state.NoteErrorReported();}a||(this.hadError=true);},this.Warning=r=>this.Error(r,true),this.LineRemainder=()=>this.Peek(()=>this.ParseUntilCharactersFromString(`
12
+ \r`)),this.SetFlag=(r,i)=>{i?this.state.customFlags|=r:this.state.customFlags&=~r;},this.GetFlag=r=>!!(this.state.customFlags&r),this.ParseObject=r=>{let i=this.BeginRule(),a=this.state.stackHeight,s=r();if(a!==this.state.stackHeight)throw new Error("Mismatched Begin/Fail/Succeed rules");return s===null?this.FailRule(i):(this.SucceedRule(i,s),s)},this.Parse=r=>{let i=this.BeginRule(),a=r();return a===null?(this.FailRule(i),null):(this.SucceedRule(i,a),a)},this.OneOf=r=>{for(let i of r){let a=this.ParseObject(i);if(a!==null)return a}return null},this.OneOrMore=r=>{let i=[],a=null;do a=this.ParseObject(r),a!==null&&i.push(a);while(a!==null);return i.length>0?i:null},this.Optional=r=>()=>{let i=this.ParseObject(r);return i===null?n.ParseSuccess:i},this.Exclude=r=>()=>this.ParseObject(r)&&n.ParseSuccess,this.OptionalExclude=r=>()=>(this.ParseObject(r),n.ParseSuccess),this.String=r=>()=>this.ParseString(r),this.TryAddResultToList=(r,i,a=true)=>{if(r!==n.ParseSuccess){if(a&&Array.isArray(r)){let s=r;if(s!==null){for(let o of s)i.push(o);return}}i.push(r);}},this.Interleave=(r,i,a=null,s=true)=>{let o=this.BeginRule(),u=[],l=this.ParseObject(r);if(l===null)return this.FailRule(o);this.TryAddResultToList(l,u,s);let c=null,h=null;do{if(a!==null&&this.Peek(a)!==null||(c=this.ParseObject(i),c===null))break;if(this.TryAddResultToList(c,u,s),h=null,c!==null){if(h=this.ParseObject(r),h===null)break;this.TryAddResultToList(h,u,s);}}while((c!==null||h!==null)&&!(c===n.ParseSuccess&&h==n.ParseSuccess)&&this.remainingLength>0);return u.length===0?this.FailRule(o):this.SucceedRule(o,u)},this.ParseString=r=>{if(r.length>this.remainingLength)return null;let i=this.BeginRule(),a=this.index,s=this.characterInLineIndex,o=this.lineIndex,u=true;for(let l=0;l<r.length;l+=1){let c=r[l];if(this._chars[a]!==c){u=false;break}c===`
13
+ `&&(o++,s=-1),a++,s++;}return this.index=a,this.characterInLineIndex=s,this.lineIndex=o,u?this.SucceedRule(i,r):this.FailRule(i)},this.ParseSingleCharacter=()=>{if(this.remainingLength>0){let r=this._chars[this.index];return r===`
14
+ `&&(this.lineIndex+=1,this.characterInLineIndex=-1),this.index+=1,this.characterInLineIndex+=1,r}return "0"},this.ParseUntilCharactersFromString=(r,i=-1)=>this.ParseCharactersFromString(r,false,i),this.ParseUntilCharactersFromCharSet=(r,i=-1)=>this.ParseCharactersFromCharSet(r,false,i),this.ParseCharactersFromString=(r,i=-1,a=-1)=>{let s=new Lh.CharacterSet(r);return typeof i=="number"?this.ParseCharactersFromCharSet(s,true,i):this.ParseCharactersFromCharSet(s,i,a)},this.ParseCharactersFromCharSet=(r,i=true,a=-1)=>{a===-1&&(a=Number.MAX_SAFE_INTEGER);let s=this.index,o=this.index,u=this.characterInLineIndex,l=this.lineIndex,c=0;for(;o<this._chars.length&&r.set.has(this._chars[o])===i&&c<a;)this._chars[o]===`
15
+ `&&(l+=1,u=-1),o+=1,u+=1,c+=1;return this.index=o,this.characterInLineIndex=u,this.lineIndex=l,this.index>s?this._chars.slice(s,this.index).join(""):null},this.Peek=r=>{let i=this.BeginRule(),a=r();return this.CancelRule(i),a},this.ParseInt=()=>{let r=this.index,i=this.characterInLineIndex,a=this.ParseString("-")!==null;this.ParseCharactersFromString(" ");let s=this.ParseCharactersFromCharSet(n.numbersCharacterSet);if(s===null)return this.index=r,this.characterInLineIndex=i,null;let o;return Number.isNaN(Number(s))?(this.Error("Failed to read integer value: "+s+". Perhaps it's out of the range of acceptable numbers ink supports? ("+Number.MIN_SAFE_INTEGER+" to "+Number.MAX_SAFE_INTEGER+")"),null):(o=Number(s),a?-o:o)},this.ParseFloat=()=>{let r=this.index,i=this.characterInLineIndex,a=this.ParseInt();if(a!==null&&this.ParseString(".")!==null){let s=this.ParseCharactersFromCharSet(n.numbersCharacterSet);return +`${a}.${s}`}return this.index=r,this.characterInLineIndex=i,null},this.ParseNewline=()=>{let r=this.BeginRule();return this.ParseString("\r"),this.ParseString(`
16
+ `)===null?this.FailRule(r):this.SucceedRule(r,`
17
+ `)};let t=this.PreProcessInputString(e);this.state=new RP.StringParserState,e?this._chars=t.split(""):this._chars=[],this.inputString=t;}get currentCharacter(){return this.index>=0&&this.remainingLength>0?this._chars[this.index]:"0"}PreProcessInputString(e){return e}get endOfInput(){return this.index>=this._chars.length}get remainingString(){return this._chars.slice(this.index,this.index+this.remainingLength).join("")}get remainingLength(){return this._chars.length-this.index}get lineIndex(){return this.state.lineIndex}set lineIndex(e){this.state.lineIndex=e;}set characterInLineIndex(e){this.state.characterInLineIndex=e;}get characterInLineIndex(){return this.state.characterInLineIndex}get index(){return this.state.characterIndex}set index(e){this.state.characterIndex=e;}ParseUntil(e,t=null,r=null){let i=this.BeginRule(),a=new Lh.CharacterSet;t!==null&&(a.set=new Set([...a.set.values(),...t.set.values()])),r!==null&&(a.set=new Set([...a.set.values(),...r.set.values()]));let s="",o=null;do{let u=this.ParseUntilCharactersFromCharSet(a);if(u&&(s+=u),o=this.Peek(e),o!==null)break;{if(this.endOfInput)break;let l=this.currentCharacter;if(t!==null&&t.set.has(l)){s+=l,l===`
18
+ `&&(this.lineIndex+=1,this.characterInLineIndex=-1),this.index+=1,this.characterInLineIndex+=1;continue}else break}}while(true);return s.length>0?this.SucceedRule(i,String(s)):this.FailRule(i)}};Hn.StringParser=Ui;Ui.ParseSuccess=Hn.ParseSuccess;Ui.numbersCharacterSet=new Lh.CharacterSet("0123456789");});var Zy=E(Ua=>{Object.defineProperty(Ua,"__esModule",{value:true});Ua.CommentEliminator=void 0;var Bh=zi(),$P=qh(),Wh=class extends $P.StringParser{constructor(){super(...arguments),this._commentOrNewlineStartCharacter=new Bh.CharacterSet(`/\r
19
+ `),this._commentBlockEndCharacter=new Bh.CharacterSet("*"),this._newlineCharacters=new Bh.CharacterSet(`
20
+ \r`),this.Process=()=>{let e=this.Interleave(this.Optional(this.CommentsAndNewlines),this.Optional(this.MainInk));return e!==null?e.join(""):""},this.MainInk=()=>this.ParseUntil(this.CommentsAndNewlines,this._commentOrNewlineStartCharacter,null),this.CommentsAndNewlines=()=>{let e=this.Interleave(this.Optional(this.ParseNewline),this.Optional(this.ParseSingleComment));return e!==null?e.join(""):null},this.ParseSingleComment=()=>this.OneOf([this.EndOfLineComment,this.BlockComment]),this.EndOfLineComment=()=>this.ParseString("//")===null?null:(this.ParseUntilCharactersFromCharSet(this._newlineCharacters),""),this.BlockComment=()=>{if(this.ParseString("/*")===null)return null;let e=this.lineIndex,t=this.ParseUntil(this.String("*/"),this._commentBlockEndCharacter,null);return this.endOfInput||this.ParseString("*/"),t!=null?`
21
+ `.repeat(this.lineIndex-e):null};}PreProcessInputString(e){return e}};Ua.CommentEliminator=Wh;});var Xa=E(Ka=>{Object.defineProperty(Ka,"__esModule",{value:true});Ka.Conditional=void 0;var jP=Ee(),Qy=je(),LP=ye(),Mh=class extends LP.ParsedObject{constructor(e,t){super(),this.initialCondition=e,this.branches=t,this._reJoinTarget=null,this.GenerateRuntimeObject=()=>{let r=new jP.Container;this.initialCondition&&r.AddContent(this.initialCondition.runtimeObject);for(let i of this.branches){let a=i.runtimeObject;r.AddContent(a);}return this.initialCondition!==null&&this.branches[0].ownExpression!==null&&!this.branches[this.branches.length-1].isElse&&r.AddContent(Qy.ControlCommand.PopEvaluatedValue()),this._reJoinTarget=Qy.ControlCommand.NoOp(),r.AddContent(this._reJoinTarget),r},this.initialCondition&&this.AddContent(this.initialCondition),this.branches!==null&&this.AddContent(this.branches);}get typeName(){return "Conditional"}ResolveReferences(e){let t=this._reJoinTarget.path;for(let r of this.branches){if(!r.returnDivert)throw new Error;r.returnDivert.targetPath=t;}super.ResolveReferences(e);}};Ka.Conditional=Mh;});var bn=E(Ya=>{Object.defineProperty(Ya,"__esModule",{value:true});Ya.Text=void 0;var qP=ye(),BP=ve(),Gh=class extends qP.ParsedObject{constructor(e){super(),this.text=e,this.GenerateRuntimeObject=()=>new BP.StringValue(this.text),this.toString=()=>this.text;}get typeName(){return "Text"}};Ya.Text=Gh;});var Qa=E(Za=>{Object.defineProperty(Za,"__esModule",{value:true});Za.ConstantDeclaration=void 0;var WP=ye(),MP=en(),zh=class extends WP.ParsedObject{get constantName(){var e;return (e=this.constantIdentifier)===null||e===void 0?void 0:e.name}get expression(){if(!this._expression)throw new Error;return this._expression}constructor(e,t){super(),this._expression=null,this.GenerateRuntimeObject=()=>null,this.constantIdentifier=e,t&&(this._expression=this.AddContent(t));}get typeName(){return "CONST"}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.constantIdentifier,MP.SymbolType.Var);}};Za.ConstantDeclaration=zh;});var Vr=E(eo=>{Object.defineProperty(eo,"__esModule",{value:true});eo.FlowLevel=void 0;var ev;(function(n){n[n.Story=0]="Story",n[n.Knot=1]="Knot",n[n.Stitch=2]="Stitch",n[n.WeavePoint=3]="WeavePoint";})(ev||(eo.FlowLevel=ev={}));});var Ki=E(to=>{Object.defineProperty(to,"__esModule",{value:true});to.Gather=void 0;var GP=Ee(),zP=ye(),JP=en(),Jh=class extends zP.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get runtimeContainer(){return this.runtimeObject}constructor(e,t){super(),this.indentationDepth=t,this.GenerateRuntimeObject=()=>{let r=new GP.Container;if(r.name=this.name,this.story.countAllVisits&&(r.visitsShouldBeCounted=true),r.countingAtStartOnly=true,this.content)for(let i of this.content)r.AddContent(i.runtimeObject);return r},this.toString=()=>{var r,i;return `- ${!((r=this.identifier)===null||r===void 0)&&r.name?"("+((i=this.identifier)===null||i===void 0?void 0:i.name)+")":"gather"}`},e&&(this.identifier=e);}get typeName(){return "Gather"}ResolveReferences(e){super.ResolveReferences(e),this.identifier&&(this.identifier.name||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,JP.SymbolType.SubFlowAndWeave);}};to.Gather=Jh;});var Un=E(ro=>{Object.defineProperty(ro,"__esModule",{value:true});ro.Path=void 0;var no=ae(),tv=Wt(),Rr=Vr(),HP=Kn(),Hh=class{get baseTargetLevel(){return this.baseLevelIsAmbiguous?Rr.FlowLevel.Story:this._baseTargetLevel}get baseLevelIsAmbiguous(){return !this._baseTargetLevel}get firstComponent(){return this.components==null||!this.components.length?null:this.components[0].name}get numberOfComponents(){return this.components?this.components.length:0}get dotSeparatedComponents(){return this._dotSeparatedComponents==null&&(this._dotSeparatedComponents=(this.components?this.components:[]).map(e=>e.name).filter(no.filterUndef).join(".")),this._dotSeparatedComponents}constructor(e,t){this._dotSeparatedComponents=null,this.toString=()=>this.components===null||this.components.length===0?this.baseTargetLevel===Rr.FlowLevel.WeavePoint?"-> <next gather point>":"<invalid Path>":`-> ${this.dotSeparatedComponents}`,this.ResolveFromContext=r=>{if(this.components==null||this.components.length==0)return null;let i=this.ResolveBaseTarget(r);return i===null?null:this.components.length>1?this.ResolveTailComponents(i):i},this.ResolveBaseTarget=r=>{let i=this.firstComponent,a=r;for(;a;){let s=a===r,o=this.GetChildFromContext(a,i,null,s);if(o)return o;a=a.parent;}return null},this.ResolveTailComponents=r=>{let i=r;if(!this.components)return null;for(let a=1;a<this.components.length;++a){let s=this.components[a].name,o,u=(0, no.asOrNull)(i,tv.FlowBase);if(u!==null?o=u.flowLevel+1:o=Rr.FlowLevel.WeavePoint,i=this.GetChildFromContext(i,s,o),i===null)break}return i},this.GetChildFromContext=(r,i,a,s=false)=>{let o=a===null,u=(0, no.asOrNull)(r,HP.Weave);if(i&&u!==null&&(o||a===Rr.FlowLevel.WeavePoint))return u.WeavePointNamed(i);let l=(0, no.asOrNull)(r,tv.FlowBase);if(i&&l!==null){let c=s||l.flowLevel===Rr.FlowLevel.Knot;return l.ContentWithNameAtLevel(i,a,c)}return null},Object.values(Rr.FlowLevel).includes(e)?(this._baseTargetLevel=e,this.components=t||[]):Array.isArray(e)?(this._baseTargetLevel=null,this.components=e||[]):(this._baseTargetLevel=null,this.components=[e]);}get typeName(){return "Path"}};ro.Path=Hh;});var Xh=E(io=>{Object.defineProperty(io,"__esModule",{value:true});io.ReturnType=void 0;var UP=ye(),KP=Ee(),Uh=je(),XP=zn(),Kh=class extends UP.ParsedObject{constructor(e=null){super(),this.returnedExpression=null,this.GenerateRuntimeObject=()=>{let t=new KP.Container;return this.returnedExpression?t.AddContent(this.returnedExpression.runtimeObject):(t.AddContent(Uh.ControlCommand.EvalStart()),t.AddContent(new XP.Void),t.AddContent(Uh.ControlCommand.EvalEnd())),t.AddContent(Uh.ControlCommand.PopFunction()),t},e&&(this.returnedExpression=this.AddContent(e));}get typeName(){return "ReturnType"}};io.ReturnType=Kh;});var Xi=E(so=>{Object.defineProperty(so,"__esModule",{value:true});so.ClosestFlowBase=void 0;function YP(n){let e=n.parent;for(;e;){if(e.hasOwnProperty("iamFlowbase")&&e.iamFlowbase())return e;e=e.parent;}return null}so.ClosestFlowBase=YP;});var oo=E(ao=>{Object.defineProperty(ao,"__esModule",{value:true});ao.Identifier=void 0;var Yh=class n{constructor(e){this.debugMetadata=null,this.toString=()=>this.name||"undefined identifer",this.name=e;}get typeName(){return "Identifier"}static Done(){return new n("DONE")}};ao.Identifier=Yh;});var Wt=E(uo=>{Object.defineProperty(uo,"__esModule",{value:true});uo.FlowBase=void 0;var ZP=kr(),Zh=jr(),QP=$r(),Mt=Vr(),eO=Ki(),tO=ye(),nO=Un(),rO=Xh(),iO=Ee(),sO=Bt(),aO=vn(),Qh=en(),oO=Kn(),uO=Xi(),lO=oo(),nv=ae(),ed=class n extends tO.ParsedObject{get hasParameters(){return this.args!==null&&this.args.length>0}get subFlowsByName(){return this._subFlowsByName}get typeName(){return this.isFunction?"Function":String(this.flowLevel)}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t=null,r=null,i=false,a=false){super(),this.isFunction=i,this._rootWeave=null,this._subFlowsByName=new Map,this._startingSubFlowDivert=null,this._startingSubFlowRuntime=null,this._firstChildFlow=null,this.variableDeclarations=new Map,this.identifier=null,this.args=null,this.iamFlowbase=()=>true,this.SplitWeaveAndSubFlowContent=(s,o)=>{var u,l;let c=[],h=[];this._subFlowsByName=new Map;for(let d of s){let m=(0, nv.asOrNull)(d,n);m?(this._firstChildFlow===null&&(this._firstChildFlow=m),h.push(d),!((u=m.identifier)===null||u===void 0)&&u.name&&this._subFlowsByName.set((l=m.identifier)===null||l===void 0?void 0:l.name,m)):c.push(d);}o&&c.push(new eO.Gather(null,1),new Zh.Divert(new nO.Path(lO.Identifier.Done())));let f=[];return c.length>0&&(this._rootWeave=new oO.Weave(c,0),f.push(this._rootWeave)),h.length>0&&f.push(...h),f},this.ResolveVariableWithName=(s,o)=>{var u;let l={},c=o===null?this:(0, uO.ClosestFlowBase)(o);if(c){if(c.args!==null){for(let h of c.args)if(((u=h.identifier)===null||u===void 0?void 0:u.name)===s)return l.found=true,l.isArgument=true,l.ownerFlow=c,l}if(c!==this.story&&c.variableDeclarations.has(s))return l.found=true,l.ownerFlow=c,l.isTemporary=true,l}return this.story.variableDeclarations.has(s)?(l.found=true,l.ownerFlow=this.story,l.isGlobal=true,l):(l.found=false,l)},this.AddNewVariableDeclaration=s=>{let o=s.variableName;if(this.variableDeclarations.has(o)){let u=this.variableDeclarations.get(o),l="";u.debugMetadata&&(l=` (${u.debugMetadata})`),this.Error(`found declaration variable '${o}' that was already declared${l}`,s,false);return}this.variableDeclarations.set(s.variableName,s);},this.ResolveWeavePointNaming=()=>{this._rootWeave&&this._rootWeave.ResolveWeavePointNaming();for(let[,s]of this._subFlowsByName)s.hasOwnProperty("ResolveWeavePointNaming")&&s.ResolveWeavePointNaming();},this.GenerateRuntimeObject=()=>{var s;let o=null;this.isFunction?this.CheckForDisallowedFunctionFlowControl():(this.flowLevel===Mt.FlowLevel.Knot||this.flowLevel===Mt.FlowLevel.Stitch)&&(o=this.Find(rO.ReturnType)(),o!==null&&this.Error(`Return statements can only be used in knots that are declared as functions: == function ${this.identifier} ==`,o));let u=new iO.Container;u.name=(s=this.identifier)===null||s===void 0?void 0:s.name,this.story.countAllVisits&&(u.visitsShouldBeCounted=true),this.GenerateArgumentVariableAssignments(u);let l=0;for(;this.content!==null&&l<this.content.length;){let c=this.content[l];if(c instanceof n){let h=c,f=h.runtimeObject;l===0&&!h.hasParameters&&this.flowLevel===Mt.FlowLevel.Knot&&(this._startingSubFlowDivert=new sO.Divert,u.AddContent(this._startingSubFlowDivert),this._startingSubFlowRuntime=f);let d=f,m=u.namedContent.get(d.name)||null;if(m){let y=`${this.GetType()} already contains flow named '${d.name}' (at ${m.debugMetadata})`;this.Error(y,h);}u.AddToNamedContentOnly(d);}else c&&u.AddContent(c.runtimeObject);l+=1;}return this.flowLevel!==Mt.FlowLevel.Story&&!this.isFunction&&this._rootWeave!==null&&o===null&&this._rootWeave.ValidateTermination(this.WarningInTermination),u},this.GenerateArgumentVariableAssignments=s=>{var o;if(!(this.args===null||this.args.length===0))for(let u=this.args.length-1;u>=0;--u){let l=((o=this.args[u].identifier)===null||o===void 0?void 0:o.name)||null,c=new aO.VariableAssignment(l,true);s.AddContent(c);}},this.ContentWithNameAtLevel=(s,o=null,u=false)=>{var l;if((o===this.flowLevel||o===null)&&s===((l=this.identifier)===null||l===void 0?void 0:l.name))return this;if(o===Mt.FlowLevel.WeavePoint||o===null){let h=null;if(this._rootWeave&&(h=this._rootWeave.WeavePointNamed(s),h))return h;if(o===Mt.FlowLevel.WeavePoint)return u?this.DeepSearchForAnyLevelContent(s):null}if(o!==null&&o<this.flowLevel)return null;let c=this._subFlowsByName.get(s)||null;return c&&(o===null||o===c.flowLevel)?c:u?this.DeepSearchForAnyLevelContent(s):null},this.DeepSearchForAnyLevelContent=s=>{let o=this.ContentWithNameAtLevel(s,Mt.FlowLevel.WeavePoint,false);if(o)return o;for(let[,u]of this._subFlowsByName){let l=u.ContentWithNameAtLevel(s,null,true);if(l)return l}return null},this.CheckForDisallowedFunctionFlowControl=()=>{this.flowLevel!==Mt.FlowLevel.Knot&&this.Error("Functions cannot be stitches - i.e. they should be defined as '== function myFunc ==' rather than internal to another knot.");for(let[u,l]of this._subFlowsByName)this.Error(`Functions may not contain stitches, but saw '${u}' within the function '${this.identifier}'`,l);if(!this._rootWeave)throw new Error;let s=this._rootWeave.FindAll(Zh.Divert)();for(let u of s)!u.isFunctionCall&&!(u.parent instanceof QP.DivertTarget)&&this.Error(`Functions may not contain diverts, but saw '${u}'`,u);let o=this._rootWeave.FindAll(ZP.Choice)();for(let u of o)this.Error(`Functions may not contain choices, but saw '${u}'`,u);},this.WarningInTermination=s=>{let o="Apparent loose end exists where the flow runs out. Do you need a '-> DONE' statement, choice or divert?";s.parent===this._rootWeave&&this._firstChildFlow&&(o=`${o} Note that if you intend to enter '${this._firstChildFlow.identifier}' next, you need to divert to it explicitly.`);let u=(0, nv.asOrNull)(s,Zh.Divert);u&&u.isTunnel&&(o+=` When final tunnel to '${u.target} ->' returns it won't have anywhere to go.`),this.Warning(o,s);},this.toString=()=>`${this.typeName} '${this.identifier}'`,this.identifier=e,this.args=r,t===null&&(t=[]),this.PreProcessTopLevelObjects(t),t=this.SplitWeaveAndSubFlowContent(t,this.GetType()=="Story"&&!a),this.AddContent(t);}PreProcessTopLevelObjects(e){}ResolveReferences(e){var t,r;if(this._startingSubFlowDivert){if(!this._startingSubFlowRuntime)throw new Error;this._startingSubFlowDivert.targetPath=this._startingSubFlowRuntime.path;}if(super.ResolveReferences(e),this.args!==null){for(let i of this.args)e.CheckForNamingCollisions(this,i.identifier,Qh.SymbolType.Arg,"argument");for(let i=0;i<this.args.length;i+=1)for(let a=i+1;a<this.args.length;a+=1)((t=this.args[i].identifier)===null||t===void 0?void 0:t.name)==((r=this.args[a].identifier)===null||r===void 0?void 0:r.name)&&this.Error(`Multiple arguments with the same name: '${this.args[i].identifier}'`);}if(this.flowLevel!==Mt.FlowLevel.Story){let i=this.flowLevel===Mt.FlowLevel.Knot?Qh.SymbolType.Knot:Qh.SymbolType.SubFlowAndWeave;e.CheckForNamingCollisions(this,this.identifier,i);}}};uo.FlowBase=ed;});var co=E(lo=>{Object.defineProperty(lo,"__esModule",{value:true});lo.ContentList=void 0;var cO=Ee(),hO=ye(),dO=bn(),fO=ae(),td=class extends hO.ParsedObject{get runtimeContainer(){return this.runtimeObject}constructor(e,...t){super(),this.dontFlatten=false,this.TrimTrailingWhitespace=()=>{for(let r=this.content.length-1;r>=0;--r){let i=(0, fO.asOrNull)(this.content[r],dO.Text);if(i===null)break;if(i.text=i.text.replace(new RegExp(/[ \t]/g),""),i.text.length===0)this.content.splice(r,1);else break}},this.GenerateRuntimeObject=()=>{let r=new cO.Container;if(this.content!==null)for(let i of this.content){let a=i.runtimeObject;a&&r.AddContent(a);}return this.dontFlatten&&this.story.DontFlattenContainer(r),r},this.toString=()=>`ContentList(${this.content.join(", ")})`,e&&this.AddContent(e),t&&this.AddContent(t);}get typeName(){return "ContentList"}};lo.ContentList=td;});var Lr=E(ho=>{Object.defineProperty(ho,"__esModule",{value:true});ho.VariableReference=void 0;var pO=rt(),mO=nt(),nd=class extends pO.InkObject{get containerForCount(){return this.pathForCount===null?null:this.ResolvePath(this.pathForCount).container}get pathStringForCount(){return this.pathForCount===null?null:this.CompactPathString(this.pathForCount)}set pathStringForCount(e){e===null?this.pathForCount=null:this.pathForCount=new mO.Path(e);}constructor(e=null){super(),this.pathForCount=null,this.name=e;}toString(){return this.name!=null?"var("+this.name+")":"read_count("+this.pathStringForCount+")"}};ho.VariableReference=nd;});var qr=E(fo=>{Object.defineProperty(fo,"__esModule",{value:true});fo.VariableReference=void 0;var gO=co(),yO=yt(),rv=Wt(),vO=Un(),CO=Lr(),bO=Kn(),_O=oo(),iv=ae(),rd=class extends yO.Expression{get name(){return this.path.join(".")}get path(){return this.pathIdentifiers.map(e=>e.name).filter(iv.filterUndef)}get identifier(){if(!this.pathIdentifiers||this.pathIdentifiers.length==0)return null;let e=this.path.join(".");return new _O.Identifier(e)}get runtimeVarRef(){return this._runtimeVarRef}constructor(e){super(),this.pathIdentifiers=e,this._runtimeVarRef=null,this.isConstantReference=false,this.isListItemReference=false,this.GenerateIntoContainer=t=>{let r=this.story.constants.get(this.name);if(r){r.GenerateConstantIntoContainer(t),this.isConstantReference=true;return}if(this._runtimeVarRef=new CO.VariableReference(this.name),this.path.length===1||this.path.length===2){let i="",a="";this.path.length===1?i=this.path[0]:(a=this.path[0],i=this.path[1]),this.story.ResolveListItem(a,i,this)&&(this.isListItemReference=true);}t.AddContent(this._runtimeVarRef);},this.toString=()=>`{${this.path.join(".")}}`;}get typeName(){return "ref"}ResolveReferences(e){if(super.ResolveReferences(e),this.isConstantReference||this.isListItemReference)return;let t=new vO.Path(this.pathIdentifiers),r=t.ResolveFromContext(this);if(r){if(!r.containerForCounting)throw new Error;if(r.containerForCounting.visitsShouldBeCounted=true,this._runtimeVarRef===null)return;this._runtimeVarRef.pathForCount=r.runtimePath,this._runtimeVarRef.name=null;let i=(0, iv.asOrNull)(r,rv.FlowBase);i&&i.isFunction&&(this.parent instanceof bO.Weave||this.parent instanceof gO.ContentList||this.parent instanceof rv.FlowBase)&&this.Warning(`'${i.identifier}' being used as read count rather than being called as function. Perhaps you intended to write ${i.identifier}()`);return}if(this.path.length>1){let i=`Could not find target for read count: ${t}`;this.path.length<=2&&(i+=`, or couldn't find list item with the name ${this.path.join(",")}`),this.Error(i);return}e.ResolveVariableWithName(this.name,this).found||this.Error(`Unresolved variable: ${this.name}`,this);}};fo.VariableReference=rd;});var Yi=E(yo=>{Object.defineProperty(yo,"__esModule",{value:true});yo.FunctionCall=void 0;var Gt=je(),SO=jr(),EO=$r(),wO=yt(),DO=st(),AO=ve(),mo=qt(),sv=Ta(),PO=Un(),OO=ve(),xO=qr(),po=ae(),go=class n extends wO.Expression{get proxyDivert(){return this._proxyDivert}get name(){return this._proxyDivert.target.firstComponent||""}get args(){return this._proxyDivert.args}get runtimeDivert(){return this._proxyDivert.runtimeDivert}get isChoiceCount(){return this.name==="CHOICE_COUNT"}get isTurns(){return this.name==="TURNS"}get isTurnsSince(){return this.name==="TURNS_SINCE"}get isRandom(){return this.name==="RANDOM"}get isSeedRandom(){return this.name==="SEED_RANDOM"}get isListRange(){return this.name==="LIST_RANGE"}get isListRandom(){return this.name==="LIST_RANDOM"}get isReadCount(){return this.name==="READ_COUNT"}constructor(e,t){super(),this._divertTargetToCount=null,this._variableReferenceToCount=null,this.shouldPopReturnedValue=false,this.GenerateIntoContainer=r=>{let i=this.story.ResolveList(this.name),a=false;if(this.isChoiceCount)this.args.length>0&&this.Error("The CHOICE_COUNT() function shouldn't take any arguments"),r.AddContent(Gt.ControlCommand.ChoiceCount());else if(this.isTurns)this.args.length>0&&this.Error("The TURNS() function shouldn't take any arguments"),r.AddContent(Gt.ControlCommand.Turns());else if(this.isTurnsSince||this.isReadCount){let s=(0, po.asOrNull)(this.args[0],EO.DivertTarget),o=(0, po.asOrNull)(this.args[0],xO.VariableReference);if(this.args.length!==1||s===null&&o===null){this.Error(`The ${this.name}() function should take one argument: a divert target to the target knot, stitch, gather or choice you want to check. e.g. TURNS_SINCE(-> myKnot)`);return}s?(this._divertTargetToCount=s,this.AddContent(this._divertTargetToCount),this._divertTargetToCount.GenerateIntoContainer(r)):o&&(this._variableReferenceToCount=o,this.AddContent(this._variableReferenceToCount),this._variableReferenceToCount.GenerateIntoContainer(r)),this.isTurnsSince?r.AddContent(Gt.ControlCommand.TurnsSince()):r.AddContent(Gt.ControlCommand.ReadCount());}else if(this.isRandom){this.args.length!==2&&this.Error("RANDOM should take 2 parameters: a minimum and a maximum integer");for(let s=0;s<this.args.length;s+=1){let o=(0, po.asOrNull)(this.args[s],sv.NumberExpression);if(o&&!o.isInt()){let u=s===0?"minimum":"maximum";this.Error(`RANDOM's ${u} parameter should be an integer`);}this.args[s].GenerateIntoContainer(r);}r.AddContent(Gt.ControlCommand.Random());}else if(this.isSeedRandom){this.args.length!==1&&this.Error("SEED_RANDOM should take 1 parameter - an integer seed");let s=(0, po.asOrNull)(this.args[0],sv.NumberExpression);s&&!s.isInt()&&this.Error("SEED_RANDOM's parameter should be an integer seed"),this.args[0].GenerateIntoContainer(r),r.AddContent(Gt.ControlCommand.SeedRandom());}else if(this.isListRange){this.args.length!==3&&this.Error("LIST_RANGE should take 3 parameters - a list, a min and a max");for(let s=0;s<this.args.length;s+=1)this.args[s].GenerateIntoContainer(r);r.AddContent(Gt.ControlCommand.ListRange());}else if(this.isListRandom)this.args.length!==1&&this.Error("LIST_RANDOM should take 1 parameter - a list"),this.args[0].GenerateIntoContainer(r),r.AddContent(Gt.ControlCommand.ListRandom());else if(mo.NativeFunctionCall.CallExistsWithName(this.name)){let s=mo.NativeFunctionCall.CallWithName(this.name);if(s.numberOfParameters!==this.args.length){let o=`${n.name} should take ${s.numberOfParameters} parameter`;s.numberOfParameters>1&&(o+="s"),this.Error(o);}for(let o=0;o<this.args.length;o+=1)this.args[o].GenerateIntoContainer(r);r.AddContent(mo.NativeFunctionCall.CallWithName(this.name));}else if(i!==null)if(this.args.length>1&&this.Error("Can currently only construct a list from one integer (or an empty list from a given list definition)"),this.args.length===1)r.AddContent(new OO.StringValue(this.name)),this.args[0].GenerateIntoContainer(r),r.AddContent(Gt.ControlCommand.ListFromInt());else {let s=new DO.InkList;s.SetInitialOriginName(this.name),r.AddContent(new AO.ListValue(s));}else r.AddContent(this._proxyDivert.runtimeObject),a=true;a||this.content.splice(this.content.indexOf(this._proxyDivert),1),this.shouldPopReturnedValue&&r.AddContent(Gt.ControlCommand.PopEvaluatedValue());},this.toString=()=>{let r=this.args.join(", ");return `${this.name}(${r})`},this._proxyDivert=new SO.Divert(new PO.Path(e),t),this._proxyDivert.isFunctionCall=true,this.AddContent(this._proxyDivert);}get typeName(){return "FunctionCall"}ResolveReferences(e){if(super.ResolveReferences(e),!this.content.includes(this._proxyDivert)&&this.args!==null)for(let t of this.args)t.ResolveReferences(e);if(this._divertTargetToCount){let t=this._divertTargetToCount.divert,r=t.runtimeDivert.variableDivertName!=null;if(r){this.Error(`When getting the TURNS_SINCE() of a variable target, remove the '->' - i.e. it should just be TURNS_SINCE(${t.runtimeDivert.variableDivertName})`);return}let i=t.targetContent;if(i===null)r||this.Error(`Failed to find target for TURNS_SINCE: '${t.target}'`);else {if(!i.containerForCounting)throw new Error;i.containerForCounting.turnIndexShouldBeCounted=true;}}else if(this._variableReferenceToCount){let t=this._variableReferenceToCount.runtimeVarRef;if(!t)throw new Error;t.pathForCount!==null&&this.Error(`Should be '${n.name}'(-> '${this._variableReferenceToCount.name}). Usage without the '->' only makes sense for variable targets.`);}}};yo.FunctionCall=go;go.IsBuiltIn=n=>mo.NativeFunctionCall.CallExistsWithName(n)?true:n==="CHOICE_COUNT"||n==="TURNS_SINCE"||n==="TURNS"||n==="RANDOM"||n==="SEED_RANDOM"||n==="LIST_VALUE"||n==="LIST_RANDOM"||n==="READ_COUNT";});var sd=E(vo=>{Object.defineProperty(vo,"__esModule",{value:true});vo.MultipleConditionExpression=void 0;var TO=yt(),NO=qt(),id=class extends TO.Expression{get subExpressions(){return this.content}constructor(e){super(),this.GenerateIntoContainer=t=>{let r=true;for(let i of this.subExpressions)i.GenerateIntoContainer(t),r||t.AddContent(NO.NativeFunctionCall.CallWithName("&&")),r=false;},this.AddContent(e);}get typeName(){return "MultipleConditionExpression"}};vo.MultipleConditionExpression=id;});var $r=E(Co=>{Object.defineProperty(Co,"__esModule",{value:true});Co.DivertTarget=void 0;var FO=xh(),IO=kr(),kO=Xa(),VO=ld(),RO=ve(),ad=yt(),$O=Wt(),av=Yi(),jO=sd(),ov=qr(),od=ae(),ud=class n extends ad.Expression{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}get runtimeDivertTargetValue(){if(!this._runtimeDivertTargetValue)throw new Error;return this._runtimeDivertTargetValue}constructor(e){super(),this._runtimeDivert=null,this._runtimeDivertTargetValue=null,this.GenerateIntoContainer=t=>{this.divert.GenerateRuntimeObject(),this._runtimeDivert=this.divert.runtimeDivert,this._runtimeDivertTargetValue=new RO.DivertTargetValue,t.AddContent(this.runtimeDivertTargetValue);},this.Equals=t=>{let r=(0, od.asOrNull)(t,n);if(!r||!this.divert.target||!r.divert.target)return false;let i=this.divert.target.dotSeparatedComponents,a=r.divert.target.dotSeparatedComponents;return i===a},this.divert=this.AddContent(e);}get typeName(){return "DivertTarget"}ResolveReferences(e){if(super.ResolveReferences(e),this.divert.isDone||this.divert.isEnd){this.Error("Can't use -> DONE or -> END as variable divert targets",this);return}let t=this;for(;t&&t instanceof ad.Expression;){let i=false,a=false,s=t.parent;if(s instanceof FO.BinaryExpression){let o=s;o.opName!=="=="&&o.opName!=="!="?i=true:(o.leftExpression instanceof n||o.leftExpression instanceof ov.VariableReference)&&(o.rightExpression instanceof n||o.rightExpression instanceof ov.VariableReference)||(i=true),a=true;}else if(s instanceof av.FunctionCall){let o=s;!o.isTurnsSince&&!o.isReadCount&&(i=true),a=true;}else (s instanceof ad.Expression||s instanceof jO.MultipleConditionExpression||s instanceof IO.Choice&&s.condition===t||s instanceof kO.Conditional||s instanceof VO.ConditionalSingleBranch)&&(i=true,a=true);if(i&&this.Error(`Can't use a divert target like that. Did you intend to call '${this.divert.target}' as a function: likeThis(), or check the read count: likeThis, with no arrows?`,this),a)break;t=s;}if(this.runtimeDivert.hasVariableTarget){if(!this.divert.target)throw new Error;this.Error(`Since '${this.divert.target.dotSeparatedComponents}' is a variable, it shouldn't be preceded by '->' here.`);}this.runtimeDivert.targetPath&&(this.runtimeDivertTargetValue.targetPath=this.runtimeDivert.targetPath);let r=this.divert.targetContent;if(r!==null){let i=r.containerForCounting;if(i!==null){let s=(0, od.asOrNull)(this.parent,av.FunctionCall);s&&s.isTurnsSince||(i.visitsShouldBeCounted=true),i.turnIndexShouldBeCounted=true;}let a=(0, od.asOrNull)(r,$O.FlowBase);if(a!=null&&a.args!==null)for(let s of a.args)s.isByReference&&this.Error(`Can't store a divert target to a knot or function that has by-reference arguments ('${a.identifier}' has 'ref ${s.identifier}').`);}}};Co.DivertTarget=ud;});var jr=E(bo=>{Object.defineProperty(bo,"__esModule",{value:true});bo.Divert=void 0;var LO=Ee(),Zi=je(),qO=Bt(),cd=$r(),hd=Wt(),BO=Yi(),WO=ye(),uv=Un(),MO=nt(),lv=Jn(),GO=ve(),cv=qr(),zO=Xi(),Qi=ae(),dd=class extends WO.ParsedObject{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}set runtimeDivert(e){this._runtimeDivert=e;}get isEnd(){return !!(this.target&&this.target.dotSeparatedComponents==="END")}get isDone(){return !!(this.target&&this.target.dotSeparatedComponents==="DONE")}constructor(e,t){super(),this.args=[],this.target=null,this.targetContent=null,this._runtimeDivert=null,this.isFunctionCall=false,this.isEmpty=false,this.isTunnel=false,this.isThread=false,this.GenerateRuntimeObject=()=>{if(this.isEnd)return Zi.ControlCommand.End();if(this.isDone)return Zi.ControlCommand.Done();this.runtimeDivert=new qO.Divert,this.ResolveTargetContent(),this.CheckArgumentValidity();let r=this.args!==null&&this.args.length>0;if(r||this.isFunctionCall||this.isTunnel||this.isThread){let i=new LO.Container;if(r){this.isFunctionCall||i.AddContent(Zi.ControlCommand.EvalStart());let a=null;this.targetContent&&(a=this.targetContent.args);for(let s=0;s<this.args.length;++s){let o=this.args[s],u=null;if(a&&s<a.length&&(u=a[s]),u&&u.isByReference){let l=(0, Qi.asOrNull)(o,cv.VariableReference);if(!l){this.Error(`Expected variable name to pass by reference to 'ref ${u.identifier}' but saw ${o}`);break}let c=new uv.Path(l.pathIdentifiers);if(c.ResolveFromContext(this)){this.Error(`can't pass a read count by reference. '${c.dotSeparatedComponents}' is a knot/stitch/label, but '${this.target.dotSeparatedComponents}' requires the name of a VAR to be passed.`);break}let f=new GO.VariablePointerValue(l.name);i.AddContent(f);}else o.GenerateIntoContainer(i);}this.isFunctionCall||i.AddContent(Zi.ControlCommand.EvalEnd());}return this.isThread?i.AddContent(Zi.ControlCommand.StartThread()):(this.isFunctionCall||this.isTunnel)&&(this.runtimeDivert.pushesToStack=true,this.runtimeDivert.stackPushType=this.isFunctionCall?lv.PushPopType.Function:lv.PushPopType.Tunnel),i.AddContent(this.runtimeDivert),i}return this.runtimeDivert},this.PathAsVariableName=()=>this.target?this.target.firstComponent:null,this.ResolveTargetContent=()=>{if(!(this.isEmpty||this.isEnd)&&this.targetContent===null){let r=this.PathAsVariableName();if(r!==null){let i=(0, Qi.asOrNull)((0, zO.ClosestFlowBase)(this),hd.FlowBase);if(i){let a=i.ResolveVariableWithName(r,this);if(a.found){if(a.isArgument&&a.ownerFlow&&a.ownerFlow.args){let s=a.ownerFlow.args.find(o=>{var u;return ((u=o.identifier)===null||u===void 0?void 0:u.name)==r});s&&!s.isDivertTarget&&this.Error(`Since '${s.identifier}' is used as a variable divert target (on ${this.debugMetadata}), it should be marked as: -> ${s.identifier}`,a.ownerFlow);}this.runtimeDivert.variableDivertName=r;return}}}if(!this.target)throw new Error;this.targetContent=this.target.ResolveFromContext(this);}},this.CheckArgumentValidity=()=>{if(this.isEmpty)return;let r=0;if(this.args!==null&&this.args.length>0&&(r=this.args.length),this.targetContent===null)return;let i=(0, Qi.asOrNull)(this.targetContent,hd.FlowBase);if(r===0&&(i===null||!i.hasParameters))return;if(i===null&&r>0){this.Error("target needs to be a knot or stitch in order to pass arguments");return}else if(i!==null&&(i.args===null||!i.args&&r>0)){this.Error(`target (${i.name}) doesn't take parameters`);return}else if(this.parent instanceof cd.DivertTarget){r>0&&this.Error("can't store arguments in a divert target variable");return}let a=i.args.length;if(a!==r){let s;r===0?s="but there weren't any passed to it":r<a?s=`but only got ${r}`:s=`but got ${r}`,this.Error(`to '${i.identifier}' requires ${a} arguments, ${s}`);return}for(let s=0;s<a;++s){let o=i.args[s],u=this.args[s];if(o.isDivertTarget){let l=(0, Qi.asOrNull)(u,cv.VariableReference);if(!(u instanceof cd.DivertTarget)&&l===null)this.Error(`Target '${i.identifier}' expects a divert target for the parameter named -> ${o.identifier} but saw ${u}`,u);else if(l){let c=new uv.Path(l.pathIdentifiers);c.ResolveFromContext(l)&&this.Error(`Passing read count of '${c.dotSeparatedComponents}' instead of a divert target. You probably meant '${c}'`);}}}if(i===null){this.Error("Can't call as a function or with arguments unless it's a knot or stitch");return}},this.CheckExternalArgumentValidity=r=>{let i=this.target?this.target.firstComponent:null,a=r.externals.get(i);if(!a)throw new Error("external not found");let s=a.argumentNames.length,o=0;this.args&&(o=this.args.length),o!==s&&this.Error(`incorrect number of arguments sent to external function '${i}'. Expected ${s} but got ${o}`);},this.toString=()=>{let r="";if(this.target!==null)r+=this.target.toString();else return "-> <empty divert>";return this.isTunnel&&(r+=" ->"),this.isFunctionCall&&(r+=" ()"),r},e&&(this.target=e),t&&(this.args=t,this.AddContent(t));}get typeName(){return "Divert"}ResolveReferences(e){if(this.isEmpty||this.isEnd||this.isDone)return;if(!this.runtimeDivert)throw new Error;this.targetContent&&(this.runtimeDivert.targetPath=this.targetContent.runtimePath),super.ResolveReferences(e);let t=(0, Qi.asOrNull)(this.targetContent,hd.FlowBase);t&&(!t.isFunction&&this.isFunctionCall?super.Error(`${t.identifier} hasn't been marked as a function, but it's being called as one. Do you need to declare the knot as '== function ${t.identifier} =='?`):t.isFunction&&!this.isFunctionCall&&!(this.parent instanceof cd.DivertTarget)&&super.Error(t.identifier+" can't be diverted to. It can only be called as a function since it's been marked as such: '"+t.identifier+"(...)'"));let r=this.targetContent!==null,i=false,a=false;if(this.target){if(this.target.numberOfComponents===1){if(!this.target.firstComponent)throw new Error;if(i=BO.FunctionCall.IsBuiltIn(this.target.firstComponent),a=e.IsExternal(this.target.firstComponent),i||a){this.isFunctionCall||super.Error(`${this.target.firstComponent} must be called as a function: ~ ${this.target.firstComponent}()`),a&&(this.runtimeDivert.isExternal=true,this.args!==null&&(this.runtimeDivert.externalArgs=this.args.length),this.runtimeDivert.pushesToStack=false,this.runtimeDivert.targetPath=new MO.Path(this.target.firstComponent),this.CheckExternalArgumentValidity(e));return}}}else throw new Error;this.runtimeDivert.variableDivertName==null&&!r&&!i&&!a&&this.Error(`target not found: '${this.target}'`);}Error(e,t=null,r=false){if(t!==this&&t){super.Error(e,t);return}this.isFunctionCall?super.Error(`Function call ${e}`,t,r):super.Error(`Divert ${e}`,t,r);}};bo.Divert=dd;});var hv=E(_o=>{Object.defineProperty(_o,"__esModule",{value:true});_o.GatherPointToResolve=void 0;var fd=class{constructor(e,t){this.divert=e,this.targetRuntimeObj=t;}};_o.GatherPointToResolve=fd;});var dv=E(So=>{Object.defineProperty(So,"__esModule",{value:true});So.SequenceDivertToResolve=void 0;var pd=class{constructor(e,t){this.divert=e,this.targetContent=t;}};So.SequenceDivertToResolve=pd;});var md=E(Eo=>{Object.defineProperty(Eo,"__esModule",{value:true});Eo.SequenceType=void 0;var fv;(function(n){n[n.Stopping=1]="Stopping",n[n.Cycle=2]="Cycle",n[n.Shuffle=4]="Shuffle",n[n.Once=8]="Once";})(fv||(Eo.SequenceType=fv={}));});var vd=E(Ao=>{Object.defineProperty(Ao,"__esModule",{value:true});Ao.Sequence=void 0;var pv=Ee(),xt=je(),gd=Bt(),es=ve(),wo=qt(),JO=ye(),HO=dv(),Do=md(),UO=Kn(),yd=class extends JO.ParsedObject{constructor(e,t){super(),this.sequenceType=t,this._sequenceDivertsToResolve=[],this.GenerateRuntimeObject=()=>{let r=new pv.Container;r.visitsShouldBeCounted=true,r.countingAtStartOnly=true,this._sequenceDivertsToResolve=[],r.AddContent(xt.ControlCommand.EvalStart()),r.AddContent(xt.ControlCommand.VisitIndex());let i=(this.sequenceType&Do.SequenceType.Once)>0,a=(this.sequenceType&Do.SequenceType.Cycle)>0,s=(this.sequenceType&Do.SequenceType.Stopping)>0,o=(this.sequenceType&Do.SequenceType.Shuffle)>0,u=this.sequenceElements.length;if(i&&(u+=1),s||i?(r.AddContent(new es.IntValue(u-1)),r.AddContent(wo.NativeFunctionCall.CallWithName("MIN"))):a&&(r.AddContent(new es.IntValue(this.sequenceElements.length)),r.AddContent(wo.NativeFunctionCall.CallWithName("%"))),o){let c=xt.ControlCommand.NoOp();if(i||s){let f=s?this.sequenceElements.length-1:this.sequenceElements.length;r.AddContent(xt.ControlCommand.Duplicate()),r.AddContent(new es.IntValue(f)),r.AddContent(wo.NativeFunctionCall.CallWithName("=="));let d=new gd.Divert;d.isConditional=true,r.AddContent(d),this.AddDivertToResolve(d,c);}let h=this.sequenceElements.length;s&&(h-=1),r.AddContent(new es.IntValue(h)),r.AddContent(xt.ControlCommand.SequenceShuffleIndex()),(i||s)&&r.AddContent(c);}r.AddContent(xt.ControlCommand.EvalEnd());let l=xt.ControlCommand.NoOp();for(let c=0;c<u;c+=1){r.AddContent(xt.ControlCommand.EvalStart()),r.AddContent(xt.ControlCommand.Duplicate()),r.AddContent(new es.IntValue(c)),r.AddContent(wo.NativeFunctionCall.CallWithName("==")),r.AddContent(xt.ControlCommand.EvalEnd());let h=new gd.Divert;h.isConditional=true,r.AddContent(h);let f;c<this.sequenceElements.length?f=this.sequenceElements[c].runtimeObject:f=new pv.Container,f.name=`s${c}`,f.InsertContent(xt.ControlCommand.PopEvaluatedValue(),0);let d=new gd.Divert;f.AddContent(d),r.AddToNamedContentOnly(f),this.AddDivertToResolve(h,f),this.AddDivertToResolve(d,l);}return r.AddContent(l),r},this.AddDivertToResolve=(r,i)=>{this._sequenceDivertsToResolve.push(new HO.SequenceDivertToResolve(r,i));},this.sequenceType=t,this.sequenceElements=[];for(let r of e){let i=r.content,a=null;i===null||i.length===0?a=r:a=new UO.Weave(i),this.sequenceElements.push(a),this.AddContent(a);}}get typeName(){return "Sequence"}ResolveReferences(e){super.ResolveReferences(e);for(let t of this._sequenceDivertsToResolve)t.divert.targetPath=t.targetContent.path;}};Ao.Sequence=yd;});var bd=E(Po=>{Object.defineProperty(Po,"__esModule",{value:true});Po.TunnelOnwards=void 0;var KO=Ee(),ts=je(),XO=Bt(),YO=ve(),ZO=ye(),QO=zn(),ex=ae(),tx=Lr(),Cd=class extends ZO.ParsedObject{constructor(){super(...arguments),this._overrideDivertTarget=null,this._divertAfter=null,this.GenerateRuntimeObject=()=>{let e=new KO.Container;if(e.AddContent(ts.ControlCommand.EvalStart()),this.divertAfter){let t=this.divertAfter.GenerateRuntimeObject(),r=t;if(r){let a=this.divertAfter.args;if(a!==null&&a.length>0){let s=-1,o=-1;for(let u=0;u<r.content.length;u+=1){let l=r.content[u];l&&(s==-1&&l.commandType===ts.ControlCommand.CommandType.EvalStart?s=u:l.commandType===ts.ControlCommand.CommandType.EvalEnd&&(o=u));}for(let u=s+1;u<o;u+=1){let l=r.content[u];l.parent=null,e.AddContent(r.content[u]);}}}let i=(0, ex.asOrNull)(t,XO.Divert);if(i!=null&&i.hasVariableTarget){let a=new tx.VariableReference(i.variableDivertName);e.AddContent(a);}else this._overrideDivertTarget=new YO.DivertTargetValue,e.AddContent(this._overrideDivertTarget);}else e.AddContent(new QO.Void);return e.AddContent(ts.ControlCommand.EvalEnd()),e.AddContent(ts.ControlCommand.PopTunnel()),e},this.toString=()=>` -> ${this._divertAfter}`;}get divertAfter(){return this._divertAfter}set divertAfter(e){this._divertAfter=e,this._divertAfter&&this.AddContent(this._divertAfter);}get typeName(){return "TunnelOnwards"}ResolveReferences(e){super.ResolveReferences(e),this.divertAfter&&this.divertAfter.targetContent&&(this._overrideDivertTarget.targetPath=this.divertAfter.targetContent.runtimePath);}};Po.TunnelOnwards=Cd;});var Ed=E(Oo=>{Object.defineProperty(Oo,"__esModule",{value:true});Oo.ListDefinition=void 0;var _d=st(),Sd=class{constructor(e,t){this._name=e||"",this._items=null,this._itemNameToValues=t||new Map;}get name(){return this._name}get items(){if(this._items==null){this._items=new Map;for(let[e,t]of this._itemNameToValues){let r=new _d.InkListItem(this.name,e);this._items.set(r.serialized(),t);}}return this._items}ValueForItem(e){if(!e.itemName)return 0;let t=this._itemNameToValues.get(e.itemName);return typeof t<"u"?t:0}ContainsItem(e){return !e.itemName||e.originName!=this.name?false:this._itemNameToValues.has(e.itemName)}ContainsItemWithName(e){return this._itemNameToValues.has(e)}TryGetItemWithValue(e,t){for(let[r,i]of this._itemNameToValues)if(i==e)return t=new _d.InkListItem(this.name,r),{result:t,exists:true};return t=_d.InkListItem.Null,{result:t,exists:false}}TryGetValueForItem(e,t){if(!e.itemName)return {result:0,exists:false};let r=this._itemNameToValues.get(e.itemName);return r?{result:r,exists:true}:{result:0,exists:false}}};Oo.ListDefinition=Sd;});var To=E(xo=>{Object.defineProperty(xo,"__esModule",{value:true});xo.ListDefinition=void 0;var nx=st(),rx=st(),ix=Ed(),sx=ve(),ax=ye(),ox=en(),wd=class extends ax.ParsedObject{get typeName(){return "ListDefinition"}get runtimeListDefinition(){var e;let t=new Map;for(let r of this.itemDefinitions)t.has(r.name)?this.Error(`List '${this.identifier}' contains duplicate items called '${r.name}'`):t.set(r.name,r.seriesValue);return new ix.ListDefinition(((e=this.identifier)===null||e===void 0?void 0:e.name)||"",t)}constructor(e){super(),this.itemDefinitions=e,this.identifier=null,this.variableAssignment=null,this._elementsByName=null,this.ItemNamed=r=>{if(this._elementsByName===null){this._elementsByName=new Map;for(let a of this.itemDefinitions)this._elementsByName.set(a.name,a);}return this._elementsByName.get(r)||null},this.GenerateRuntimeObject=()=>{var r,i;let a=new nx.InkList;for(let s of this.itemDefinitions)if(s.inInitialList){let o=new rx.InkListItem(((r=this.identifier)===null||r===void 0?void 0:r.name)||null,s.name||null);a.Add(o,s.seriesValue);}return a.SetInitialOriginName(((i=this.identifier)===null||i===void 0?void 0:i.name)||""),new sx.ListValue(a)};let t=1;for(let r of this.itemDefinitions)r.explicitValue!==null&&(t=r.explicitValue),r.seriesValue=t,t+=1;this.AddContent(e);}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.identifier,ox.SymbolType.List);}};xo.ListDefinition=wd;});var Ad=E(No=>{Object.defineProperty(No,"__esModule",{value:true});No.VariableAssignment=void 0;var ux=Ee(),lx=Xi(),cx=To(),hx=ye(),mv=en(),dx=vn(),fx=qr(),px=ae(),Dd=class extends hx.ParsedObject{get variableName(){return this.variableIdentifier.name}get typeName(){return this.isNewTemporaryDeclaration?"temp":this.isGlobalDeclaration?this.listDefinition!==null?"LIST":"VAR":"variable assignment"}get isDeclaration(){return this.isGlobalDeclaration||this.isNewTemporaryDeclaration}constructor({assignedExpression:e,isGlobalDeclaration:t,isTemporaryNewDeclaration:r,listDef:i,variableIdentifier:a}){super(),this._runtimeAssignment=null,this.expression=null,this.listDefinition=null,this.GenerateRuntimeObject=()=>{let s=null;if(this.isGlobalDeclaration?s=this.story:this.isNewTemporaryDeclaration&&(s=(0, lx.ClosestFlowBase)(this)),s&&s.AddNewVariableDeclaration(this),this.isGlobalDeclaration)return null;let o=new ux.Container;return this.expression?o.AddContent(this.expression.runtimeObject):this.listDefinition&&o.AddContent(this.listDefinition.runtimeObject),this._runtimeAssignment=new dx.VariableAssignment(this.variableName,this.isNewTemporaryDeclaration),o.AddContent(this._runtimeAssignment),o},this.toString=()=>`${this.isGlobalDeclaration?"VAR":this.isNewTemporaryDeclaration?"~ temp":""} ${this.variableName}`,this.variableIdentifier=a,this.isGlobalDeclaration=!!t,this.isNewTemporaryDeclaration=!!r,i instanceof cx.ListDefinition?(this.listDefinition=this.AddContent(i),this.listDefinition.variableAssignment=this,this.isGlobalDeclaration=true):e&&(this.expression=this.AddContent(e));}ResolveReferences(e){if(super.ResolveReferences(e),this.isDeclaration&&this.listDefinition===null&&e.CheckForNamingCollisions(this,this.variableIdentifier,this.isGlobalDeclaration?mv.SymbolType.Var:mv.SymbolType.Temp),this.isGlobalDeclaration){let t=(0, px.asOrNull)(this.expression,fx.VariableReference);t&&!t.isConstantReference&&!t.isListItemReference&&this.Error("global variable assignments cannot refer to other variables, only literal values, constants and list items");}if(!this.isNewTemporaryDeclaration){let t=e.ResolveVariableWithName(this.variableName,this);t.found||(this.variableName in this.story.constants?this.Error(`Can't re-assign to a constant (do you need to use VAR when declaring '${this.variableName}'?)`,this):this.Error(`Variable could not be found to assign to: '${this.variableName}'`,this)),this._runtimeAssignment&&(this._runtimeAssignment.isGlobal=t.isGlobal);}}};No.VariableAssignment=Dd;});var Kn=E(ko=>{Object.defineProperty(ko,"__esModule",{value:true});ko.Weave=void 0;var gv=pa(),Ct=kr(),Fo=Xa(),mx=Qa(),gx=Ee(),Io=jr(),yx=Bt(),vx=$r(),Cx=Wt(),zt=Ki(),bx=hv(),_x=ye(),Pd=vd(),Sx=bn(),Ex=bd(),wx=Ad(),bt=ae(),Od=class n extends _x.ParsedObject{get rootContainer(){return this._rootContainer||(this._rootContainer=this.GenerateRuntimeObject()),this._rootContainer}get namedWeavePoints(){return this._namedWeavePoints}get lastParsedSignificantObject(){if(this.content.length===0)return null;let e=null;for(let r=this.content.length-1;r>=0;--r){e=this.content[r];let i=(0, bt.asOrNull)(e,Sx.Text);if(!(i&&i.text===`
22
+ `)&&!this.IsGlobalDeclaration(e))break}let t=(0, bt.asOrNull)(e,n);return t&&(e=t.lastParsedSignificantObject),e}constructor(e,t=-1){super(),this.previousWeavePoint=null,this.addContentToPreviousWeavePoint=false,this.hasSeenChoiceInSection=false,this.currentContainer=null,this._unnamedGatherCount=0,this._choiceCount=0,this._rootContainer=null,this._namedWeavePoints=new Map,this.looseEnds=[],this.gatherPointsToResolve=[],this.ResolveWeavePointNaming=()=>{var r,i,a;let s=[...this.FindAll(zt.Gather)(o=>!(o.name===null||o.name===void 0)),...this.FindAll(Ct.Choice)(o=>!(o.name===null||o.name===void 0))];this._namedWeavePoints=new Map;for(let o of s){let u=this.namedWeavePoints.get(((r=o.identifier)===null||r===void 0?void 0:r.name)||"");if(u){let l=u instanceof zt.Gather?"gather":"choice",c=u;this.Error(`A ${l} with the same label name '${o.name}' already exists in this context on line ${c.debugMetadata?c.debugMetadata.startLineNumber:"NO DEBUG METADATA AVAILABLE"}`,o);}!((i=o.identifier)===null||i===void 0)&&i.name&&this.namedWeavePoints.set((a=o.identifier)===null||a===void 0?void 0:a.name,o);}},this.ConstructWeaveHierarchyFromIndentation=()=>{let r=0;for(;r<this.content.length;){let i=this.content[r];if(i instanceof Ct.Choice||i instanceof zt.Gather){let s=i.indentationDepth-1;if(s>this.baseIndentIndex){let o=r;for(;r<this.content.length;){let h=(0, bt.asOrNull)(this.content[r],Ct.Choice)||(0, bt.asOrNull)(this.content[r],zt.Gather);if(h!==null&&h.indentationDepth-1<=this.baseIndentIndex)break;r+=1;}let u=r-o,l=this.content.slice(o,o+u);this.content.splice(o,u);let c=new n(l,s);this.InsertContent(o,c),r=o;}}r+=1;}},this.DetermineBaseIndentationFromContent=r=>{for(let i of r)if(i instanceof Ct.Choice||i instanceof zt.Gather)return i.indentationDepth-1;return 0},this.GenerateRuntimeObject=()=>{this._rootContainer=new gx.Container,this.currentContainer=this._rootContainer,this.looseEnds=[],this.gatherPointsToResolve=[];for(let r of this.content)if(r instanceof Ct.Choice||r instanceof zt.Gather)this.AddRuntimeForWeavePoint(r);else if(r instanceof n){let i=r;this.AddRuntimeForNestedWeave(i),this.gatherPointsToResolve.splice(0,0,...i.gatherPointsToResolve);}else this.AddGeneralRuntimeContent(r.runtimeObject);return this.PassLooseEndsToAncestors(),this._rootContainer},this.AddRuntimeForGather=r=>{let i=!this.hasSeenChoiceInSection;this.hasSeenChoiceInSection=false;let a=r.runtimeContainer;if(r.name||(a.name=`g-${this._unnamedGatherCount}`,this._unnamedGatherCount+=1),i){if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(a);}else this.rootContainer.AddToNamedContentOnly(a);for(let s of this.looseEnds){let o=s;if(o instanceof zt.Gather&&o.indentationDepth==r.indentationDepth)continue;let u=null;if(o instanceof Io.Divert)u=o.runtimeObject;else {u=new yx.Divert;let l=o;if(!l.runtimeContainer)throw new Error;l.runtimeContainer.AddContent(u);}this.gatherPointsToResolve.push(new bx.GatherPointToResolve(u,a));}this.looseEnds=[],this.currentContainer=a;},this.AddRuntimeForWeavePoint=r=>{if(r instanceof zt.Gather)this.AddRuntimeForGather(r);else if(r instanceof Ct.Choice){if(!this.currentContainer)throw new Error;this.previousWeavePoint instanceof zt.Gather&&this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1);let i=r;if(this.currentContainer.AddContent(i.runtimeObject),!i.innerContentContainer)throw new Error;i.innerContentContainer.name=`c-${this._choiceCount}`,this.currentContainer.AddToNamedContentOnly(i.innerContentContainer),this._choiceCount+=1,this.hasSeenChoiceInSection=true;}this.addContentToPreviousWeavePoint=false,this.WeavePointHasLooseEnd(r)&&(this.looseEnds.push(r),(0, bt.asOrNull)(r,Ct.Choice)&&(this.addContentToPreviousWeavePoint=true)),this.previousWeavePoint=r;},this.AddRuntimeForNestedWeave=r=>{this.AddGeneralRuntimeContent(r.rootContainer),this.previousWeavePoint!==null&&(this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1),this.addContentToPreviousWeavePoint=false);},this.AddGeneralRuntimeContent=r=>{if(r!==null)if(this.addContentToPreviousWeavePoint){if(!this.previousWeavePoint||!this.previousWeavePoint.runtimeContainer)throw new Error;this.previousWeavePoint.runtimeContainer.AddContent(r);}else {if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(r);}},this.PassLooseEndsToAncestors=()=>{if(this.looseEnds.length===0)return;let r=null,i=null,a=false;for(let s=this.parent;s!==null;s=s.parent){let o=(0, bt.asOrNull)(s,n);o&&(!a&&r===null&&(r=o),a&&i===null&&(i=o)),(s instanceof Pd.Sequence||s instanceof Fo.Conditional)&&(a=true);}if(!(r===null&&i===null))for(let s=this.looseEnds.length-1;s>=0;s-=1){let o=this.looseEnds[s],u=false;if(a){if(o instanceof Ct.Choice&&r!==null)r.ReceiveLooseEnd(o),u=true;else if(!(o instanceof Ct.Choice)){let l=r||i;l!==null&&(l.ReceiveLooseEnd(o),u=true);}}else r?.hasOwnProperty("ReceiveLooseEnd")&&r.ReceiveLooseEnd(o),u=true;u&&this.looseEnds.splice(s,1);}},this.ReceiveLooseEnd=r=>{this.looseEnds.push(r);},this.WeavePointNamed=r=>{if(!this.namedWeavePoints)return null;let i=this.namedWeavePoints.get(r);return i||null},this.IsGlobalDeclaration=r=>{let i=(0, bt.asOrNull)(r,wx.VariableAssignment);return !!(i&&i.isGlobalDeclaration&&i.isDeclaration||(0, bt.asOrNull)(r,mx.ConstantDeclaration))},this.ContentThatFollowsWeavePoint=r=>{let i=[],a=r;if(a.content!==null)for(let u of a.content)this.IsGlobalDeclaration(u)||i.push(u);let s=(0, bt.asOrNull)(a.parent,n);if(s===null)throw new Error("Expected weave point parent to be weave?");let o=s.content.indexOf(a);for(let u=o+1;u<s.content.length;u+=1){let l=s.content[u];if(!this.IsGlobalDeclaration(l)){if(l instanceof Ct.Choice||l instanceof zt.Gather||l instanceof n)break;i.push(l);}}return i},this.ValidateTermination=r=>{if(this.lastParsedSignificantObject instanceof gv.AuthorWarning)return;if(this.looseEnds!==null&&this.looseEnds.length>0)for(let a of this.looseEnds){let s=this.ContentThatFollowsWeavePoint(a);this.ValidateFlowOfObjectsTerminates(s,a,r);}else {for(let a of this.content)if(a instanceof Ct.Choice||a instanceof Io.Divert)return;this.ValidateFlowOfObjectsTerminates(this.content,this,r);}},this.BadNestedTerminationHandler=r=>{let i=null;for(let s=r.parent;s!==null;s=s.parent)if(s instanceof Pd.Sequence||s instanceof Fo.Conditional){i=(0, bt.asOrNull)(s,Fo.Conditional);break}let a="Choices nested in conditionals or sequences need to explicitly divert afterwards.";i!==null&&i.FindAll(Ct.Choice)().length===1&&(a=`Choices with conditions should be written: '* {condition} choice'. Otherwise, ${a.toLowerCase()}`),this.Error(a,r);},this.ValidateFlowOfObjectsTerminates=(r,i,a)=>{let s=false,o=i;for(let u of r){if(u.Find(Io.Divert)(c=>!c.isThread&&!c.isTunnel&&!c.isFunctionCall&&!(c.parent instanceof vx.DivertTarget))!==null&&(s=true),u.Find(Ex.TunnelOnwards)()!=null){s=true;break}o=u;}if(!s){if(o instanceof gv.AuthorWarning)return;a(o);}},this.WeavePointHasLooseEnd=r=>{if(r.content===null)return true;for(let i=r.content.length-1;i>=0;--i){let a=(0, bt.asOrNull)(r.content[i],Io.Divert);if(a&&!(a.isThread||a.isTunnel||a.isFunctionCall))return false}return true},this.CheckForWeavePointNamingCollisions=()=>{if(!this.namedWeavePoints)return;let r=[];for(let i of this.ancestry){let a=(0, bt.asOrNull)(i,Cx.FlowBase);if(a)r.push(a);else break}for(let[i,a]of this.namedWeavePoints)for(let s of r){let o=s.ContentWithNameAtLevel(i);if(o&&o!==a){let u=`${a.GetType()} '${i}' has the same label name as a ${o.GetType()} (on ${o.debugMetadata})`;this.Error(u,a);}}},t==-1?this.baseIndentIndex=this.DetermineBaseIndentationFromContent(e):this.baseIndentIndex=t,this.AddContent(e),this.ConstructWeaveHierarchyFromIndentation();}get typeName(){return "Weave"}ResolveReferences(e){if(super.ResolveReferences(e),this.looseEnds!==null&&this.looseEnds.length>0){let t=false;for(let r=this.parent;r!==null;r=r.parent)if(r instanceof Pd.Sequence||r instanceof Fo.Conditional){t=true;break}t&&this.ValidateTermination(this.BadNestedTerminationHandler);}for(let t of this.gatherPointsToResolve)t.divert.targetPath=t.targetRuntimeObj.path;this.CheckForWeavePointNamingCollisions();}};ko.Weave=Od;});var ld=E(Ro=>{Object.defineProperty(Ro,"__esModule",{value:true});Ro.ConditionalSingleBranch=void 0;var yv=Ee(),Vo=je(),vv=Bt(),Dx=ye(),Ax=qt(),Px=ve(),Ox=bn(),xx=Kn(),Tx=ae(),xd=class extends Dx.ParsedObject{get ownExpression(){return this._ownExpression}set ownExpression(e){this._ownExpression=e,this._ownExpression&&this.AddContent(this._ownExpression);}constructor(e){super(),this._contentContainer=null,this._conditionalDivert=null,this._ownExpression=null,this._innerWeave=null,this.isTrueBranch=false,this.matchingEquality=false,this.isElse=false,this.isInline=false,this.returnDivert=null,this.GenerateRuntimeObject=()=>{if(this._innerWeave)for(let i of this._innerWeave.content){let a=(0, Tx.asOrNull)(i,Ox.Text);a&&a.text.startsWith("else:")&&this.Warning("Saw the text 'else:' which is being treated as content. Did you mean '- else:'?",a);}let t=new yv.Container,r=this.matchingEquality&&!this.isElse;if(r&&t.AddContent(Vo.ControlCommand.Duplicate()),this._conditionalDivert=new vv.Divert,this._conditionalDivert.isConditional=!this.isElse,!this.isTrueBranch&&!this.isElse){let i=this.ownExpression!==null;i&&t.AddContent(Vo.ControlCommand.EvalStart()),this.ownExpression&&this.ownExpression.GenerateIntoContainer(t),this.matchingEquality&&t.AddContent(Ax.NativeFunctionCall.CallWithName("==")),i&&t.AddContent(Vo.ControlCommand.EvalEnd());}return t.AddContent(this._conditionalDivert),this._contentContainer=this.GenerateRuntimeForContent(),this._contentContainer.name="b",this.isInline||this._contentContainer.InsertContent(new Px.StringValue(`
23
+ `),0),(r||this.isElse&&this.matchingEquality)&&this._contentContainer.InsertContent(Vo.ControlCommand.PopEvaluatedValue(),0),t.AddToNamedContentOnly(this._contentContainer),this.returnDivert=new vv.Divert,this._contentContainer.AddContent(this.returnDivert),t},this.GenerateRuntimeForContent=()=>this._innerWeave===null?new yv.Container:this._innerWeave.rootContainer,e&&(this._innerWeave=new xx.Weave(e),this.AddContent(this._innerWeave));}get typeName(){return "ConditionalSingleBranch"}ResolveReferences(e){if(!this._conditionalDivert||!this._contentContainer)throw new Error;this._conditionalDivert.targetPath=this._contentContainer.path,super.ResolveReferences(e);}};Ro.ConditionalSingleBranch=xd;});var bv=E($o=>{Object.defineProperty($o,"__esModule",{value:true});$o.CustomFlags=void 0;var Cv;(function(n){n[n.ParsingString=1]="ParsingString",n[n.TagActive=2]="TagActive";})(Cv||($o.CustomFlags=Cv={}));});var _v=E(jo=>{Object.defineProperty(jo,"__esModule",{value:true});jo.DebugMetadata=void 0;var Td=class n{constructor(){this.startLineNumber=0,this.endLineNumber=0,this.startCharacterNumber=0,this.endCharacterNumber=0,this.fileName=null,this.sourceName=null;}Merge(e){let t=new n;return t.fileName=this.fileName,t.sourceName=this.sourceName,this.startLineNumber<e.startLineNumber?(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=this.startCharacterNumber):this.startLineNumber>e.startLineNumber?(t.startLineNumber=e.startLineNumber,t.startCharacterNumber=e.startCharacterNumber):(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=Math.min(this.startCharacterNumber,e.startCharacterNumber)),this.endLineNumber>e.endLineNumber?(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=this.endCharacterNumber):this.endLineNumber<e.endLineNumber?(t.endLineNumber=e.endLineNumber,t.endCharacterNumber=e.endCharacterNumber):(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=Math.max(this.endCharacterNumber,e.endCharacterNumber)),t}toString(){return this.fileName!==null?`line ${this.startLineNumber} of ${this.fileName}"`:"line "+this.startLineNumber}};jo.DebugMetadata=Td;});var Sv=E(Lo=>{Object.defineProperty(Lo,"__esModule",{value:true});Lo.ExternalDeclaration=void 0;var Nx=ye(),Nd=class extends Nx.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t){super(),this.identifier=e,this.argumentNames=t,this.GenerateRuntimeObject=()=>(this.story.AddExternal(this),null);}get typeName(){return "EXTERNAL"}toString(){var e;return `EXTERNAL ${(e=this.identifier)===null||e===void 0?void 0:e.name}`}};Lo.ExternalDeclaration=Nd;});var Ev=E(qo=>{Object.defineProperty(qo,"__esModule",{value:true});qo.FlowDecl=void 0;var Fd=class{constructor(e,t,r){this.name=e,this.args=t,this.isFunction=r;}};qo.FlowDecl=Fd;});var kd=E(Bo=>{Object.defineProperty(Bo,"__esModule",{value:true});Bo.Wrap=void 0;var Fx=ye(),Id=class extends Fx.ParsedObject{constructor(e){super(),this._objToWrap=e,this.GenerateRuntimeObject=()=>this._objToWrap;}};Bo.Wrap=Id;});var wv=E(Wo=>{Object.defineProperty(Wo,"__esModule",{value:true});Wo.Glue=void 0;var Ix=kd(),Vd=class extends Ix.Wrap{constructor(e){super(e);}get typeName(){return "Glue"}};Wo.Glue=Vd;});var Go=E(Mo=>{Object.defineProperty(Mo,"__esModule",{value:true});Mo.Glue=void 0;var kx=rt(),Rd=class extends kx.InkObject{toString(){return "Glue"}};Mo.Glue=Rd;});var Av=E(zo=>{Object.defineProperty(zo,"__esModule",{value:true});zo.IncDecExpression=void 0;var Vx=co(),Dv=yt(),Rx=Wt(),$x=qt(),jx=ve(),Lx=vn(),qx=Lr(),Bx=Kn(),$d=class extends Dv.Expression{constructor(e,t,r){super(),this.varIdentifier=e,this._runtimeAssignment=null,this.expression=null,this.GenerateIntoContainer=i=>{var a,s;i.AddContent(new qx.VariableReference(((a=this.varIdentifier)===null||a===void 0?void 0:a.name)||null)),this.expression?this.expression.GenerateIntoContainer(i):i.AddContent(new jx.IntValue(1)),i.AddContent($x.NativeFunctionCall.CallWithName(this.isInc?"+":"-")),this._runtimeAssignment=new Lx.VariableAssignment(((s=this.varIdentifier)===null||s===void 0?void 0:s.name)||null,false),i.AddContent(this._runtimeAssignment);},this.toString=()=>{var i,a;return this.expression?`${(i=this.varIdentifier)===null||i===void 0?void 0:i.name}${this.isInc?" += ":" -= "}${this.expression}`:`${(a=this.varIdentifier)===null||a===void 0?void 0:a.name}`+(this.isInc?"++":"--")},t instanceof Dv.Expression?(this.expression=t,this.AddContent(this.expression),this.isInc=!!r):this.isInc=t;}get typeName(){return "IncDecExpression"}ResolveReferences(e){var t;super.ResolveReferences(e);let r=e.ResolveVariableWithName(((t=this.varIdentifier)===null||t===void 0?void 0:t.name)||"",this);if(r.found||this.Error(`variable for ${this.incrementDecrementWord} could not be found: '${this.varIdentifier}' after searching: {this.descriptionOfScope}`),!this._runtimeAssignment)throw new Error;this._runtimeAssignment.isGlobal=r.isGlobal,!(this.parent instanceof Bx.Weave)&&!(this.parent instanceof Rx.FlowBase)&&!(this.parent instanceof Vx.ContentList)&&this.Error(`Can't use ${this.incrementDecrementWord} as sub-expression`);}get incrementDecrementWord(){return this.isInc?"increment":"decrement"}};zo.IncDecExpression=$d;});var Ld=E(Jo=>{Object.defineProperty(Jo,"__esModule",{value:true});Jo.IncludedFile=void 0;var Wx=ye(),jd=class extends Wx.ParsedObject{constructor(e){super(),this.includedStory=e,this.GenerateRuntimeObject=()=>null;}get typeName(){return "IncludedFile"}};Jo.IncludedFile=jd;});var Pv=E(Ho=>{Object.defineProperty(Ho,"__esModule",{value:true});Ho.InfixOperator=void 0;var qd=class{constructor(e,t,r){this.type=e,this.precedence=t,this.requireWhitespace=r,this.toString=()=>this.type;}};Ho.InfixOperator=qd;});var Wd=E(Uo=>{Object.defineProperty(Uo,"__esModule",{value:true});Uo.Knot=void 0;var Mx=Wt(),Ov=Vr(),Bd=class extends Mx.FlowBase{get flowLevel(){return Ov.FlowLevel.Knot}constructor(e,t,r,i){super(e,t,r,i);}get typeName(){return this.isFunction?"Function":"Knot"}ResolveReferences(e){super.ResolveReferences(e);let t=this.story;for(let r in this.subFlowsByName){let i=t.ContentWithNameAtLevel(r,Ov.FlowLevel.Knot,false);if(i){let a=this.subFlowsByName.get(r),s=`Stitch '${a?a.name:"NO STITCH FOUND"}' has the same name as a knot (on ${i.debugMetadata})`;this.Error(s,a);}}}};Uo.Knot=Bd;});var xv=E(Ko=>{Object.defineProperty(Ko,"__esModule",{value:true});Ko.List=void 0;var Gx=yt(),zx=st(),Jx=st(),Hx=ve(),Md=class extends Gx.Expression{constructor(e){super(),this.itemIdentifierList=e,this.GenerateIntoContainer=t=>{var r,i;let a=new zx.InkList;if(this.itemIdentifierList!=null)for(let s of this.itemIdentifierList){let o=((r=s?.name)===null||r===void 0?void 0:r.split("."))||[],u=null,l="";o.length>1?(u=o[0],l=o[1]):l=o[0];let c=this.story.ResolveListItem(u,l,this);if(c===null)u===null?this.Error(`Could not find list definition that contains item '${s}'`):this.Error(`Could not find list item ${s}`);else {if(c.parent==null){this.Error(`Could not find list definition for item ${s}`);return}u||(u=((i=c.parent.identifier)===null||i===void 0?void 0:i.name)||null);let h=new Jx.InkListItem(u,c.name||null);a.has(h.serialized())?this.Warning(`Duplicate of item '${s}' in list.`):a.Add(h,c.seriesValue);}}t.AddContent(new Hx.ListValue(a));};}get typeName(){return "List"}};Ko.List=Md;});var zd=E(Xo=>{Object.defineProperty(Xo,"__esModule",{value:true});Xo.ListElementDefinition=void 0;var Ux=ye(),Kx=en(),Gd=class extends Ux.ParsedObject{get fullName(){var e;let t=this.parent;if(t===null)throw new Error("Can't get full name without a parent list.");return `${(e=t.identifier)===null||e===void 0?void 0:e.name}.${this.name}`}get typeName(){return "ListElement"}get name(){var e;return ((e=this.indentifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t,r=null){super(),this.indentifier=e,this.inInitialList=t,this.explicitValue=r,this.seriesValue=0,this.parent=null,this.GenerateRuntimeObject=()=>{throw new Error("Not implemented.")},this.toString=()=>this.fullName,this.parent=this.parent;}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.indentifier,Kx.SymbolType.ListItem);}};Xo.ListElementDefinition=Gd;});var Jd=E(Yo=>{Object.defineProperty(Yo,"__esModule",{value:true});Yo.StatementLevel=void 0;var Tv;(function(n){n[n.InnerBlock=0]="InnerBlock",n[n.Stitch=1]="Stitch",n[n.Knot=2]="Knot",n[n.Top=3]="Top";})(Tv||(Yo.StatementLevel=Tv={}));});var Ud=E(Zo=>{Object.defineProperty(Zo,"__esModule",{value:true});Zo.Stitch=void 0;var Xx=Wt(),Yx=Vr(),Hd=class extends Xx.FlowBase{get flowLevel(){return Yx.FlowLevel.Stitch}constructor(e,t,r,i){super(e,t,r,i),this.baseToString=this.toString,this.toString=()=>`${this.parent!==null?this.parent+" > ":""}${this.baseToString()}`;}get typeName(){return "Stitch"}};Zo.Stitch=Hd;});var eu=E(Qo=>{Object.defineProperty(Qo,"__esModule",{value:true});Qo.Tag=void 0;var Zx=rt(),Kd=class extends Zx.InkObject{constructor(e){super(),this.text=e.toString()||"";}toString(){return "# "+this.text}};Qo.Tag=Kd;});var Yd=E(tu=>{Object.defineProperty(tu,"__esModule",{value:true});tu.Choice=void 0;var Qx=nt(),eT=$e(),tT=rt(),Xd=class n extends tT.InkObject{constructor(){super(...arguments),this.text="",this.index=0,this.threadAtGeneration=null,this.sourcePath="",this.targetPath=null,this.isInvisibleDefault=false,this.tags=null,this.originalThreadIndex=0;}get pathStringOnChoice(){return this.targetPath===null?(0, eT.throwNullException)("Choice.targetPath"):this.targetPath.toString()}set pathStringOnChoice(e){this.targetPath=new Qx.Path(e);}Clone(){let e=new n;return e.text=this.text,e.sourcePath=this.sourcePath,e.index=this.index,e.targetPath=this.targetPath,e.originalThreadIndex=this.originalThreadIndex,e.isInvisibleDefault=this.isInvisibleDefault,this.threadAtGeneration!==null&&(e.threadAtGeneration=this.threadAtGeneration.Copy()),e}};tu.Choice=Xd;});var Qd=E(nu=>{Object.defineProperty(nu,"__esModule",{value:true});nu.ListDefinitionsOrigin=void 0;var nT=st(),rT=ve(),iT=$e(),Zd=class{constructor(e){this._lists=new Map,this._allUnambiguousListValueCache=new Map;for(let t of e){this._lists.set(t.name,t);for(let[r,i]of t.items){let a=nT.InkListItem.fromSerializedKey(r),s=new rT.ListValue(a,i);if(!a.itemName)throw new Error("item.itemName is null or undefined.");this._allUnambiguousListValueCache.set(a.itemName,s),this._allUnambiguousListValueCache.set(a.fullName,s);}}}get lists(){let e=[];for(let[,t]of this._lists)e.push(t);return e}TryListGetDefinition(e,t){if(e===null)return {result:t,exists:false};let r=this._lists.get(e);return r?{result:r,exists:true}:{result:t,exists:false}}FindSingleItemListWithName(e){if(e===null)return (0, iT.throwNullException)("name");let t=this._allUnambiguousListValueCache.get(e);return typeof t<"u"?t:null}};nu.ListDefinitionsOrigin=Zd;});var Wr=E(au=>{Object.defineProperty(au,"__esModule",{value:true});au.JsonSerialisation=void 0;var ru=Ee(),ot=ve(),Nv=Go(),ne=je(),Br=Jn(),Fv=Bt(),Iv=Ra(),ef=Lr(),kv=vn(),tf=qt(),Vv=zn(),Rv=eu(),sT=nt(),$v=Yd(),aT=Ed(),oT=Qd(),iu=st(),we=ae(),Xn=$e(),su=class n{static JArrayToRuntimeObjList(e,t=false){let r=e.length;t&&r--;let i=[];for(let a=0;a<r;a++){let s=e[a],o=this.JTokenToRuntimeObject(s);if(o===null)return (0, Xn.throwNullException)("runtimeObj");i.push(o);}return i}static WriteDictionaryRuntimeObjs(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WritePropertyStart(r),this.WriteRuntimeObject(e,i),e.WritePropertyEnd();e.WriteObjectEnd();}static WriteListRuntimeObjs(e,t){e.WriteArrayStart();for(let r of t)this.WriteRuntimeObject(e,r);e.WriteArrayEnd();}static WriteIntDictionary(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WriteIntProperty(r,i);e.WriteObjectEnd();}static WriteRuntimeObject(e,t){let r=(0, we.asOrNull)(t,ru.Container);if(r){this.WriteRuntimeContainer(e,r);return}let i=(0, we.asOrNull)(t,Fv.Divert);if(i){let p="->";i.isExternal?p="x()":i.pushesToStack&&(i.stackPushType==Br.PushPopType.Function?p="f()":i.stackPushType==Br.PushPopType.Tunnel&&(p="->t->"));let C;i.hasVariableTarget?C=i.variableDivertName:C=i.targetPathString,e.WriteObjectStart(),e.WriteProperty(p,C),i.hasVariableTarget&&e.WriteProperty("var",true),i.isConditional&&e.WriteProperty("c",true),i.externalArgs>0&&e.WriteIntProperty("exArgs",i.externalArgs),e.WriteObjectEnd();return}let a=(0, we.asOrNull)(t,Iv.ChoicePoint);if(a){e.WriteObjectStart(),e.WriteProperty("*",a.pathStringOnChoice),e.WriteIntProperty("flg",a.flags),e.WriteObjectEnd();return}let s=(0, we.asOrNull)(t,ot.BoolValue);if(s){e.WriteBool(s.value);return}let o=(0, we.asOrNull)(t,ot.IntValue);if(o){e.WriteInt(o.value);return}let u=(0, we.asOrNull)(t,ot.FloatValue);if(u){e.WriteFloat(u.value);return}let l=(0, we.asOrNull)(t,ot.StringValue);if(l){l.isNewline?e.Write(`
24
+ `,false):(e.WriteStringStart(),e.WriteStringInner("^"),e.WriteStringInner(l.value),e.WriteStringEnd());return}let c=(0, we.asOrNull)(t,ot.ListValue);if(c){this.WriteInkList(e,c);return}let h=(0, we.asOrNull)(t,ot.DivertTargetValue);if(h){if(e.WriteObjectStart(),h.value===null)return (0, Xn.throwNullException)("divTargetVal.value");e.WriteProperty("^->",h.value.componentsString),e.WriteObjectEnd();return}let f=(0, we.asOrNull)(t,ot.VariablePointerValue);if(f){e.WriteObjectStart(),e.WriteProperty("^var",f.value),e.WriteIntProperty("ci",f.contextIndex),e.WriteObjectEnd();return}if((0, we.asOrNull)(t,Nv.Glue)){e.Write("<>");return}let m=(0, we.asOrNull)(t,ne.ControlCommand);if(m){e.Write(n._controlCommandNames[m.commandType]);return}let y=(0, we.asOrNull)(t,tf.NativeFunctionCall);if(y){let p=y.name;p=="^"&&(p="L^"),e.Write(p);return}let S=(0, we.asOrNull)(t,ef.VariableReference);if(S){e.WriteObjectStart();let p=S.pathStringForCount;p!=null?e.WriteProperty("CNT?",p):e.WriteProperty("VAR?",S.name),e.WriteObjectEnd();return}let _=(0, we.asOrNull)(t,kv.VariableAssignment);if(_){e.WriteObjectStart();let p=_.isGlobal?"VAR=":"temp=";e.WriteProperty(p,_.variableName),_.isNewDeclaration||e.WriteProperty("re",true),e.WriteObjectEnd();return}if((0, we.asOrNull)(t,Vv.Void)){e.Write("void");return}let g=(0, we.asOrNull)(t,Rv.Tag);if(g){e.WriteObjectStart(),e.WriteProperty("#",g.text),e.WriteObjectEnd();return}let v=(0, we.asOrNull)(t,$v.Choice);if(v){this.WriteChoice(e,v);return}throw new Error("Failed to convert runtime object to Json token: "+t)}static JObjectToDictionaryRuntimeObjs(e){let t=new Map;for(let r in e)if(e.hasOwnProperty(r)){let i=this.JTokenToRuntimeObject(e[r]);if(i===null)return (0, Xn.throwNullException)("inkObject");t.set(r,i);}return t}static JObjectToIntDictionary(e){let t=new Map;for(let r in e)e.hasOwnProperty(r)&&t.set(r,parseInt(e[r]));return t}static JTokenToRuntimeObject(e){if(typeof e=="number"&&!isNaN(e)||typeof e=="boolean")return ot.Value.Create(e);if(typeof e=="string"){let t=e.toString(),r=/^([0-9]+.[0-9]+f)$/.exec(t);if(r)return new ot.FloatValue(parseFloat(r[0]));let i=t[0];if(i=="^")return new ot.StringValue(t.substring(1));if(i==`
25
+ `&&t.length==1)return new ot.StringValue(`
26
+ `);if(t=="<>")return new Nv.Glue;for(let a=0;a<n._controlCommandNames.length;++a){let s=n._controlCommandNames[a];if(t==s)return new ne.ControlCommand(a)}if(t=="L^"&&(t="^"),tf.NativeFunctionCall.CallExistsWithName(t))return tf.NativeFunctionCall.CallWithName(t);if(t=="->->")return ne.ControlCommand.PopTunnel();if(t=="~ret")return ne.ControlCommand.PopFunction();if(t=="void")return new Vv.Void}if(typeof e=="object"&&!Array.isArray(e)){let t=e,r;if(t["^->"])return r=t["^->"],new ot.DivertTargetValue(new sT.Path(r.toString()));if(t["^var"]){r=t["^var"];let c=new ot.VariablePointerValue(r.toString());return "ci"in t&&(r=t.ci,c.contextIndex=parseInt(r)),c}let i=false,a=false,s=Br.PushPopType.Function,o=false;if((r=t["->"])?i=true:(r=t["f()"])?(i=true,a=true,s=Br.PushPopType.Function):(r=t["->t->"])?(i=true,a=true,s=Br.PushPopType.Tunnel):(r=t["x()"])&&(i=true,o=true,a=false,s=Br.PushPopType.Function),i){let c=new Fv.Divert;c.pushesToStack=a,c.stackPushType=s,c.isExternal=o;let h=r.toString();return (r=t.var)?c.variableDivertName=h:c.targetPathString=h,c.isConditional=!!t.c,o&&(r=t.exArgs)&&(c.externalArgs=parseInt(r)),c}if(r=t["*"]){let c=new Iv.ChoicePoint;return c.pathStringOnChoice=r.toString(),(r=t.flg)&&(c.flags=parseInt(r)),c}if(r=t["VAR?"])return new ef.VariableReference(r.toString());if(r=t["CNT?"]){let c=new ef.VariableReference;return c.pathStringForCount=r.toString(),c}let u=false,l=false;if((r=t["VAR="])?(u=true,l=true):(r=t["temp="])&&(u=true,l=false),u){let c=r.toString(),h=!t.re,f=new kv.VariableAssignment(c,h);return f.isGlobal=l,f}if(t["#"]!==void 0)return r=t["#"],new Rv.Tag(r.toString());if(r=t.list){let c=r,h=new iu.InkList;if(r=t.origins){let f=r;h.SetInitialOriginNames(f);}for(let f in c)if(c.hasOwnProperty(f)){let d=c[f],m=new iu.InkListItem(f),y=parseInt(d);h.Add(m,y);}return new ot.ListValue(h)}if(t.originalChoicePath!=null)return this.JObjectToChoice(t)}if(Array.isArray(e))return this.JArrayToContainer(e);if(e==null)return null;throw new Error("Failed to convert token to runtime object: "+this.toJson(e,["parent"]))}static toJson(e,t,r){return JSON.stringify(e,(i,a)=>t?.some(s=>s===i)?void 0:a,r)}static WriteRuntimeContainer(e,t,r=false){if(e.WriteArrayStart(),t===null)return (0, Xn.throwNullException)("container");for(let u of t.content)this.WriteRuntimeObject(e,u);let i=t.namedOnlyContent,a=t.countFlags,s=t.name!=null&&!r,o=i!=null||a>0||s;if(o&&e.WriteObjectStart(),i!=null)for(let[u,l]of i){let c=u,h=(0, we.asOrNull)(l,ru.Container);e.WritePropertyStart(c),this.WriteRuntimeContainer(e,h,true),e.WritePropertyEnd();}a>0&&e.WriteIntProperty("#f",a),s&&e.WriteProperty("#n",t.name),o?e.WriteObjectEnd():e.WriteNull(),e.WriteArrayEnd();}static JArrayToContainer(e){let t=new ru.Container;t.content=this.JArrayToRuntimeObjList(e,true);let r=e[e.length-1];if(r!=null){let i=new Map;for(let a in r)if(a=="#f")t.countFlags=parseInt(r[a]);else if(a=="#n")t.name=r[a].toString();else {let s=this.JTokenToRuntimeObject(r[a]),o=(0, we.asOrNull)(s,ru.Container);o&&(o.name=a),i.set(a,s);}t.namedOnlyContent=i;}return t}static JObjectToChoice(e){let t=new $v.Choice;return t.text=e.text.toString(),t.index=parseInt(e.index),t.sourcePath=e.originalChoicePath.toString(),t.originalThreadIndex=parseInt(e.originalThreadIndex),t.pathStringOnChoice=e.targetPath.toString(),t.tags=this.JArrayToTags(e),t.isInvisibleDefault=!!e.isInvisibleDefault,t}static JArrayToTags(e){return e.tags?e.tags:null}static WriteChoice(e,t){e.WriteObjectStart(),e.WriteProperty("text",t.text),e.WriteIntProperty("index",t.index),e.WriteProperty("originalChoicePath",t.sourcePath),e.WriteIntProperty("originalThreadIndex",t.originalThreadIndex),e.WriteProperty("targetPath",t.pathStringOnChoice),e.WriteProperty("isInvisibleDefault",t.isInvisibleDefault),this.WriteChoiceTags(e,t),e.WriteObjectEnd();}static WriteChoiceTags(e,t){if(t.tags&&t.tags.length>0){e.WritePropertyStart("tags"),e.WriteArrayStart();for(let r of t.tags)e.Write(r);e.WriteArrayEnd(),e.WritePropertyEnd();}}static WriteInkList(e,t){let r=t.value;if(r===null)return (0, Xn.throwNullException)("rawList");e.WriteObjectStart(),e.WritePropertyStart("list"),e.WriteObjectStart();for(let[i,a]of r){let s=iu.InkListItem.fromSerializedKey(i),o=a;if(s.itemName===null)return (0, Xn.throwNullException)("item.itemName");e.WritePropertyNameStart(),e.WritePropertyNameInner(s.originName?s.originName:"?"),e.WritePropertyNameInner("."),e.WritePropertyNameInner(s.itemName),e.WritePropertyNameEnd(),e.Write(o),e.WritePropertyEnd();}if(e.WriteObjectEnd(),e.WritePropertyEnd(),r.Count==0&&r.originNames!=null&&r.originNames.length>0){e.WritePropertyStart("origins"),e.WriteArrayStart();for(let i of r.originNames)e.Write(i);e.WriteArrayEnd(),e.WritePropertyEnd();}e.WriteObjectEnd();}static ListDefinitionsToJToken(e){let t={};for(let r of e.lists){let i={};for(let[a,s]of r.items){let o=iu.InkListItem.fromSerializedKey(a);if(o.itemName===null)return (0, Xn.throwNullException)("item.itemName");i[o.itemName]=s;}t[r.name]=i;}return t}static JTokenToListDefinitions(e){let t=e,r=[];for(let i in t)if(t.hasOwnProperty(i)){let a=i.toString(),s=t[i],o=new Map;for(let l in s)if(t.hasOwnProperty(i)){let c=s[l];o.set(l,parseInt(c));}let u=new aT.ListDefinition(a,o);r.push(u);}return new oT.ListDefinitionsOrigin(r)}};au.JsonSerialisation=su;su._controlCommandNames=(()=>{let n=[];n[ne.ControlCommand.CommandType.EvalStart]="ev",n[ne.ControlCommand.CommandType.EvalOutput]="out",n[ne.ControlCommand.CommandType.EvalEnd]="/ev",n[ne.ControlCommand.CommandType.Duplicate]="du",n[ne.ControlCommand.CommandType.PopEvaluatedValue]="pop",n[ne.ControlCommand.CommandType.PopFunction]="~ret",n[ne.ControlCommand.CommandType.PopTunnel]="->->",n[ne.ControlCommand.CommandType.BeginString]="str",n[ne.ControlCommand.CommandType.EndString]="/str",n[ne.ControlCommand.CommandType.NoOp]="nop",n[ne.ControlCommand.CommandType.ChoiceCount]="choiceCnt",n[ne.ControlCommand.CommandType.Turns]="turn",n[ne.ControlCommand.CommandType.TurnsSince]="turns",n[ne.ControlCommand.CommandType.ReadCount]="readc",n[ne.ControlCommand.CommandType.Random]="rnd",n[ne.ControlCommand.CommandType.SeedRandom]="srnd",n[ne.ControlCommand.CommandType.VisitIndex]="visit",n[ne.ControlCommand.CommandType.SequenceShuffleIndex]="seq",n[ne.ControlCommand.CommandType.StartThread]="thread",n[ne.ControlCommand.CommandType.Done]="done",n[ne.ControlCommand.CommandType.End]="end",n[ne.ControlCommand.CommandType.ListFromInt]="listInt",n[ne.ControlCommand.CommandType.ListRange]="range",n[ne.ControlCommand.CommandType.ListRandom]="lrnd",n[ne.ControlCommand.CommandType.BeginTag]="#",n[ne.ControlCommand.CommandType.EndTag]="/#";for(let e=0;e<ne.ControlCommand.CommandType.TOTAL_VALUES;++e)if(n[e]==null)throw new Error("Control command not accounted for in serialisation");return n})();});var sf=E(is=>{Object.defineProperty(is,"__esModule",{value:true});is.CallStack=void 0;var nf=Jn(),jv=nt(),uT=ss(),Lv=Wr(),lT=ve(),cT=Mn(),ns=Hi(),hT=ki(),qv=Tr(),rf=$e(),rs=class n{get elements(){return this.callStack}get depth(){return this.elements.length}get currentElement(){let t=this._threads[this._threads.length-1].callstack;return t[t.length-1]}get currentElementIndex(){return this.callStack.length-1}get currentThread(){return this._threads[this._threads.length-1]}set currentThread(e){hT.Debug.Assert(this._threads.length==1,"Shouldn't be directly setting the current thread when we have a stack of them"),this._threads.length=0,this._threads.push(e);}get canPop(){return this.callStack.length>1}constructor(){if(this._threadCounter=0,this._startOfRoot=ns.Pointer.Null,arguments[0]instanceof uT.Story){let e=arguments[0];this._startOfRoot=ns.Pointer.StartOf(e.rootContentContainer),this.Reset();}else {let e=arguments[0];this._threads=[];for(let t of e._threads)this._threads.push(t.Copy());this._threadCounter=e._threadCounter,this._startOfRoot=e._startOfRoot.copy();}}Reset(){this._threads=[],this._threads.push(new n.Thread),this._threads[0].callstack.push(new n.Element(nf.PushPopType.Tunnel,this._startOfRoot));}SetJsonToken(e,t){this._threads.length=0;let r=e.threads;for(let i of r){let a=i,s=new n.Thread(a,t);this._threads.push(s);}this._threadCounter=parseInt(e.threadCounter),this._startOfRoot=ns.Pointer.StartOf(t.rootContentContainer);}WriteJson(e){e.WriteObject(t=>{t.WritePropertyStart("threads"),t.WriteArrayStart();for(let r of this._threads)r.WriteJson(t);t.WriteArrayEnd(),t.WritePropertyEnd(),t.WritePropertyStart("threadCounter"),t.WriteInt(this._threadCounter),t.WritePropertyEnd();});}PushThread(){let e=this.currentThread.Copy();this._threadCounter++,e.threadIndex=this._threadCounter,this._threads.push(e);}ForkThread(){let e=this.currentThread.Copy();return this._threadCounter++,e.threadIndex=this._threadCounter,e}PopThread(){if(this.canPopThread)this._threads.splice(this._threads.indexOf(this.currentThread),1);else throw new Error("Can't pop thread")}get canPopThread(){return this._threads.length>1&&!this.elementIsEvaluateFromGame}get elementIsEvaluateFromGame(){return this.currentElement.type==nf.PushPopType.FunctionEvaluationFromGame}Push(e,t=0,r=0){let i=new n.Element(e,this.currentElement.currentPointer,false);i.evaluationStackHeightWhenPushed=t,i.functionStartInOutputStream=r,this.callStack.push(i);}CanPop(e=null){return this.canPop?e==null?true:this.currentElement.type==e:false}Pop(e=null){if(this.CanPop(e)){this.callStack.pop();return}else throw new Error("Mismatched push/pop in Callstack")}GetTemporaryVariableWithName(e,t=-1){t==-1&&(t=this.currentElementIndex+1);let r=this.callStack[t-1],i=(0, qv.tryGetValueFromMap)(r.temporaryVariables,e,null);return i.exists?i.result:null}SetTemporaryVariable(e,t,r,i=-1){i==-1&&(i=this.currentElementIndex+1);let a=this.callStack[i-1];if(!r&&!a.temporaryVariables.get(e))throw new Error("Could not find temporary variable to set: "+e);let s=(0, qv.tryGetValueFromMap)(a.temporaryVariables,e,null);s.exists&&lT.ListValue.RetainListOriginsForAssignment(s.result,t),a.temporaryVariables.set(e,t);}ContextForVariableNamed(e){return this.currentElement.temporaryVariables.get(e)?this.currentElementIndex+1:0}ThreadWithIndex(e){let t=this._threads.filter(r=>{if(r.threadIndex==e)return r});return t.length>0?t[0]:null}get callStack(){return this.currentThread.callstack}get callStackTrace(){let e=new cT.StringBuilder;for(let t=0;t<this._threads.length;t++){let r=this._threads[t],i=t==this._threads.length-1;e.AppendFormat(`=== THREAD {0}/{1} {2}===
27
+ `,t+1,this._threads.length,i?"(current) ":"");for(let a=0;a<r.callstack.length;a++){r.callstack[a].type==nf.PushPopType.Function?e.Append(" [FUNCTION] "):e.Append(" [TUNNEL] ");let s=r.callstack[a].currentPointer;if(!s.isNull){if(e.Append("<SOMEWHERE IN "),s.container===null)return (0, rf.throwNullException)("pointer.container");e.Append(s.container.path.toString()),e.AppendLine(">");}}}return e.toString()}};is.CallStack=rs;(function(n){class e{constructor(i,a,s=false){this.evaluationStackHeightWhenPushed=0,this.functionStartInOutputStream=0,this.currentPointer=a.copy(),this.inExpressionEvaluation=s,this.temporaryVariables=new Map,this.type=i;}Copy(){let i=new e(this.type,this.currentPointer,this.inExpressionEvaluation);return i.temporaryVariables=new Map(this.temporaryVariables),i.evaluationStackHeightWhenPushed=this.evaluationStackHeightWhenPushed,i.functionStartInOutputStream=this.functionStartInOutputStream,i}}n.Element=e;class t{constructor(){if(this.threadIndex=0,this.previousPointer=ns.Pointer.Null,this.callstack=[],arguments[0]&&arguments[1]){let i=arguments[0],a=arguments[1];this.threadIndex=parseInt(i.threadIndex);let s=i.callstack;for(let u of s){let l=u,c=parseInt(l.type),h=ns.Pointer.Null,f,d=l.cPath;if(typeof d<"u"){f=d.toString();let _=a.ContentAtPath(new jv.Path(f));if(h.container=_.container,h.index=parseInt(l.idx),_.obj==null)throw new Error("When loading state, internal story location couldn't be found: "+f+". Has the story changed since this save data was created?");_.approximate&&(h.container!==null?a.Warning("When loading state, exact internal story location couldn't be found: '"+f+"', so it was approximated to '"+h.container.path.toString()+"' to recover. Has the story changed since this save data was created?"):a.Warning("When loading state, exact internal story location couldn't be found: '"+f+"' and it may not be recoverable. Has the story changed since this save data was created?"));}let m=!!l.exp,y=new e(c,h,m),S=l.temp;typeof S<"u"?y.temporaryVariables=Lv.JsonSerialisation.JObjectToDictionaryRuntimeObjs(S):y.temporaryVariables.clear(),this.callstack.push(y);}let o=i.previousContentObject;if(typeof o<"u"){let u=new jv.Path(o.toString());this.previousPointer=a.PointerAtPath(u);}}}Copy(){let i=new t;i.threadIndex=this.threadIndex;for(let a of this.callstack)i.callstack.push(a.Copy());return i.previousPointer=this.previousPointer.copy(),i}WriteJson(i){i.WriteObjectStart(),i.WritePropertyStart("callstack"),i.WriteArrayStart();for(let a of this.callstack){if(i.WriteObjectStart(),!a.currentPointer.isNull){if(a.currentPointer.container===null)return (0, rf.throwNullException)("el.currentPointer.container");i.WriteProperty("cPath",a.currentPointer.container.path.componentsString),i.WriteIntProperty("idx",a.currentPointer.index);}i.WriteProperty("exp",a.inExpressionEvaluation),i.WriteIntProperty("type",a.type),a.temporaryVariables.size>0&&(i.WritePropertyStart("temp"),Lv.JsonSerialisation.WriteDictionaryRuntimeObjs(i,a.temporaryVariables),i.WritePropertyEnd()),i.WriteObjectEnd();}if(i.WriteArrayEnd(),i.WritePropertyEnd(),i.WriteIntProperty("threadIndex",this.threadIndex),!this.previousPointer.isNull){let a=this.previousPointer.Resolve();if(a===null)return (0, rf.throwNullException)("this.previousPointer.Resolve()");i.WriteProperty("previousContentObject",a.path.toString());}i.WriteObjectEnd();}}n.Thread=t;})(rs||(is.CallStack=rs={}));});var Wv=E(uu=>{Object.defineProperty(uu,"__esModule",{value:true});uu.VariablesState=void 0;var Ie=ve(),dT=Ri(),Bv=Wr(),Le=ae(),as=Tr(),_n=$e();function fT(){return class{}}var ou=class n extends fT(){variableChangedEvent(e,t){for(let r of this.variableChangedEventCallbacks)r(e,t);}StartVariableObservation(){this._batchObservingVariableChanges=true,this._changedVariablesForBatchObs=new Set;}CompleteVariableObservation(){this._batchObservingVariableChanges=false;let e=new Map;if(this._changedVariablesForBatchObs!=null)for(let t of this._changedVariablesForBatchObs){let r=this._globalVariables.get(t);this.variableChangedEvent(t,r);}if(this.patch!=null)for(let t of this.patch.changedVariables){let r=this.patch.TryGetGlobal(t,null);r.exists&&e.set(t,r);}return this._changedVariablesForBatchObs=null,e}NotifyObservers(e){for(let[t,r]of e)this.variableChangedEvent(t,r);}get callStack(){return this._callStack}set callStack(e){this._callStack=e;}$(e,t){if(typeof t>"u"){let r=null;return this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists)?r.result.valueObject:(r=this._globalVariables.get(e),typeof r>"u"&&(r=this._defaultGlobalVariables.get(e)),typeof r<"u"?r.valueObject:null)}else {if(typeof this._defaultGlobalVariables.get(e)>"u")throw new dT.StoryException("Cannot assign to a variable ("+e+") that hasn't been declared in the story");let r=Ie.Value.Create(t);if(r==null)throw t==null?new Error("Cannot pass null to VariableState"):new Error("Invalid value passed to VariableState: "+t.toString());this.SetGlobal(e,r);}}constructor(e,t){super(),this.variableChangedEventCallbacks=[],this.patch=null,this._defaultGlobalVariables=new Map,this._changedVariablesForBatchObs=new Set,this._batchObservingVariableChanges=false,this._globalVariables=new Map,this._callStack=e,this._listDefsOrigin=t;try{return new Proxy(this,{get(i,a){return a in i?i[a]:i.$(a)},set(i,a,s){return a in i?i[a]=s:i.$(a,s),!0},ownKeys(i){return [...new Set([...i._defaultGlobalVariables.keys(),...i._globalVariables.keys()])]},getOwnPropertyDescriptor(i,a){return {enumerable:!0,configurable:!0,value:i.$(a)}}})}catch{}}ApplyPatch(){if(this.patch===null)return (0, _n.throwNullException)("this.patch");for(let[e,t]of this.patch.globals)this._globalVariables.set(e,t);if(this._changedVariablesForBatchObs!==null)for(let e of this.patch.changedVariables)this._changedVariablesForBatchObs.add(e);this.patch=null;}SetJsonToken(e){this._globalVariables.clear();for(let[t,r]of this._defaultGlobalVariables){let i=e[t];if(typeof i<"u"){let a=Bv.JsonSerialisation.JTokenToRuntimeObject(i);if(a===null)return (0, _n.throwNullException)("tokenInkObject");this._globalVariables.set(t,a);}else this._globalVariables.set(t,r);}}WriteJson(e){e.WriteObjectStart();for(let[t,r]of this._globalVariables){let i=t,a=r;if(n.dontSaveDefaultValues&&this._defaultGlobalVariables.has(i)){let s=this._defaultGlobalVariables.get(i);if(this.RuntimeObjectsEqual(a,s))continue}e.WritePropertyStart(i),Bv.JsonSerialisation.WriteRuntimeObject(e,a),e.WritePropertyEnd();}e.WriteObjectEnd();}RuntimeObjectsEqual(e,t){if(e===null)return (0, _n.throwNullException)("obj1");if(t===null)return (0, _n.throwNullException)("obj2");if(e.constructor!==t.constructor)return false;let r=(0, Le.asOrNull)(e,Ie.BoolValue);if(r!==null)return r.value===(0, Le.asOrThrows)(t,Ie.BoolValue).value;let i=(0, Le.asOrNull)(e,Ie.IntValue);if(i!==null)return i.value===(0, Le.asOrThrows)(t,Ie.IntValue).value;let a=(0, Le.asOrNull)(e,Ie.FloatValue);if(a!==null)return a.value===(0, Le.asOrThrows)(t,Ie.FloatValue).value;let s=(0, Le.asOrNull)(e,Ie.Value),o=(0, Le.asOrNull)(t,Ie.Value);if(s!==null&&o!==null)return (0, Le.isEquatable)(s.valueObject)&&(0, Le.isEquatable)(o.valueObject)?s.valueObject.Equals(o.valueObject):s.valueObject===o.valueObject;throw new Error("FastRoughDefinitelyEquals: Unsupported runtime object type: "+e.constructor.name)}GetVariableWithName(e,t=-1){let r=this.GetRawVariableWithName(e,t),i=(0, Le.asOrNull)(r,Ie.VariablePointerValue);return i!==null&&(r=this.ValueAtVariablePointer(i)),r}TryGetDefaultVariableValue(e){let t=(0, as.tryGetValueFromMap)(this._defaultGlobalVariables,e,null);return t.exists?t.result:null}GlobalVariableExistsWithName(e){return this._globalVariables.has(e)||this._defaultGlobalVariables!==null&&this._defaultGlobalVariables.has(e)}GetRawVariableWithName(e,t){let r=null;if(t==0||t==-1){let i=null;if(this.patch!==null&&(i=this.patch.TryGetGlobal(e,null),i.exists)||(i=(0, as.tryGetValueFromMap)(this._globalVariables,e,null),i.exists)||this._defaultGlobalVariables!==null&&(i=(0, as.tryGetValueFromMap)(this._defaultGlobalVariables,e,null),i.exists))return i.result;if(this._listDefsOrigin===null)return (0, _n.throwNullException)("VariablesState._listDefsOrigin");let a=this._listDefsOrigin.FindSingleItemListWithName(e);if(a)return a}return r=this._callStack.GetTemporaryVariableWithName(e,t),r}ValueAtVariablePointer(e){return this.GetVariableWithName(e.variableName,e.contextIndex)}Assign(e,t){let r=e.variableName;if(r===null)return (0, _n.throwNullException)("name");let i=-1,a=false;if(e.isNewDeclaration?a=e.isGlobal:a=this.GlobalVariableExistsWithName(r),e.isNewDeclaration){let s=(0, Le.asOrNull)(t,Ie.VariablePointerValue);s!==null&&(t=this.ResolveVariablePointer(s));}else {let s=null;do s=(0, Le.asOrNull)(this.GetRawVariableWithName(r,i),Ie.VariablePointerValue),s!=null&&(r=s.variableName,i=s.contextIndex,a=i==0);while(s!=null)}a?this.SetGlobal(r,t):this._callStack.SetTemporaryVariable(r,t,e.isNewDeclaration,i);}SnapshotDefaultGlobals(){this._defaultGlobalVariables=new Map(this._globalVariables);}RetainListOriginsForAssignment(e,t){let r=(0, Le.asOrThrows)(e,Ie.ListValue),i=(0, Le.asOrThrows)(t,Ie.ListValue);r.value&&i.value&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}SetGlobal(e,t){let r=null;if(this.patch===null&&(r=(0, as.tryGetValueFromMap)(this._globalVariables,e,null)),this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists||(r=(0, as.tryGetValueFromMap)(this._globalVariables,e,null))),Ie.ListValue.RetainListOriginsForAssignment(r.result,t),e===null)return (0, _n.throwNullException)("variableName");if(this.patch!==null?this.patch.SetGlobal(e,t):this._globalVariables.set(e,t),this.variableChangedEvent!==null&&r!==null&&t!==r.result)if(this._batchObservingVariableChanges){if(this._changedVariablesForBatchObs===null)return (0, _n.throwNullException)("this._changedVariablesForBatchObs");this.patch!==null?this.patch.AddChangedVariable(e):this._changedVariablesForBatchObs!==null&&this._changedVariablesForBatchObs.add(e);}else this.variableChangedEvent(e,t);}ResolveVariablePointer(e){let t=e.contextIndex;t==-1&&(t=this.GetContextIndexOfVariableNamed(e.variableName));let r=this.GetRawVariableWithName(e.variableName,t),i=(0, Le.asOrNull)(r,Ie.VariablePointerValue);return i??new Ie.VariablePointerValue(e.variableName,t)}GetContextIndexOfVariableNamed(e){return this.GlobalVariableExistsWithName(e)?0:this._callStack.currentElementIndex}ObserveVariableChange(e){this.variableChangedEventCallbacks.push(e);}};uu.VariablesState=ou;ou.dontSaveDefaultValues=true;});var of=E(lu=>{Object.defineProperty(lu,"__esModule",{value:true});lu.PRNG=void 0;var af=class{constructor(e){this.seed=e%2147483647,this.seed<=0&&(this.seed+=2147483646);}next(){return this.seed=this.seed*48271%2147483647}nextFloat(){return (this.next()-1)/2147483646}};lu.PRNG=af;});var Mv=E(cu=>{Object.defineProperty(cu,"__esModule",{value:true});cu.StatePatch=void 0;var uf=class{get globals(){return this._globals}get changedVariables(){return this._changedVariables}get visitCounts(){return this._visitCounts}get turnIndices(){return this._turnIndices}constructor(){if(this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map,arguments.length===1&&arguments[0]!==null){let e=arguments[0];this._globals=new Map(e._globals),this._changedVariables=new Set(e._changedVariables),this._visitCounts=new Map(e._visitCounts),this._turnIndices=new Map(e._turnIndices);}else this._globals=new Map,this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map;}TryGetGlobal(e,t){return e!==null&&this._globals.has(e)?{result:this._globals.get(e),exists:true}:{result:t,exists:false}}SetGlobal(e,t){this._globals.set(e,t);}AddChangedVariable(e){return this._changedVariables.add(e)}TryGetVisitCount(e,t){return this._visitCounts.has(e)?{result:this._visitCounts.get(e),exists:true}:{result:t,exists:false}}SetVisitCount(e,t){this._visitCounts.set(e,t);}SetTurnIndex(e,t){this._turnIndices.set(e,t);}TryGetTurnIndex(e,t){return this._turnIndices.has(e)?{result:this._turnIndices.get(e),exists:true}:{result:t,exists:false}}};cu.StatePatch=uf;});var lf=E(us=>{Object.defineProperty(us,"__esModule",{value:true});us.SimpleJson=void 0;var os=class n{static TextToDictionary(e){return new n.Reader(e).ToDictionary()}static TextToArray(e){return new n.Reader(e).ToArray()}};us.SimpleJson=os;(function(n){class e{constructor(i){if(JSON.parse("0",(s,o,u)=>u!=null)){let s=(o,u,l)=>Number.isInteger(u)&&l.source.endsWith(".0")?l.source+"f":u;this._rootObject=JSON.parse(i,s);}else {let s=i.replace(/(,\s*)([0-9]+\.[0]+)([,]*)/g,'$1"$2f"$3');this._rootObject=JSON.parse(s);}}ToDictionary(){return this._rootObject}ToArray(){return this._rootObject}}n.Reader=e;class t{constructor(){this._currentPropertyName=null,this._currentString=null,this._stateStack=[],this._collectionStack=[],this._propertyNameStack=[],this._jsonObject=null;}WriteObject(i){this.WriteObjectStart(),i(this),this.WriteObjectEnd();}WriteObjectStart(){this.StartNewObject(true);let i={};if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Object));}WriteObjectEnd(){this.Assert(this.state===n.Writer.State.Object),this._collectionStack.pop(),this._stateStack.pop();}WriteProperty(i,a){if(this.WritePropertyStart(i),arguments[1]instanceof Function){let s=arguments[1];s(this);}else {let s=arguments[1];this.Write(s);}this.WritePropertyEnd();}WriteIntProperty(i,a){this.WritePropertyStart(i),this.WriteInt(a),this.WritePropertyEnd();}WriteFloatProperty(i,a){this.WritePropertyStart(i),this.WriteFloat(a),this.WritePropertyEnd();}WritePropertyStart(i){this.Assert(this.state===n.Writer.State.Object),this._propertyNameStack.push(i),this.IncrementChildCount(),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property));}WritePropertyEnd(){this.Assert(this.state===n.Writer.State.Property),this.Assert(this.childCount===1),this._stateStack.pop();}WritePropertyNameStart(){this.Assert(this.state===n.Writer.State.Object),this.IncrementChildCount(),this._currentPropertyName="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property)),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.PropertyName));}WritePropertyNameEnd(){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._propertyNameStack.push(this._currentPropertyName),this._currentPropertyName=null,this._stateStack.pop();}WritePropertyNameInner(i){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._currentPropertyName+=i;}WriteArrayStart(){this.StartNewObject(true);let i=[];if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Array));}WriteArrayEnd(){this.Assert(this.state===n.Writer.State.Array),this._collectionStack.pop(),this._stateStack.pop();}Write(i,a=true){if(i===null){console.error("Warning: trying to write a null value");return}this.StartNewObject(false),this._addToCurrentObject(i);}WriteBool(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(i));}WriteInt(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(Math.floor(i)));}WriteFloat(i){i!==null&&(this.StartNewObject(false),i==Number.POSITIVE_INFINITY?this._addToCurrentObject(34e37):i==Number.NEGATIVE_INFINITY?this._addToCurrentObject(-34e37):isNaN(i)?this._addToCurrentObject(0):this._addToCurrentObject(i));}WriteNull(){this.StartNewObject(false),this._addToCurrentObject(null);}WriteStringStart(){this.StartNewObject(false),this._currentString="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.String));}WriteStringEnd(){this.Assert(this.state==n.Writer.State.String),this._stateStack.pop(),this._addToCurrentObject(this._currentString),this._currentString=null;}WriteStringInner(i,a=true){if(this.Assert(this.state===n.Writer.State.String),i===null){console.error("Warning: trying to write a null string");return}this._currentString+=i;}toString(){return this._jsonObject===null?"":JSON.stringify(this._jsonObject)}StartNewObject(i){i?this.Assert(this.state===n.Writer.State.None||this.state===n.Writer.State.Property||this.state===n.Writer.State.Array):this.Assert(this.state===n.Writer.State.Property||this.state===n.Writer.State.Array),this.state===n.Writer.State.Property&&this.Assert(this.childCount===0),(this.state===n.Writer.State.Array||this.state===n.Writer.State.Property)&&this.IncrementChildCount();}get state(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].type:n.Writer.State.None}get childCount(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].childCount:0}get currentCollection(){return this._collectionStack.length>0?this._collectionStack[this._collectionStack.length-1]:null}get currentPropertyName(){return this._propertyNameStack.length>0?this._propertyNameStack[this._propertyNameStack.length-1]:null}IncrementChildCount(){this.Assert(this._stateStack.length>0);let i=this._stateStack.pop();i.childCount++,this._stateStack.push(i);}Assert(i){if(!i)throw Error("Assert failed while writing JSON")}_addToCurrentObject(i){this.Assert(this.currentCollection!==null),this.state===n.Writer.State.Array?(this.Assert(Array.isArray(this.currentCollection)),this.currentCollection.push(i)):this.state===n.Writer.State.Property&&(this.Assert(!Array.isArray(this.currentCollection)),this.Assert(this.currentPropertyName!==null),this.currentCollection[this.currentPropertyName]=i,this._propertyNameStack.pop());}}n.Writer=t,(function(r){(function(s){s[s.None=0]="None",s[s.Object=1]="Object",s[s.Array=2]="Array",s[s.Property=3]="Property",s[s.PropertyName=4]="PropertyName",s[s.String=5]="String";})(r.State||(r.State={}));class a{constructor(o){this.type=n.Writer.State.None,this.childCount=0,this.type=o;}}r.StateElement=a;})(t=n.Writer||(n.Writer={}));})(os||(us.SimpleJson=os={}));});var zv=E(du=>{Object.defineProperty(du,"__esModule",{value:true});du.Flow=void 0;var Gv=sf(),hu=Wr(),pT=$e(),cf=class{constructor(){let e=arguments[0],t=arguments[1];if(this.name=e,this.callStack=new Gv.CallStack(t),arguments[2]){let r=arguments[2];this.callStack.SetJsonToken(r.callstack,t),this.outputStream=hu.JsonSerialisation.JArrayToRuntimeObjList(r.outputStream),this.currentChoices=hu.JsonSerialisation.JArrayToRuntimeObjList(r.currentChoices);let i=r.choiceThreads;typeof i<"u"&&this.LoadFlowChoiceThreads(i,t);}else this.outputStream=[],this.currentChoices=[];}WriteJson(e){e.WriteObjectStart(),e.WriteProperty("callstack",r=>this.callStack.WriteJson(r)),e.WriteProperty("outputStream",r=>hu.JsonSerialisation.WriteListRuntimeObjs(r,this.outputStream));let t=false;for(let r of this.currentChoices){if(r.threadAtGeneration===null)return (0, pT.throwNullException)("c.threadAtGeneration");r.originalThreadIndex=r.threadAtGeneration.threadIndex,this.callStack.ThreadWithIndex(r.originalThreadIndex)===null&&(t||(t=true,e.WritePropertyStart("choiceThreads"),e.WriteObjectStart()),e.WritePropertyStart(r.originalThreadIndex),r.threadAtGeneration.WriteJson(e),e.WritePropertyEnd());}t&&(e.WriteObjectEnd(),e.WritePropertyEnd()),e.WriteProperty("currentChoices",r=>{r.WriteArrayStart();for(let i of this.currentChoices)hu.JsonSerialisation.WriteChoice(r,i);r.WriteArrayEnd();}),e.WriteObjectEnd();}LoadFlowChoiceThreads(e,t){for(let r of this.currentChoices){let i=this.callStack.ThreadWithIndex(r.originalThreadIndex);if(i!==null)r.threadAtGeneration=i.Copy();else {let a=e[`${r.originalThreadIndex}`];r.threadAtGeneration=new Gv.CallStack.Thread(a,t);}}}};du.Flow=cf;});var Uv=E(pu=>{Object.defineProperty(pu,"__esModule",{value:true});pu.StoryState=void 0;var mT=sf(),gT=Wv(),Oe=ve(),Sn=Jn(),yT=eu(),hf=Go(),Jv=nt(),He=je(),df=Mn(),En=Wr(),vT=of(),CT=zn(),Mr=Hi(),ls=Tr(),De=ae(),bT=ki(),_t=$e(),_T=ss(),ST=Mv(),Hv=lf(),fu=zv(),ET=st(),ff=class n{ToJson(e=false){let t=new Hv.SimpleJson.Writer;return this.WriteJson(t),t.toString()}toJson(e=false){return this.ToJson(e)}LoadJson(e){let t=Hv.SimpleJson.TextToDictionary(e);this.LoadJsonObj(t),this.onDidLoadState!==null&&this.onDidLoadState();}VisitCountAtPathString(e){let t;if(this._patch!==null){let r=this.story.ContentAtPath(new Jv.Path(e)).container;if(r===null)throw new Error("Content at path not found: "+e);if(t=this._patch.TryGetVisitCount(r,0),t.exists)return t.result}return t=(0, ls.tryGetValueFromMap)(this._visitCounts,e,null),t.exists?t.result:0}VisitCountForContainer(e){if(e===null)return (0, _t.throwNullException)("container");if(!e.visitsShouldBeCounted)return this.story.Error("Read count for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),0;if(this._patch!==null){let i=this._patch.TryGetVisitCount(e,0);if(i.exists)return i.result}let t=e.path.toString(),r=(0, ls.tryGetValueFromMap)(this._visitCounts,t,null);return r.exists?r.result:0}IncrementVisitCountForContainer(e){if(this._patch!==null){let i=this.VisitCountForContainer(e);i++,this._patch.SetVisitCount(e,i);return}let t=e.path.toString(),r=(0, ls.tryGetValueFromMap)(this._visitCounts,t,null);r.exists?this._visitCounts.set(t,r.result+1):this._visitCounts.set(t,1);}RecordTurnIndexVisitToContainer(e){if(this._patch!==null){this._patch.SetTurnIndex(e,this.currentTurnIndex);return}let t=e.path.toString();this._turnIndices.set(t,this.currentTurnIndex);}TurnsSinceForContainer(e){if(e.turnIndexShouldBeCounted||this.story.Error("TURNS_SINCE() for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),this._patch!==null){let i=this._patch.TryGetTurnIndex(e,0);if(i.exists)return this.currentTurnIndex-i.result}let t=e.path.toString(),r=(0, ls.tryGetValueFromMap)(this._turnIndices,t,0);return r.exists?this.currentTurnIndex-r.result:-1}get callstackDepth(){return this.callStack.depth}get outputStream(){return this._currentFlow.outputStream}get currentChoices(){return this.canContinue?[]:this._currentFlow.currentChoices}get generatedChoices(){return this._currentFlow.currentChoices}get currentErrors(){return this._currentErrors}get currentWarnings(){return this._currentWarnings}get variablesState(){return this._variablesState}set variablesState(e){this._variablesState=e;}get callStack(){return this._currentFlow.callStack}get evaluationStack(){return this._evaluationStack}get currentTurnIndex(){return this._currentTurnIndex}set currentTurnIndex(e){this._currentTurnIndex=e;}get currentPathString(){let e=this.currentPointer;return e.isNull?null:e.path===null?(0, _t.throwNullException)("pointer.path"):e.path.toString()}get previousPathString(){let e=this.previousPointer;return e.isNull?null:e.path===null?(0, _t.throwNullException)("previousPointer.path"):e.path.toString()}get currentPointer(){return this.callStack.currentElement.currentPointer.copy()}set currentPointer(e){this.callStack.currentElement.currentPointer=e.copy();}get previousPointer(){return this.callStack.currentThread.previousPointer.copy()}set previousPointer(e){this.callStack.currentThread.previousPointer=e.copy();}get canContinue(){return !this.currentPointer.isNull&&!this.hasError}get hasError(){return this.currentErrors!=null&&this.currentErrors.length>0}get hasWarning(){return this.currentWarnings!=null&&this.currentWarnings.length>0}get currentText(){if(this._outputStreamTextDirty){let e=new df.StringBuilder,t=false;for(let r of this.outputStream){let i=(0, De.asOrNull)(r,Oe.StringValue);if(!t&&i!==null)e.Append(i.value);else {let a=(0, De.asOrNull)(r,He.ControlCommand);a!==null&&(a.commandType==He.ControlCommand.CommandType.BeginTag?t=true:a.commandType==He.ControlCommand.CommandType.EndTag&&(t=false));}}this._currentText=this.CleanOutputWhitespace(e.toString()),this._outputStreamTextDirty=false;}return this._currentText}CleanOutputWhitespace(e){let t=new df.StringBuilder,r=-1,i=0;for(let a=0;a<e.length;a++){let s=e.charAt(a),o=s==" "||s==" ";o&&r==-1&&(r=a),o||(s!=`
28
+ `&&r>0&&r!=i&&t.Append(" "),r=-1),s==`
29
+ `&&(i=a+1),o||t.Append(s);}return t.toString()}get currentTags(){if(this._outputStreamTagsDirty){this._currentTags=[];let e=false,t=new df.StringBuilder;for(let r of this.outputStream){let i=(0, De.asOrNull)(r,He.ControlCommand);if(i!=null){if(i.commandType==He.ControlCommand.CommandType.BeginTag){if(e&&t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=true;}else if(i.commandType==He.ControlCommand.CommandType.EndTag){if(t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=false;}}else if(e){let a=(0, De.asOrNull)(r,Oe.StringValue);a!==null&&t.Append(a.value);}else {let a=(0, De.asOrNull)(r,yT.Tag);a!=null&&a.text!=null&&a.text.length>0&&this._currentTags.push(a.text);}}if(t.Length>0){let r=this.CleanOutputWhitespace(t.toString());this._currentTags.push(r),t.Clear();}this._outputStreamTagsDirty=false;}return this._currentTags}get currentFlowName(){return this._currentFlow.name}get currentFlowIsDefaultFlow(){return this._currentFlow.name==this.kDefaultFlowName}get aliveFlowNames(){if(this._aliveFlowNamesDirty){if(this._aliveFlowNames=[],this._namedFlows!=null)for(let e of this._namedFlows.keys())e!=this.kDefaultFlowName&&this._aliveFlowNames.push(e);this._aliveFlowNamesDirty=false;}return this._aliveFlowNames}get inExpressionEvaluation(){return this.callStack.currentElement.inExpressionEvaluation}set inExpressionEvaluation(e){this.callStack.currentElement.inExpressionEvaluation=e;}constructor(e){this.kInkSaveStateVersion=10,this.kMinCompatibleLoadVersion=8,this.onDidLoadState=null,this._currentErrors=null,this._currentWarnings=null,this.divertedPointer=Mr.Pointer.Null,this._currentTurnIndex=0,this.storySeed=0,this.previousRandom=0,this.didSafeExit=false,this._currentText=null,this._currentTags=null,this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true,this._patch=null,this._aliveFlowNames=null,this._namedFlows=null,this.kDefaultFlowName="DEFAULT_FLOW",this._aliveFlowNamesDirty=true,this.story=e,this._currentFlow=new fu.Flow(this.kDefaultFlowName,e),this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this._evaluationStack=[],this._variablesState=new gT.VariablesState(this.callStack,e.listDefinitions),this._visitCounts=new Map,this._turnIndices=new Map,this.currentTurnIndex=-1;let t=new Date().getTime();this.storySeed=new vT.PRNG(t).next()%100,this.previousRandom=0,this.GoToStart();}GoToStart(){this.callStack.currentElement.currentPointer=Mr.Pointer.StartOf(this.story.mainContentContainer);}SwitchFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.SwitchFlow");if(this._namedFlows===null&&(this._namedFlows=new Map,this._namedFlows.set(this.kDefaultFlowName,this._currentFlow)),e===this._currentFlow.name)return;let t,r=(0, ls.tryGetValueFromMap)(this._namedFlows,e,null);r.exists?t=r.result:(t=new fu.Flow(e,this.story),this._namedFlows.set(e,t),this._aliveFlowNamesDirty=true),this._currentFlow=t,this.variablesState.callStack=this._currentFlow.callStack,this.OutputStreamDirty();}SwitchToDefaultFlow_Internal(){this._namedFlows!==null&&this.SwitchFlow_Internal(this.kDefaultFlowName);}RemoveFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.DestroyFlow");if(e===this.kDefaultFlowName)throw new Error("Cannot destroy default flow");if(this._currentFlow.name===e&&this.SwitchToDefaultFlow_Internal(),this._namedFlows===null)return (0, _t.throwNullException)("this._namedFlows");this._namedFlows.delete(e),this._aliveFlowNamesDirty=true;}CopyAndStartPatching(e){let t=new n(this.story);if(t._patch=new ST.StatePatch(this._patch),t._currentFlow.name=this._currentFlow.name,t._currentFlow.callStack=new mT.CallStack(this._currentFlow.callStack),t._currentFlow.outputStream.push(...this._currentFlow.outputStream),t.OutputStreamDirty(),e)for(let r of this._currentFlow.currentChoices)t._currentFlow.currentChoices.push(r.Clone());else t._currentFlow.currentChoices.push(...this._currentFlow.currentChoices);if(this._namedFlows!==null){t._namedFlows=new Map;for(let[r,i]of this._namedFlows)t._namedFlows.set(r,i),t._aliveFlowNamesDirty=true;t._namedFlows.set(this._currentFlow.name,t._currentFlow);}return this.hasError&&(t._currentErrors=[],t._currentErrors.push(...this.currentErrors||[])),this.hasWarning&&(t._currentWarnings=[],t._currentWarnings.push(...this.currentWarnings||[])),t.variablesState=this.variablesState,t.variablesState.callStack=t.callStack,t.variablesState.patch=t._patch,t.evaluationStack.push(...this.evaluationStack),this.divertedPointer.isNull||(t.divertedPointer=this.divertedPointer.copy()),t.previousPointer=this.previousPointer.copy(),t._visitCounts=this._visitCounts,t._turnIndices=this._turnIndices,t.currentTurnIndex=this.currentTurnIndex,t.storySeed=this.storySeed,t.previousRandom=this.previousRandom,t.didSafeExit=this.didSafeExit,t}RestoreAfterPatch(){this.variablesState.callStack=this.callStack,this.variablesState.patch=this._patch;}ApplyAnyPatch(){if(this._patch!==null){this.variablesState.ApplyPatch();for(let[e,t]of this._patch.visitCounts)this.ApplyCountChanges(e,t,true);for(let[e,t]of this._patch.turnIndices)this.ApplyCountChanges(e,t,false);this._patch=null;}}ApplyCountChanges(e,t,r){(r?this._visitCounts:this._turnIndices).set(e.path.toString(),t);}WriteJson(e){if(e.WriteObjectStart(),e.WritePropertyStart("flows"),e.WriteObjectStart(),this._namedFlows!==null)for(let[t,r]of this._namedFlows)e.WriteProperty(t,i=>r.WriteJson(i));else e.WriteProperty(this._currentFlow.name,t=>this._currentFlow.WriteJson(t));if(e.WriteObjectEnd(),e.WritePropertyEnd(),e.WriteProperty("currentFlowName",this._currentFlow.name),e.WriteProperty("variablesState",t=>this.variablesState.WriteJson(t)),e.WriteProperty("evalStack",t=>En.JsonSerialisation.WriteListRuntimeObjs(t,this.evaluationStack)),!this.divertedPointer.isNull){if(this.divertedPointer.path===null)return (0, _t.throwNullException)("divertedPointer");e.WriteProperty("currentDivertTarget",this.divertedPointer.path.componentsString);}e.WriteProperty("visitCounts",t=>En.JsonSerialisation.WriteIntDictionary(t,this._visitCounts)),e.WriteProperty("turnIndices",t=>En.JsonSerialisation.WriteIntDictionary(t,this._turnIndices)),e.WriteIntProperty("turnIdx",this.currentTurnIndex),e.WriteIntProperty("storySeed",this.storySeed),e.WriteIntProperty("previousRandom",this.previousRandom),e.WriteIntProperty("inkSaveVersion",this.kInkSaveStateVersion),e.WriteIntProperty("inkFormatVersion",_T.Story.inkVersionCurrent),e.WriteObjectEnd();}LoadJsonObj(e){let t=e,r=t.inkSaveVersion;if(r==null)throw new Error("ink save format incorrect, can't load.");if(parseInt(r)<this.kMinCompatibleLoadVersion)throw new Error("Ink save format isn't compatible with the current version (saw '"+r+"', but minimum is "+this.kMinCompatibleLoadVersion+"), so can't load.");let i=t.flows;if(i!=null){let s=i;Object.keys(s).length===1?this._namedFlows=null:this._namedFlows===null?this._namedFlows=new Map:this._namedFlows.clear();let o=Object.entries(s);for(let[u,l]of o){let c=u,h=l,f=new fu.Flow(c,this.story,h);if(Object.keys(s).length===1)this._currentFlow=new fu.Flow(c,this.story,h);else {if(this._namedFlows===null)return (0, _t.throwNullException)("this._namedFlows");this._namedFlows.set(c,f);}}if(this._namedFlows!=null&&this._namedFlows.size>1){let u=t.currentFlowName;this._currentFlow=this._namedFlows.get(u);}}else {this._namedFlows=null,this._currentFlow.name=this.kDefaultFlowName,this._currentFlow.callStack.SetJsonToken(t.callstackThreads,this.story),this._currentFlow.outputStream=En.JsonSerialisation.JArrayToRuntimeObjList(t.outputStream),this._currentFlow.currentChoices=En.JsonSerialisation.JArrayToRuntimeObjList(t.currentChoices);let s=t.choiceThreads;this._currentFlow.LoadFlowChoiceThreads(s,this.story);}this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this.variablesState.SetJsonToken(t.variablesState),this.variablesState.callStack=this._currentFlow.callStack,this._evaluationStack=En.JsonSerialisation.JArrayToRuntimeObjList(t.evalStack);let a=t.currentDivertTarget;if(a!=null){let s=new Jv.Path(a.toString());this.divertedPointer=this.story.PointerAtPath(s);}this._visitCounts=En.JsonSerialisation.JObjectToIntDictionary(t.visitCounts),this._turnIndices=En.JsonSerialisation.JObjectToIntDictionary(t.turnIndices),this.currentTurnIndex=parseInt(t.turnIdx),this.storySeed=parseInt(t.storySeed),this.previousRandom=parseInt(t.previousRandom);}ResetErrors(){this._currentErrors=null,this._currentWarnings=null;}ResetOutput(e=null){this.outputStream.length=0,e!==null&&this.outputStream.push(...e),this.OutputStreamDirty();}PushToOutputStream(e){let t=(0, De.asOrNull)(e,Oe.StringValue);if(t!==null){let r=this.TrySplittingHeadTailWhitespace(t);if(r!==null){for(let i of r)this.PushToOutputStreamIndividual(i);this.OutputStreamDirty();return}}this.PushToOutputStreamIndividual(e),this.OutputStreamDirty();}PopFromOutputStream(e){this.outputStream.splice(this.outputStream.length-e,e),this.OutputStreamDirty();}TrySplittingHeadTailWhitespace(e){let t=e.value;if(t===null)return (0, _t.throwNullException)("single.value");let r=-1,i=-1;for(let c=0;c<t.length;c++){let h=t[c];if(h==`
30
+ `)r==-1&&(r=c),i=c;else {if(h==" "||h==" ")continue;break}}let a=-1,s=-1;for(let c=t.length-1;c>=0;c--){let h=t[c];if(h==`
31
+ `)a==-1&&(a=c),s=c;else {if(h==" "||h==" ")continue;break}}if(r==-1&&a==-1)return null;let o=[],u=0,l=t.length;if(r!=-1){if(r>0){let c=new Oe.StringValue(t.substring(0,r));o.push(c);}o.push(new Oe.StringValue(`
32
+ `)),u=i+1;}if(a!=-1&&(l=s),l>u){let c=t.substring(u,l);o.push(new Oe.StringValue(c));}if(a!=-1&&s>i&&(o.push(new Oe.StringValue(`
33
+ `)),a<t.length-1)){let c=t.length-a-1,h=new Oe.StringValue(t.substring(a+1,a+1+c));o.push(h);}return o}PushToOutputStreamIndividual(e){let t=(0, De.asOrNull)(e,hf.Glue),r=(0, De.asOrNull)(e,Oe.StringValue),i=true;if(t)this.TrimNewlinesFromOutputStream(),i=true;else if(r){let a=-1,s=this.callStack.currentElement;s.type==Sn.PushPopType.Function&&(a=s.functionStartInOutputStream);let o=-1;for(let l=this.outputStream.length-1;l>=0;l--){let c=this.outputStream[l],h=c instanceof He.ControlCommand?c:null;if((c instanceof hf.Glue?c:null)!=null){o=l;break}else if(h!=null&&h.commandType==He.ControlCommand.CommandType.BeginString){l>=a&&(a=-1);break}}let u=-1;if(o!=-1&&a!=-1?u=Math.min(a,o):o!=-1?u=o:u=a,u!=-1){if(r.isNewline)i=false;else if(r.isNonWhitespace&&(o>-1&&this.RemoveExistingGlue(),a>-1)){let l=this.callStack.elements;for(let c=l.length-1;c>=0;c--){let h=l[c];if(h.type==Sn.PushPopType.Function)h.functionStartInOutputStream=-1;else break}}}else r.isNewline&&(this.outputStreamEndsInNewline||!this.outputStreamContainsContent)&&(i=false);}if(i){if(e===null)return (0, _t.throwNullException)("obj");this.outputStream.push(e),this.OutputStreamDirty();}}TrimNewlinesFromOutputStream(){let e=-1,t=this.outputStream.length-1;for(;t>=0;){let r=this.outputStream[t],i=(0, De.asOrNull)(r,He.ControlCommand),a=(0, De.asOrNull)(r,Oe.StringValue);if(i!=null||a!=null&&a.isNonWhitespace)break;a!=null&&a.isNewline&&(e=t),t--;}if(e>=0)for(t=e;t<this.outputStream.length;)(0, De.asOrNull)(this.outputStream[t],Oe.StringValue)?this.outputStream.splice(t,1):t++;this.OutputStreamDirty();}RemoveExistingGlue(){for(let e=this.outputStream.length-1;e>=0;e--){let t=this.outputStream[e];if(t instanceof hf.Glue)this.outputStream.splice(e,1);else if(t instanceof He.ControlCommand)break}this.OutputStreamDirty();}get outputStreamEndsInNewline(){if(this.outputStream.length>0)for(let e=this.outputStream.length-1;e>=0&&!(this.outputStream[e]instanceof He.ControlCommand);e--){let r=this.outputStream[e];if(r instanceof Oe.StringValue){if(r.isNewline)return true;if(r.isNonWhitespace)break}}return false}get outputStreamContainsContent(){for(let e of this.outputStream)if(e instanceof Oe.StringValue)return true;return false}get inStringEvaluation(){for(let e=this.outputStream.length-1;e>=0;e--){let t=(0, De.asOrNull)(this.outputStream[e],He.ControlCommand);if(t instanceof He.ControlCommand&&t.commandType==He.ControlCommand.CommandType.BeginString)return true}return false}PushEvaluationStack(e){let t=(0, De.asOrNull)(e,Oe.ListValue);if(t){let r=t.value;if(r===null)return (0, _t.throwNullException)("rawList");if(r.originNames!=null){r.origins||(r.origins=[]),r.origins.length=0;for(let i of r.originNames){if(this.story.listDefinitions===null)return (0, _t.throwNullException)("StoryState.story.listDefinitions");let a=this.story.listDefinitions.TryListGetDefinition(i,null);if(a.result===null)return (0, _t.throwNullException)("StoryState def.result");r.origins.indexOf(a.result)<0&&r.origins.push(a.result);}}}if(e===null)return (0, _t.throwNullException)("obj");this.evaluationStack.push(e);}PopEvaluationStack(e){if(typeof e>"u"){let t=this.evaluationStack.pop();return (0, De.nullIfUndefined)(t)}else {if(e>this.evaluationStack.length)throw new Error("trying to pop too many objects");let t=this.evaluationStack.splice(this.evaluationStack.length-e,e);return (0, De.nullIfUndefined)(t)}}PeekEvaluationStack(){return this.evaluationStack[this.evaluationStack.length-1]}ForceEnd(){this.callStack.Reset(),this._currentFlow.currentChoices.length=0,this.currentPointer=Mr.Pointer.Null,this.previousPointer=Mr.Pointer.Null,this.didSafeExit=true;}TrimWhitespaceFromFunctionEnd(){bT.Debug.Assert(this.callStack.currentElement.type==Sn.PushPopType.Function);let e=this.callStack.currentElement.functionStartInOutputStream;e==-1&&(e=0);for(let t=this.outputStream.length-1;t>=e;t--){let r=this.outputStream[t],i=(0, De.asOrNull)(r,Oe.StringValue),a=(0, De.asOrNull)(r,He.ControlCommand);if(i!=null){if(a)break;if(i.isNewline||i.isInlineWhitespace)this.outputStream.splice(t,1),this.OutputStreamDirty();else break}}}PopCallStack(e=null){this.callStack.currentElement.type==Sn.PushPopType.Function&&this.TrimWhitespaceFromFunctionEnd(),this.callStack.Pop(e);}SetChosenPath(e,t){this._currentFlow.currentChoices.length=0;let r=this.story.PointerAtPath(e);!r.isNull&&r.index==-1&&(r.index=0),this.currentPointer=r,t&&this.currentTurnIndex++;}StartFunctionEvaluationFromGame(e,t){this.callStack.Push(Sn.PushPopType.FunctionEvaluationFromGame,this.evaluationStack.length),this.callStack.currentElement.currentPointer=Mr.Pointer.StartOf(e),this.PassArgumentsToEvaluationStack(t);}PassArgumentsToEvaluationStack(e){if(e!==null)for(let t=0;t<e.length;t++){if(!(typeof e[t]=="number"||typeof e[t]=="string"||typeof e[t]=="boolean"||e[t]instanceof ET.InkList))throw new Error("ink arguments when calling EvaluateFunction / ChoosePathStringWithParameters must benumber, string, bool or InkList. Argument was "+((0, De.nullIfUndefined)(e[t])===null?"null":e[t].constructor.name));this.PushEvaluationStack(Oe.Value.Create(e[t]));}}TryExitFunctionEvaluationFromGame(){return this.callStack.currentElement.type==Sn.PushPopType.FunctionEvaluationFromGame?(this.currentPointer=Mr.Pointer.Null,this.didSafeExit=true,true):false}CompleteFunctionEvaluationFromGame(){if(this.callStack.currentElement.type!=Sn.PushPopType.FunctionEvaluationFromGame)throw new Error("Expected external function evaluation to be complete. Stack trace: "+this.callStack.callStackTrace);let e=this.callStack.currentElement.evaluationStackHeightWhenPushed,t=null;for(;this.evaluationStack.length>e;){let r=this.PopEvaluationStack();t===null&&(t=r);}if(this.PopCallStack(Sn.PushPopType.FunctionEvaluationFromGame),t){if(t instanceof CT.Void)return null;let r=(0, De.asOrThrows)(t,Oe.Value);return r.valueType==Oe.ValueType.DivertTarget?"-> "+r.valueObject.toString():r.valueObject}return null}AddError(e,t){t?(this._currentWarnings==null&&(this._currentWarnings=[]),this._currentWarnings.push(e)):(this._currentErrors==null&&(this._currentErrors=[]),this._currentErrors.push(e));}OutputStreamDirty(){this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true;}};pu.StoryState=ff;});var Kv=E(mu=>{Object.defineProperty(mu,"__esModule",{value:true});mu.Stopwatch=void 0;var pf=class{constructor(){this.startTime=void 0;}get ElapsedMilliseconds(){return typeof this.startTime>"u"?0:new Date().getTime()-this.startTime}Start(){this.startTime=new Date().getTime();}Stop(){this.startTime=void 0;}};mu.Stopwatch=pf;});var Yv=E(gu=>{Object.defineProperty(gu,"__esModule",{value:true});gu.ErrorType=void 0;var Xv;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(Xv||(gu.ErrorType=Xv={}));});var ss=E(Qn=>{Object.defineProperty(Qn,"__esModule",{value:true});Qn.Story=Qn.InkList=void 0;var qe=Ee(),mf=rt(),gf=Wr(),wT=Uv(),B=je(),St=Jn(),DT=Ra(),AT=Yd(),Zv=Bt(),k=ve(),yf=nt(),cs=zn(),yu=eu(),PT=vn(),OT=Lr(),xT=qt(),Yn=Ri(),vf=of(),Zn=Mn(),TT=Qd(),NT=Kv(),wn=Hi(),hs=st(),G=ae(),ie=$e(),Qv=lf(),e0=Yv(),FT=st();Object.defineProperty(Qn,"InkList",{enumerable:true,get:function(){return FT.InkList}});Number.isInteger||(Number.isInteger=function(e){return typeof e=="number"&&isFinite(e)&&e>-9007199254740992&&e<9007199254740992&&Math.floor(e)===e});var Gr=class n extends mf.InkObject{get currentChoices(){let e=[];if(this._state===null)return (0, ie.throwNullException)("this._state");for(let t of this._state.currentChoices)t.isInvisibleDefault||(t.index=e.length,e.push(t));return e}get currentText(){return this.IfAsyncWeCant("call currentText since it's a work in progress"),this.state.currentText}get currentTags(){return this.IfAsyncWeCant("call currentTags since it's a work in progress"),this.state.currentTags}get currentErrors(){return this.state.currentErrors}get currentWarnings(){return this.state.currentWarnings}get currentFlowName(){return this.state.currentFlowName}get currentFlowIsDefaultFlow(){return this.state.currentFlowIsDefaultFlow}get aliveFlowNames(){return this.state.aliveFlowNames}get hasError(){return this.state.hasError}get hasWarning(){return this.state.hasWarning}get variablesState(){return this.state.variablesState}get listDefinitions(){return this._listDefinitions}get state(){return this._state}StartProfiling(){}EndProfiling(){}constructor(){super(),this.inkVersionMinimumCompatible=18,this.onError=null,this.onDidContinue=null,this.onMakeChoice=null,this.onEvaluateFunction=null,this.onCompleteEvaluateFunction=null,this.onChoosePathString=null,this._prevContainers=[],this.allowExternalFunctionFallbacks=false,this._listDefinitions=null,this._variableObservers=null,this._hasValidatedExternals=false,this._temporaryEvaluationContainer=null,this._asyncContinueActive=false,this._stateSnapshotAtLastNewline=null,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount=0,this._asyncSaving=false,this._profiler=null;let e,t=null,r=null;if(arguments[0]instanceof qe.Container)e=arguments[0],typeof arguments[1]<"u"&&(t=arguments[1]),this._mainContentContainer=e;else if(typeof arguments[0]=="string"){let i=arguments[0];r=Qv.SimpleJson.TextToDictionary(i);}else r=arguments[0];if(t!=null&&(this._listDefinitions=new TT.ListDefinitionsOrigin(t)),this._externals=new Map,r!==null){let i=r,a=i.inkVersion;if(a==null)throw new Error("ink version number not found. Are you sure it's a valid .ink.json file?");let s=parseInt(a);if(s>n.inkVersionCurrent)throw new Error("Version of ink used to build story was newer than the current version of the engine");if(s<this.inkVersionMinimumCompatible)throw new Error("Version of ink used to build story is too old to be loaded by this version of the engine");s!=n.inkVersionCurrent&&console.warn(`WARNING: Version of ink ${n.inkVersionCurrent} used to build story doesn't match current version of engine (${s}). Non-critical, but recommend synchronising.`);let o=i.root;if(o==null)throw new Error("Root node for ink not found. Are you sure it's a valid .ink.json file?");let u;(u=i.listDefs)&&(this._listDefinitions=gf.JsonSerialisation.JTokenToListDefinitions(u)),this._mainContentContainer=(0, G.asOrThrows)(gf.JsonSerialisation.JTokenToRuntimeObject(o),qe.Container),this.ResetState();}}ToJson(e){let t=false;if(e||(t=true,e=new Qv.SimpleJson.Writer),e.WriteObjectStart(),e.WriteIntProperty("inkVersion",n.inkVersionCurrent),e.WriteProperty("root",r=>gf.JsonSerialisation.WriteRuntimeContainer(r,this._mainContentContainer)),this._listDefinitions!=null){e.WritePropertyStart("listDefs"),e.WriteObjectStart();for(let r of this._listDefinitions.lists){e.WritePropertyStart(r.name),e.WriteObjectStart();for(let[i,a]of r.items){let s=hs.InkListItem.fromSerializedKey(i),o=a;e.WriteIntProperty(s.itemName,o);}e.WriteObjectEnd(),e.WritePropertyEnd();}e.WriteObjectEnd(),e.WritePropertyEnd();}if(e.WriteObjectEnd(),t)return e.toString()}ResetState(){this.IfAsyncWeCant("ResetState"),this._state=new wT.StoryState(this),this._state.variablesState.ObserveVariableChange(this.VariableStateDidChangeEvent.bind(this)),this.ResetGlobals();}ResetErrors(){if(this._state===null)return (0, ie.throwNullException)("this._state");this._state.ResetErrors();}ResetCallstack(){if(this.IfAsyncWeCant("ResetCallstack"),this._state===null)return (0, ie.throwNullException)("this._state");this._state.ForceEnd();}ResetGlobals(){if(this._mainContentContainer.namedContent.get("global decl")){let e=this.state.currentPointer.copy();this.ChoosePath(new yf.Path("global decl"),false),this.ContinueInternal(),this.state.currentPointer=e;}this.state.variablesState.SnapshotDefaultGlobals();}SwitchFlow(e){if(this.IfAsyncWeCant("switch flow"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't switch flow to "+e);this.state.SwitchFlow_Internal(e);}RemoveFlow(e){this.state.RemoveFlow_Internal(e);}SwitchToDefaultFlow(){this.state.SwitchToDefaultFlow_Internal();}Continue(){return this.ContinueAsync(0),this.currentText}get canContinue(){return this.state.canContinue}get asyncContinueComplete(){return !this._asyncContinueActive}ContinueAsync(e){this._hasValidatedExternals||this.ValidateExternalBindings(),this.ContinueInternal(e);}ContinueInternal(e=0){this._profiler!=null&&this._profiler.PreContinue();let t=e>0;if(this._recursiveContinueCount++,this._asyncContinueActive)this._asyncContinueActive&&!t&&(this._asyncContinueActive=false);else {if(this._asyncContinueActive=t,!this.canContinue)throw new Error("Can't continue - should check canContinue before calling Continue");this._state.didSafeExit=false,this._state.ResetOutput(),this._recursiveContinueCount==1&&this._state.variablesState.StartVariableObservation();}let r=new NT.Stopwatch;r.Start();let i=false;this._sawLookaheadUnsafeFunctionAfterNewline=false;do{try{i=this.ContinueSingleStep();}catch(s){if(!(s instanceof Yn.StoryException))throw s;this.AddError(s.message,void 0,s.useEndLineNumber);break}if(i||this._asyncContinueActive&&r.ElapsedMilliseconds>e)break}while(this.canContinue);r.Stop();let a=null;if((i||!this.canContinue)&&(this._stateSnapshotAtLastNewline!==null&&this.RestoreStateSnapshot(),this.canContinue||(this.state.callStack.canPopThread&&this.AddError("Thread available to pop, threads should always be flat by the end of evaluation?"),this.state.generatedChoices.length==0&&!this.state.didSafeExit&&this._temporaryEvaluationContainer==null&&(this.state.callStack.CanPop(St.PushPopType.Tunnel)?this.AddError("unexpectedly reached end of content. Do you need a '->->' to return from a tunnel?"):this.state.callStack.CanPop(St.PushPopType.Function)?this.AddError("unexpectedly reached end of content. Do you need a '~ return'?"):this.state.callStack.canPop?this.AddError("unexpectedly reached end of content for unknown reason. Please debug compiler!"):this.AddError("ran out of content. Do you need a '-> DONE' or '-> END'?"))),this.state.didSafeExit=false,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount==1&&(a=this._state.variablesState.CompleteVariableObservation()),this._asyncContinueActive=false,this.onDidContinue!==null&&this.onDidContinue()),this._recursiveContinueCount--,this._profiler!=null&&this._profiler.PostContinue(),this.state.hasError||this.state.hasWarning)if(this.onError!==null){if(this.state.hasError)for(let s of this.state.currentErrors)this.onError(s,e0.ErrorType.Error);if(this.state.hasWarning)for(let s of this.state.currentWarnings)this.onError(s,e0.ErrorType.Warning);this.ResetErrors();}else {let s=new Zn.StringBuilder;throw s.Append("Ink had "),this.state.hasError&&(s.Append(`${this.state.currentErrors.length}`),s.Append(this.state.currentErrors.length==1?" error":" errors"),this.state.hasWarning&&s.Append(" and ")),this.state.hasWarning&&(s.Append(`${this.state.currentWarnings.length}`),s.Append(this.state.currentWarnings.length==1?" warning":" warnings"),this.state.hasWarning&&s.Append(" and ")),s.Append(". It is strongly suggested that you assign an error handler to story.onError. The first issue was: "),s.Append(this.state.hasError?this.state.currentErrors[0]:this.state.currentWarnings[0]),new Yn.StoryException(s.toString())}a!=null&&Object.keys(a).length>0&&this._state.variablesState.NotifyObservers(a);}ContinueSingleStep(){if(this._profiler!=null&&this._profiler.PreStep(),this.Step(),this._profiler!=null&&this._profiler.PostStep(),!this.canContinue&&!this.state.callStack.elementIsEvaluateFromGame&&this.TryFollowDefaultInvisibleChoice(),this._profiler!=null&&this._profiler.PreSnapshot(),!this.state.inStringEvaluation){if(this._stateSnapshotAtLastNewline!==null){if(this._stateSnapshotAtLastNewline.currentTags===null)return (0, ie.throwNullException)("this._stateAtLastNewline.currentTags");if(this.state.currentTags===null)return (0, ie.throwNullException)("this.state.currentTags");let e=this.CalculateNewlineOutputStateChange(this._stateSnapshotAtLastNewline.currentText,this.state.currentText,this._stateSnapshotAtLastNewline.currentTags.length,this.state.currentTags.length);if(e==n.OutputStateChange.ExtendedBeyondNewline||this._sawLookaheadUnsafeFunctionAfterNewline)return this.RestoreStateSnapshot(),true;e==n.OutputStateChange.NewlineRemoved&&this.DiscardSnapshot();}this.state.outputStreamEndsInNewline&&(this.canContinue?this._stateSnapshotAtLastNewline==null&&this.StateSnapshot():this.DiscardSnapshot());}return this._profiler!=null&&this._profiler.PostSnapshot(),false}CalculateNewlineOutputStateChange(e,t,r,i){if(e===null)return (0, ie.throwNullException)("prevText");if(t===null)return (0, ie.throwNullException)("currText");let a=t.length>=e.length&&e.length>0&&t.charAt(e.length-1)==`
34
+ `;if(r==i&&e.length==t.length&&a)return n.OutputStateChange.NoChange;if(!a)return n.OutputStateChange.NewlineRemoved;if(i>r)return n.OutputStateChange.ExtendedBeyondNewline;for(let s=e.length;s<t.length;s++){let o=t.charAt(s);if(o!=" "&&o!=" ")return n.OutputStateChange.ExtendedBeyondNewline}return n.OutputStateChange.NoChange}ContinueMaximally(){this.IfAsyncWeCant("ContinueMaximally");let e=new Zn.StringBuilder;for(;this.canContinue;)e.Append(this.Continue());return e.toString()}ContentAtPath(e){return this.mainContentContainer.ContentAtPath(e)}KnotContainerWithName(e){let t=this.mainContentContainer.namedContent.get(e);return t instanceof qe.Container?t:null}PointerAtPath(e){if(e.length==0)return wn.Pointer.Null;let t=new wn.Pointer,r=e.length,i=null;return e.lastComponent===null?(0, ie.throwNullException)("path.lastComponent"):(e.lastComponent.isIndex?(r=e.length-1,i=this.mainContentContainer.ContentAtPath(e,void 0,r),t.container=i.container,t.index=e.lastComponent.index):(i=this.mainContentContainer.ContentAtPath(e),t.container=i.container,t.index=-1),i.obj==null||i.obj==this.mainContentContainer&&r>0?this.Error("Failed to find content at path '"+e+"', and no approximation of it was possible."):i.approximate&&this.Warning("Failed to find content at path '"+e+"', so it was approximated to: '"+i.obj.path+"'."),t)}StateSnapshot(){this._stateSnapshotAtLastNewline=this._state,this._state=this._state.CopyAndStartPatching(false);}RestoreStateSnapshot(){this._stateSnapshotAtLastNewline===null&&(0, ie.throwNullException)("_stateSnapshotAtLastNewline"),this._stateSnapshotAtLastNewline.RestoreAfterPatch(),this._state=this._stateSnapshotAtLastNewline,this._stateSnapshotAtLastNewline=null,this._asyncSaving||this._state.ApplyAnyPatch();}DiscardSnapshot(){this._asyncSaving||this._state.ApplyAnyPatch(),this._stateSnapshotAtLastNewline=null;}CopyStateForBackgroundThreadSave(){if(this.IfAsyncWeCant("start saving on a background thread"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't call CopyStateForBackgroundThreadSave again!");let e=this._state;return this._state=this._state.CopyAndStartPatching(true),this._asyncSaving=true,e}BackgroundSaveComplete(){this._stateSnapshotAtLastNewline===null&&this._state.ApplyAnyPatch(),this._asyncSaving=false;}Step(){let e=true,t=this.state.currentPointer.copy();if(t.isNull)return;let r=(0, G.asOrNull)(t.Resolve(),qe.Container);for(;r&&(this.VisitContainer(r,true),r.content.length!=0);)t=wn.Pointer.StartOf(r),r=(0, G.asOrNull)(t.Resolve(),qe.Container);this.state.currentPointer=t.copy(),this._profiler!=null&&this._profiler.Step(this.state.callStack);let i=t.Resolve(),a=this.PerformLogicAndFlowControl(i);if(this.state.currentPointer.isNull)return;a&&(e=false);let s=(0, G.asOrNull)(i,DT.ChoicePoint);if(s){let u=this.ProcessChoice(s);u&&this.state.generatedChoices.push(u),i=null,e=false;}if(i instanceof qe.Container&&(e=false),e){let u=(0, G.asOrNull)(i,k.VariablePointerValue);if(u&&u.contextIndex==-1){let l=this.state.callStack.ContextForVariableNamed(u.variableName);i=new k.VariablePointerValue(u.variableName,l);}this.state.inExpressionEvaluation?this.state.PushEvaluationStack(i):this.state.PushToOutputStream(i);}this.NextContent();let o=(0, G.asOrNull)(i,B.ControlCommand);o&&o.commandType==B.ControlCommand.CommandType.StartThread&&this.state.callStack.PushThread();}VisitContainer(e,t){(!e.countingAtStartOnly||t)&&(e.visitsShouldBeCounted&&this.state.IncrementVisitCountForContainer(e),e.turnIndexShouldBeCounted&&this.state.RecordTurnIndexVisitToContainer(e));}VisitChangedContainersDueToDivert(){let e=this.state.previousPointer.copy(),t=this.state.currentPointer.copy();if(t.isNull||t.index==-1)return;if(this._prevContainers.length=0,!e.isNull){let s=e.Resolve(),o=(0, G.asOrNull)(s,qe.Container)||(0, G.asOrNull)(e.container,qe.Container);for(;o;)this._prevContainers.push(o),o=(0, G.asOrNull)(o.parent,qe.Container);}let r=t.Resolve();if(r==null)return;let i=(0, G.asOrNull)(r.parent,qe.Container),a=true;for(;i&&(this._prevContainers.indexOf(i)<0||i.countingAtStartOnly);){let s=i.content.length>0&&r==i.content[0]&&a;s||(a=false),this.VisitContainer(i,s),r=i,i=(0, G.asOrNull)(i.parent,qe.Container);}}PopChoiceStringAndTags(e){let t=(0, G.asOrThrows)(this.state.PopEvaluationStack(),k.StringValue);for(;this.state.evaluationStack.length>0&&(0, G.asOrNull)(this.state.PeekEvaluationStack(),yu.Tag)!=null;){let r=(0, G.asOrNull)(this.state.PopEvaluationStack(),yu.Tag);r&&e.push(r.text);}return t.value}ProcessChoice(e){let t=true;if(e.hasCondition){let o=this.state.PopEvaluationStack();this.IsTruthy(o)||(t=false);}let r="",i="",a=[];if(e.hasChoiceOnlyContent&&(i=this.PopChoiceStringAndTags(a)||""),e.hasStartContent&&(r=this.PopChoiceStringAndTags(a)||""),e.onceOnly&&this.state.VisitCountForContainer(e.choiceTarget)>0&&(t=false),!t)return null;let s=new AT.Choice;return s.targetPath=e.pathOnChoice,s.sourcePath=e.path.toString(),s.isInvisibleDefault=e.isInvisibleDefault,s.threadAtGeneration=this.state.callStack.ForkThread(),s.tags=a.reverse(),s.text=(r+i).replace(/^[ \t]+|[ \t]+$/g,""),s}IsTruthy(e){let t=false;if(e instanceof k.Value){let r=e;if(r instanceof k.DivertTargetValue){let i=r;return this.Error("Shouldn't use a divert target (to "+i.targetPath+") as a conditional value. Did you intend a function call 'likeThis()' or a read count check 'likeThis'? (no arrows)"),false}return r.isTruthy}return t}PerformLogicAndFlowControl(e){if(e==null)return false;if(e instanceof Zv.Divert){let t=e;if(t.isConditional){let r=this.state.PopEvaluationStack();if(!this.IsTruthy(r))return true}if(t.hasVariableTarget){let r=t.variableDivertName,i=this.state.variablesState.GetVariableWithName(r);if(i==null)this.Error("Tried to divert using a target from a variable that could not be found ("+r+")");else if(!(i instanceof k.DivertTargetValue)){let s=(0, G.asOrNull)(i,k.IntValue),o="Tried to divert to a target from a variable, but the variable ("+r+") didn't contain a divert target, it ";s instanceof k.IntValue&&s.value==0?o+="was empty/null (the value 0).":o+="contained '"+i+"'.",this.Error(o);}let a=(0, G.asOrThrows)(i,k.DivertTargetValue);this.state.divertedPointer=this.PointerAtPath(a.targetPath);}else {if(t.isExternal)return this.CallExternalFunction(t.targetPathString,t.externalArgs),true;this.state.divertedPointer=t.targetPointer.copy();}return t.pushesToStack&&this.state.callStack.Push(t.stackPushType,void 0,this.state.outputStream.length),this.state.divertedPointer.isNull&&!t.isExternal&&(t&&t.debugMetadata&&t.debugMetadata.sourceName!=null?this.Error("Divert target doesn't exist: "+t.debugMetadata.sourceName):this.Error("Divert resolution failed: "+t)),true}else if(e instanceof B.ControlCommand){let t=e;switch(t.commandType){case B.ControlCommand.CommandType.EvalStart:this.Assert(this.state.inExpressionEvaluation===false,"Already in expression evaluation?"),this.state.inExpressionEvaluation=true;break;case B.ControlCommand.CommandType.EvalEnd:this.Assert(this.state.inExpressionEvaluation===true,"Not in expression evaluation mode"),this.state.inExpressionEvaluation=false;break;case B.ControlCommand.CommandType.EvalOutput:if(this.state.evaluationStack.length>0){let p=this.state.PopEvaluationStack();if(!(p instanceof cs.Void)){let C=new k.StringValue(p.toString());this.state.PushToOutputStream(C);}}break;case B.ControlCommand.CommandType.NoOp:break;case B.ControlCommand.CommandType.Duplicate:this.state.PushEvaluationStack(this.state.PeekEvaluationStack());break;case B.ControlCommand.CommandType.PopEvaluatedValue:this.state.PopEvaluationStack();break;case B.ControlCommand.CommandType.PopFunction:case B.ControlCommand.CommandType.PopTunnel:let r=t.commandType==B.ControlCommand.CommandType.PopFunction?St.PushPopType.Function:St.PushPopType.Tunnel,i=null;if(r==St.PushPopType.Tunnel){let p=this.state.PopEvaluationStack();i=(0, G.asOrNull)(p,k.DivertTargetValue),i===null&&this.Assert(p instanceof cs.Void,"Expected void if ->-> doesn't override target");}if(this.state.TryExitFunctionEvaluationFromGame())break;if(this.state.callStack.currentElement.type!=r||!this.state.callStack.canPop){let p=new Map;p.set(St.PushPopType.Function,"function return statement (~ return)"),p.set(St.PushPopType.Tunnel,"tunnel onwards statement (->->)");let C=p.get(this.state.callStack.currentElement.type);this.state.callStack.canPop||(C="end of flow (-> END or choice)");let w="Found "+p.get(r)+", when expected "+C;this.Error(w);}else this.state.PopCallStack(),i&&(this.state.divertedPointer=this.PointerAtPath(i.targetPath));break;case B.ControlCommand.CommandType.BeginString:this.state.PushToOutputStream(t),this.Assert(this.state.inExpressionEvaluation===true,"Expected to be in an expression when evaluating a string"),this.state.inExpressionEvaluation=false;break;case B.ControlCommand.CommandType.BeginTag:this.state.PushToOutputStream(t);break;case B.ControlCommand.CommandType.EndTag:{if(this.state.inStringEvaluation){let p=[],C=0;for(let A=this.state.outputStream.length-1;A>=0;--A){let N=this.state.outputStream[A];C++;let re=(0, G.asOrNull)(N,B.ControlCommand);if(re!=null){if(re.commandType==B.ControlCommand.CommandType.BeginTag)break;this.Error("Unexpected ControlCommand while extracting tag from choice");break}N instanceof k.StringValue&&p.push(N);}this.state.PopFromOutputStream(C);let w=new Zn.StringBuilder;for(let A of p.reverse())w.Append(A.toString());let O=new yu.Tag(this.state.CleanOutputWhitespace(w.toString()));this.state.PushEvaluationStack(O);}else this.state.PushToOutputStream(t);break}case B.ControlCommand.CommandType.EndString:{let p=[],C=[],w=0;for(let A=this.state.outputStream.length-1;A>=0;--A){let N=this.state.outputStream[A];w++;let re=(0, G.asOrNull)(N,B.ControlCommand);if(re&&re.commandType==B.ControlCommand.CommandType.BeginString)break;N instanceof yu.Tag&&C.push(N),N instanceof k.StringValue&&p.push(N);}this.state.PopFromOutputStream(w);for(let A of C)this.state.PushToOutputStream(A);p=p.reverse();let O=new Zn.StringBuilder;for(let A of p)O.Append(A.toString());this.state.inExpressionEvaluation=true,this.state.PushEvaluationStack(new k.StringValue(O.toString()));break}case B.ControlCommand.CommandType.ChoiceCount:let a=this.state.generatedChoices.length;this.state.PushEvaluationStack(new k.IntValue(a));break;case B.ControlCommand.CommandType.Turns:this.state.PushEvaluationStack(new k.IntValue(this.state.currentTurnIndex+1));break;case B.ControlCommand.CommandType.TurnsSince:case B.ControlCommand.CommandType.ReadCount:let s=this.state.PopEvaluationStack();if(!(s instanceof k.DivertTargetValue)){let p="";s instanceof k.IntValue&&(p=". Did you accidentally pass a read count ('knot_name') instead of a target ('-> knot_name')?"),this.Error("TURNS_SINCE / READ_COUNT expected a divert target (knot, stitch, label name), but saw "+s+p);break}let o=(0, G.asOrThrows)(s,k.DivertTargetValue),u=(0, G.asOrNull)(this.ContentAtPath(o.targetPath).correctObj,qe.Container),l;u!=null?t.commandType==B.ControlCommand.CommandType.TurnsSince?l=this.state.TurnsSinceForContainer(u):l=this.state.VisitCountForContainer(u):(t.commandType==B.ControlCommand.CommandType.TurnsSince?l=-1:l=0,this.Warning("Failed to find container for "+t.toString()+" lookup at "+o.targetPath.toString())),this.state.PushEvaluationStack(new k.IntValue(l));break;case B.ControlCommand.CommandType.Random:{let p=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue),C=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue);if(C==null||!(C instanceof k.IntValue))return this.Error("Invalid value for minimum parameter of RANDOM(min, max)");if(p==null||!(p instanceof k.IntValue))return this.Error("Invalid value for maximum parameter of RANDOM(min, max)");if(p.value===null)return (0, ie.throwNullException)("maxInt.value");if(C.value===null)return (0, ie.throwNullException)("minInt.value");let w=p.value-C.value+1;(!isFinite(w)||w>Number.MAX_SAFE_INTEGER)&&(w=Number.MAX_SAFE_INTEGER,this.Error("RANDOM was called with a range that exceeds the size that ink numbers can use.")),w<=0&&this.Error("RANDOM was called with minimum as "+C.value+" and maximum as "+p.value+". The maximum must be larger");let O=this.state.storySeed+this.state.previousRandom,N=new vf.PRNG(O).next(),re=N%w+C.value;this.state.PushEvaluationStack(new k.IntValue(re)),this.state.previousRandom=N;break}case B.ControlCommand.CommandType.SeedRandom:let c=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue);if(c==null||!(c instanceof k.IntValue))return this.Error("Invalid value passed to SEED_RANDOM");if(c.value===null)return (0, ie.throwNullException)("minInt.value");this.state.storySeed=c.value,this.state.previousRandom=0,this.state.PushEvaluationStack(new cs.Void);break;case B.ControlCommand.CommandType.VisitIndex:let h=this.state.VisitCountForContainer(this.state.currentPointer.container)-1;this.state.PushEvaluationStack(new k.IntValue(h));break;case B.ControlCommand.CommandType.SequenceShuffleIndex:let f=this.NextSequenceShuffleIndex();this.state.PushEvaluationStack(new k.IntValue(f));break;case B.ControlCommand.CommandType.StartThread:break;case B.ControlCommand.CommandType.Done:this.state.callStack.canPopThread?this.state.callStack.PopThread():(this.state.didSafeExit=true,this.state.currentPointer=wn.Pointer.Null);break;case B.ControlCommand.CommandType.End:this.state.ForceEnd();break;case B.ControlCommand.CommandType.ListFromInt:let d=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue),m=(0, G.asOrThrows)(this.state.PopEvaluationStack(),k.StringValue);if(d===null)throw new Yn.StoryException("Passed non-integer when creating a list element from a numerical value.");let y=null;if(this.listDefinitions===null)return (0, ie.throwNullException)("this.listDefinitions");let S=this.listDefinitions.TryListGetDefinition(m.value,null);if(S.exists){if(d.value===null)return (0, ie.throwNullException)("minInt.value");let p=S.result.TryGetItemWithValue(d.value,hs.InkListItem.Null);p.exists&&(y=new k.ListValue(p.result,d.value));}else throw new Yn.StoryException("Failed to find LIST called "+m.value);y==null&&(y=new k.ListValue),this.state.PushEvaluationStack(y);break;case B.ControlCommand.CommandType.ListRange:let _=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.Value),b=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.Value),g=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.ListValue);if(g===null||b===null||_===null)throw new Yn.StoryException("Expected list, minimum and maximum for LIST_RANGE");if(g.value===null)return (0, ie.throwNullException)("targetList.value");let v=g.value.ListWithSubRange(b.valueObject,_.valueObject);this.state.PushEvaluationStack(new k.ListValue(v));break;case B.ControlCommand.CommandType.ListRandom:{let p=this.state.PopEvaluationStack();if(p===null)throw new Yn.StoryException("Expected list for LIST_RANDOM");let C=p.value,w=null;if(C===null)throw (0, ie.throwNullException)("list");if(C.Count==0)w=new hs.InkList;else {let O=this.state.storySeed+this.state.previousRandom,N=new vf.PRNG(O).next(),re=N%C.Count,Y=C.entries();for(let Kr=0;Kr<=re-1;Kr++)Y.next();let ue=Y.next().value,rn={Key:hs.InkListItem.fromSerializedKey(ue[0]),Value:ue[1]};if(rn.Key.originName===null)return (0, ie.throwNullException)("randomItem.Key.originName");w=new hs.InkList(rn.Key.originName,this),w.Add(rn.Key,rn.Value),this.state.previousRandom=N;}this.state.PushEvaluationStack(new k.ListValue(w));break}default:this.Error("unhandled ControlCommand: "+t);break}return true}else if(e instanceof PT.VariableAssignment){let t=e,r=this.state.PopEvaluationStack();return this.state.variablesState.Assign(t,r),true}else if(e instanceof OT.VariableReference){let t=e,r=null;if(t.pathForCount!=null){let i=t.containerForCount,a=this.state.VisitCountForContainer(i);r=new k.IntValue(a);}else r=this.state.variablesState.GetVariableWithName(t.name),r==null&&(this.Warning("Variable not found: '"+t.name+"'. Using default value of 0 (false). This can happen with temporary variables if the declaration hasn't yet been hit. Globals are always given a default value on load if a value doesn't exist in the save state."),r=new k.IntValue(0));return this.state.PushEvaluationStack(r),true}else if(e instanceof xT.NativeFunctionCall){let t=e,r=this.state.PopEvaluationStack(t.numberOfParameters),i=t.Call(r);return this.state.PushEvaluationStack(i),true}return false}ChoosePathString(e,t=true,r=[]){if(this.IfAsyncWeCant("call ChoosePathString right now"),this.onChoosePathString!==null&&this.onChoosePathString(e,r),t)this.ResetCallstack();else if(this.state.callStack.currentElement.type==St.PushPopType.Function){let i="",a=this.state.callStack.currentElement.currentPointer.container;throw a!=null&&(i="("+a.path.toString()+") "),new Error("Story was running a function "+i+"when you called ChoosePathString("+e+`) - this is almost certainly not not what you want! Full stack trace:
35
+ `+this.state.callStack.callStackTrace)}this.state.PassArgumentsToEvaluationStack(r),this.ChoosePath(new yf.Path(e));}IfAsyncWeCant(e){if(this._asyncContinueActive)throw new Error("Can't "+e+". Story is in the middle of a ContinueAsync(). Make more ContinueAsync() calls or a single Continue() call beforehand.")}ChoosePath(e,t=true){this.state.SetChosenPath(e,t),this.VisitChangedContainersDueToDivert();}ChooseChoiceIndex(e){e=e;let t=this.currentChoices;this.Assert(e>=0&&e<t.length,"choice out of range");let r=t[e];if(this.onMakeChoice!==null&&this.onMakeChoice(r),r.threadAtGeneration===null)return (0, ie.throwNullException)("choiceToChoose.threadAtGeneration");if(r.targetPath===null)return (0, ie.throwNullException)("choiceToChoose.targetPath");this.state.callStack.currentThread=r.threadAtGeneration,this.ChoosePath(r.targetPath);}HasFunction(e){try{return this.KnotContainerWithName(e)!=null}catch{return false}}EvaluateFunction(e,t=[],r=false){if(this.onEvaluateFunction!==null&&this.onEvaluateFunction(e,t),this.IfAsyncWeCant("evaluate a function"),e==null)throw new Error("Function is null");if(e==""||e.trim()=="")throw new Error("Function is empty or white space.");let i=this.KnotContainerWithName(e);if(i==null)throw new Error("Function doesn't exist: '"+e+"'");let a=[];a.push(...this.state.outputStream),this._state.ResetOutput(),this.state.StartFunctionEvaluationFromGame(i,t);let s=new Zn.StringBuilder;for(;this.canContinue;)s.Append(this.Continue());let o=s.toString();this._state.ResetOutput(a);let u=this.state.CompleteFunctionEvaluationFromGame();return this.onCompleteEvaluateFunction!=null&&this.onCompleteEvaluateFunction(e,t,o,u),r?{returned:u,output:o}:u}EvaluateExpression(e){let t=this.state.callStack.elements.length;this.state.callStack.Push(St.PushPopType.Tunnel),this._temporaryEvaluationContainer=e,this.state.GoToStart();let r=this.state.evaluationStack.length;return this.Continue(),this._temporaryEvaluationContainer=null,this.state.callStack.elements.length>t&&this.state.PopCallStack(),this.state.evaluationStack.length>r?this.state.PopEvaluationStack():null}CallExternalFunction(e,t){if(e===null)return (0, ie.throwNullException)("funcName");let r=this._externals.get(e),i=null,a=typeof r<"u";if(a&&!r.lookAheadSafe&&this._state.inStringEvaluation&&this.Error("External function "+e+` could not be called because 1) it wasn't marked as lookaheadSafe when BindExternalFunction was called and 2) the story is in the middle of string generation, either because choice text is being generated, or because you have ink like "hello {func()}". You can work around this by generating the result of your function into a temporary variable before the string or choice gets generated: ~ temp x = `+e+"()"),a&&!r.lookAheadSafe&&this._stateSnapshotAtLastNewline!==null){this._sawLookaheadUnsafeFunctionAfterNewline=true;return}if(!a)if(this.allowExternalFunctionFallbacks){i=this.KnotContainerWithName(e),this.Assert(i!==null,"Trying to call EXTERNAL function '"+e+"' which has not been bound, and fallback ink function could not be found."),this.state.callStack.Push(St.PushPopType.Function,void 0,this.state.outputStream.length),this.state.divertedPointer=wn.Pointer.StartOf(i);return}else this.Assert(false,"Trying to call EXTERNAL function '"+e+"' which has not been bound (and ink fallbacks disabled).");let s=[];for(let l=0;l<t;++l){let h=(0, G.asOrThrows)(this.state.PopEvaluationStack(),k.Value).valueObject;s.push(h);}s.reverse();let o=r.function(s),u=null;o!=null?(u=k.Value.Create(o),this.Assert(u!==null,"Could not create ink value from returned object of type "+typeof o)):u=new cs.Void,this.state.PushEvaluationStack(u);}BindExternalFunctionGeneral(e,t,r=true){this.IfAsyncWeCant("bind an external function"),this.Assert(!this._externals.has(e),"Function '"+e+"' has already been bound."),this._externals.set(e,{function:t,lookAheadSafe:r});}TryCoerce(e){return e}BindExternalFunction(e,t,r=false){this.Assert(t!=null,"Can't bind a null function"),this.BindExternalFunctionGeneral(e,i=>{this.Assert(i.length>=t.length,"External function expected "+t.length+" arguments");let a=[];for(let s=0,o=i.length;s<o;s++)a[s]=this.TryCoerce(i[s]);return t.apply(null,a)},r);}UnbindExternalFunction(e){this.IfAsyncWeCant("unbind an external a function"),this.Assert(this._externals.has(e),"Function '"+e+"' has not been bound."),this._externals.delete(e);}ValidateExternalBindings(){let e=null,t=null,r=arguments[1]||new Set;if(arguments[0]instanceof qe.Container&&(e=arguments[0]),arguments[0]instanceof mf.InkObject&&(t=arguments[0]),e===null&&t===null)if(this.ValidateExternalBindings(this._mainContentContainer,r),this._hasValidatedExternals=true,r.size==0)this._hasValidatedExternals=true;else {let i="Error: Missing function binding for external";i+=r.size>1?"s":"",i+=": '",i+=Array.from(r).join("', '"),i+="' ",i+=this.allowExternalFunctionFallbacks?", and no fallback ink function found.":" (ink fallbacks disabled)",this.Error(i);}else if(e!=null){for(let i of e.content){let a=i;(a==null||!a.hasValidName)&&this.ValidateExternalBindings(i,r);}for(let[,i]of e.namedContent)this.ValidateExternalBindings((0, G.asOrNull)(i,mf.InkObject),r);}else if(t!=null){let i=(0, G.asOrNull)(t,Zv.Divert);if(i&&i.isExternal){let a=i.targetPathString;if(a===null)return (0, ie.throwNullException)("name");this._externals.has(a)||this.allowExternalFunctionFallbacks&&this.mainContentContainer.namedContent.has(a)||r.add(a);}}}ObserveVariable(e,t){if(this.IfAsyncWeCant("observe a new variable"),this._variableObservers===null&&(this._variableObservers=new Map),!this.state.variablesState.GlobalVariableExistsWithName(e))throw new Error("Cannot observe variable '"+e+"' because it wasn't declared in the ink story.");this._variableObservers.has(e)?this._variableObservers.get(e).push(t):this._variableObservers.set(e,[t]);}ObserveVariables(e,t){for(let r=0,i=e.length;r<i;r++)this.ObserveVariable(e[r],t[r]);}RemoveVariableObserver(e,t){if(this.IfAsyncWeCant("remove a variable observer"),this._variableObservers!==null){if(t!=null){if(this._variableObservers.has(t))if(e!=null){let r=this._variableObservers.get(t);r!=null&&(r.splice(r.indexOf(e),1),r.length===0&&this._variableObservers.delete(t));}else this._variableObservers.delete(t);}else if(e!=null){let r=this._variableObservers.keys();for(let i of r){let a=this._variableObservers.get(i);a!=null&&(a.splice(a.indexOf(e),1),a.length===0&&this._variableObservers.delete(i));}}}}VariableStateDidChangeEvent(e,t){if(this._variableObservers===null)return;let r=this._variableObservers.get(e);if(typeof r<"u"){if(!(t instanceof k.Value))throw new Error("Tried to get the value of a variable that isn't a standard type");let i=(0, G.asOrThrows)(t,k.Value);for(let a of r)a(e,i.valueObject);}}get globalTags(){return this.TagsAtStartOfFlowContainerWithPathString("")}TagsForContentAtPath(e){return this.TagsAtStartOfFlowContainerWithPathString(e)}TagsAtStartOfFlowContainerWithPathString(e){let t=new yf.Path(e),r=this.ContentAtPath(t).container;if(r===null)return (0, ie.throwNullException)("flowContainer");for(;;){let s=r.content[0];if(s instanceof qe.Container)r=s;else break}let i=false,a=null;for(let s of r.content){let o=(0, G.asOrNull)(s,B.ControlCommand);if(o!=null)o.commandType==B.ControlCommand.CommandType.BeginTag?i=true:o.commandType==B.ControlCommand.CommandType.EndTag&&(i=false);else if(i){let u=(0, G.asOrNull)(s,k.StringValue);u!==null?(a===null&&(a=[]),u.value!==null&&a.push(u.value)):this.Error("Tag contained non-text content. Only plain text is allowed when using globalTags or TagsAtContentPath. If you want to evaluate dynamic content, you need to use story.Continue().");}else break}return a}BuildStringOfHierarchy(){let e=new Zn.StringBuilder;return this.mainContentContainer.BuildStringOfHierarchy(e,0,this.state.currentPointer.Resolve()),e.toString()}BuildStringOfContainer(e){let t=new Zn.StringBuilder;return e.BuildStringOfHierarchy(t,0,this.state.currentPointer.Resolve()),t.toString()}NextContent(){if(this.state.previousPointer=this.state.currentPointer.copy(),!this.state.divertedPointer.isNull&&(this.state.currentPointer=this.state.divertedPointer.copy(),this.state.divertedPointer=wn.Pointer.Null,this.VisitChangedContainersDueToDivert(),!this.state.currentPointer.isNull))return;if(!this.IncrementContentPointer()){let t=false;this.state.callStack.CanPop(St.PushPopType.Function)?(this.state.PopCallStack(St.PushPopType.Function),this.state.inExpressionEvaluation&&this.state.PushEvaluationStack(new cs.Void),t=true):this.state.callStack.canPopThread?(this.state.callStack.PopThread(),t=true):this.state.TryExitFunctionEvaluationFromGame(),t&&!this.state.currentPointer.isNull&&this.NextContent();}}IncrementContentPointer(){let e=true,t=this.state.callStack.currentElement.currentPointer.copy();if(t.index++,t.container===null)return (0, ie.throwNullException)("pointer.container");for(;t.index>=t.container.content.length;){e=false;let r=(0, G.asOrNull)(t.container.parent,qe.Container);if(!(r instanceof qe.Container))break;let i=r.content.indexOf(t.container);if(i==-1)break;if(t=new wn.Pointer(r,i),t.index++,e=true,t.container===null)return (0, ie.throwNullException)("pointer.container")}return e||(t=wn.Pointer.Null),this.state.callStack.currentElement.currentPointer=t.copy(),e}TryFollowDefaultInvisibleChoice(){let e=this._state.currentChoices,t=e.filter(i=>i.isInvisibleDefault);if(t.length==0||e.length>t.length)return false;let r=t[0];return r.targetPath===null?(0, ie.throwNullException)("choice.targetPath"):r.threadAtGeneration===null?(0, ie.throwNullException)("choice.threadAtGeneration"):(this.state.callStack.currentThread=r.threadAtGeneration,this._stateSnapshotAtLastNewline!==null&&(this.state.callStack.currentThread=this.state.callStack.ForkThread()),this.ChoosePath(r.targetPath,false),true)}NextSequenceShuffleIndex(){let e=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue);if(!(e instanceof k.IntValue))return this.Error("expected number of elements in sequence for shuffle index"),0;let t=this.state.currentPointer.container;if(t===null)return (0, ie.throwNullException)("seqContainer");if(e.value===null)return (0, ie.throwNullException)("numElementsIntVal.value");let r=e.value,a=(0, G.asOrThrows)(this.state.PopEvaluationStack(),k.IntValue).value;if(a===null)return (0, ie.throwNullException)("seqCount");let s=a/r,o=a%r,u=t.path.toString(),l=0;for(let d=0,m=u.length;d<m;d++)l+=u.charCodeAt(d)||0;let c=l+s+this.state.storySeed,h=new vf.PRNG(Math.floor(c)),f=[];for(let d=0;d<r;++d)f.push(d);for(let d=0;d<=o;++d){let m=h.next()%f.length,y=f[m];if(f.splice(m,1),d==o)return y}throw new Error("Should never reach here")}Error(e,t=false){let r=new Yn.StoryException(e);throw r.useEndLineNumber=t,r}Warning(e){this.AddError(e,true);}AddError(e,t=false,r=false){let i=this.currentDebugMetadata,a=t?"WARNING":"ERROR";if(i!=null){let s=r?i.endLineNumber:i.startLineNumber;e="RUNTIME "+a+": '"+i.fileName+"' line "+s+": "+e;}else this.state.currentPointer.isNull?e="RUNTIME "+a+": "+e:e="RUNTIME "+a+": ("+this.state.currentPointer+"): "+e;this.state.AddError(e,t),t||this.state.ForceEnd();}Assert(e,t=null){if(e==false)throw t==null&&(t="Story assert"),new Error(t+" "+this.currentDebugMetadata)}get currentDebugMetadata(){let e,t=this.state.currentPointer;if(!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.callStack.elements.length-1;r>=0;--r)if(t=this.state.callStack.elements[r].currentPointer,!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.outputStream.length-1;r>=0;--r)if(e=this.state.outputStream[r].debugMetadata,e!==null)return e;return null}get mainContentContainer(){return this._temporaryEvaluationContainer?this._temporaryEvaluationContainer:this._mainContentContainer}};Qn.Story=Gr;Gr.inkVersionCurrent=21;(function(n){(function(t){t[t.NoChange=0]="NoChange",t[t.ExtendedBeyondNewline=1]="ExtendedBeyondNewline",t[t.NewlineRemoved=2]="NewlineRemoved";})(n.OutputStateChange||(n.OutputStateChange={}));})(Gr||(Qn.Story=Gr={}));});var n0=E(Su=>{Object.defineProperty(Su,"__esModule",{value:true});Su.Story=void 0;var IT=pa(),kT=Qa(),vu=Ee(),Cu=je(),ds=wr(),bu=Wt(),t0=Vr(),VT=Ld(),RT=To(),$T=zd(),jT=ss(),zr=en(),LT=bn(),qT=vn(),fs=ae(),BT=Xi(),WT=Yi(),MT=Un(),_u=class n extends bu.FlowBase{get flowLevel(){return t0.FlowLevel.Story}get hadError(){return this._hadError}get hadWarning(){return this._hadWarning}constructor(e,t=false){super(null,e,null,false,t),this._errorHandler=null,this._hadError=false,this._hadWarning=false,this._dontFlattenContainers=new Set,this._listDefs=new Map,this.constants=new Map,this.externals=new Map,this.countAllVisits=false,this.ExportRuntime=(r=null)=>{var i,a;this._errorHandler=r,this.constants=new Map;for(let c of this.FindAll(kT.ConstantDeclaration)()){let h=this.constants.get(c.constantName);if(h&&!h.Equals(c.expression)){let f=`CONST '${c.constantName}' has been redefined with a different value. Multiple definitions of the same CONST are valid so long as they contain the same value. Initial definition was on ${h.debugMetadata}.`;this.Error(f,c,false);}this.constants.set(c.constantName,c.expression);}this._listDefs=new Map;for(let c of this.FindAll(RT.ListDefinition)())!((i=c.identifier)===null||i===void 0)&&i.name&&this._listDefs.set((a=c.identifier)===null||a===void 0?void 0:a.name,c);this.externals=new Map,this.ResolveWeavePointNaming();let s=this.runtimeObject,o=new vu.Container;o.AddContent(Cu.ControlCommand.EvalStart());let u=[];for(let[c,h]of this.variableDeclarations)if(h.isGlobalDeclaration){if(h.listDefinition)this._listDefs.set(c,h.listDefinition),o.AddContent(h.listDefinition.runtimeObject),u.push(h.listDefinition.runtimeListDefinition);else {if(!h.expression)throw new Error;h.expression.GenerateIntoContainer(o);}let f=new qT.VariableAssignment(c,true);f.isGlobal=true,o.AddContent(f);}o.AddContent(Cu.ControlCommand.EvalEnd()),o.AddContent(Cu.ControlCommand.End()),this.variableDeclarations.size>0&&(o.name="global decl",s.AddToNamedContentOnly(o)),s.AddContent(Cu.ControlCommand.Done());let l=new jT.Story(s,u);return this.runtimeObject=l,this.hadError||(this.FlattenContainersIn(s),this.ResolveReferences(this),this.hadError)?null:(l.ResetState(),l)},this.ResolveList=r=>{let i=this._listDefs.get(r);return i||null},this.ResolveListItem=(r,i,a=null)=>{let s=null;if(r)return (s=this._listDefs.get(r))?s.ItemNamed(i):null;{let o=null,u=null;for(let[,l]of this._listDefs.entries()){let c=l.ItemNamed(i);c&&(o?this.Error(`Ambiguous item name '${i}' found in multiple sets, including ${u.identifier} and ${l.identifier}`,a,false):(o=c,u=l));}return o}},this.FlattenContainersIn=r=>{let i=new Set;if(r.content)for(let a of r.content){let s=(0, fs.asOrNull)(a,vu.Container);s&&i.add(s);}if(r.namedContent)for(let[,a]of r.namedContent){let s=(0, fs.asOrNull)(a,vu.Container);s&&i.add(s);}for(let a of i)this.TryFlattenContainer(a),this.FlattenContainersIn(a);},this.TryFlattenContainer=r=>{if(r.namedContent&&r.namedContent.size>0||r.hasValidName||this._dontFlattenContainers.has(r))return;let i=(0, fs.asOrNull)(r.parent,vu.Container);if(i){let a=i.content.indexOf(r);i.content.splice(a,1);let s=r.ownDebugMetadata;if(r.content)for(let o of r.content)o.parent=null,s!==null&&o.ownDebugMetadata===null&&(o.debugMetadata=s),i.InsertContent(o,a),a+=1;}},this.Error=(r,i,a)=>{let s=a?ds.ErrorType.Warning:ds.ErrorType.Error,o="";if(i instanceof IT.AuthorWarning?(o+="TODO: ",s=ds.ErrorType.Author):a?o+="WARNING: ":o+="ERROR: ",i&&i.debugMetadata!==null&&i.debugMetadata.startLineNumber>=1&&(i.debugMetadata.fileName!=null&&(o+=`'${i.debugMetadata.fileName}' `),o+=`line ${i.debugMetadata.startLineNumber}: `),o+=r,r=o,this._errorHandler!==null)this._errorHandler(r,s);else throw new Error(r);this._hadError=s===ds.ErrorType.Error,this._hadWarning=s===ds.ErrorType.Warning;},this.ResetError=()=>{this._hadError=false,this._hadWarning=false;},this.IsExternal=r=>this.externals.has(r),this.AddExternal=r=>{this.externals.has(r.name)?this.Error(`Duplicate EXTERNAL definition of '${r.name}'`,r,false):r.name&&this.externals.set(r.name,r);},this.DontFlattenContainer=r=>{this._dontFlattenContainers.add(r);},this.NameConflictError=(r,i,a,s)=>{r.Error(`${s} '${i}': name has already been used for a ${a.typeName.toLowerCase()} on ${a.debugMetadata}`);},this.CheckForNamingCollisions=(r,i,a,s="")=>{var o;let u=s||r.typeName;if(n.IsReservedKeyword(i?.name)){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a reserved keyword`);return}else if(WT.FunctionCall.IsBuiltIn(i?.name||"")){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a built in function`);return}let l=this.ContentWithNameAtLevel(i?.name||"",t0.FlowLevel.Knot),c=(0, fs.asOrNull)(l,bu.FlowBase);if(c&&(c!==r||a===zr.SymbolType.Arg)){this.NameConflictError(r,i?.name||"",c,u);return}if(a<zr.SymbolType.List)return;for(let[m,y]of this._listDefs)if(i?.name===m&&r!==y&&y.variableAssignment!==r&&this.NameConflictError(r,i?.name,y,u),!(r instanceof $T.ListElementDefinition))for(let S of y.itemDefinitions)i?.name===S.name&&this.NameConflictError(r,i?.name||"",S,u);if(a<=zr.SymbolType.Var)return;let h=i?.name&&this.variableDeclarations.get(i?.name)||null;if(h&&h!==r&&h.isGlobalDeclaration&&h.listDefinition==null&&this.NameConflictError(r,i?.name||"",h,u),a<zr.SymbolType.SubFlowAndWeave)return;let d=new MT.Path(i).ResolveFromContext(r);if(d&&d!==r){this.NameConflictError(r,i?.name||"",d,u);return}if(!(a<zr.SymbolType.Arg)&&a!==zr.SymbolType.Arg){let m=(0, fs.asOrNull)(r,bu.FlowBase);if(m||(m=(0, BT.ClosestFlowBase)(r)),m&&m.hasParameters&&m.args){for(let y of m.args)if(((o=y.identifier)===null||o===void 0?void 0:o.name)===i?.name){r.Error(`${u} '${i}': name has already been used for a argument to ${m.identifier} on ${m.debugMetadata}`);return}}}};}get typeName(){return "Story"}PreProcessTopLevelObjects(e){super.PreProcessTopLevelObjects(e);let t=[];for(let r of e)if(r instanceof VT.IncludedFile){let i=r,a=e.indexOf(r);if(e.splice(a,1),i.includedStory){let s=[],o=i.includedStory;if(o.content!=null){for(let u of o.content)u instanceof bu.FlowBase?t.push(u):s.push(u);s.push(new LT.Text(`
36
+ `)),e.splice(a,0,...s);}}continue}e.splice(0,0,...t);}};Su.Story=_u;_u.IsReservedKeyword=n=>{switch(n){case "true":case "false":case "not":case "return":case "else":case "VAR":case "CONST":case "temp":case "LIST":case "function":return true}return false};});var i0=E(Eu=>{Object.defineProperty(Eu,"__esModule",{value:true});Eu.StringExpression=void 0;var r0=je(),GT=yt(),zT=bn(),JT=ae(),Cf=class n extends GT.Expression{get isSingleString(){return !(this.content.length!==1||!(this.content[0]instanceof zT.Text))}constructor(e){super(),this.GenerateIntoContainer=t=>{t.AddContent(r0.ControlCommand.BeginString());for(let r of this.content)t.AddContent(r.runtimeObject);t.AddContent(r0.ControlCommand.EndString());},this.toString=()=>{let t="";for(let r of this.content)t+=r;return t},this.AddContent(e);}get typeName(){return "String"}Equals(e){let t=(0, JT.asOrNull)(e,n);if(t===null||!this.isSingleString||!t.isSingleString)return false;let r=this.toString(),i=t.toString();return r===i}};Eu.StringExpression=Cf;});var a0=E(Jr=>{Object.defineProperty(Jr,"__esModule",{value:true});Jr.LegacyTag=Jr.Tag=void 0;var HT=ye(),s0=je(),bf=class extends HT.ParsedObject{constructor(e,t=false){super(),this.GenerateRuntimeObject=()=>this.isStart?s0.ControlCommand.BeginTag():s0.ControlCommand.EndTag(),this.toString=()=>this.isStart?"#StartTag":"#EndTag",this.isStart=e,this.inChoice=t;}get typeName(){return "Tag"}};Jr.Tag=bf;var UT=kd(),_f=class extends UT.Wrap{constructor(e){super(e);}get typeName(){return "Tag"}};Jr.LegacyTag=_f;});var o0=E(wu=>{Object.defineProperty(wu,"__esModule",{value:true});wu.DefaultFileHandler=void 0;var Sf=class{constructor(e){this.rootPath=e,this.ResolveInkFilename=()=>{throw Error("Can't resolve filename because no FileHandler was provided when instantiating the parser / compiler.")},this.LoadInkFileContents=()=>{throw Error("Can't load ink content because no FileHandler was provided when instantiating the parser / compiler.")};}};wu.DefaultFileHandler=Sf;});var Af=E(Ou=>{Object.defineProperty(Ou,"__esModule",{value:true});Ou.InkParser=void 0;var KT=Ty(),XT=pa(),YT=xh(),Tt=My(),Te=zi(),ZT=kr(),QT=Zy(),e1=Xa(),ps=ld(),ut=co(),t1=Qa(),Du=bv(),n1=_v(),er=jr(),Ef=$r(),r1=yt(),i1=Sv(),u0=Ev(),Au=Yi(),s1=Ki(),a1=wv(),o1=Go(),Pu=Av(),l0=Ld(),u1=Pv(),l1=Wd(),c0=xv(),c1=To(),h1=zd(),d1=sd(),h0=ye(),f1=Un(),d0=Xh(),f0=vd(),xe=md(),Ue=Jd(),p1=Ud(),p0=n0(),ms=i0(),tn=qh(),Hr=a0(),nn=bn(),m0=bd(),wf=Ad(),Df=qr(),m1=Ph(),Dn=ae(),gs=oo(),Ur=Ta(),g0=wr(),g1=o0(),ce=class n extends tn.StringParser{get fileHandler(){if(!this._fileHandler)throw new Error("No FileHandler defined");return this._fileHandler}set fileHandler(e){this._fileHandler=e;}constructor(e,t=null,r=null,i=null,a=null){if(super(e),this.ParseStory=()=>{let s=this.StatementsAtLevel(Ue.StatementLevel.Top);return new p0.Story(s,this._rootParser!==this)},this.SeparatedList=(s,o)=>{let u=this.Parse(s);if(u===null)return null;let l=[];l.push(u);do{let c=this.BeginRule();if(o()===null){this.FailRule(c);break}let f=this.Parse(s);if(f===null){this.FailRule(c);break}this.SucceedRule(c),l.push(f);}while(true);return l},this.CreateDebugMetadata=(s,o)=>{let u=new n1.DebugMetadata;return u.startLineNumber=(s?.lineIndex||0)+1,u.endLineNumber=o.lineIndex+1,u.startCharacterNumber=(s?.characterInLineIndex||0)+1,u.endCharacterNumber=o.characterInLineIndex+1,u.fileName=this._filename,u},this.RuleDidSucceed=(s,o,u)=>{let l=(0, Dn.asOrNull)(s,h0.ParsedObject);l&&(l.debugMetadata=this.CreateDebugMetadata(o,u));let c=Array.isArray(s)?s:null;if(c!==null)for(let f of c)(0, Dn.asOrNull)(f,h0.ParsedObject)&&(f.hasOwnDebugMetadata||(f.debugMetadata=this.CreateDebugMetadata(o,u)));let h=(0, Dn.asOrNull)(s,gs.Identifier);h!=null&&(h.debugMetadata=this.CreateDebugMetadata(o,u));},this.OnStringParserError=(s,o,u=0,l=false)=>{let h=l?"WARNING:":"ERROR:";if(this._filename!==null&&(h+=` '${this._filename}'`),h+=` line ${u+1}: ${s}`,this._externalErrorHandler!==null)this._externalErrorHandler(h,l?g0.ErrorType.Warning:g0.ErrorType.Error);else throw new Error(h)},this.AuthorWarning=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!=="TODO")return null;this.Whitespace(),this.ParseString(":"),this.Whitespace();let o=this.ParseUntilCharactersFromString(`
37
+ \r`);return o?new XT.AuthorWarning(o):null},this.ExtendIdentifierCharacterRanges=s=>{let o=n.ListAllCharacterRanges();for(let u of o)s.AddCharacters(u.ToCharacterSet());},this._parsingChoice=false,this.Choice=()=>{let s=true,o=this.Interleave(this.OptionalExclude(this.Whitespace),this.String("*"));if(!o){if(o=this.Interleave(this.OptionalExclude(this.Whitespace),this.String("+")),o===null)return null;s=false;}let u=this.Parse(this.BracketedName);this.Whitespace(),u!=null&&this.Newline();let l=this.Parse(this.ChoiceCondition);if(this.Whitespace(),this._parsingChoice)throw new Error("Already parsing a choice - shouldn't have nested choices");this._parsingChoice=true;let c=null,h=this.Parse(this.MixedTextAndLogic);h&&(c=new ut.ContentList(h));let f=null,d=null,m=this.ParseString("[")!==null;if(m){this.EndTagIfNecessary(c);let b=this.Parse(this.MixedTextAndLogic);b!==null&&(f=new ut.ContentList(b)),this.Expect(this.String("]"),"closing ']' for weave-style option"),this.EndTagIfNecessary(f);let g=this.Parse(this.MixedTextAndLogic);g!==null&&(d=new ut.ContentList(g));}this.Whitespace(),this.EndTagIfNecessary(d??c);let y=this.Parse(this.MultiDivert);this._parsingChoice=false,this.Whitespace();let S=!c&&!d&&!f;if(S&&y===null&&this.Warning("Choice is completely empty. Interpretting as a default fallback choice. Add a divert arrow to remove this warning: * ->"),!c&&m&&!f&&this.Warning("Blank choice - if you intended a default fallback choice, use the `* ->` syntax"),d||(d=new ut.ContentList),this.EndTagIfNecessary(d),y!==null)for(let b of y){let g=(0, Dn.asOrNull)(b,er.Divert);g&&g.isEmpty||d.AddContent(b);}d.AddContent(new nn.Text(`
38
+ `));let _=new ZT.Choice(c,f,d);return u&&(_.identifier=u),_.indentationDepth=o.length,_.hasWeaveStyleInlineBrackets=m,_.condition=l,_.onceOnly=s,_.isInvisibleDefault=S,_},this.ChoiceCondition=()=>{let s=this.Interleave(this.ChoiceSingleCondition,this.ChoiceConditionsSpace);return s===null?null:s.length===1?s[0]:new d1.MultipleConditionExpression(s)},this.ChoiceConditionsSpace=()=>(this.Newline(),this.Whitespace(),tn.ParseSuccess),this.ChoiceSingleCondition=()=>{if(this.ParseString("{")===null)return null;let s=this.Expect(this.Expression,"choice condition inside { }");return this.DisallowIncrement(s),this.Expect(this.String("}"),"closing '}' for choice condition"),s},this.Gather=()=>{let s=this.Parse(this.GatherDashes);if(s===null)return null;let o=Number(s),u=this.Parse(this.BracketedName),l=new s1.Gather(u,o);return this.Newline(),l},this.GatherDashes=()=>{this.Whitespace();let s=0;for(;this.ParseDashNotArrow()!==null;)s+=1,this.Whitespace();return s===0?null:s},this.ParseDashNotArrow=()=>{let s=this.BeginRule();return this.ParseString("->")===null&&this.ParseSingleCharacter()==="-"?this.SucceedRule(s):this.FailRule(s)},this.BracketedName=()=>{if(this.ParseString("(")===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing ')' for bracketed name"),s)},this.InnerConditionalContent=s=>{if(s===void 0){let h=this.Parse(this.ConditionExpression),f=this.Parse(()=>this.InnerConditionalContent(h));return f===null?null:f}let o,u=s!==null,l=this.Parse(this.Newline)===null;if(l&&!u)return null;if(l)o=this.InlineConditionalBranches();else {if(o=this.MultilineConditionalBranches(),o===null){if(s){let h=this.StatementsAtLevel(Ue.StatementLevel.InnerBlock);if(h!==null){o=[new ps.ConditionalSingleBranch(h)];let d=this.Parse(this.SingleMultilineCondition);d&&(d.isElse||(this.ErrorWithParsedObject("Expected an '- else:' clause here rather than an extra condition",d),d.isElse=true),o.push(d));}}if(o===null)return null}else if(o.length===1&&o[0].isElse&&s){let h=new ps.ConditionalSingleBranch(null);h.isTrueBranch=true,o.unshift(h);}if(s){let h=false;for(let f=0;f<o.length;++f){let d=o[f],m=f===o.length-1;d.ownExpression?(d.matchingEquality=true,h=true):h&&m?(d.matchingEquality=true,d.isElse=true):!m&&o.length>2?this.ErrorWithParsedObject("Only final branch can be an 'else'. Did you miss a ':'?",d):f===0?d.isTrueBranch=true:d.isElse=true;}}else {for(let h=0;h<o.length;++h){let f=o[h],d=h===o.length-1;if(f.ownExpression===null)if(d)f.isElse=true;else if(f.isElse){let m=o[o.length-1];m.isElse?this.ErrorWithParsedObject("Multiple 'else' cases. Can have a maximum of one, at the end.",m):this.ErrorWithParsedObject("'else' case in conditional should always be the final one",f);}else this.ErrorWithParsedObject("Branch doesn't have condition. Are you missing a ':'? ",f);}o.length===1&&o[0].ownExpression===null&&this.ErrorWithParsedObject("Condition block with no conditions",o[0]);}}if(o===null)return null;for(let h of o)h.isInline=l;return new e1.Conditional(s,o)},this.InlineConditionalBranches=()=>{let s=this.Interleave(this.MixedTextAndLogic,this.Exclude(this.String("|")),null,false);if(s===null||s.length===0)return null;let o=[];if(s.length>2)this.Error("Expected one or two alternatives separated by '|' in inline conditional");else {let u=new ps.ConditionalSingleBranch(s[0]);if(u.isTrueBranch=true,o.push(u),s.length>1){let l=new ps.ConditionalSingleBranch(s[1]);l.isElse=true,o.push(l);}}return o},this.MultilineConditionalBranches=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineCondition);return s===null?null:(this.MultilineWhitespace(),s)},this.SingleMultilineCondition=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=null,o=this.Parse(this.ElseExpression)!==null;o||(s=this.Parse(this.ConditionExpression));let u=this.StatementsAtLevel(Ue.StatementLevel.InnerBlock);s===null&&u===null&&(this.Error("expected content for the conditional branch following '-'"),u=[new nn.Text("")]),this.MultilineWhitespace();let l=new ps.ConditionalSingleBranch(u);return l.ownExpression=s,l.isElse=o,l},this.ConditionExpression=()=>{let s=this.Parse(this.Expression);return s===null||(this.DisallowIncrement(s),this.Whitespace(),this.ParseString(":")===null)?null:s},this.ElseExpression=()=>this.ParseString("else")===null||(this.Whitespace(),this.ParseString(":")===null)?null:tn.ParseSuccess,this._nonTextPauseCharacters=null,this._nonTextEndCharacters=null,this._notTextEndCharactersChoice=null,this._notTextEndCharactersString=null,this.TrimEndWhitespace=(s,o)=>{if(s.length>0){let u=s.length-1,l=s[u];if(l instanceof nn.Text){let c=l;c.text=c.text.replace(new RegExp(/[ \t]+$/g),""),o?c.text+=" ":c.text.length===0&&(s.splice(u,1),this.TrimEndWhitespace(s,false));}}},this.LineOfMixedTextAndLogic=()=>{this.Parse(this.Whitespace);let s=this.Parse(this.MixedTextAndLogic);if(!s||!s.length)return null;let o=s[0];return o&&o.text&&o.text.startsWith("return")&&this.Warning("Do you need a '~' before 'return'? If not, perhaps use a glue: <> (since it's lowercase) or rewrite somehow?"),s.length===0?null:(s[s.length-1]instanceof er.Divert||this.TrimEndWhitespace(s,false),this.EndTagIfNecessary(s),s.length>0&&s[0]instanceof Hr.Tag&&s[0].isStart||s.push(new nn.Text(`
39
+ `)),this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),s)},this.MixedTextAndLogic=()=>{this.ParseObject(this.Spaced(this.String("~")))!==null&&this.Error("You shouldn't use a '~' here - tildas are for logic that's on its own line. To do inline logic, use { curly braces } instead");let o=this.Interleave(this.Optional(this.ContentText),this.Optional(this.InlineLogicOrGlueOrStartTag));if(!this._parsingChoice){let u=this.Parse(this.MultiDivert);u!==null&&(o===null&&(o=[]),this.EndTagIfNecessary(o),this.TrimEndWhitespace(o,true),o.push(...u));}return o||null},this.ContentText=()=>this.ContentTextAllowingEscapeChar(),this.ContentTextAllowingEscapeChar=()=>{let s=null;do{let o=this.Parse(this.ContentTextNoEscape),u=this.ParseString("\\")!==null;if(u||o!==null){if(s===null&&(s=""),o!==null&&(s+=String(o)),u){let l=this.ParseSingleCharacter();s+=l;}}else break}while(true);return s!==null?new nn.Text(s):null},this.ContentTextNoEscape=()=>{this._nonTextPauseCharacters===null&&(this._nonTextPauseCharacters=new Te.CharacterSet("-<")),this._nonTextEndCharacters===null&&(this._nonTextEndCharacters=new Te.CharacterSet(`{}|
40
+ \r\\#`),this._notTextEndCharactersChoice=new Te.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersChoice.AddCharacters("[]"),this._notTextEndCharactersString=new Te.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersString.AddCharacters('"'));let s=()=>this.OneOf([this.ParseDivertArrow,this.ParseThreadArrow,this.EndOfLine,this.Glue]),o=null;this.parsingStringExpression?o=this._notTextEndCharactersString:this._parsingChoice?o=this._notTextEndCharactersChoice:o=this._nonTextEndCharacters;let u=this.ParseUntil(s,this._nonTextPauseCharacters,o);return u!==null?u:null},this.MultiDivert=()=>{this.Whitespace();let s=[],o=this.Parse(this.StartThread);if(o)return s=[o],s;let u=this.Interleave(this.ParseDivertArrowOrTunnelOnwards,this.DivertIdentifierWithArguments);if(!u)return null;s=[],this.EndTagIfNecessary(s);for(let l=0;l<u.length;++l)if(l%2===0){if(u[l]==="->->"){l===0||l===u.length-1||l===u.length-2||this.Error("Tunnel onwards '->->' must only come at the begining or the start of a divert");let f=new m0.TunnelOnwards;if(l<u.length-1){let d=(0, Dn.asOrNull)(u[l+1],er.Divert);f.divertAfter=d;}s.push(f);break}}else {let h=u[l];l<u.length-1&&(h.isTunnel=true),s.push(h);}if(s.length===0&&u.length===1){let l=new er.Divert(null);l.isEmpty=true,s.push(l),this._parsingChoice||this.Error("Empty diverts (->) are only valid on choices");}return s},this.StartThread=()=>{if(this.Whitespace(),this.ParseThreadArrow()===null)return null;this.Whitespace();let s=this.Expect(this.DivertIdentifierWithArguments,"target for new thread",()=>new er.Divert(null));return s.isThread=true,s},this.DivertIdentifierWithArguments=()=>{this.Whitespace();let s=this.Parse(this.DotSeparatedDivertPathComponents);if(!s)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);this.Whitespace();let u=new f1.Path(s);return new er.Divert(u,o)},this.SingleDivert=()=>{let s=this.Parse(this.MultiDivert);if(!s||s.length!==1||s[0]instanceof m0.TunnelOnwards)return null;let u=s[0];return u.isTunnel?null:u},this.DotSeparatedDivertPathComponents=()=>this.Interleave(this.Spaced(this.IdentifierWithMetadata),this.Exclude(this.String("."))),this.ParseDivertArrowOrTunnelOnwards=()=>{let s=0;for(;this.ParseString("->")!==null;)s+=1;return s===0?null:s===1?"->":(s===2||this.Error("Unexpected number of arrows in divert. Should only have '->' or '->->'"),"->->")},this.ParseDivertArrow=()=>this.ParseString("->"),this.ParseThreadArrow=()=>this.ParseString("<-"),this._binaryOperators=[],this._maxBinaryOpLength=0,this.TempDeclarationOrAssignment=()=>{this.Whitespace();let s=this.ParseTempKeyword();this.Whitespace();let o=null;if(s?o=this.Expect(this.IdentifierWithMetadata,"variable name"):o=this.Parse(this.IdentifierWithMetadata),o===null)return null;this.Whitespace();let u=this.ParseString("+")!==null,l=this.ParseString("-")!==null;if(u&&l&&this.Error("Unexpected sequence '+-'"),this.ParseString("=")===null)return s&&this.Error("Expected '='"),null;let c=this.Expect(this.Expression,"value expression to be assigned");return u||l?new Pu.IncDecExpression(o,c,u):new wf.VariableAssignment({variableIdentifier:o,assignedExpression:c,isTemporaryNewDeclaration:s})},this.DisallowIncrement=s=>{s instanceof Pu.IncDecExpression&&this.Error("Can't use increment/decrement here. It can only be used on a ~ line");},this.ParseTempKeyword=()=>{let s=this.BeginRule();return this.Parse(this.Identifier)==="temp"?(this.SucceedRule(s),true):(this.FailRule(s),false)},this.ReturnStatement=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="return")return null;this.Whitespace();let o=this.Parse(this.Expression);return new d0.ReturnType(o)},this.Expression=(s=0)=>{this.Whitespace();let o=this.ExpressionUnary();if(o===null)return null;for(this.Whitespace();;){let u=this.BeginRule(),l=this.ParseInfixOperator();if(l!==null&&l.precedence>s){let c=`right side of '${l.type}' expression`,h=this.Expect(()=>this.ExpressionInfixRight(o,l),c);if(h===null)return this.FailRule(u),null;o=this.SucceedRule(u,h);continue}this.FailRule(u);break}return this.Whitespace(),o},this.ExpressionUnary=()=>{let s=this.Parse(this.ExpressionDivertTarget);if(s!==null)return s;let o=this.OneOf([this.String("-"),this.String("!")]);o===null&&(o=this.Parse(this.ExpressionNot)),this.Whitespace();let u=this.OneOf([this.ExpressionList,this.ExpressionParen,this.ExpressionFunctionCall,this.ExpressionVariableName,this.ExpressionLiteral]);if(u===null&&o!==null&&(u=this.ExpressionUnary()),u===null)return null;o!==null&&(u=m1.UnaryExpression.WithInner(u,o)),this.Whitespace();let l=this.OneOf([this.String("++"),this.String("--")]);if(l!==null){let c=l==="++";if(!(u instanceof Df.VariableReference))this.Error(`can only increment and decrement variables, but saw '${u}'.`);else {let h=u;u=new Pu.IncDecExpression(h.identifier,c);}}return u},this.ExpressionNot=()=>{let s=this.Identifier();return s==="not"?s:null},this.ExpressionLiteral=()=>this.OneOf([this.ExpressionFloat,this.ExpressionInt,this.ExpressionBool,this.ExpressionString]),this.ExpressionDivertTarget=()=>{this.Whitespace();let s=this.Parse(this.SingleDivert);return !s||s&&s.isThread?null:(this.Whitespace(),new Ef.DivertTarget(s))},this.ExpressionInt=()=>{let s=this.ParseInt();return s===null?null:new Ur.NumberExpression(s,"int")},this.ExpressionFloat=()=>{let s=this.ParseFloat();return s===null?null:new Ur.NumberExpression(s,"float")},this.ExpressionString=()=>{if(this.ParseString('"')===null)return null;this.parsingStringExpression=true;let o=this.Parse(this.MixedTextAndLogic);return this.Expect(this.String('"'),"close quote for string expression"),this.parsingStringExpression=false,o===null?o=[new nn.Text("")]:o.find(u=>u instanceof er.Divert)&&this.Error("String expressions cannot contain diverts (->)"),new ms.StringExpression(o)},this.ExpressionBool=()=>{let s=this.Parse(this.Identifier);return s==="true"?new Ur.NumberExpression(true,"bool"):s==="false"?new Ur.NumberExpression(false,"bool"):null},this.ExpressionFunctionCall=()=>{let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);return o===null?null:new Au.FunctionCall(s,o)},this.ExpressionFunctionCallArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Exclude(this.String(",")),o=this.Interleave(this.Expression,s);return o===null&&(o=[]),this.Whitespace(),this.Expect(this.String(")"),"closing ')' for function call"),o},this.ExpressionVariableName=()=>{let s=this.Interleave(this.IdentifierWithMetadata,this.Exclude(this.Spaced(this.String("."))));return s===null||p0.Story.IsReservedKeyword(s[0].name)?null:new Df.VariableReference(s)},this.ExpressionParen=()=>{if(this.ParseString("(")===null)return null;let s=this.Parse(this.Expression);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing parenthesis ')' for expression"),s)},this.ExpressionInfixRight=(s,o)=>{if(!s)return null;this.Whitespace();let u=this.Parse(()=>this.Expression(o.precedence));return u?new YT.BinaryExpression(s,u,o.type):null},this.ParseInfixOperator=()=>{for(let s of this._binaryOperators){let o=this.BeginRule();if(this.ParseString(s.type)!==null){if(s.requireWhitespace&&this.Whitespace()===null){this.FailRule(o);continue}return this.SucceedRule(o,s)}this.FailRule(o);}return null},this.ExpressionList=()=>{if(this.Whitespace(),this.ParseString("(")===null)return null;this.Whitespace();let s=this.SeparatedList(this.ListMember,this.Spaced(this.String(",")));return this.Whitespace(),this.ParseString(")")===null?null:new c0.List(s)},this.ListMember=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;if(this.ParseString(".")!==null){let u=this.Expect(this.IdentifierWithMetadata,`element name within the set ${s}`);s.name+=`.${u?.name}`;}return this.Whitespace(),s},this.RegisterExpressionOperators=()=>{this.RegisterBinaryOperator("&&",1),this.RegisterBinaryOperator("||",1),this.RegisterBinaryOperator("and",1,true),this.RegisterBinaryOperator("or",1,true),this.RegisterBinaryOperator("==",2),this.RegisterBinaryOperator(">=",2),this.RegisterBinaryOperator("<=",2),this.RegisterBinaryOperator("<",2),this.RegisterBinaryOperator(">",2),this.RegisterBinaryOperator("!=",2),this.RegisterBinaryOperator("?",3),this.RegisterBinaryOperator("has",3,true),this.RegisterBinaryOperator("!?",3),this.RegisterBinaryOperator("hasnt",3,true),this.RegisterBinaryOperator("^",3),this.RegisterBinaryOperator("+",4),this.RegisterBinaryOperator("-",5),this.RegisterBinaryOperator("*",6),this.RegisterBinaryOperator("/",7),this.RegisterBinaryOperator("%",8),this.RegisterBinaryOperator("mod",8,true);},this.RegisterBinaryOperator=(s,o,u=false)=>{let l=new u1.InfixOperator(s,o,u);this._binaryOperators.push(l),this._maxBinaryOpLength=Math.max(this._maxBinaryOpLength,s.length);},this._openFilenames=[],this.IncludeStatement=()=>{if(this.Whitespace(),this.ParseString("INCLUDE")===null)return null;this.Whitespace();let s=this.Expect(()=>this.ParseUntilCharactersFromString(`
41
+ \r`),"filename for include statement");s=s.replace(new RegExp(/[ \t]+$/g),"");let o=this.fileHandler.ResolveInkFilename(s,this._filename);if(this.FilenameIsAlreadyOpen(o))return this.Error(`Recursive INCLUDE detected: '${o}' is already open.`),this.ParseUntilCharactersFromString(`\r
42
+ `),new l0.IncludedFile(null);this.AddOpenFilename(o);let u=null,l="";try{l=this._rootParser.fileHandler.LoadInkFileContents(o,this._filename);}catch(c){this.Error(`Failed to load: '${s}'.
43
+ Error:${c}`);}return l!=null&&(u=new n(l,s,this._externalErrorHandler,this._rootParser,this.fileHandler).ParseStory()),this.RemoveOpenFilename(o),new l0.IncludedFile(u)},this.FilenameIsAlreadyOpen=s=>this._rootParser._openFilenames.includes(s),this.AddOpenFilename=s=>{this._rootParser._openFilenames.push(s);},this.RemoveOpenFilename=s=>{this._rootParser._openFilenames.splice(this._rootParser._openFilenames.indexOf(s),1);},this.KnotDefinition=()=>{let s=this.Parse(this.KnotDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after knot name definition",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Ue.StatementLevel.Knot),u=this.Expect(o,"at least one line within the knot",this.KnotStitchNoContentRecoveryRule);return new l1.Knot(s.name,u,s.args,s.isFunction)},this.KnotDeclaration=()=>{if(this.Whitespace(),this.KnotTitleEquals()===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata),o,u=s?.name==="function";u?(this.Expect(this.Whitespace,"whitespace after the 'function' keyword"),o=this.Parse(this.IdentifierWithMetadata)):o=s,o===null&&(this.Error(`Expected the name of the ${u?"function":"knot"}`),o=new gs.Identifier("")),this.Whitespace();let l=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),this.Parse(this.KnotTitleEquals),new u0.FlowDecl(o,l,u)},this.KnotTitleEquals=()=>{let s=this.ParseCharactersFromString("=");return s===null||s.length<=1?null:s},this.StitchDefinition=()=>{let s=this.Parse(this.StitchDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after stitch name",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Ue.StatementLevel.Stitch),u=this.Expect(o,"at least one line within the stitch",this.KnotStitchNoContentRecoveryRule);return new p1.Stitch(s.name,u,s.args,s.isFunction)},this.StitchDeclaration=()=>{if(this.Whitespace(),this.ParseString("=")===null||this.ParseString("=")!==null)return null;this.Whitespace();let s=this.ParseString("function")!==null;s&&this.Whitespace();let o=this.Parse(this.IdentifierWithMetadata);if(o===null)return null;this.Whitespace();let u=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),new u0.FlowDecl(o,u,s)},this.KnotStitchNoContentRecoveryRule=()=>(this.ParseUntil(this.KnotDeclaration,new Te.CharacterSet("="),null),[new nn.Text("<ERROR IN FLOW>")]),this.BracketedKnotDeclArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Interleave(this.Spaced(this.FlowDeclArgument),this.Exclude(this.String(",")));return this.Expect(this.String(")"),"closing ')' for parameter list"),s===null&&(s=[]),s},this.FlowDeclArgument=()=>{let s=this.Parse(this.IdentifierWithMetadata);this.Whitespace();let o=this.ParseDivertArrow();this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(s==null&&u===null)return null;let l=new KT.Argument;return o!==null&&(l.isDivertTarget=true),s!==null&&s.name==="ref"?(u===null&&this.Error("Expected an parameter name after 'ref'"),l.identifier=u,l.isByReference=true):(l.isDivertTarget?l.identifier=u:l.identifier=s,l.identifier===null&&this.Error("Expected an parameter name"),l.isByReference=false),l},this.ExternalDeclaration=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!="EXTERNAL")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"name of external function")||new gs.Identifier("");this.Whitespace();let u=this.Expect(this.BracketedKnotDeclArguments,`declaration of arguments for EXTERNAL, even if empty, i.e. 'EXTERNAL ${o}()'`);u===null&&(u=[]);let l=u.map(c=>{var h;return (h=c.identifier)===null||h===void 0?void 0:h.name}).filter(Dn.filterUndef);return new i1.ExternalDeclaration(o,l)},this._identifierCharSet=null,this.LogicLine=()=>{if(this.Whitespace(),this.ParseString("~")===null)return null;this.Whitespace();let s=()=>this.OneOf([this.ReturnStatement,this.TempDeclarationOrAssignment,this.Expression]),o=this.Expect(s,"expression after '~'",this.SkipToNextLine);if(o===null)return new ut.ContentList;o instanceof r1.Expression&&!(o instanceof Au.FunctionCall||o instanceof Pu.IncDecExpression)&&this.Error(`Logic following a '~' can't be that type of expression. It can only be something like:
44
+ ~ return
45
+ ~ var x = blah
46
+ ~ x++
47
+ ~ myFunction()`);let u=(0, Dn.asOrNull)(o,Au.FunctionCall);return u&&(u.shouldPopReturnedValue=true),o.Find(Au.FunctionCall)()!==null&&(o=new ut.ContentList(o,new nn.Text(`
48
+ `))),this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o},this.VariableDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="VAR")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"variable name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let l=this.Expect(this.Expression,"initial value for ");return l?(l instanceof Ur.NumberExpression||l instanceof ms.StringExpression||l instanceof Ef.DivertTarget||l instanceof Df.VariableReference||l instanceof c0.List||this.Error("initial value for a variable must be a number, constant, list or divert target"),this.Parse(this.ListElementDefinitionSeparator)!==null?this.Error("Unexpected ','. If you're trying to declare a new list, use the LIST keyword, not VAR"):l instanceof ms.StringExpression&&(l.isSingleString||this.Error("Constant strings cannot contain any logic.")),new wf.VariableAssignment({assignedExpression:l,isGlobalDeclaration:true,variableIdentifier:o})):null},this.ListDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!="LIST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"list name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of the list definition"),this.Whitespace();let u=this.Expect(this.ListDefinition,"list item names");return u?(u.identifier=new gs.Identifier(o.name),new wf.VariableAssignment({variableIdentifier:o,listDef:u})):null},this.ListDefinition=()=>{this.AnyWhitespace();let s=this.SeparatedList(this.ListElementDefinition,this.ListElementDefinitionSeparator);return s===null?null:new c1.ListDefinition(s)},this.ListElementDefinitionSeparator=()=>(this.AnyWhitespace(),this.ParseString(",")===null?null:(this.AnyWhitespace(),",")),this.ListElementDefinition=()=>{let s=this.ParseString("(")!==null,o=s;this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(u===null)return null;this.Whitespace(),s&&this.ParseString(")")!=null&&(o=false,this.Whitespace());let l=null;if(this.ParseString("=")!==null){this.Whitespace();let c=this.Expect(this.ExpressionInt,"value to be assigned to list item");c!==null&&(l=c.value),o&&(this.Whitespace(),this.ParseString(")")!==null&&(o=false));}return o&&this.Error("Expected closing ')'"),new h1.ListElementDefinition(u,s,l)},this.ConstDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="CONST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"constant name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let u=this.Expect(this.Expression,"initial value for ");return u instanceof Ur.NumberExpression||u instanceof Ef.DivertTarget||u instanceof ms.StringExpression?u instanceof ms.StringExpression&&(u.isSingleString||this.Error("Constant strings cannot contain any logic.")):this.Error("initial value for a constant must be a number or divert target"),new t1.ConstantDeclaration(o,u)},this.InlineLogicOrGlueOrStartTag=()=>this.OneOf([this.InlineLogic,this.Glue,this.StartTag]),this.Glue=()=>this.ParseString("<>")!==null?new a1.Glue(new o1.Glue):null,this.InlineLogic=()=>{if(this.ParseString("{")===null)return null;let s=this.parsingStringExpression,o=this.tagActive;this.Whitespace();let u=this.Expect(this.InnerLogic,"some kind of logic, conditional or sequence within braces: { ... }");if(u===null)return this.parsingStringExpression=s,null;this.DisallowIncrement(u);let l=(0, Dn.asOrNull)(u,ut.ContentList);return l||(l=new ut.ContentList(u)),this.Whitespace(),this.Expect(this.String("}"),"closing brace '}' for inline logic"),this.parsingStringExpression=s,o||this.EndTagIfNecessary(l),l},this.InnerLogic=()=>{this.Whitespace();let s=this.ParseObject(this.SequenceTypeAnnotation);if(s!==null){let l=this.Expect(this.InnerSequenceObjects,"sequence elements (for cycle/stoping etc)");return l===null?null:new f0.Sequence(l,s)}let o=this.Parse(this.ConditionExpression);if(o)return this.Expect(()=>this.InnerConditionalContent(o),"conditional content following query");let u=[this.InnerConditionalContent,this.InnerSequence,this.InnerExpression];for(let l of u){let c=this.BeginRule(),h=this.ParseObject(l);if(h)if(this.Peek(this.Spaced(this.String("}")))===null)this.FailRule(c);else return this.SucceedRule(c,h);else this.FailRule(c);}return null},this.InnerExpression=()=>{let s=this.Parse(this.Expression);return s&&(s.outputWhenComplete=true),s},this.IdentifierWithMetadata=()=>{let s=this.Identifier();return s===null?null:new gs.Identifier(s)},this.Identifier=()=>{let s=this.ParseCharactersFromCharSet(this.identifierCharSet);if(s===null)return null;let o=true;for(let u of s)if(!(u>="0"&&u<="9")){o=false;break}return o?null:s},this._sequenceTypeSymbols=new Te.CharacterSet("!&~$"),this.InnerSequence=()=>{this.Whitespace();let s=xe.SequenceType.Stopping,o=this.Parse(this.SequenceTypeAnnotation);o!==null&&(s=o);let u=this.Parse(this.InnerSequenceObjects);return u===null||u.length<=1?null:new f0.Sequence(u,s)},this.SequenceTypeAnnotation=()=>{let s=this.Parse(this.SequenceTypeSymbolAnnotation);if(s===null&&(s=this.Parse(this.SequenceTypeWordAnnotation)),s===null)return null;switch(s){case xe.SequenceType.Once:case xe.SequenceType.Cycle:case xe.SequenceType.Stopping:case xe.SequenceType.Shuffle:case xe.SequenceType.Shuffle|xe.SequenceType.Stopping:case xe.SequenceType.Shuffle|xe.SequenceType.Once:break;default:return this.Error(`Sequence type combination not supported: ${s}`),xe.SequenceType.Stopping}return s},this.SequenceTypeSymbolAnnotation=()=>{this._sequenceTypeSymbols===null&&(this._sequenceTypeSymbols=new Te.CharacterSet("!&~$ "));let s=0,o=this.ParseCharactersFromCharSet(this._sequenceTypeSymbols);if(o===null)return null;for(let u of o)switch(u){case "!":s|=xe.SequenceType.Once;break;case "&":s|=xe.SequenceType.Cycle;break;case "~":s|=xe.SequenceType.Shuffle;break;case "$":s|=xe.SequenceType.Stopping;break}return s===0?null:s},this.SequenceTypeWordAnnotation=()=>{let s=this.Interleave(this.SequenceTypeSingleWord,this.Exclude(this.Whitespace));if(s===null||s.length===0||this.ParseString(":")===null)return null;let o=0;for(let u of s)o|=u;return o},this.SequenceTypeSingleWord=()=>{let s=null,o=this.Parse(this.IdentifierWithMetadata);if(o!==null)switch(o.name){case "once":s=xe.SequenceType.Once;break;case "cycle":s=xe.SequenceType.Cycle;break;case "shuffle":s=xe.SequenceType.Shuffle;break;case "stopping":s=xe.SequenceType.Stopping;break}return s===null?null:s},this.InnerSequenceObjects=()=>{let s=this.Parse(this.Newline)!==null,o=null;return s?o=this.Parse(this.InnerMultilineSequenceObjects):o=this.Parse(this.InnerInlineSequenceObjects),o},this.InnerInlineSequenceObjects=()=>{let s=this.Interleave(this.Optional(this.MixedTextAndLogic),this.String("|"),null,false);if(s===null)return null;let o=[],u=false;for(let l of s)if(l==="|")u||o.push(new ut.ContentList),u=false;else {let c=l;c===null?this.Error(`Expected content, but got ${l} (this is an ink compiler bug!)`):o.push(new ut.ContentList(c)),u=true;}return u||o.push(new ut.ContentList),o},this.InnerMultilineSequenceObjects=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineSequenceElement);return s===null?null:s},this.SingleMultilineSequenceElement=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=this.StatementsAtLevel(Ue.StatementLevel.InnerBlock);return s===null?this.MultilineWhitespace():s.unshift(new nn.Text(`
49
+ `)),new ut.ContentList(s)},this._statementRulesAtLevel=[],this._statementBreakRulesAtLevel=[],this.StatementsAtLevel=s=>(s===Ue.StatementLevel.InnerBlock&&this.Parse(this.GatherDashes)!==null&&this.Error("You can't use a gather (the dashes) within the { curly braces } context. For multi-line sequences and conditions, you should only use one dash."),this.Interleave(this.Optional(this.MultilineWhitespace),()=>this.StatementAtLevel(s),()=>this.StatementsBreakForLevel(s))),this.StatementAtLevel=s=>{let o=this._statementRulesAtLevel[s],u=this.OneOf(o);return s===Ue.StatementLevel.Top&&u instanceof d0.ReturnType&&this.Error("should not have return statement outside of a knot"),u},this.StatementsBreakForLevel=s=>{this.Whitespace();let o=this._statementBreakRulesAtLevel[s],u=this.OneOf(o);return u===null?null:u},this.GenerateStatementLevelRules=()=>{let s=Object.values(Ue.StatementLevel);this._statementRulesAtLevel="f".repeat(s.length).split("f").map(()=>[]),this._statementBreakRulesAtLevel="f".repeat(s.length).split("f").map(()=>[]);for(let o of s){let u=[],l=[];u.push(this.Line(this.MultiDivert)),o>=Ue.StatementLevel.Top&&u.push(this.KnotDefinition),u.push(this.Line(this.Choice)),u.push(this.Line(this.AuthorWarning)),o>Ue.StatementLevel.InnerBlock&&u.push(this.Gather),o>=Ue.StatementLevel.Knot&&u.push(this.StitchDefinition),u.push(this.Line(this.ListDeclaration)),u.push(this.Line(this.VariableDeclaration)),u.push(this.Line(this.ConstDeclaration)),u.push(this.Line(this.ExternalDeclaration)),u.push(this.Line(this.IncludeStatement)),u.push(this.LogicLine),u.push(this.LineOfMixedTextAndLogic),o<=Ue.StatementLevel.Knot&&l.push(this.KnotDeclaration),o<=Ue.StatementLevel.Stitch&&l.push(this.StitchDeclaration),o<=Ue.StatementLevel.InnerBlock&&(l.push(this.ParseDashNotArrow),l.push(this.String("}"))),this._statementRulesAtLevel[o]=u,this._statementBreakRulesAtLevel[o]=l;}},this.SkipToNextLine=()=>(this.ParseUntilCharactersFromString(`
50
+ \r`),this.ParseNewline(),tn.ParseSuccess),this.Line=s=>()=>{let o=this.ParseObject(s);return o===null?null:(this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o)},this.StartTag=()=>{if(this.Whitespace(),this.ParseString("#")===null)return null;this.parsingStringExpression&&this.Error("Tags aren't allowed inside of strings. Please use \\# if you want a hash symbol.");let s=null;if(this.tagActive){let o=new ut.ContentList;o.AddContent(new Hr.Tag(false)),o.AddContent(new Hr.Tag(true)),s=o;}else s=new Hr.Tag(true);return this.tagActive=true,this.Whitespace(),s},this._inlineWhitespaceChars=new Te.CharacterSet(" "),this.EndOfLine=()=>this.OneOf([this.Newline,this.EndOfFile]),this.Newline=()=>(this.Whitespace(),this.ParseNewline()!==null?tn.ParseSuccess:null),this.EndOfFile=()=>(this.Whitespace(),this.endOfInput?tn.ParseSuccess:null),this.MultilineWhitespace=()=>{let s=this.OneOrMore(this.Newline);return s===null?null:s.length>=1?tn.ParseSuccess:null},this.Whitespace=()=>this.ParseCharactersFromCharSet(this._inlineWhitespaceChars)!==null?tn.ParseSuccess:null,this.Spaced=s=>()=>{this.Whitespace();let o=this.ParseObject(s);return o===null?null:(this.Whitespace(),o)},this.AnyWhitespace=()=>{let s=false;for(;this.OneOf([this.Whitespace,this.MultilineWhitespace])!==null;)s=true;return s?tn.ParseSuccess:null},this.MultiSpaced=s=>()=>{this.AnyWhitespace();let o=this.ParseObject(s);return o===null?null:(this.AnyWhitespace(),o)},this._filename=null,this._externalErrorHandler=null,this._fileHandler=null,this._filename=t,this.RegisterExpressionOperators(),this.GenerateStatementLevelRules(),this.errorHandler=this.OnStringParserError,this._externalErrorHandler=r,a===null?this._fileHandler=new g1.DefaultFileHandler:this._fileHandler=a,i===null){if(this._rootParser=this,this._openFilenames=[],this._filename!==null){let s=this.fileHandler.ResolveInkFilename(this._filename);this._openFilenames.push(s);}}else this._rootParser=i;}PreProcessInputString(e){return new QT.CommentEliminator(e).Process()}get parsingStringExpression(){return this.GetFlag(Number(Du.CustomFlags.ParsingString))}set parsingStringExpression(e){this.SetFlag(Number(Du.CustomFlags.ParsingString),e);}get tagActive(){return this.GetFlag(Number(Du.CustomFlags.TagActive))}set tagActive(e){this.SetFlag(Number(Du.CustomFlags.TagActive),e);}get identifierCharSet(){return this._identifierCharSet===null&&((this._identifierCharSet=new Te.CharacterSet).AddRange("A","Z").AddRange("a","z").AddRange("0","9").Add("_"),this.ExtendIdentifierCharacterRanges(this._identifierCharSet)),this._identifierCharSet}EndTagIfNecessary(e){this.tagActive&&(e!=null&&(e instanceof ut.ContentList?e.AddContent(new Hr.Tag(false)):e.push(new Hr.Tag(false))),this.tagActive=false);}};Ou.InkParser=ce;ce.LatinBasic=Tt.CharacterRange.Define("A","z",new Te.CharacterSet().AddRange("[","`"));ce.LatinExtendedA=Tt.CharacterRange.Define("\u0100","\u017F");ce.LatinExtendedB=Tt.CharacterRange.Define("\u0180","\u024F");ce.Greek=Tt.CharacterRange.Define("\u0370","\u03FF",new Te.CharacterSet().AddRange("\u0378","\u0385").AddCharacters("\u0374\u0375\u0378\u0387\u038B\u038D\u03A2"));ce.Cyrillic=Tt.CharacterRange.Define("\u0400","\u04FF",new Te.CharacterSet().AddRange("\u0482","\u0489"));ce.Armenian=Tt.CharacterRange.Define("\u0530","\u058F",new Te.CharacterSet().AddCharacters("\u0530").AddRange("\u0557","\u0560").AddRange("\u0588","\u058E"));ce.Hebrew=Tt.CharacterRange.Define("\u0590","\u05FF",new Te.CharacterSet);ce.Arabic=Tt.CharacterRange.Define("\u0600","\u06FF",new Te.CharacterSet);ce.Korean=Tt.CharacterRange.Define("\uAC00","\uD7AF",new Te.CharacterSet);ce.Latin1Supplement=Tt.CharacterRange.Define("\x80","\xFF",new Te.CharacterSet);ce.Chinese=Tt.CharacterRange.Define("\u4E00","\u9FFF",new Te.CharacterSet);ce.ListAllCharacterRanges=()=>[ce.LatinBasic,ce.LatinExtendedA,ce.LatinExtendedB,ce.Arabic,ce.Armenian,ce.Cyrillic,ce.Greek,ce.Hebrew,ce.Korean,ce.Latin1Supplement,ce.Chinese];});var y0=E(xu=>{Object.defineProperty(xu,"__esModule",{value:true});xu.GenerateStoryStats=void 0;var y1=kr(),v1=jr(),C1=Ki(),b1=Wd(),_1=Ud(),S1=bn();function E1(n){let e=n.FindAll(S1.Text)(),t=0;for(let u of e){let l=0,c=true;for(let h of u.text)h==" "||h==" "||h==`
51
+ `||h=="\r"?c=true:c&&(l++,c=false);t+=l;}let r=n.FindAll(b1.Knot)(),i=n.FindAll(_1.Stitch)(),a=n.FindAll(y1.Choice)(),s=n.FindAll(C1.Gather)(u=>u.debugMetadata!=null),o=n.FindAll(v1.Divert)();return {words:t,knots:r.length,functions:r.filter(u=>u.isFunction).length,stitches:i.length,gathers:s.length,diverts:o.length-1,choices:a.length}}xu.GenerateStoryStats=E1;});var v0=E(Tu=>{Object.defineProperty(Tu,"__esModule",{value:true});Tu.JsonFileHandler=void 0;var Pf=class{constructor(e){this.fileHierarchy=e,this.ResolveInkFilename=t=>{if(Object.keys(this.fileHierarchy).includes(t))return t;throw new Error(`Cannot locate ${t}. Are you trying a relative import ? This is not yet implemented.`)},this.LoadInkFileContents=t=>{if(Object.keys(this.fileHierarchy).includes(t))return this.fileHierarchy[t];throw new Error(`Cannot open ${t}.`)};}};Tu.JsonFileHandler=Pf;});var b0=E(Be=>{Object.defineProperty(Be,"__esModule",{value:true});Be.Compiler=Be.Story=Be.InkList=Be.JsonFileHandler=Be.StatementLevel=Be.InkParser=Be.CompilerOptions=void 0;var w1=ch(),D1=Oy(),Of=wr(),A1=Af(),P1=ve(),O1=ae(),x1=y0(),T1=ch();Object.defineProperty(Be,"CompilerOptions",{enumerable:true,get:function(){return T1.CompilerOptions}});var N1=Af();Object.defineProperty(Be,"InkParser",{enumerable:true,get:function(){return N1.InkParser}});var F1=Jd();Object.defineProperty(Be,"StatementLevel",{enumerable:true,get:function(){return F1.StatementLevel}});var I1=v0();Object.defineProperty(Be,"JsonFileHandler",{enumerable:true,get:function(){return I1.JsonFileHandler}});var C0=ss();Object.defineProperty(Be,"InkList",{enumerable:true,get:function(){return C0.InkList}});Object.defineProperty(Be,"Story",{enumerable:true,get:function(){return C0.Story}});var xf=class{get errors(){return this._errors}get warnings(){return this._warnings}get authorMessages(){return this._authorMessages}get inputString(){return this._inputString}get options(){return this._options}get parsedStory(){if(!this._parsedStory)throw new Error;return this._parsedStory}get runtimeStory(){if(!this._runtimeStory)throw new Error("Compilation failed.");return this._runtimeStory}get parser(){if(!this._parser)throw new Error;return this._parser}get debugSourceRanges(){return this._debugSourceRanges}constructor(e,t=null){this._errors=[],this._warnings=[],this._authorMessages=[],this._parsedStory=null,this._runtimeStory=null,this._parser=null,this._debugSourceRanges=[],this.Compile=()=>(this._parser=new A1.InkParser(this.inputString,this.options.sourceFilename||null,this.OnError,null,this.options.fileHandler),this._parsedStory=this.parser.ParseStory(),this.errors.length===0?(this.parsedStory.countAllVisits=this.options.countAllVisits,this._runtimeStory=this.parsedStory.ExportRuntime(this.OnError)):this._runtimeStory=null,this.runtimeStory),this.RetrieveDebugSourceForLatestContent=()=>{var r;for(let i of this.runtimeStory.state.outputStream){let a=(0, O1.asOrNull)(i,P1.StringValue);if(a!==null){let s=new D1.DebugSourceRange(((r=a.value)===null||r===void 0?void 0:r.length)||0,a.debugMetadata,a.value||"unknown");this.debugSourceRanges.push(s);}}},this.GenerateStats=()=>this._parsedStory===null?null:(0, x1.GenerateStoryStats)(this._parsedStory),this.DebugMetadataForContentAtOffset=r=>{let i=0,a=null;for(let s of this.debugSourceRanges){if(s.debugMetadata!==null&&(a=s.debugMetadata),r>=i&&r<i+s.length)return a;i+=s.length;}return null},this.OnError=(r,i)=>{switch(i){case Of.ErrorType.Author:this._authorMessages.push(r);break;case Of.ErrorType.Warning:this._warnings.push(r);break;case Of.ErrorType.Error:this._errors.push(r);break}this.options.errorHandler!==null&&this.options.errorHandler(r,i);},this._inputString=e,this._options=t||new w1.CompilerOptions;}};Be.Compiler=xf;});var We;(n=>(n.log=(e,...t)=>console.log(`[Pixi\u2019VN Json] ${e}`,...t),n.warn=(e,...t)=>console.warn(`[Pixi\u2019VN Json] ${e}`,...t),n.error=(e,...t)=>console.error(`[Pixi\u2019VN Json] ${e}`,...t),n.info=(e,...t)=>console.info(`[Pixi\u2019VN Json] ${e}`,...t)))(We||={});var x=class Z{static init(e){e.loadAssets&&(Z._loadAssets=e.loadAssets),e.soundOperation&&(Z._soundOperation=e.soundOperation),e.imageOperation&&(Z._imageOperation=e.imageOperation),e.videoOperation&&(Z._videoOperation=e.videoOperation),e.imageContainerOperation&&(Z._imageContainerOperation=e.imageContainerOperation),e.textOperation&&(Z._textOperation=e.textOperation),e.canvasElementOperation&&(Z._canvasElementOperation=e.canvasElementOperation),e.setStorageValue&&(Z._setStorageValue=e.setStorageValue),e.setInitialStorageValue&&(Z._setInitialStorageValue=e.setInitialStorageValue),e.narrationOperation&&(Z._narrationOperation=e.narrationOperation),e.effectOperation&&(Z._effectOperation=e.effectOperation),e.animateOperation&&(Z._animateOperation=e.animateOperation),e.canvasOperation&&(Z._canvasOperation=e.canvasOperation),e.getLogichValue&&(Z._getLogichValue=e.getLogichValue),e.getConditionalStep&&(Z._getConditionalStep=e.getConditionalStep);}static _loadAssets=()=>{};static get loadAssets(){return Z._loadAssets}static _soundOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get soundOperation(){return Z._soundOperation}static _imageOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageOperation(){return Z._imageOperation}static _videoOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get videoOperation(){return Z._videoOperation}static _imageContainerOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageContainerOperation(){return Z._imageContainerOperation}static _textOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get textOperation(){return Z._textOperation}static _canvasElementOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasElementOperation(){return Z._canvasElementOperation}static _setStorageValue=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setStorageValue(){return Z._setStorageValue}static _setInitialStorageValue=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setInitialStorageValue(){return Z._setInitialStorageValue}static _narrationOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get narrationOperation(){return Z._narrationOperation}static _effectOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get effectOperation(){return Z._effectOperation}static _animateOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get animateOperation(){return Z._animateOperation}static _canvasOperation=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasOperation(){return Z._canvasOperation}static _getLogichValue=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getLogichValue(){return Z._getLogichValue}static _getConditionalStep=()=>{throw We.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getConditionalStep(){return Z._getConditionalStep}};var Yr;(n=>{n.options={replaceRegex:/\[([^\]]+)\]/};let e=[];function t(l,c){e.unshift({fn:l,opts:c});}n.add=t;function r(l){let c=e.findIndex(h=>h.fn===l);c!==-1&&e.splice(c,1);}n.remove=r;function i(){return e.map(l=>l.opts)}n.info=i;function a(l,c){let h=e.filter(f=>(f.opts.type??"after-translation")===c.type);for(let f of h)l=u(l,f.fn,f.opts.validation);return l}n.replace=a;function s(l){let c=e.filter(h=>h.opts.i18nInterpolation);for(let h of c)l=o(l,h.fn,h.opts);return l}n.runI18nPreStep=s;function o(l,c,h){let{validation:f}=h,d=new RegExp(n.options.replaceRegex.source,"g"),m=[...l.matchAll(d)],y=new Set,S=[];for(let _ of m)y.has(_[1])||(y.add(_[1]),S.push(_[1]));for(let _ of S){if(f==="characterId"){if(!RegisteredCharacters.has(_))continue}else if(f!=="all"){if(f instanceof RegExp){if(!f.test(_))continue}else if(f instanceof ZodType&&!f.safeParse(_).success)continue}c(_)!==void 0&&(l.includes(`{{[${_}]}}`)||(l=l.replaceAll(`[${_}]`,`{{[${_}]}}`)));}return l}function u(l,c,h){let f=new RegExp(n.options.replaceRegex.source,"g"),d=[...l.matchAll(f)],m=new Set,y=[];for(let S of d)m.has(S[1])||(m.add(S[1]),y.push(S[1]));for(let S of y){if(h==="characterId"){if(!RegisteredCharacters.has(S))continue}else if(h!=="all"){if(h instanceof RegExp){if(!h.test(S))continue}else if(h instanceof ZodType&&!h.safeParse(S).success)continue}let _=c(S);_!==void 0&&(l=l.replaceAll(`[${S}]`,_));}return l}})(Yr||={});function j0(n,e={}){let t="";return n.values.forEach(r=>{if(typeof r=="string")t+=r;else {let i=x.getLogichValue(r,e);t+=`${i}`;}}),t}var qf;(n=>{let e=u=>u;function t(u){return Array.isArray(u)?u.map(l=>r(`${l}`)):r(`${u}`)}n.t=t;function r(u){let l=u;return n.beforeToTranslate&&(l=(0, n.beforeToTranslate)(l)),l=Yr.replace(l,{type:"before-translation"}),l=e(l),n.afterToTranslate&&(l=(0, n.afterToTranslate)(l)),l=Yr.replace(l,{type:"after-translation"}),l}n.translate=r;function i(u){e=u;}n.setTranslate=i;function a(u,l,c){let{defaultValue:h="empty_string"}=c;typeof l=="string"&&(l=[l]),Array.isArray(l)&&l.forEach(f=>{let d=f;if(n.beforeToTranslate&&(d=(0, n.beforeToTranslate)(d)),h==="empty_string")u[d]===void 0&&(u[d]="");else if(h==="copy_key"){let m=f;n.beforeToTranslate&&(m=(0, n.beforeToTranslate)(m));let y=Yr.runI18nPreStep(m);y=Yr.replace(y,{type:"before-translation"}),u[d]=y;}});}function s(u,l=[]){if(typeof u=="object"&&u&&"type"in u)if(u.type==="ifelse")u.then&&s(u.then,l),u.else&&s(u.else,l);else if(u.type==="stepswitch"){if(u.elements)if(Array.isArray(u.elements))u.elements.forEach(c=>{s(c,l);});else if(u.elements.type==="ifelse"){let c=[];s(u.elements,c),c.forEach(h=>{l.push(...h);});}else if(u.elements.type==="stepswitch"){let c=[];s(u.elements,c),c.forEach(h=>{l.push(...h);});}else s(u.elements,l);}else u.type==="resulttocombine"?(u.firstItem&&s(u.firstItem,l),u.secondConditionalItem&&u.secondConditionalItem.forEach(c=>{s(c,l);})):l.push(u);else u&&l.push(u);return l}async function o(u,l={},c={}){let{defaultValue:h="copy_key",operationStringConvert:f}=c,d=u.map(async m=>{if(m.choices){let y=[];Array.isArray(m.choices)?y=[m.choices]:y=s(m.choices),y.forEach(S=>{S.forEach(_=>{if("type"in _){let b=[];_.type==="ifelse"||_.type==="stepswitch"?s(_,b):b=[_],b.map(g=>s(g.text)).forEach(g=>{Array.isArray(g)&&g.forEach(v=>{Array.isArray(v)?v.forEach(p=>{typeof p=="string"?a(l,p,{defaultValue:h}):s(p).forEach(C=>{Array.isArray(C)?C.forEach(w=>{typeof w=="string"&&a(l,w,{defaultValue:h});}):typeof C=="string"&&a(l,C,{defaultValue:h});});}):typeof v=="string"&&a(l,v,{defaultValue:h});});});}});});}if(m.dialogue){let y=[];Array.isArray(m.dialogue)?y=[m.dialogue]:y=s(m.dialogue),y.forEach(S=>{if(typeof S=="string")a(l,S,{defaultValue:h});else if("text"in S){let _=s(S.text);typeof _=="string"&&(_=[_]),_.forEach(b=>{typeof b=="string"?a(l,b,{defaultValue:h}):s(b).forEach(g=>{typeof g=="string"?a(l,g,{defaultValue:h}):Array.isArray(g)&&g.forEach(v=>{typeof v=="string"?a(l,v,{defaultValue:h}):s(v).forEach(p=>{typeof p=="string"&&a(l,p,{defaultValue:h});});});});});}});}if(m.operations)for(let y of m.operations){if(y.type==="operationtoconvert"&&f){let S=j0(y),_=await f(S,m,{});if(!_)return;y=_;}y.type==="text"&&y.operationType==="show"&&a(l,y.text,{defaultValue:h});}m.conditionalStep&&s(m.conditionalStep).forEach(y=>{Array.isArray(y)?o(y,l,c):o([y],l,c);});});return await Promise.all(d),l}n.generateJsonTranslation=o;})(qf||={});var lt=qf;async function Bf(n){let e=x.getLogichValue(n,{});if(e)switch(e.type){case "assets":switch(e.operationType){case "load":await Assets.load(e.aliases);break;case "lazyload":Assets.backgroundLoad(e.aliases);break}break;case "bundle":switch(e.operationType){case "load":await Assets.loadBundle(e.aliases);break;case "lazyload":Assets.backgroundLoadBundle(e.aliases);break}break}}var ee;(n=>(n.log=(e,...t)=>console.log(`[Pixi\u2019VN Json] ${e}`,...t),n.warn=(e,...t)=>console.warn(`[Pixi\u2019VN Json] ${e}`,...t),n.error=(e,...t)=>console.error(`[Pixi\u2019VN Json] ${e}`,...t),n.info=(e,...t)=>console.info(`[Pixi\u2019VN Json] ${e}`,...t)))(ee||={});async function bs(n,e,t){switch(t.type){case "fade":await showWithFade(e.alias,n,t.props,t.priority);break;case "dissolve":await showWithDissolve(e.alias,n,t.props,t.priority);break;case "movein":case "moveout":await moveIn(e.alias,n,t.props,t.priority);break;case "zoomin":case "zoomout":await zoomIn(e.alias,n,t.props,t.priority);break;case "pushin":case "pushout":await pushIn(e.alias,n,t.props,t.priority);break}}function Zr(n){if(n.transition)switch(n.transition.type){case "fade":removeWithFade(n.alias,n.transition.props,n.transition.priority);break;case "dissolve":removeWithDissolve(n.alias,n.transition.props,n.transition.priority);break;case "movein":case "moveout":moveOut(n.alias,n.transition.props,n.transition.priority);break;case "zoomin":case "zoomout":zoomOut(n.alias,n.transition.props,n.transition.priority);break;case "pushin":case "pushout":pushOut(n.alias,n.transition.props,n.transition.priority);break}else canvas.remove(n.alias);}async function Wf(n){switch(n.operationType){case "show":if(n.transition){let e=new ImageSprite(n.props,n.url||n.alias);await bs(e,n,n.transition);}else await showImage(n.alias,n.url,n.props);break;case "edit":{let e=canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):ee.error(`Image with alias ${n.alias} not found.`);break}case "remove":Zr(n);break}}async function Mf(n){switch(n.operationType){case "show":if(n.transition){let e=new VideoSprite(n.props,n.url||n.alias);await bs(e,n,n.transition);}else await showVideo(n.alias,n.url,n.props);break;case "edit":{let e=canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):ee.error(`Video with alias ${n.alias} not found.`);break}case "remove":Zr(n);break;case "pause":case "resume":{let e=canvas.find(n.alias);e?e.paused=n.operationType==="pause":ee.error(`Video with alias ${n.alias} not found.`);break}}}async function Gf(n){switch(n.operationType){case "show":if(n.transition){let e=new ImageContainer(n.props,n.urls);await bs(e,n,n.transition);}else await showImageContainer(n.alias,n.urls,n.props);break;case "edit":{let e=canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):ee.error(`ImageContainer with alias ${n.alias} not found.`);break}case "remove":Zr(n);break}}async function zf(n){switch(n.operationType){case "show":if(n.props=n.props||{},n.props.text=lt.t(n.text),n.transition){let e=new Text(n.props);await bs(e,n,n.transition);}else showText(n.alias,n.text,n.props);break;case "edit":{let e=canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):ee.error(`Text with alias ${n.alias} not found.`);break}case "remove":Zr(n);break}}async function Jf(n){switch(n.operationType){case "edit":try{let e=canvas.find(n.alias);e?n.props&&e.setMemory({...e.memory,...n.props}):ee.error(`Canvas Element with alias ${n.alias} not found.`);}catch(e){ee.error(`There was an error while trying to edit the canvas element with alias ${n.alias}.`,e);}break;case "remove":Zr(n);break}}function Hf(n){n.operationType==="clear"&&canvas.removeAll();}async function Uf(n){n.type==="shake"&&await shakeEffect(n.alias,n.props,n.priority);}function Kf(n){switch(n.type){case "animate":canvas.animate(n.alias,n.keyframes,n.options,n.priority);break;case "animate-sequence":canvas.animate(n.alias,n.sequence,n.options,n.priority);break}}function Xf(n){switch(n.type){case "input":narration.requestInput({type:n.valueType},n.defaultValue);break;case "dialogue":narration.dialogue=void 0;break}}function Yf(n){switch(n.operationType){case "play":n.url?sound.play(n.alias,n.url,n.props):sound.play(n.alias,n.props);break;case "stop":switch(n.type){case "sound":sound.stop(n.alias);break;case "all":sound.stopAll();break}break;case "pause":switch(n.type){case "sound":sound.pause(n.alias);break;case "channel":sound.findChannel(n.alias).pauseAll();break;case "all":sound.pauseAll();break}break;case "resume":switch(n.type){case "sound":sound.resume(n.alias);break;case "channel":sound.findChannel(n.alias).resumeAll();break;case "all":sound.resumeAll();break}break;case "edit":Object.entries(n.props).forEach(([e,t])=>{let r=sound.find(n.alias);r&&(e==="volume"?r.volume.value=t:r.paused=t);});break}}var $u="___param___",sC=class Q{static init(e){e.loadAssets&&(Q._loadAssets=e.loadAssets),e.soundOperation&&(Q._soundOperation=e.soundOperation),e.imageOperation&&(Q._imageOperation=e.imageOperation),e.videoOperation&&(Q._videoOperation=e.videoOperation),e.imageContainerOperation&&(Q._imageContainerOperation=e.imageContainerOperation),e.textOperation&&(Q._textOperation=e.textOperation),e.canvasElementOperation&&(Q._canvasElementOperation=e.canvasElementOperation),e.setStorageValue&&(Q._setStorageValue=e.setStorageValue),e.setInitialStorageValue&&(Q._setInitialStorageValue=e.setInitialStorageValue),e.narrationOperation&&(Q._narrationOperation=e.narrationOperation),e.effectOperation&&(Q._effectOperation=e.effectOperation),e.animateOperation&&(Q._animateOperation=e.animateOperation),e.canvasOperation&&(Q._canvasOperation=e.canvasOperation),e.getLogichValue&&(Q._getLogichValue=e.getLogichValue),e.getConditionalStep&&(Q._getConditionalStep=e.getConditionalStep);}static _loadAssets=()=>{};static get loadAssets(){return Q._loadAssets}static _soundOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get soundOperation(){return Q._soundOperation}static _imageOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageOperation(){return Q._imageOperation}static _videoOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get videoOperation(){return Q._videoOperation}static _imageContainerOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageContainerOperation(){return Q._imageContainerOperation}static _textOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get textOperation(){return Q._textOperation}static _canvasElementOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasElementOperation(){return Q._canvasElementOperation}static _setStorageValue=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setStorageValue(){return Q._setStorageValue}static _setInitialStorageValue=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setInitialStorageValue(){return Q._setInitialStorageValue}static _narrationOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get narrationOperation(){return Q._narrationOperation}static _effectOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get effectOperation(){return Q._effectOperation}static _animateOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get animateOperation(){return Q._animateOperation}static _canvasOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasOperation(){return Q._canvasOperation}static _getLogichValue=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getLogichValue(){return Q._getLogichValue}static _getConditionalStep=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getConditionalStep(){return Q._getConditionalStep}};function aC(n,e){if(e&&typeof e=="object"&&typeof n.functionName=="string"&&n.functionName in e){let t=e[n.functionName];if(typeof t=="function"){let r=n.args.map(i=>sC.getLogichValue(i,e));return t(...r)}else ee.warn(`getLogichValue function ${n.functionName} not found in props`);}}function Zf(n,e){let t=x.getLogichValue(n,e);return t&&typeof t=="object"&&"type"in t?x.getLogichValue(t,e):t}function Qf(n,e={}){let t=Zf(n.value,e);switch(n.storageType){case "flagStorage":storage.setFlag(n.key,n.value);break;case "storage":storage.set(n.key,t);break;case "tempstorage":storage.setTempVariable(n.key,t);break;case "params":{let r=storage.get(`${$u}${narration.openedLabels.length-1}`)||[];r.length>n.key&&(r[n.key]=t),storage.setTempVariable(`${$u}${narration.openedLabels.length-1}`,r);break}}}function ep(n,e={}){let t=Zf(n.value,e);switch(n.storageType){case "storage":case "tempstorage":storage.default={[n.key]:t};break}}function tp(n,e={}){let t=np(n,e);if(t&&typeof t=="object"&&"type"in t)switch(t.type){case "value":return uC(t,e);case "arithmetic":case "arithmeticsingle":return oC(t,e);case "compare":case "union":return lC(t,e);case "function":return aC(t,e)}return t}function oC(n,e){let t=x.getLogichValue(n.leftValue,e);switch(n.type){case "arithmetic":{let r=x.getLogichValue(n.rightValue,e);switch(n.operator){case "*":return t*r;case "/":return t/r;case "+":return typeof t=="string"||typeof r=="string"?`${t}${r}`:Array.isArray(t)&&Array.isArray(r)?[...t,...r]:Array.isArray(t)?[...t,r]:Array.isArray(r)?[t,...r]:t+r;case "-":if(Array.isArray(t)&&Array.isArray(r))return t.filter(i=>!r.includes(i));if(Array.isArray(t))return t.filter(i=>i!==r);if(Array.isArray(r)){ee.warn("getValueFromArithmeticOperations cannot subtract array from non-array");return}return t-r;case "%":return t%r;case "POW":return t**r;case "RANDOM":return narration.getRandomNumber(t,r);case "INTERSECTION":if(Array.isArray(t)&&Array.isArray(r))return t.filter(i=>r.includes(i));ee.warn("getValueFromArithmeticOperations cannot intersect non-array values");return;default:ee.warn("getValueFromArithmeticOperations unknown operator",n);return}}case "arithmeticsingle":switch(n.operator){case "INT":return Number(t);case "FLOOR":return Math.floor(t)}break}}function uC(n,e){if(n&&typeof n=="object"&&"type"in n&&n.type==="value"&&n.storageOperationType==="get")switch(n.storageType){case "storage":case "tempstorage":return n.key==="_input_value_"?narration.inputValue:storage.get(n.key);case "flagStorage":return storage.getFlag(n.key);case "label":return narration.getTimesLabelOpened(n.label);case "choice":return narration.getTimesChoiceMade(n.index);case "logic":return x.getLogichValue(n.operation,e);case "params":{let t=storage.get(`${$u}${narration.openedLabels.length-1}`)||[];if(t&&t.length>n.key)return t[n.key];ee.warn("getValue params not found");return}}return n}function lC(n,e){if(!n)return false;if(typeof n!="object"||!("type"in n))return !!n;switch(n.type){case "compare":{let t=x.getLogichValue(n.leftValue,e),r=x.getLogichValue(n.rightValue,e);switch(n.operator){case "==":return Array.isArray(t)&&Array.isArray(r)?t.length===r.length&&t.every(i=>r.includes(i)):t===r;case "!=":return Array.isArray(t)&&Array.isArray(r)?t.length!==r.length||!t.every(i=>r.includes(i)):t!==r;case "<":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)<0:Array.isArray(t)&&Array.isArray(r)?t.length<r.length:t<r;case "<=":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)<=0:Array.isArray(t)&&Array.isArray(r)?t.length<=r.length:t<=r;case ">":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)>0:Array.isArray(t)&&Array.isArray(r)?t.length>r.length:t>r;case ">=":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)>=0:Array.isArray(t)&&Array.isArray(r)?t.length>=r.length:t>=r;case "CONTAINS":return Array.isArray(t)&&Array.isArray(r)?r.every(i=>t.includes(i)):Array.isArray(t)?t.includes(r):t.toString().includes(r.toString())}break}case "value":{let t=x.getLogichValue(n,e);return Array.isArray(t)?t.length>0:t&&typeof t=="object"?Object.keys(t).length>0:!!t}case "union":return cC(n,e)}return !!n}function cC(n,e){if(n.unionType==="not"){let r=tp(n.condition,e);return Array.isArray(r)?r.length===0:r&&typeof r=="object"?Object.keys(r).length===0:!r}let t=r=>x.getLogichValue(r,e)||false;return n.unionType==="and"?n.conditions.every(t):n.conditions.some(t)}function hC(n,e){return Math.floor(Math.random()*(e-n+1)+n)}function np(n,e={}){if(Array.isArray(n)||!n)return n;if(n&&typeof n=="object"&&"type"in n)switch(n.type){case "resulttocombine":return dC(n,e);case "ifelse":return x.getLogichValue(n.condition,e)?x.getLogichValue(n.then,e):x.getLogichValue(n.else,e);case "stepswitch":{let t=x.getLogichValue(n.elements,e)||[];if(t.length===0){ee.error("getValueFromConditionalStatements elements.length === 0");return}switch(n.choiceType){case "random":{let r=hC(0,t.length-1);return x.getLogichValue(t[r],e)}case "loop":{let r=NarrationManagerStatic.getCurrentStepTimesCounter(n.nestedId)-1;return r>t.length-1?(r=r%t.length,x.getLogichValue(t[r],e)):x.getLogichValue(t[r],e)}case "sequential":{let r,i=NarrationManagerStatic.getCurrentStepTimesCounter(n.nestedId)-1;return n.end==="lastItem"&&(r=x.getLogichValue(t[t.length-1],e)),i>t.length-1?r:x.getLogichValue(t[i],e)}case "sequentialrandom":{let r=NarrationManagerStatic.getRandomNumber(0,t.length-1,{nestedId:n.nestedId,onceOnly:true});if(r===void 0&&n.end==="lastItem"){let i=NarrationManagerStatic.getCurrentStepTimesCounterData(n.nestedId);if(!i?.usedRandomNumbers){ee.warn("getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}let a=i.usedRandomNumbers[`0-${t.length-1}`];return x.getLogichValue(t[a[a.length-1]],e)}if(r===void 0){ee.warn("getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}return x.getLogichValue(t[r],e)}}}}return n}function _s(n,e={}){if(n.conditionalStep){let t=createExportableElement(x.getLogichValue(n.conditionalStep,e));if(t?.glueEnabled===void 0&&delete t?.glueEnabled,t?.goNextStep===void 0&&delete t?.goNextStep,t?.end===void 0&&delete t?.end,t?.choices===void 0&&delete t?.choices,t?.dialogue===void 0&&delete t?.dialogue,t?.labelToOpen===void 0&&delete t?.labelToOpen,t?.operations===void 0&&delete t?.operations,t){let r={...n,conditionalStep:void 0,...t};return _s(r,e)}else narration.dialogGlue&&(narration.dialogGlue=false);}return n}function dC(n,e){let t=n.firstItem,r=(n.secondConditionalItem??[]).flatMap(a=>Array.isArray(a)?a.map(s=>x.getLogichValue(s,e)):[x.getLogichValue(a,e)]),i=t?[t,...r]:r;if(i.length===0){ee.warn("combinateResult toCheck.length === 0");return}if(typeof i[0]=="string")return lt.t(i);if(typeof i[0]=="object"){let a=i,s,o=false,u=a.map((b,g)=>{b=_s(b,e);let v=x.getLogichValue(b.dialogue,e)||"";return g===0?(s=x.getLogichValue(b.glueEnabled,e)||false,v):(typeof v=="object"&&"text"in v&&(v=`${v.character}: ${v.text}`),s===false&&o&&(v=`
52
+
53
+ ${v}`),v&&(o=true),s=x.getLogichValue(b.glueEnabled,e)||false,v)}),l=x.getLogichValue(u[0],e),c=typeof l=="object"&&"character"in l?l.character:void 0,h=u.flatMap(b=>{let g;b&&typeof b=="object"&&"text"in b?g=b.text:g=b;let v;return Array.isArray(g)?v=g.map(p=>{let C=x.getLogichValue(p,e);return lt.t(`${C}`)}):v=x.getLogichValue(g,e)||"",lt.t(v)}),f=a.find(b=>b.end),d=a.find(b=>b.choices),m=false,y=false;a.length>0&&(a[0].glueEnabled&&a[0].goNextStep&&a[0].dialogue===void 0&&(narration.dialogGlue=true),m=a[a.length-1].glueEnabled,y=a.reverse().find(b=>!(b.operations&&(!b.dialogue||!b.choices)))?.goNextStep);let S=a.find(b=>b.labelToOpen),_=[];return a.forEach(b=>{b.operations&&(_=[..._,...b.operations]);}),{dialogue:c?{character:c,text:h}:h,end:f?.end,choices:d?.choices,glueEnabled:m,goNextStep:y,labelToOpen:S?.labelToOpen,operations:_}}}var Ss;(n=>{let e=new Set;function t(a){e.add(a);}n.add=t;function r(){e.clear();}n.clear=r;function i(a,s={}){let o=c=>tp(c,s)??void 0,u=np(a,s);if(e.size===0)return o(u);let l=o;for(let c of e){let h=l;l=f=>c(f,h)??void 0;}return l(u)}n.getLogichValue=i;})(Ss||={});var gC=Object.create,op=Object.defineProperty,yC=Object.getOwnPropertyDescriptor,vC=Object.getOwnPropertyNames,CC=Object.getPrototypeOf,bC=Object.prototype.hasOwnProperty,ip=(n=>typeof An<"u"?An:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof An<"u"?An:e)[t]}):n)(function(n){if(typeof An<"u")return An.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')}),up=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),_C=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vC(e))!bC.call(n,i)&&i!==t&&op(n,i,{get:()=>e[i],enumerable:!(r=yC(e,i))||r.enumerable});return n},SC=(n,e,t)=>(t=n!=null?gC(CC(n)):{},_C(op(t,"default",{value:n,enumerable:true}),n)),EC=up((n,e)=>{(function(t,r){typeof n=="object"?e.exports=n=r():typeof define=="function"&&define.amd?define([],r):t.CryptoJS=r();})(n,function(){var t=t||(function(r,i){var a;if(typeof window<"u"&&window.crypto&&(a=window.crypto),typeof self<"u"&&self.crypto&&(a=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(a=globalThis.crypto),!a&&typeof window<"u"&&window.msCrypto&&(a=window.msCrypto),!a&&typeof global<"u"&&global.crypto&&(a=global.crypto),!a&&typeof ip=="function")try{a=ip("crypto");}catch{}var s=function(){if(a){if(typeof a.getRandomValues=="function")try{return a.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof a.randomBytes=="function")try{return a.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||(function(){function b(){}return function(g){var v;return b.prototype=g,v=new b,b.prototype=null,v}})(),u={},l=u.lib={},c=l.Base=(function(){return {extend:function(b){var g=o(this);return b&&g.mixIn(b),(!g.hasOwnProperty("init")||this.init===g.init)&&(g.init=function(){g.$super.init.apply(this,arguments);}),g.init.prototype=g,g.$super=this,g},create:function(){var b=this.extend();return b.init.apply(b,arguments),b},init:function(){},mixIn:function(b){for(var g in b)b.hasOwnProperty(g)&&(this[g]=b[g]);b.hasOwnProperty("toString")&&(this.toString=b.toString);},clone:function(){return this.init.prototype.extend(this)}}})(),h=l.WordArray=c.extend({init:function(b,g){b=this.words=b||[],g!=i?this.sigBytes=g:this.sigBytes=b.length*4;},toString:function(b){return (b||d).stringify(this)},concat:function(b){var g=this.words,v=b.words,p=this.sigBytes,C=b.sigBytes;if(this.clamp(),p%4)for(var w=0;w<C;w++){var O=v[w>>>2]>>>24-w%4*8&255;g[p+w>>>2]|=O<<24-(p+w)%4*8;}else for(var A=0;A<C;A+=4)g[p+A>>>2]=v[A>>>2];return this.sigBytes+=C,this},clamp:function(){var b=this.words,g=this.sigBytes;b[g>>>2]&=4294967295<<32-g%4*8,b.length=r.ceil(g/4);},clone:function(){var b=c.clone.call(this);return b.words=this.words.slice(0),b},random:function(b){for(var g=[],v=0;v<b;v+=4)g.push(s());return new h.init(g,b)}}),f=u.enc={},d=f.Hex={stringify:function(b){for(var g=b.words,v=b.sigBytes,p=[],C=0;C<v;C++){var w=g[C>>>2]>>>24-C%4*8&255;p.push((w>>>4).toString(16)),p.push((w&15).toString(16));}return p.join("")},parse:function(b){for(var g=b.length,v=[],p=0;p<g;p+=2)v[p>>>3]|=parseInt(b.substr(p,2),16)<<24-p%8*4;return new h.init(v,g/2)}},m=f.Latin1={stringify:function(b){for(var g=b.words,v=b.sigBytes,p=[],C=0;C<v;C++){var w=g[C>>>2]>>>24-C%4*8&255;p.push(String.fromCharCode(w));}return p.join("")},parse:function(b){for(var g=b.length,v=[],p=0;p<g;p++)v[p>>>2]|=(b.charCodeAt(p)&255)<<24-p%4*8;return new h.init(v,g)}},y=f.Utf8={stringify:function(b){try{return decodeURIComponent(escape(m.stringify(b)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(b){return m.parse(unescape(encodeURIComponent(b)))}},S=l.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new h.init,this._nDataBytes=0;},_append:function(b){typeof b=="string"&&(b=y.parse(b)),this._data.concat(b),this._nDataBytes+=b.sigBytes;},_process:function(b){var g,v=this._data,p=v.words,C=v.sigBytes,w=this.blockSize,O=w*4,A=C/O;b?A=r.ceil(A):A=r.max((A|0)-this._minBufferSize,0);var N=A*w,re=r.min(N*4,C);if(N){for(var Y=0;Y<N;Y+=w)this._doProcessBlock(p,Y);g=p.splice(0,N),v.sigBytes-=re;}return new h.init(g,re)},clone:function(){var b=c.clone.call(this);return b._data=this._data.clone(),b},_minBufferSize:0});l.Hasher=S.extend({cfg:c.extend(),init:function(b){this.cfg=this.cfg.extend(b),this.reset();},reset:function(){S.reset.call(this),this._doReset();},update:function(b){return this._append(b),this._process(),this},finalize:function(b){b&&this._append(b);var g=this._doFinalize();return g},blockSize:16,_createHelper:function(b){return function(g,v){return new b.init(v).finalize(g)}},_createHmacHelper:function(b){return function(g,v){return new _.HMAC.init(b,v).finalize(g)}}});var _=u.algo={};return u})(Math);return t});}),wC=up((n,e)=>{(function(t,r){typeof n=="object"?e.exports=n=r(EC()):typeof define=="function"&&define.amd?define(["./core"],r):r(t.CryptoJS);})(n,function(t){return (function(){var r=t,i=r.lib,a=i.WordArray,s=i.Hasher,o=r.algo,u=[],l=o.SHA1=s.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(c,h){for(var f=this._hash.words,d=f[0],m=f[1],y=f[2],S=f[3],_=f[4],b=0;b<80;b++){if(b<16)u[b]=c[h+b]|0;else {var g=u[b-3]^u[b-8]^u[b-14]^u[b-16];u[b]=g<<1|g>>>31;}var v=(d<<5|d>>>27)+_+u[b];b<20?v+=(m&y|~m&S)+1518500249:b<40?v+=(m^y^S)+1859775393:b<60?v+=(m&y|m&S|y&S)-1894007588:v+=(m^y^S)-899497514,_=S,S=y,y=m<<30|m>>>2,m=d,d=v;}f[0]=f[0]+d|0,f[1]=f[1]+m|0,f[2]=f[2]+y|0,f[3]=f[3]+S|0,f[4]=f[4]+_|0;},_doFinalize:function(){var c=this._data,h=c.words,f=this._nDataBytes*8,d=c.sigBytes*8;return h[d>>>5]|=128<<24-d%32,h[(d+64>>>9<<4)+14]=Math.floor(f/4294967296),h[(d+64>>>9<<4)+15]=f,c.sigBytes=h.length*4,this._process(),this._hash},clone:function(){var c=s.clone.call(this);return c._hash=this._hash.clone(),c}});r.SHA1=s._createHelper(l),r.HmacSHA1=s._createHmacHelper(l);})(),t.SHA1});}),sp="___param___",Se;(n=>(n.log=(e,...t)=>console.log(`[Pixi\u2019VN Json] ${e}`,...t),n.warn=(e,...t)=>console.warn(`[Pixi\u2019VN Json] ${e}`,...t),n.error=(e,...t)=>console.error(`[Pixi\u2019VN Json] ${e}`,...t),n.info=(e,...t)=>console.info(`[Pixi\u2019VN Json] ${e}`,...t)))(Se||={});var DC=class te{static init(e){e.loadAssets&&(te._loadAssets=e.loadAssets),e.soundOperation&&(te._soundOperation=e.soundOperation),e.imageOperation&&(te._imageOperation=e.imageOperation),e.videoOperation&&(te._videoOperation=e.videoOperation),e.imageContainerOperation&&(te._imageContainerOperation=e.imageContainerOperation),e.textOperation&&(te._textOperation=e.textOperation),e.canvasElementOperation&&(te._canvasElementOperation=e.canvasElementOperation),e.setStorageValue&&(te._setStorageValue=e.setStorageValue),e.setInitialStorageValue&&(te._setInitialStorageValue=e.setInitialStorageValue),e.narrationOperation&&(te._narrationOperation=e.narrationOperation),e.effectOperation&&(te._effectOperation=e.effectOperation),e.animateOperation&&(te._animateOperation=e.animateOperation),e.canvasOperation&&(te._canvasOperation=e.canvasOperation),e.getLogichValue&&(te._getLogichValue=e.getLogichValue),e.getConditionalStep&&(te._getConditionalStep=e.getConditionalStep);}static _loadAssets=()=>{};static get loadAssets(){return te._loadAssets}static _soundOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get soundOperation(){return te._soundOperation}static _imageOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageOperation(){return te._imageOperation}static _videoOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get videoOperation(){return te._videoOperation}static _imageContainerOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageContainerOperation(){return te._imageContainerOperation}static _textOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get textOperation(){return te._textOperation}static _canvasElementOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasElementOperation(){return te._canvasElementOperation}static _setStorageValue=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setStorageValue(){return te._setStorageValue}static _setInitialStorageValue=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setInitialStorageValue(){return te._setInitialStorageValue}static _narrationOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get narrationOperation(){return te._narrationOperation}static _effectOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get effectOperation(){return te._effectOperation}static _animateOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get animateOperation(){return te._animateOperation}static _canvasOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasOperation(){return te._canvasOperation}static _getLogichValue=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getLogichValue(){return te._getLogichValue}static _getConditionalStep=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getConditionalStep(){return te._getConditionalStep}};function AC(n,e){if(e&&typeof e=="object"&&typeof n.functionName=="string"&&n.functionName in e){let t=e[n.functionName];if(typeof t=="function"){let r=n.args.map(i=>DC.getLogichValue(i,e));return t(...r)}else Se.warn(`getLogichValue function ${n.functionName} not found in props`);}}function PC(n,e={}){let t="";return n.values.forEach(r=>{if(typeof r=="string")t+=r;else {let i=x.getLogichValue(r,e);t+=`${i}`;}}),t}async function lp(n,e,t){let r=x.getLogichValue(n,e);if(r)switch(r.type){case "sound":x.soundOperation(r);break;case "assets":case "bundle":await x.loadAssets(r);break;case "image":await x.imageOperation(r);break;case "video":await x.videoOperation(r);break;case "imagecontainer":await x.imageContainerOperation(r);break;case "text":await x.textOperation(r);break;case "canvaselement":await x.canvasElementOperation(r);break;case "canvas":x.canvasOperation(r);break;case "value":x.setStorageValue(r,e);break;case "operationtoconvert":if(t){let i=PC(r,e),a=await t(i);a&&await lp(a,e,t);}break;case "input":case "dialogue":x.narrationOperation(r);break;case "shake":await x.effectOperation(r);break;case "animate":case "animate-sequence":x.animateOperation(r);break;case "function":await AC(r,e);break}}function ap(n){let e=x.getLogichValue(n,{});e&&e.type==="value"&&e.storageOperationType==="set"&&(e.storageType==="storage"||e.storageType==="tempstorage")&&x.setInitialStorageValue(e);}var OC=SC(wC()),xC=class extends LabelAbstract{constructor(n,e,t,r={}){t||(t={}),t.onLoadingLabel=async()=>{for(let i of e){let a;if(typeof i=="function"?a=i():a=i,a=x.getConditionalStep(a),a.operations)try{let s=a.operations.map(o=>x.loadAssets(o));await Promise.all(s);}catch(s){Se.error("The operation in the onLoadingLabel function of the label has an error:",s);}}},super(n,t),this._steps=e,this.operationStringConvert=r.operationStringConvert,this.skipEmptyDialogs=r.skipEmptyDialogs||false;}_steps;get steps(){return this._steps.map(n=>this.stepConverter(n))}get stepCount(){return this._steps.length}getStepById(n){if(n<0||n>=this._steps.length)return;let e=this._steps[n];return this.stepConverter(e)}operationStringConvert;skipEmptyDialogs=false;getStepSha(n){if(n<0||n>=this.steps.length)return;let e=this._steps[n];return (0, OC.default)(e.toString().toLocaleLowerCase()).toString()}getDialogueText(n,e){let t="";if(Array.isArray(n)){let r=[];n.forEach(i=>{if(typeof i=="string")r.push(i);else if(i&&typeof i=="object"){let a=x.getLogichValue(i,e);a?(a&&!Array.isArray(a)&&typeof a=="object"&&(a=x.getLogichValue(a,e)||""),Array.isArray(a)?r=r.map(s=>`${s}`).concat(a):r.push(`${a}`)):r.push(`${i}`);}else r.push(`${i}`);}),t=r;}else {let r=x.getLogichValue(n,e);r&&!Array.isArray(r)&&typeof r=="object"&&(r=x.getLogichValue(r,e)),r&&Array.isArray(r)?t=r.map(i=>`${i}`):t=`${r}`;}return t}getDialogue(n,e){if(n==null)return;let t=x.getLogichValue(n,e);return t==null?`${t}`:typeof t=="object"&&"character"in t&&"text"in t?{character:t.character,text:lt.t(this.getDialogueText(t.text,e))}:lt.t(this.getDialogueText(t,e))}getChoices(n,e){return x.getLogichValue(n,e)?.map(t=>x.getLogichValue(t,e)).filter(t=>t!==void 0)}stepConverter(n){return async e=>{let t=typeof n=="function"?n():n;t=createExportableElement(t),t=x.getConditionalStep(t,e);let r=this.operationStringConvert?f=>this.operationStringConvert(f,t,e):void 0,{operations:i=[]}=t;for(let f of i)await lp(f,e,r);let{labelToOpen:a=[]}=t,s=this.getChoices(t.choices,e),o=x.getLogichValue(t.glueEnabled,e),u=this.getDialogue(t.dialogue,e),l=[];Array.isArray(a)||(a=[a]),a.forEach(f=>{let d=x.getLogichValue(f,e);d&&l.push(d);});let c=x.getLogichValue(t.goNextStep,e),h=x.getLogichValue(t.end,e);if(s){let f=s.map(d=>{let m="";if(Array.isArray(d.text)){let y=[];d.text.forEach(S=>{if(typeof S=="string")y.push(lt.t(S));else if(S&&typeof S=="object"){let _=x.getLogichValue(S,e);_&&!Array.isArray(_)&&typeof _=="object"&&(_=x.getLogichValue(_,e)||""),_&&(Array.isArray(_)?y=y.concat(lt.t(_)):y.push(lt.t(_)));}}),m=y;}else typeof d.text=="string"&&(m=lt.t(d.text));return {label:d.label,text:m,props:d.props,type:d.type,oneTime:d.oneTime,onlyHaveNoChoice:d.onlyHaveNoChoice,autoSelect:d.autoSelect}});narration.choices=f;}else narration.choices=void 0;u!==void 0&&(narration.dialogue=u,this.skipEmptyDialogs&&typeof u=="string"&&(u===""||RegExp(/^\s+$/).test(u))&&(c=true)),o?narration.dialogGlue=true:o===false&&(narration.dialogGlue=false);for(let f of l){let d=f.label;typeof d=="object"&&(d=x.getLogichValue(d,e)||"");let m=f.params?.map(y=>x.getLogichValue(y,e));e={...e,...f.props},f.type==="jump"?(narration.openedLabels.length>0&&narration.closeCurrentLabel(),storage.setTempVariable(`${sp}${narration.openedLabels.length}`,m),await narration.call(d,e)):(storage.setTempVariable(`${sp}${narration.openedLabels.length}`,m),await narration.call(d,e));}h==="game_end"?(narration.closeAllLabels(),await narration.continue(e,{runNow:true})):h==="label_end"&&narration.closeCurrentLabel(),c&&await narration.continue(e,{runNow:true});}}};async function CN(n,e={}){if(!Array.isArray(n))if(typeof n=="object"||typeof n=="string")n=[n];else {Se.error("Error parsing imported Pixi'VN JSON: data is not an object");return}let t=n.map(a=>{if(typeof a=="string")try{return JSON.parse(a)}catch(s){return Se.error("Error parsing imported Pixi'VN JSON",s),{}}return a}),r=t.map(async a=>{if(a.initialOperations)for(let s of a.initialOperations)s.type==="value"&&(typeof s.value!="object"||!s.value||!("type"in s.value))&&ap(s);return Promise.resolve()});await Promise.all(r);let i=t.map(async a=>{if(a.initialOperations)for(let s of a.initialOperations)(s.type!=="value"||s.type==="value"&&typeof s.value=="object"&&s.value&&"type"in s.value)&&ap(s);if(a.labels){let s=a.labels;for(let o in s)try{let u=s[o],l=new xC(o,u,void 0,e);RegisteredLabels.add(l);}catch(u){Se.error(`Error creating JSON label ${o}`,u);}}return Promise.resolve()});await Promise.all(i);}function AN(){x.init({animateOperation:Kf,canvasElementOperation:Jf,canvasOperation:Hf,effectOperation:Uf,imageContainerOperation:Gf,imageOperation:Wf,textOperation:zf,narrationOperation:Xf,loadAssets:Bf,soundOperation:Yf,videoOperation:Mf,setStorageValue:Qf,setInitialStorageValue:ep,getLogichValue:Ss.getLogichValue,getConditionalStep:_s});}var K;(i=>(i.log=(a,...s)=>console.log(`[Pixi\u2019VN Ink] ${a}`,...s),i.warn=(a,...s)=>console.warn(`[Pixi\u2019VN Ink] ${a}`,...s),i.error=(a,...s)=>console.error(`[Pixi\u2019VN Ink] ${a}`,...s),i.info=(a,...s)=>console.info(`[Pixi\u2019VN Ink] ${a}`,...s)))(K||={});var NC=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,FC=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,IC=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,ju={Space_Separator:NC,ID_Start:FC,ID_Continue:IC},be={isSpaceSeparator(n){return typeof n=="string"&&ju.Space_Separator.test(n)},isIdStartChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="$"||n==="_"||ju.ID_Start.test(n))},isIdContinueChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n>="0"&&n<="9"||n==="$"||n==="_"||n==="\u200C"||n==="\u200D"||ju.ID_Continue.test(n))},isDigit(n){return typeof n=="string"&&/[0-9]/.test(n)},isHexDigit(n){return typeof n=="string"&&/[0-9A-Fa-f]/.test(n)}},qu,Ge,Ut,ws,sn,wt,Ae,Mu,ei,kC=function(e,t){qu=String(e),Ge="start",Ut=[],ws=0,sn=1,wt=0,Ae=void 0,Mu=void 0,ei=void 0;do Ae=VC(),jC[Ge]();while(Ae.type!=="eof");return typeof t=="function"?Bu({"":ei},"",t):ei};function Bu(n,e,t){let r=n[e];if(r!=null&&typeof r=="object")if(Array.isArray(r))for(let i=0;i<r.length;i++){let a=String(i),s=Bu(r,a,t);s===void 0?delete r[a]:Object.defineProperty(r,a,{value:s,writable:true,enumerable:true,configurable:true});}else for(let i in r){let a=Bu(r,i,t);a===void 0?delete r[i]:Object.defineProperty(r,i,{value:a,writable:true,enumerable:true,configurable:true});}return t.call(n,e,r)}var L,R,Qr,Ht,z;function VC(){for(L="default",R="",Qr=false,Ht=1;;){z=Kt();let n=hp[L]();if(n)return n}}function Kt(){if(qu[ws])return String.fromCodePoint(qu.codePointAt(ws))}function P(){let n=Kt();return n===`
54
+ `?(sn++,wt=0):n?wt+=n.length:wt++,n&&(ws+=n.length),n}var hp={default(){switch(z){case " ":case "\v":case "\f":case " ":case "\xA0":case "\uFEFF":case `
55
+ `:case "\r":case "\u2028":case "\u2029":P();return;case "/":P(),L="comment";return;case void 0:return P(),he("eof")}if(be.isSpaceSeparator(z)){P();return}return hp[Ge]()},comment(){switch(z){case "*":P(),L="multiLineComment";return;case "/":P(),L="singleLineComment";return}throw de(P())},multiLineComment(){switch(z){case "*":P(),L="multiLineCommentAsterisk";return;case void 0:throw de(P())}P();},multiLineCommentAsterisk(){switch(z){case "*":P();return;case "/":P(),L="default";return;case void 0:throw de(P())}P(),L="multiLineComment";},singleLineComment(){switch(z){case `
56
+ `:case "\r":case "\u2028":case "\u2029":P(),L="default";return;case void 0:return P(),he("eof")}P();},value(){switch(z){case "{":case "[":return he("punctuator",P());case "n":return P(),Pn("ull"),he("null",null);case "t":return P(),Pn("rue"),he("boolean",true);case "f":return P(),Pn("alse"),he("boolean",false);case "-":case "+":P()==="-"&&(Ht=-1),L="sign";return;case ".":R=P(),L="decimalPointLeading";return;case "0":R=P(),L="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":R=P(),L="decimalInteger";return;case "I":return P(),Pn("nfinity"),he("numeric",1/0);case "N":return P(),Pn("aN"),he("numeric",NaN);case '"':case "'":Qr=P()==='"',R="",L="string";return}throw de(P())},identifierNameStartEscape(){if(z!=="u")throw de(P());P();let n=Wu();switch(n){case "$":case "_":break;default:if(!be.isIdStartChar(n))throw cp();break}R+=n,L="identifierName";},identifierName(){switch(z){case "$":case "_":case "\u200C":case "\u200D":R+=P();return;case "\\":P(),L="identifierNameEscape";return}if(be.isIdContinueChar(z)){R+=P();return}return he("identifier",R)},identifierNameEscape(){if(z!=="u")throw de(P());P();let n=Wu();switch(n){case "$":case "_":case "\u200C":case "\u200D":break;default:if(!be.isIdContinueChar(n))throw cp();break}R+=n,L="identifierName";},sign(){switch(z){case ".":R=P(),L="decimalPointLeading";return;case "0":R=P(),L="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":R=P(),L="decimalInteger";return;case "I":return P(),Pn("nfinity"),he("numeric",Ht*(1/0));case "N":return P(),Pn("aN"),he("numeric",NaN)}throw de(P())},zero(){switch(z){case ".":R+=P(),L="decimalPoint";return;case "e":case "E":R+=P(),L="decimalExponent";return;case "x":case "X":R+=P(),L="hexadecimal";return}return he("numeric",Ht*0)},decimalInteger(){switch(z){case ".":R+=P(),L="decimalPoint";return;case "e":case "E":R+=P(),L="decimalExponent";return}if(be.isDigit(z)){R+=P();return}return he("numeric",Ht*Number(R))},decimalPointLeading(){if(be.isDigit(z)){R+=P(),L="decimalFraction";return}throw de(P())},decimalPoint(){switch(z){case "e":case "E":R+=P(),L="decimalExponent";return}if(be.isDigit(z)){R+=P(),L="decimalFraction";return}return he("numeric",Ht*Number(R))},decimalFraction(){switch(z){case "e":case "E":R+=P(),L="decimalExponent";return}if(be.isDigit(z)){R+=P();return}return he("numeric",Ht*Number(R))},decimalExponent(){switch(z){case "+":case "-":R+=P(),L="decimalExponentSign";return}if(be.isDigit(z)){R+=P(),L="decimalExponentInteger";return}throw de(P())},decimalExponentSign(){if(be.isDigit(z)){R+=P(),L="decimalExponentInteger";return}throw de(P())},decimalExponentInteger(){if(be.isDigit(z)){R+=P();return}return he("numeric",Ht*Number(R))},hexadecimal(){if(be.isHexDigit(z)){R+=P(),L="hexadecimalInteger";return}throw de(P())},hexadecimalInteger(){if(be.isHexDigit(z)){R+=P();return}return he("numeric",Ht*Number(R))},string(){switch(z){case "\\":P(),R+=RC();return;case '"':if(Qr)return P(),he("string",R);R+=P();return;case "'":if(!Qr)return P(),he("string",R);R+=P();return;case `
57
+ `:case "\r":throw de(P());case "\u2028":case "\u2029":LC(z);break;case void 0:throw de(P())}R+=P();},start(){switch(z){case "{":case "[":return he("punctuator",P())}L="value";},beforePropertyName(){switch(z){case "$":case "_":R=P(),L="identifierName";return;case "\\":P(),L="identifierNameStartEscape";return;case "}":return he("punctuator",P());case '"':case "'":Qr=P()==='"',L="string";return}if(be.isIdStartChar(z)){R+=P(),L="identifierName";return}throw de(P())},afterPropertyName(){if(z===":")return he("punctuator",P());throw de(P())},beforePropertyValue(){L="value";},afterPropertyValue(){switch(z){case ",":case "}":return he("punctuator",P())}throw de(P())},beforeArrayValue(){if(z==="]")return he("punctuator",P());L="value";},afterArrayValue(){switch(z){case ",":case "]":return he("punctuator",P())}throw de(P())},end(){throw de(P())}};function he(n,e){return {type:n,value:e,line:sn,column:wt}}function Pn(n){for(let e of n){if(Kt()!==e)throw de(P());P();}}function RC(){switch(Kt()){case "b":return P(),"\b";case "f":return P(),"\f";case "n":return P(),`
58
+ `;case "r":return P(),"\r";case "t":return P()," ";case "v":return P(),"\v";case "0":if(P(),be.isDigit(Kt()))throw de(P());return "\0";case "x":return P(),$C();case "u":return P(),Wu();case `
59
+ `:case "\u2028":case "\u2029":return P(),"";case "\r":return P(),Kt()===`
60
+ `&&P(),"";case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":throw de(P());case void 0:throw de(P())}return P()}function $C(){let n="",e=Kt();if(!be.isHexDigit(e)||(n+=P(),e=Kt(),!be.isHexDigit(e)))throw de(P());return n+=P(),String.fromCodePoint(parseInt(n,16))}function Wu(){let n="",e=4;for(;e-- >0;){let t=Kt();if(!be.isHexDigit(t))throw de(P());n+=P();}return String.fromCodePoint(parseInt(n,16))}var jC={start(){if(Ae.type==="eof")throw On();Lu();},beforePropertyName(){switch(Ae.type){case "identifier":case "string":Mu=Ae.value,Ge="afterPropertyName";return;case "punctuator":Es();return;case "eof":throw On()}},afterPropertyName(){if(Ae.type==="eof")throw On();Ge="beforePropertyValue";},beforePropertyValue(){if(Ae.type==="eof")throw On();Lu();},beforeArrayValue(){if(Ae.type==="eof")throw On();if(Ae.type==="punctuator"&&Ae.value==="]"){Es();return}Lu();},afterPropertyValue(){if(Ae.type==="eof")throw On();switch(Ae.value){case ",":Ge="beforePropertyName";return;case "}":Es();}},afterArrayValue(){if(Ae.type==="eof")throw On();switch(Ae.value){case ",":Ge="beforeArrayValue";return;case "]":Es();}},end(){}};function Lu(){let n;switch(Ae.type){case "punctuator":switch(Ae.value){case "{":n={};break;case "[":n=[];break}break;case "null":case "boolean":case "numeric":case "string":n=Ae.value;break}if(ei===void 0)ei=n;else {let e=Ut[Ut.length-1];Array.isArray(e)?e.push(n):Object.defineProperty(e,Mu,{value:n,writable:true,enumerable:true,configurable:true});}if(n!==null&&typeof n=="object")Ut.push(n),Array.isArray(n)?Ge="beforeArrayValue":Ge="beforePropertyName";else {let e=Ut[Ut.length-1];e==null?Ge="end":Array.isArray(e)?Ge="afterArrayValue":Ge="afterPropertyValue";}}function Es(){Ut.pop();let n=Ut[Ut.length-1];n==null?Ge="end":Array.isArray(n)?Ge="afterArrayValue":Ge="afterPropertyValue";}function de(n){return Ds(n===void 0?`JSON5: invalid end of input at ${sn}:${wt}`:`JSON5: invalid character '${dp(n)}' at ${sn}:${wt}`)}function On(){return Ds(`JSON5: invalid end of input at ${sn}:${wt}`)}function cp(){return wt-=5,Ds(`JSON5: invalid identifier character at ${sn}:${wt}`)}function LC(n){console.warn(`JSON5: '${dp(n)}' in strings is not valid ECMAScript; consider escaping`);}function dp(n){let e={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(e[n])return e[n];if(n<" "){let t=n.charCodeAt(0).toString(16);return "\\x"+("00"+t).substring(t.length)}return n}function Ds(n){let e=new SyntaxError(n);return e.lineNumber=sn,e.columnNumber=wt,e}var qC=function(e,t,r){let i=[],a="",s,o,u="",l;if(t!=null&&typeof t=="object"&&!Array.isArray(t)&&(r=t.space,l=t.quote,t=t.replacer),typeof t=="function")o=t;else if(Array.isArray(t)){s=[];for(let y of t){let S;typeof y=="string"?S=y:(typeof y=="number"||y instanceof String||y instanceof Number)&&(S=String(y)),S!==void 0&&s.indexOf(S)<0&&s.push(S);}}return r instanceof Number?r=Number(r):r instanceof String&&(r=String(r)),typeof r=="number"?r>0&&(r=Math.min(10,Math.floor(r)),u=" ".substr(0,r)):typeof r=="string"&&(u=r.substr(0,10)),c("",{"":e});function c(y,S){let _=S[y];switch(_!=null&&(typeof _.toJSON5=="function"?_=_.toJSON5(y):typeof _.toJSON=="function"&&(_=_.toJSON(y))),o&&(_=o.call(S,y,_)),_ instanceof Number?_=Number(_):_ instanceof String?_=String(_):_ instanceof Boolean&&(_=_.valueOf()),_){case null:return "null";case true:return "true";case false:return "false"}if(typeof _=="string")return h(_);if(typeof _=="number")return String(_);if(typeof _=="object")return Array.isArray(_)?m(_):f(_)}function h(y){let S={"'":.1,'"':.2},_={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},b="";for(let v=0;v<y.length;v++){let p=y[v];switch(p){case "'":case '"':S[p]++,b+=p;continue;case "\0":if(be.isDigit(y[v+1])){b+="\\x00";continue}}if(_[p]){b+=_[p];continue}if(p<" "){let C=p.charCodeAt(0).toString(16);b+="\\x"+("00"+C).substring(C.length);continue}b+=p;}let g=l||Object.keys(S).reduce((v,p)=>S[v]<S[p]?v:p);return b=b.replace(new RegExp(g,"g"),_[g]),g+b+g}function f(y){if(i.indexOf(y)>=0)throw TypeError("Converting circular structure to JSON5");i.push(y);let S=a;a=a+u;let _=s||Object.keys(y),b=[];for(let v of _){let p=c(v,y);if(p!==void 0){let C=d(v)+":";u!==""&&(C+=" "),C+=p,b.push(C);}}let g;if(b.length===0)g="{}";else {let v;if(u==="")v=b.join(","),g="{"+v+"}";else {let p=`,
61
+ `+a;v=b.join(p),g=`{
62
+ `+a+v+`,
63
+ `+S+"}";}}return i.pop(),a=S,g}function d(y){if(y.length===0)return h(y);let S=String.fromCodePoint(y.codePointAt(0));if(!be.isIdStartChar(S))return h(y);for(let _=S.length;_<y.length;_++)if(!be.isIdContinueChar(String.fromCodePoint(y.codePointAt(_))))return h(y);return y}function m(y){if(i.indexOf(y)>=0)throw TypeError("Converting circular structure to JSON5");i.push(y);let S=a;a=a+u;let _=[];for(let g=0;g<y.length;g++){let v=c(String(g),y);_.push(v!==void 0?v:"null");}let b;if(_.length===0)b="[]";else if(u==="")b="["+_.join(",")+"]";else {let g=`,
64
+ `+a,v=_.join(g);b=`[
65
+ `+a+v+`,
66
+ `+S+"]";}return i.pop(),a=S,b}},BC={parse:kC,stringify:qC},WC=BC,ti=WC;var pp="\xA7SPACE\xA7",mp="\xA7DOUBLE_QUOTES\xA7",gp="\xA7QUOTES\xA7",yp="SPECIAL_\xA7QUOTES\xA7",vp="\xA7CURLY_BRACKETS1\xA7",MC="\xA7INK_VAR\xA7",Cp="\xA7CURLY_BRACKETS2\xA7",T;(g=>{let n=[],e=[];async function t(v,p){for(let C=0;C<n.length;C++)try{let{validation:w}=n[C].opts;if(w instanceof RegExp){if(!w.test(v.join(" ")))continue}else if(w instanceof ZodType&&!w.safeParse(v).success)continue;let O=await n[C].fn(v,p,h);if(O===!0||typeof O=="string")return O}catch{}return false}function r(v,p={name:"custom-command",validation:/^/}){n.unshift({fn:v,opts:p});}g.add=r;function i(){return [...e.map(v=>v.opts),...n.map(v=>v.opts)]}g.info=i;function a(v,p){e.unshift({fn:v,opts:p});}g.addMapper=a;function s(){n.length=0;}g.clear=s;function o(){e.length=0;}g.clearMappers=o;async function u(v,p,C){try{let w=l(v),O=await t(w,C);return O===!0?void 0:typeof O=="string"?(O.startsWith("#")&&(O=O.substring(1)),await g.run(O,p,C)):c(w,p)}catch(w){throw K.error("Error parsing ink hashtag-command",v),w}}g.run=u;function l(v,p){if(v=v.replaceAll('\\"',mp),v=v.replaceAll("\\'",gp),v=v.replaceAll("\\`",yp),v=v.replaceAll("\\{",vp),v=v.replaceAll("\\}",Cp),p?.mergeInkVariables){let A;do A=v,v=v.replace(/\{[^{}:]*\}/g,MC);while(v!==A)}v=v.replaceAll("{"," { "),v=v.replaceAll("}"," } "),v=v.replaceAll(vp,"{"),v=v.replaceAll(Cp,"}");let C=[],w,O="";for(let A=0;A<v.length;A++){let N=v[A];N==='"'||N==="'"||N==="`"?w===void 0?(C.push(O),O="",w=N,O+=N):w===N?(w=void 0,O+=N,C.push(O),O=""):O+=N:O+=N;}return O!==""&&C.push(O),C.forEach((A,N)=>{N%2===1&&(C[N]=A.replaceAll(" ",pp));}),v=C.join(""),C=v.split(" ").filter(A=>A!==""),C=C.map(A=>A.replaceAll(pp," ").replaceAll(mp,'"').replaceAll(gp,"'").replaceAll(yp,"`")),C=y(C),C=C.flatMap(A=>b(A)),C=C.map(A=>A.startsWith('"')&&A.endsWith('"')||A.startsWith("'")&&A.endsWith("'")||A.startsWith("`")&&A.endsWith("`")?A.slice(1,-1):A),C}g.convertTagTolist=l;function c(v,p,C){for(let w of e){let{validation:O}=w.opts,A=false;if(O instanceof RegExp?A=O.test(v.join(" ")):O instanceof ZodType&&(A=O.safeParse(v).success),A)return w.fn(v,p)}C?.silent||K.error("The operation is not valid",v);}g.convertOperation=c;function h(v){return f(v)}g.convertListStringToObj=h;function f(v){if(v.length===0)return {};if(v.length%2!==0)throw K.error("The props list must have a pair number of elements",v),new Error("The props list must have a pair number of elements");let p="{";v.forEach((C,w)=>{if(w%2===0)p+=`"${C}": `;else {switch(C){case "null":case "undefined":case "true":case "false":p+=`${C}`;break;default:m(C)?(C=d(C),p+=`"${C}"`):C.startsWith("{")&&C.endsWith("}")?p+=`${C}`:C.startsWith('"')&&C.endsWith('"')?p+=`${C}`:Number.isNaN(parseFloat(C))?p+=`"${C}"`:p+=`${C}`;}w<v.length-1&&(p+=", ");}}),p+="}";try{return ti.parse(p)}catch(C){throw K.error("Error parsing ink json",p),C}}function d(v){return v.startsWith('"')&&v.endsWith('"')||v.startsWith("'")&&v.endsWith("'")||v.startsWith("`")&&v.endsWith("`")?v.substring(1,v.length-1):v}function m(v){return !!(v.startsWith('"')&&v.endsWith('"')||v.startsWith("'")&&v.endsWith("'")||v.startsWith("`")&&v.endsWith("`"))}function y(v){return S(v).tokens}g.mergeJsonBlocks=y;function S(v){let p=[],C=false;for(let w=0;w<v.length;w++){let O=v[w];if(O!=="{"){p.push(O);continue}let A=_(v,w);if(A===-1){p.push(O);continue}let N=S(v.slice(w+1,A)),re=["{",...N.tokens,"}"],Y=re.join(" ");if(!N.hasInvalidMatchedBlock)try{ti.parse(Y),p.push(Y),w=A;continue}catch{}C=true,p.push(...re),w=A;}return {tokens:p,hasInvalidMatchedBlock:C}}function _(v,p){let C=0;for(let w=p;w<v.length;w++)if(v[w]==="{")C++;else if(v[w]==="}"&&(C--,C===0))return w;return -1}function b(v){if(v==="["||v==="]")return [v];let p=0,C=v.length,w=[];for(;p<C&&v[p]==="[";)w.push("["),p++;let O=[];for(;C>p&&v[C-1]==="]";)O.unshift("]"),C--;let A=v.slice(p,C);return A===""?[...w,...O]:[...w,A,...O]}})(T||={});function RN(n){T.add(n);}function $N(n={}){let e=n.sections?.canvas??true,t=n.sections?.sound??true,r=n.sections?.narration??true,i=n.sections?.assets??true;function a(d){return d&&d.length>0?D.enum(Object.fromEntries(d.map(m=>[m,m]))):D.string()}if(r&&(T.addMapper((d,m)=>{m.labelToOpen={label:d[1],type:"call"},m.goNextStep=void 0;},{name:"Call",deprecated:true,description:"Calls the label specified by the second token, then returns to the current position.\n\n```ink\n# call label_name\n```",validation:D.tuple([D.literal("call"),D.string()])}),T.addMapper((d,m)=>{m.labelToOpen={label:d[1],type:"jump"},m.goNextStep=void 0;},{name:"Jump",deprecated:true,description:"Jumps to the label specified by the second token without returning.\n\n```ink\n# jump label_name\n```",validation:D.tuple([D.literal("jump"),D.string()])}),T.addMapper((d,m)=>("dialogue"in m&&delete m.dialogue,"goNextStep"in m&&delete m.goNextStep,{type:"dialogue",operationType:"clean"}),{name:"Pause",description:"Clears the current dialogue and waits for user input before advancing.\n\n```ink\n# pause\n```",validation:D.tuple([D.literal("pause")])}),T.addMapper((d,m)=>{m.goNextStep=true,m.glueEnabled=false;},{name:"Continue",description:"Forces the story to proceed to the next step automatically.\n\n```ink\n# continue\n```",validation:D.tuple([D.literal("continue")])})),e&&T.addMapper(d=>({type:"video",operationType:d[0],alias:d[2]}),{name:"Pause/Resume video",description:"Pauses or resumes a video canvas element identified by its alias.\n\n```ink\n# pause video <alias>\n# resume video <alias>\n```",validation:D.tuple([D.enum(["pause","resume"]),D.literal("video"),D.string()])}),i&&T.addMapper(d=>({type:d[1],operationType:d[0],aliases:d.slice(2)}),{name:"Load assets/bundle",description:`Loads (eagerly or lazily) a set of asset or bundle aliases.
67
+
68
+ \`\`\`ink
69
+ # load assets <alias...>
70
+ # lazyload assets <alias...>
71
+ # load bundle <alias...>
72
+ # lazyload bundle <alias...>
73
+ \`\`\``,validation:D.union([D.tuple([D.enum(["load","lazyload"]),D.literal("assets")]).rest(a(n.assetAliasIds)),D.tuple([D.enum(["load","lazyload"]),D.literal("bundle")]).rest(a(n.bundleIds))])}),t&&(T.addMapper(d=>({type:"all",operationType:d[0]}),{name:"Pause/Resume/Stop all sounds",description:"Pauses, resumes, or stops all active sounds at once.\n\n```ink\n# pause all sounds\n# resume all sounds\n# stop all sounds\n```",validation:D.tuple([D.enum(["pause","resume","stop"]),D.literal("all"),D.enum(["sounds","sound"])])}),T.addMapper(d=>({type:"sound",operationType:"pause",alias:d[2]}),{name:"Pause sound",description:"Pauses the sound identified by its alias.\n\n```ink\n# pause sound <alias>\n```",validation:D.tuple([D.literal("pause"),D.literal("sound"),D.string()])}),T.addMapper(d=>({type:"channel",operationType:"pause",alias:d[2]}),{name:"Pause channel",description:"Pauses the audio channel identified by its alias.\n\n```ink\n# pause channel <alias>\n```",validation:D.tuple([D.literal("pause"),D.literal("channel"),D.string()])}),T.addMapper(d=>({type:"sound",operationType:"resume",alias:d[2]}),{name:"Resume sound",description:"Resumes the sound identified by its alias.\n\n```ink\n# resume sound <alias>\n```",validation:D.tuple([D.literal("resume"),D.literal("sound"),D.string()])}),T.addMapper(d=>({type:"channel",operationType:"resume",alias:d[2]}),{name:"Resume channel",description:"Resumes the audio channel identified by its alias.\n\n```ink\n# resume channel <alias>\n```",validation:D.tuple([D.literal("resume"),D.literal("channel"),D.string()])}),T.addMapper(d=>({type:"sound",operationType:"stop",alias:d[2]}),{name:"Stop sound",description:"Stops the sound identified by its alias.\n\n```ink\n# stop sound <alias>\n```",validation:D.tuple([D.literal("stop"),D.literal("sound"),D.string()])}),T.addMapper(d=>({type:"sound",operationType:"stop",alias:d[2]}),{name:"Remove sound",description:"Removes (stops) the sound identified by its alias.\n\n```ink\n# remove sound <alias>\n```",deprecated:true,validation:D.tuple([D.literal("remove"),D.literal("sound"),D.string()])}),T.addMapper(d=>({type:"sound",operationType:"edit",alias:d[2],props:T.convertListStringToObj(d.slice(3))}),{name:"Edit sound",description:"Edits the properties of a sound identified by its alias.\n\n```ink\n# edit sound <alias> [<key> <value> \u2026]\n```",validation:D.tuple([D.literal("edit"),D.literal("sound"),D.string()]).rest(D.string()).refine(d=>(d.length-3)%2===0)}),T.addMapper(d=>{let m=d[2],y={type:"sound",operationType:"play",alias:m,url:m};return d.length>3&&(y.props=T.convertListStringToObj(d.slice(3))),y},{name:"Play sound",description:"Plays a sound using its alias as the URL, with optional key/value properties.\n\n```ink\n# play sound <alias> [<key> <value> \u2026]\n```",validation:D.tuple([D.literal("play"),D.literal("sound"),a(n.assetAliasIds)]).rest(D.string()).refine(d=>(d.length-3)%2===0)}),T.addMapper(d=>{let m=d[2],y=d[3],S={type:"sound",operationType:"play",alias:m,url:y};return d.length>4&&(S.props=T.convertListStringToObj(d.slice(4))),S},{name:"Play sound with source",description:"Plays a sound with an explicit source URL and optional key/value properties.\n \n```ink\n# play sound <alias> <source> [<key> <value> \u2026]\n```\n",validation:D.tuple([D.literal("play"),D.literal("sound"),D.string(),a(n.assetAliasIds)]).rest(D.string()).refine(d=>d.length>3&&(d.length-3)%2!==0)})),e){let d=function(p){let C=[],w=0,O="";for(let A of p)A.startsWith("{")?(w++,O+=A):A.endsWith("}")&&w>0?(w--,O+=A,w===0&&(C.push(O),O="")):w>0?O+=A:C.push(A);return C},m=function(p,C){switch(p){case "dissolve":case "fade":case "movein":case "moveout":case "zoomin":case "zoomout":case "pushin":case "pushout":break;default:return}let w={type:p};if(C.length>0)try{w.props=T.convertListStringToObj(C);}catch{}return w},y=function(p,C,w){let O,A;w.length%2===0?(O=C,A=w):(O=w[0],A=w.slice(1));let N={type:p,operationType:"show",alias:C,url:O};if(A.length>0){if(A.includes("with")&&A.length>A.indexOf("with")+1){let re=A[A.indexOf("with")+1],Y=A.slice(A.indexOf("with")+2);A=A.slice(0,A.indexOf("with"));let ue=m(re,Y);ue!==void 0&&(N.transition=ue);}A.length>0&&(N.props=T.convertListStringToObj(A));}return N},S=function(p,C){let w,O;C.length%2===0?(w=p,O=C):(w=C[0],O=C.slice(1));let A={type:"text",operationType:"show",alias:p,text:w};if(O.length>0){if(O.includes("with")&&O.length>O.indexOf("with")+1){let N=O[O.indexOf("with")+1],re=O.slice(O.indexOf("with")+2);O=O.slice(0,O.indexOf("with"));let Y=m(N,re);Y!==void 0&&(A.transition=Y);}O.length>0&&(A.props=T.convertListStringToObj(O));}return A},_=function(p,C,w){let O={type:p,operationType:"remove",alias:C};if(w.includes("with")&&w.length>w.indexOf("with")+1){let A=w[w.indexOf("with")+1],N=w.slice(w.indexOf("with")+2),re=m(A,N);re!==void 0&&(O.transition=re);}return O},b=function(p,C){let w=ue=>ue.startsWith('"')&&ue.endsWith('"')||ue.startsWith("'")&&ue.endsWith("'")||ue.startsWith("`")&&ue.endsWith("`")?ue.substring(1,ue.length-1):ue,O=C.indexOf("["),A=C.indexOf("]",O+1);if(O===-1||A===-1){K.error("Show imagecontainer must have a list of image ulrs",C);return}let N=C.slice(O+1,A);if(N.length===0){K.error("Show imagecontainer must have a list of image ulrs",C);return}let re={type:"imagecontainer",operationType:"show",alias:p,urls:N.map(ue=>w(ue))},Y=C.slice(A+1);if(Y.length>0){if(Y.includes("with")&&Y.length>Y.indexOf("with")+1){let ue=Y[Y.indexOf("with")+1],rn=Y.slice(Y.indexOf("with")+2);Y=Y.slice(0,Y.indexOf("with"));let Kr=m(ue,rn);Kr!==void 0&&(re.transition=Kr);}Y.length>0&&(re.props=T.convertListStringToObj(Y));}return re},g=function(p){let C=p.indexOf("]",4);if(C===-1)return;let w=p.slice(4,C),O=p.slice(C+1),A=O.indexOf("with");return A===-1?{urls:w,beforeWith:O,afterWith:[]}:{urls:w,beforeWith:O.slice(0,A),afterWith:O.slice(A+1)}};T.addMapper(p=>({alias:p[1],type:"shake",props:T.convertListStringToObj(p.slice(2))}),{name:"Shake",description:"Applies shake effect to a canvas alias with optional key/value parameters.\n\n```ink\n# shake <alias> [<key> <value> \u2026]\n```",validation:D.tuple([D.literal("shake"),D.string()]).rest(D.string()).refine(p=>(p.length-2)%2===0)}),T.addMapper(p=>{let C=p.slice(2),w=C,O=[];if(C.includes("options")){let N=C.indexOf("options");w=C.slice(0,N),O=C.slice(N+1);}return {alias:p[1],type:"animate",keyframes:T.convertListStringToObj(w),options:T.convertListStringToObj(O)}},{name:"Animate",description:"Animates a canvas alias with keyframes and optional options section, both in key/value pairs.\n\n```ink\n# animate <alias> [<key> <value> \u2026] [options <key> <value> \u2026]\n```",validation:D.tuple([D.literal("animate"),D.string()]).rest(D.string()).refine(p=>{let C=p.slice(2),w=C.indexOf("options");if(w===-1)return C.length%2===0;if(C.lastIndexOf("options")!==w)return false;let O=C.slice(0,w),A=C.slice(w+1);return O.length%2===0&&A.length%2===0})}),T.addMapper(p=>{let C=p[2],w=d(p.slice(3));return y("image",C,w)},{name:"Show image",description:"Shows an image canvas element with optional source URL, key/value properties, and transition effect.\n\n```ink\n# show image <alias> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("show"),D.literal("image"),a(n.assetAliasIds)]).rest(D.string())}),T.addMapper(p=>{let C=p[2],w=d(p.slice(3));return y("image",C,w)},{name:"Show image with source",description:"Shows an image canvas element with optional source URL, key/value properties, and transition effect.\n\n```ink\n# show image <alias> <source> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("show"),D.literal("image"),D.string(),a(n.assetAliasIds)]).rest(D.string())});let v=a(n.assetAliasIds);T.addMapper(p=>b(p[2],d(p.slice(3))),{name:"Show imagecontainer",description:"Shows an image-container canvas element with a list of image URLs and optional key/value properties.\n\n```ink\n# show imagecontainer <alias> [ <source1> <ursource2> \u2026 ] [<key> <value> \u2026]\n```",validation:D.tuple([D.literal("show"),D.literal("imagecontainer"),D.string(),D.literal("[")]).rest(D.string()).refine(p=>{let C=g(p);return C===void 0?false:C.urls.length>0&&C.urls.every(w=>v.safeParse(w).success)&&C.afterWith.length===0&&C.beforeWith.length%2===0})}),T.addMapper(p=>b(p[2],d(p.slice(3))),{name:"Show imagecontainer with transition",description:"Shows an image-container canvas element with a list of image URLs, optional properties, and a transition effect.\n\n```ink\n# show imagecontainer <alias> [ <ursource1> <source2> \u2026 ] [<key> <value> \u2026] with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout\n```",validation:D.tuple([D.literal("show"),D.literal("imagecontainer"),D.string(),D.literal("[")]).rest(D.string()).refine(p=>{let C=g(p);return C===void 0?false:C.urls.length>0&&C.urls.every(w=>v.safeParse(w).success)&&C.afterWith.length===1&&C.beforeWith.length%2===0})}),T.addMapper(p=>b(p[2],d(p.slice(3))),{name:"Show imagecontainer with transition and props",description:"Shows an image-container canvas element with a list of image URLs, optional properties, a transition effect, and transition key/value properties.\n\n```ink\n# show imagecontainer <alias> [ <url1> <url2> \u2026 ] [<key> <value> \u2026] with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout <key> <value> \u2026\n```",validation:D.tuple([D.literal("show"),D.literal("imagecontainer"),D.string(),D.literal("[")]).rest(D.string()).refine(p=>{let C=g(p);return C===void 0?false:C.urls.length>0&&C.urls.every(w=>v.safeParse(w).success)&&C.afterWith.length>1&&(C.afterWith.length-1)%2===0&&C.beforeWith.length%2===0})}),T.addMapper(p=>{let C=p[2],w=d(p.slice(3));return y("video",C,w)},{name:"Show video",description:"Shows a video canvas element with optional source URL, key/value properties, and transition effect.\n\n```ink\n# show video <alias> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("show"),D.literal("video"),a(n.assetAliasIds)]).rest(D.string())}),T.addMapper(p=>{let C=p[2],w=d(p.slice(3));return y("video",C,w)},{name:"Show video",description:"Shows a video canvas element with optional source URL, key/value properties, and transition effect.\n\n```ink\n# show video <alias> <source> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("show"),D.literal("video"),D.string(),a(n.assetAliasIds)]).rest(D.string())}),T.addMapper(p=>{let C=p[2];return S(C,p.slice(3))},{name:"Show text",description:"Shows a text canvas element with optional text content, key/value properties, and transition effect.\n\n```ink\n# show text <alias> [<text>] [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("show"),D.literal("text"),D.string()]).rest(D.string())}),T.addMapper(p=>{let C=p[2],w=d(p.slice(3));return _("image",C,w)},{name:"Remove image",description:"Removes an image canvas element with an optional transition effect.\n\n```ink\n# remove image <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("remove"),D.literal("image"),D.string()]).rest(D.string())}),T.addMapper(p=>{let C=p[2],w=d(p.slice(3));return _("video",C,w)},{name:"Remove video",description:"Removes a video canvas element with an optional transition effect.\n\n```ink\n# remove video <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("remove"),D.literal("video"),D.string()]).rest(D.string())}),T.addMapper(p=>{let C=p[2],w=d(p.slice(3));return _("canvaselement",C,w)},{name:"Remove canvas element",description:"Removes a canvas element with an optional transition effect.\n\n```ink\n# remove canvaselement <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("remove"),D.literal("canvaselement"),D.string()]).rest(D.string())}),T.addMapper(p=>{let C=p[2],w=d(p.slice(3));return _("text",C,w)},{name:"Remove text",description:"Removes a text canvas element with an optional transition effect.\n\n```ink\n# remove text <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("remove"),D.literal("text"),D.string()]).rest(D.string())}),T.addMapper(p=>{let C=p[2],w=d(p.slice(3));return _("imagecontainer",C,w)},{name:"Remove imagecontainer",description:"Removes an image-container canvas element with an optional transition effect.\n\n```ink\n# remove imagecontainer <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D.tuple([D.literal("remove"),D.literal("imagecontainer"),D.string()]).rest(D.string())}),T.addMapper(()=>({type:"canvas",operationType:"clear"}),{name:"Clear canvas",description:"Removes every element currently on the canvas.\n\n```ink\n# clear canvas\n```",validation:D.tuple([D.literal("clear"),D.literal("canvas")])}),T.addMapper(p=>({type:"image",operationType:"edit",alias:p[2],props:T.convertListStringToObj(p.slice(3))}),{name:"Edit image",description:"Edits the properties of an image canvas element identified by its alias.\n\n```ink\n# edit image <alias> [<key> <value> \u2026]\n```",validation:D.tuple([D.literal("edit"),D.literal("image"),D.string()]).rest(D.string())}),T.addMapper(p=>({type:"imagecontainer",operationType:"edit",alias:p[2],props:T.convertListStringToObj(p.slice(3))}),{name:"Edit imagecontainer",description:"Edits the properties of an image-container canvas element identified by its alias.\n\n```ink\n# edit imagecontainer <alias> [<key> <value> \u2026]\n```",validation:D.tuple([D.literal("edit"),D.literal("imagecontainer"),D.string()]).rest(D.string())}),T.addMapper(p=>({type:"canvaselement",operationType:"edit",alias:p[2],props:T.convertListStringToObj(p.slice(3))}),{name:"Edit canvas element",description:"Edits the properties of a canvas element identified by its alias.\n\n```ink\n# edit canvaselement <alias> [<key> <value> \u2026]\n```",validation:D.tuple([D.literal("edit"),D.literal("canvaselement"),D.string()]).rest(D.string())}),T.addMapper(p=>({type:"video",operationType:"edit",alias:p[2],props:T.convertListStringToObj(p.slice(3))}),{name:"Edit video",description:"Edits the properties of a video canvas element identified by its alias.\n\n```ink\n# edit video <alias> [<key> <value> \u2026]\n```",validation:D.tuple([D.literal("edit"),D.literal("video"),D.string()]).rest(D.string())}),T.addMapper(p=>({type:"text",operationType:"edit",alias:p[2],props:T.convertListStringToObj(p.slice(3))}),{name:"Edit text",description:"Edits the properties of a text canvas element identified by its alias.\n\n```ink\n# edit text <alias> [<key> <value> \u2026]\n```",validation:D.tuple([D.literal("edit"),D.literal("text"),D.string()]).rest(D.string())});}r&&(T.addMapper(d=>({type:"input",operationType:"request"}),{name:"Request input",description:"Requests player input without any additional constraints.\n\n```ink\n# request input\n```",validation:D.tuple([D.literal("request"),D.literal("input")])}),T.addMapper(d=>{let m={type:"input",operationType:"request"};try{let y=T.convertListStringToObj(d.slice(2));"type"in y&&typeof y.type=="string"&&(m.valueType=y.type),"default"in y&&(m.defaultValue=y.default);}catch{}return m},{name:"Request input with params",description:"Requests player input with optional key/value parameters (e.g. type, default).\n\n```ink\n# request input <key> <value> [<key> <value> \u2026]\n# request input type number default 18\n```",validation:D.tuple([D.literal("request"),D.literal("input")]).rest(D.string()).refine(d=>d.length>2&&(d.length-2)%2===0)}));}var As="global decl",xn="___external_value___",LN=/\[([^\]]+)\]/;var bp=["+","-","/","*","%","_","==",">","<",">=","<=","!=","!","&&","||","MIN","MAX"],_p=["+","-","/","*","%","POW","RANDOM","L^"],Sp=["INT","FLOOR","FLOAT"];function tr(n,e){if(n.endsWith(".s"))return;if(new RegExp(/.*\.[0-9]+\..*$/).test(n)&&(n=n.split(".").filter(i=>!i.match(/^[0-9]+$/)).join("."),!n.startsWith(".")))return n.replaceAll(".","_|_");if(!new RegExp(/^\.\^.*$/).test(n)&&n.includes("g-")){let r=n.split("g-");return Gu(e)+"_|_"+"g-"+r[r.length-1]}let t=0;for(;new RegExp(/^\.\^.*$/).test(n);)t++,n=n.substring(2);if(t=t-1,new RegExp(/^\..*$/).test(n)&&e){let r=n.substring(1);return Gu(e,t)+"_|_"+r.replaceAll(".","_|_")}return n.replaceAll(".","_|_")||Gu(e,t).replaceAll(".","_|_")}function Gu(n,e=0){let t=n.split("_|_");for(;t.length>1&&e>0;)t.pop()?.includes("g-")&&e--,e--;return t.join("_|_")}var Ep="\xA7DOUBLE_SLASH_CONVERTOR\xA7";function Ft(n){return n.startsWith("^")&&(n=n.substring(1)),n=n.replaceAll("\\\\",Ep),n=n.replaceAll("\\n",`
74
+ `),n=n.replaceAll("\\t"," "),n=n.replaceAll(" "," "),n=n.replaceAll(Ep,"\\\\"),n}var GC={version:"1.13.17"};var wp=`https://pixi-vn.com/schemas/${GC.version}/schema.json`,Dp=["==","!=","<","<=",">",">=","CONTAINS"];function an(n,e,t,r){let{functions:i}=r;n=n.map(s=>{if(typeof s=="string")switch(s){case "rnd":return "RANDOM";case "?":return "CONTAINS"}return s});let a=[];return n.forEach(s=>{if(typeof s=="string")switch(s){case "&&":case "||":if(a.length>=2){let o={type:"union",unionType:s==="&&"?"and":"or",conditions:[a[a.length-2],a[a.length-1]]};a.pop(),a.pop(),a.push(o);}break;case "!":if(a.length===0)K.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"union",unionType:"not",condition:a[a.length-1]};a[a.length-1]=o;}break;case "!?":if(a.length>1){let o={type:"union",unionType:"not",condition:{type:"compare",operator:"CONTAINS",leftValue:a[a.length-2],rightValue:a[a.length-1]}};a.pop(),a.pop(),a.push(o);}else K.error("Error parsing ink file: Conditional statement is not valid",n);break;default:if(Dp.includes(s))if(a.length<2)K.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"compare",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if(_p.includes(s))if(a.length<2)K.error("Error parsing ink file: Conditional statement is not valid",n);else {s==="L^"&&(s="INTERSECTION");let o={type:"arithmetic",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if(Sp.includes(s)){let o={type:"arithmeticsingle",operator:s,leftValue:a[a.length-1]};a.pop(),a.push(o);}else s.startsWith("^")&&a.push(Ft(s));}else if(typeof s=="object"&&"CNT?"in s)if(new RegExp(/.*\.[0-9]\..*/).test(s["CNT?"])){let o=s["CNT?"].split("."),u=o.pop(),l=o.pop();if(l===void 0||u===void 0){K.error("Error parsing ink file: Conditional statement is not valid",n);return}let c=Number(l),h=o.join(".");if(h.includes("^.")){let d=h.split("."),m=d[d.length-1].replaceAll(".","_|_");d.pop(),h=`${d.join(".")}.${m}`,u.includes("c-")&&(h=h+"_|_"+u);}else h=h.replaceAll(".","_|_");let f=tr(h,e);if(!f)return;a.push({type:"compare",leftValue:zu(f),operator:">=",rightValue:{type:"value",value:c}});}else {let o=tr(s["CNT?"],e);if(!o)return;a.push(zu(o));}else if(typeof s=="object"&&"VAR?"in s)a.push(Tn({key:s["VAR?"],defaultType:"storage"},t));else if(typeof s=="object"&&"f()"in s){let o=s["f()"],u=i.find(c=>c.name===o);if(!u){K.error(`Error parsing ink file: Function ${o} is not defined`,n);return}let l=[];for(let c=0;c<u.args;c++)a.length!==0&&l.push(a.pop());a.push({type:"function",functionName:o,args:l.reverse()});}else if(typeof s=="object"&&"^->"in s)s["^->"].includes("$r")||a.push(s["^->"]);else if(typeof s=="object"&&"list"in s){let o=Object.values(s.list).map(u=>u);a.push(o);}else a.push(s);}),a}function Ju(n,e,t,r){return an(n,e,t,r)}function Tn(n,e,t){let{key:r,defaultType:i}=n,a=e.indexOf(r);return a>=0?{type:"value",storageType:"params",storageOperationType:"get",key:a}:{type:"value",storageOperationType:"get",storageType:i,key:r}}function ni(n,e,t){let{key:r,value:i,defaultType:a,artmeticValue:s}=n,o=e.indexOf(r);if(o>=0)return [{type:"value",storageType:"params",storageOperationType:"set",key:o,value:i}];if(s){if(typeof i=="object"&&"list"in i){let u=Object.values(i.list).map(l=>l);return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:u}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}else if(typeof i=="object"){if("list"in i&&typeof i.list=="object"){if("origins"in i&&Array.isArray(i.origins)&&i.origins.length>0)return i.origins.reduce(u=>(u.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(t.enums[r])}),Object.entries(t.enums[r]).forEach(([l,c])=>{u.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${l}`,value:c});}),u),[]);{let u=new Set,l=Object.entries(i.list).reduce((c,[h,f])=>{let[d,m]=h.split(".");return c.push({type:"value",storageOperationType:"set",storageType:a,key:m,value:f}),u.add(d),c},[]);return u.forEach(c=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:c,value:Object.values(t.enums[c])});}),r in t.enums?Object.entries(t.enums[r]).forEach(([c,h])=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${c}`,value:h});}):l.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(i.list)}),l}}else if(typeof i=="object"&&"VAR?"in i){if(typeof i["VAR?"]=="string"&&i["VAR?"].includes(".")){let[u,l]=i["VAR?"].split(".");if(u in t.enums&&l in t.enums[u])return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:t.enums[u][l]}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:Tn({key:i["VAR?"],defaultType:"storage"},e)}]}}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}function zu(n){return {type:"value",storageType:"label",storageOperationType:"get",label:n}}function Hu(n,e){return e||new RegExp(`${"_|_".replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}c-\\d+$`).test(n)?"call":"jump"}function Ps(n,e){if(e){if(typeof e=="string")e.startsWith("^")&&n.push(Ft(e));else if(typeof e=="object"&&"type"in e)switch(e.type){case "value":case "function":console.warn("Warning: trying to add a value or function operation as text. This is likely a mistake, so it will be ignored.");break;default:n.push(e);}}}function Uu(n,e,t,r,i,a={}){let{isNewLine:s=true,isHashtagScript:o=false,isThreads:u=false}=a;return JC(n,e,t,r,i,{isNewLine:s,isHashtagScript:o,isThreads:u})}function JC(n,e,t,r,i,a){if(!e)return;let{isNewLine:s,isHashtagScript:o=false,isThreads:u}=a;if(o){if(Array.isArray(e)&&e.length>0){let l={goNextStep:true},c=[];try{if(e.length===1&&typeof e[0]=="string"){let h=e[0],f=T.convertTagTolist(h),d=T.convertOperation(f,l,{silent:!0});d&&(d.$origin=h,c.push(d));}}catch{}c.length===0&&c.push({type:"operationtoconvert",values:e}),n.push({...l,operations:c});}}else if(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"){if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&!l.labelToOpen&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}typeof e=="string"?n.push(HC(Ft(e),r.characterIds)):n.push({dialogue:e});}else if(typeof e=="string"){if(e==="end")n.push({end:"game_end"});else if(e==="done")n.push({end:"label_end",goNextStep:true});else if(e==="<>")if(n.length>0){let l=n[n.length-1];l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true),n[n.length-1]=l;}else n.push({glueEnabled:true,goNextStep:false});}else if(typeof e=="object"){if("type"in e)switch(e.type){case "value":e.storageOperationType==="set"?(typeof e.value=="string"&&e.value.startsWith("^")&&(e.value=Ft(e.value)),n.push({goNextStep:true,operations:[e]})):console.warn("Warning: trying to add a value get operation as step. This is likely a mistake, so it will be ignored.");break;case "function":n.push({goNextStep:true,operations:[e]});break;default:if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}n.push({conditionalStep:e});}else if("->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let c=n[n.length-1];c.labelToOpen||(c.goNextStep=true),n[n.length-1]=c;}if(e.params&&e.params.length===0&&delete e.params,e.var)n.push({labelToOpen:{label:Tn({key:e["->"],defaultType:"storage"},i),type:u?"call":"jump",params:e.params},glueEnabled:l});else {let c=tr(e["->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:Hu(c,u),params:e.params},glueEnabled:l});}}else if("->t->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let h=n[n.length-1];h.labelToOpen||(h.goNextStep=true),n[n.length-1]=h;}e.params&&e.params.length===0&&delete e.params;let c=tr(e["->t->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:"call",params:e.params},glueEnabled:l});}}}function HC(n,e){let t;if(n.includes(": ")){let r=n.split(": "),i=r[0],a=r.slice(1).join(": ");(e?.has(i)||RegisteredCharacters.has(i))&&(t=i,n=a);}return t?{dialogue:{character:t,text:n}}:{dialogue:n}}function Ku(n,e,t,r=true,i=false){return UC(n,e,t,r,i)}function UC(n,e,t,r,i=false){e&&(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"?typeof e=="string"?n.push(Ft(e)):n.push(e):typeof e=="object"&&"type"in e&&n.push(e));}function Os(n,e,t,r){if(n.length===0){K.error("Error parsing ink file: Arithmetic statement is not valid",n);return}let i=an(n,e,t,r);if(i.length===1){let a=i[0];return a&&typeof a=="object"&&"type"in a?{type:"value",storageType:"logic",storageOperationType:"get",operation:a}:a}}function nr(n,e,t,r="",i,a,s=void 0){let o=[],u="sequential",l=false,c=true;n.forEach(d=>{d==="%"&&(u="loop"),d==="seq"&&(u="random"),d==="MIN"&&(l=true);});let h=n[n.length-1];return Object.keys(h).forEach(d=>{let m=h[d];if(Array.isArray(m)&&m.length>3){m=m.slice(1,m.length-2);let y=[];on(m,r,i,y,e,e,t,rr,s,true,a),y.length===1?o.push(y[0]):o.push({type:"resulttocombine",combine:"cross",secondConditionalItem:y});}else Array.isArray(m)&&m.length===3&&(c=false);}),u==="sequential"?{type:"stepswitch",elements:o,choiceType:u,end:c?"lastItem":void 0,nestedId:s}:l&&u==="random"?{type:"stepswitch",elements:o,choiceType:"sequentialrandom",end:c?"lastItem":void 0,nestedId:s}:{type:"stepswitch",elements:o,choiceType:u}}function on(n,e,t,r=[],i,a,s,o,u=void 0,l=true,c=[]){let h=false,f=[],d=false,m=false,y=false,S=[],_=[];if(t.preDialog[e]&&(l=false,i(r,`^${t.preDialog[e].text}`,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),t.preDialog[e].glue&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),delete t.preDialog[e]),n.includes("visit")){let g=nr(n,a,s,e,t,c,u);g&&(!l&&r.length>0&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}));return}let b=n[0];if(b&&typeof b=="object"&&"temp="in b){for(;n[0]&&typeof n[0]=="object"&&"temp="in n[0];)c.push(n[0]["temp="]),n.shift();c=c.reverse();}if(n.forEach((g,v)=>{if(m){if(typeof g=="string"&&g==="/#"){let p=[];on(_,e,t,p,Ku,Ku,s,o,u,l),i(r,p,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),m=false,_=[];}else _.push(g);return}else if(h)if(Array.isArray(g))f.push(g);else if(g&&typeof g=="object")"CNT?"in g?v>0&&n[v-1]==="ev"?(d=true,S.push(g)):d?S.push(g):(f.push(g),l=false):"VAR="in g||"temp="in g?ni({key:"VAR="in g?g["VAR="]:g["temp="],value:n[v-1],defaultType:"VAR="in g?"storage":"tempstorage"},c,t).forEach(C=>{if(C.value&&typeof C.value=="string"&&C.value==="/str"&&(C.value=n[v-2]),C.value&&typeof C.value=="object"&&"^->"in C.value&&(C.value=C.value["^->"]),f.length>1){let w=Os(f,e,c,t);f=[],w&&typeof w=="object"&&"type"in w&&w.type==="value"&&"storageType"in w&&w.storageType==="logic"&&(C.value=w.operation);}(typeof C.key!="string"||!C.key.includes("$r"))&&(i(r,C,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=true);}):"VAR?"in g?f.push(g):"^->"in g?g["^->"].includes("$r")||f.push(g):("f()"in g||"list"in g&&typeof g.list=="object")&&f.push(g);else switch(g){case "/ev":d&&S.push(g),h=false,f.push(g);break;case "out":if(f.length>0){let p=f[f.length-1];if(p&&typeof p=="object"&&"VAR?"in p){f.pop();let C=Tn({key:p["VAR?"],defaultType:"storage"},c);i(r,C,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y});}else {let C=[];for(;f.length>0&&f[f.length-1]!=="/ev";)C.push(f.pop());C=C.reverse();let w=Os(C,e,c,t);f=[],w&&typeof w=="object"&&"type"in w&&w.type==="value"&&"storageType"in w&&w.storageType==="logic"?i(r,{storageOperationType:"get",storageType:"logic",operation:w.operation,type:"value"},e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}):(i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),w=`^${w}`,i(r,w,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}));}l=false;}break;case "pop":{let p=f[f.length-1];if(p&&typeof p=="object"&&"f()"in p){let C=[];for(;f.length>0&&f[f.length-1]!=="/ev";)C.push(f.pop());C=C.reverse();let w=an(C,e,c,t);f=[],w.forEach(O=>{O&&typeof O=="object"&&"type"in O&&O.type==="function"?i(r,O,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}):K.warn("Unhandled case: value is not a function",O);}),l=false;}else f.push(g);return}default:f.push(g);}else if(typeof g=="string")if(g.startsWith("^"))i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;else if(g==="ev")h=true;else if(g===`
75
+ `)l=true;else if(g==="done"||g==="end")i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;else if(g==="<>")i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;else if(g==="nop"&&d){let p=Ap(S,a,s,e,t,c,u);p&&i(r,p,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),d=false,S=[];}else g==="#"?m=true:g==="thread"&&(y=true);else if(Array.isArray(g))if(d)S.push(g);else if(g.length>1&&typeof g[g.length-2]=="object"&&g[g.length-2]&&"c"in g[g.length-2]&&typeof g[g.length-1]=="object"&&g[g.length-1]&&"b"in g[g.length-1]){f.pop();let p=[],C=[];for(;f.length>0&&f[f.length-1]!=="/ev";)p.push(f.pop());S=[...S,...p.reverse()],d=true,C.push(g.pop()),C.push(g.pop()),S=[...S,...g],S.push(C);}else if(g.length>1&&typeof g[g.length-1]=="object"&&g[g.length-1]&&"#n"in g[g.length-1]){let p=g.pop();if(!p){K.error("Error parsing ink file: el is undefined");return}let C=p["#n"];delete p["#n"],g.push(p),i(r,{"->":e?e+"_|_"+C:C},e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),s({[C]:g},e,t);}else on(g,e,t,r,i,a,s,o,u,l,c);else if(g&&typeof g=="object")if("->"in g&&typeof g["->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(g["->"])){let p=[];f.length>0&&(p=Ju(["ev",...f],e,c,t)),g.params=p,i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;}else if("->t->"in g&&typeof g["->t->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(g["->t->"])){let p=[];f.length>0&&(p=Ju(["ev",...f],e,c,t)),g.params=p,i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;}else if("*"in g&&typeof g["*"]=="string")g["*"].includes("c")&&(f.push(g),l=false);else if("s"in g&&Array.isArray(g.s))f.push(g),l=false;else if("CNT?"in g)f.push(g),l=false;else if("VAR="in g||"temp="in g){let p="VAR="in g?g["VAR="]:g["temp="],C,w=[];if(p!=="$r"){for(f.pop(),f[f.length-1]==="/ev"&&f.pop();f.length>0&&f[f.length-1]!=="/ev";)w.push(f.pop());w=w.reverse(),C=Os(w,e,c,t),f=[],ni({key:p,value:C,defaultType:"VAR="in g?"storage":"tempstorage",artmeticValue:true},c,t).forEach(A=>{(A.value!==void 0||A.value!==null)&&i(r,A,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y});}),l=false;}}else s(g,e,t);}),o(f,r,e,t,c),e.includes("_|_")&&r.length===2){let g=r[0],v=r[1];g&&v&&typeof g=="object"&&"dialogue"in g&&typeof v=="object"&&"labelToOpen"in v&&g.dialogue===" "&&v.labelToOpen&&(r.shift(),delete v.glueEnabled,r[0]=v);}}function Yu(n,e,t,r,i,a){if(e.length===0)return;let s=an(e,r,t,i);if(s.length===1){let o={type:"ifelse",condition:s[0],then:n,else:a};return o.else||delete o.else,o}else if(s.length>1){let o={type:"ifelse",condition:{type:"union",unionType:"and",conditions:s},then:n,else:a};return o.else||delete o.else,o}}function Ap(n,e,t,r,i,a,s=void 0){if(n.length===0){K.error("Error parsing ink file: Conditional statement is not valid",n);return}let o=[],u=[];if(n.forEach(h=>{Array.isArray(h)?u.push(h):typeof h=="string"&&h==="du"?i.du?o.push(i.du):i.du=o[o.length-1]:(typeof h!="string"||h!=="/ev")&&o.push(h);}),u.length===0){K.error("Error parsing ink file: Conditional statement is not valid",u);return}let l=Xu(u[0],e,t,`${r}${"_|_"}then`,i,a,`${s||""}then`),c;return u.length===2?c=Xu(u[1],e,t,`${r}${"_|_"}else`,i,a,`${s||""}else`):u.length>2?(u.shift(),u.push("nop"),u=[{b:u}],c=Xu(u,e,t,r,i,a,`${s||""}else`)):c=void 0,i.du=void 0,Yu(l,o,a,r,i,c)}function Xu(n,e,t,r,i,a,s=void 0){let o=[];for(let l of n)typeof l=="object"&&"b"in l&&(l.b=l.b.filter(c=>c!==null&&!(typeof c=="object"&&"->"in c&&new RegExp(/.*\.[0-9]/).test(c["->"]))),on(l.b,r,i,o,e,e,t,rr,s,true,a));return o.length===1?o[0]:{type:"resulttocombine",combine:"cross",secondConditionalItem:o}}function Zu(n="",e=""){let t=Array.isArray(n)?n:[n],r=Array.isArray(e)?e:[e];return [...new Set([...t,...r])]}function rr(n,e,t,r,i){if(n.length>0){let a={};Pp(n,a,i,r);for(let[s,o]of Object.entries(a)){let u=t+"_|_"+s,l={text:o.text.length===1?o.text[0]:o.text,label:u,props:{},type:Hu(u,false),oneTime:o.onetime};o.text.length===0&&(l.onlyHaveNoChoice=true,l.autoSelect=true),l.oneTime===false&&delete l.oneTime;let c=Yu(l,o.conditions,i,t,r)||l,h=e[e.length-1];if(typeof h=="object"&&h&&"type"in h&&(h={conditionalStep:h}),e.length>0&&typeof h=="object"&&h&&"choices"in h&&h.choices){let f=h.choices;f&&Array.isArray(f)?f.push(c):K.error("Unhandled case: choices is PixiVNJsonConditionalStatements<PixiVNJsonChoices> | undefined",o,f),h.choices=f.sort((d,m)=>{try{let y=d.label.split("."),S=y[y.length-1].replaceAll(".","_|_"),_=m.label.split("."),b=_[_.length-1].replaceAll(".","_|_");if(S.includes("c-")&&b.includes("c-")){let g=S.split("c-")[1],v=Number(g),p=b.split("c-")[1],C=Number(p);return v-C}}catch{}return 0});}else e.push({choices:[c]});o.preDialog&&(r.preDialog[u]={...o.preDialog});}}}function Pp(n,e,t,r,i){let a=[],s="",o="",u=false,l=[];for(let c=0;c<n.length;c++){let h=n[c];if(typeof h=="string")h.startsWith("^")?a.push(Ft(h)):bp.includes(h)&&l.push(h);else if(Array.isArray(h)&&h.includes("visit")){let f=nr(h,Ps,(d,m,y)=>{},i,r,t);a.push(f);}else if(h&&typeof h=="object")if("*"in h&&typeof h["*"]&&typeof h["*"]=="string")h["*"].includes("c")&&(s=`c${h["*"].split("c")[1]}`,h.flg&16&&(u=true));else if("s"in h&&Array.isArray(h.s)){let f=Op(h.s),d=h.s.includes("<>");f&&(i&&e[i]?(e[i].preDialog={text:f,glue:d},e[i].text=Zu(f,e[i].text)):(a.push(f),o=f));}else ("CNT?"in h||"VAR?"in h)&&l.push(h);else l.push(h);if(s){e[s]?e[s].text=Zu(a,e[s].text):e[s]={text:a,onetime:u,conditions:l},o&&(e[s].preDialog={text:o,glue:false});let f=n.slice(c+1);Pp(f,e,t,r,s);return}}}function Op(n){for(let e of n)if(typeof e=="string"){if(e.startsWith("^"))return Ft(e)}else if(Array.isArray(e)){let t=Op(e);if(t)return t}}var Qu;(i=>{function n(a,s={}){let{labelToRemove:o=[],initialVarsToRemove:u=[],enums:l={},functions:c=[],preDialog:h={},characterIds:f}=s,d={$schema:wp};if(d.labels=e(a.root,{labelToRemove:o,initialVarsToRemove:u,enums:l,functions:c,preDialog:h,characterIds:f}),d.labels&&As in d.labels){let m=d.labels[As];delete d.labels[As],m.forEach(y=>{y.operations&&(d.initialOperations=d.initialOperations?[...d.initialOperations,...y.operations]:[...y.operations]);});}if(d.labels&&xn in d.labels){let m=d.labels[xn];delete d.labels[xn],m.forEach(y=>{y.operations&&(d.initialOperations=d.initialOperations?[...d.initialOperations,...y.operations]:[...y.operations]);});}return o.forEach(m=>{d.labels&&m in d.labels&&delete d.labels[m];}),u.forEach(m=>{d.initialOperations&&(d.initialOperations=d.initialOperations.filter(y=>!(y.type==="value"&&y.key===m)));}),d}i.inkToJson=n;function e(a,s){try{let o={};return t(a,o,s),o}catch(o){K.error("Error parsing ink file",o);}}function t(a,s,o){for(let u of a)if(u)if(Array.isArray(u))if(u.includes("visit")){let l=nr(u,Ps,(c,h,f)=>{},"",o,[]);l&&(o.externalSwitch=l);}else t(u,s,o);else typeof u=="object"&&(u&&"VAR="in u&&o.externalSwitch&&(s[xn]||(s[xn]=[]),s[xn].push({operations:ni({defaultType:"storage",key:u["VAR="],value:o.externalSwitch},[],o)})),r(u,s,"",o));}function r(a,s,o="",u){if(a!==null){for(let[l,c]of Object.entries(a))if(Array.isArray(c)){let h=[],f={},d=(o?o+"_|_":"")+l;on(c,d,u,h,Uu,Uu,(m,y,S)=>{r(m,f,y,S);},rr);for(let[m,y]of Object.entries(f))s[m]=y;h.length>0&&(s[d]=h);}}}})(Qu||={});var If=Xr(Yg(),1),D0=Xr(Py(),1),A0=Xr(b0(),1),P0=Xr(wr(),1),k1=/(?:^|<>)\s*#\s*([^\r\n]+)/g,V1=/^=+[ \t]+(?:function[ \t]+)?(\w+)/gm,R1=new Set(["DONE","END"]),$1="_|_",_0=new Map;function O0(n,e){let t=JSON.stringify([e,n]),r=_0.get(t);if(r)return r;let i=new RegExp(n,e);return _0.set(t,i),i}function ys(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(s=>ys(n,s));let i=t.oneOf;if(Array.isArray(i))return i.some(s=>ys(n,s));let a=t.allOf;if(Array.isArray(a))return a.every(s=>ys(n,s));if(typeof t.const=="string")return n===t.const;if(Array.isArray(t.enum))return t.enum.some(s=>typeof s=="string"&&s===n);if(t.type!=="string"||typeof t.minLength=="number"&&n.length<t.minLength||typeof t.maxLength=="number"&&n.length>t.maxLength)return false;if(typeof t.pattern=="string")try{if(!O0(t.pattern,"").test(n))return !1}catch{return false}return true}function Nu(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(o=>Nu(n,o));let i=t.oneOf;if(Array.isArray(i))return i.some(o=>Nu(n,o));let a=t.allOf;if(Array.isArray(a))return a.every(o=>Nu(n,o));if(t.type!=="array"||typeof t.minItems=="number"&&n.length<t.minItems||typeof t.maxItems=="number"&&n.length>t.maxItems)return false;let s=Array.isArray(t.prefixItems)?t.prefixItems:[];if(n.length<s.length)return false;for(let o=0;o<s.length;o++)if(!ys(n[o],s[o]))return false;return n.length===s.length?true:t.items===false||typeof t.items>"u"?false:t.items===true?true:n.slice(s.length).every(o=>ys(o,t.items))}function Tf(n,e){if(e.type==="regexp")try{let t=O0(e.source,e.flags);return t.lastIndex=0,t.test(n.join(" "))}catch{return false}return e.type==="literal"?n.join(" ")===e.value:Nu(n,e.schema)}function Fu(n){if(!n||typeof n!="object")return [];let e=n;if(Array.isArray(e.anyOf))return e.anyOf.flatMap(Fu);if(Array.isArray(e.oneOf))return e.oneOf.flatMap(Fu);if(Array.isArray(e.allOf)){let t={};for(let r of e.allOf)r&&typeof r=="object"&&Object.assign(t,r);return Fu(t)}return e.type==="array"&&Array.isArray(e.prefixItems)?[e]:[]}function S0(n,e){if(n===e)return 1;let t=Math.max(n.length,e.length);return t===0?1:Math.max(0,1-x0(n,e)/t)}function j1(n,e){if(e&&typeof e=="object"){let t=e;if(typeof t.const=="string")return {weight:2,matched:n===void 0?0:2*S0(n,t.const)};if(Array.isArray(t.enum))return {weight:2,matched:2*(n===void 0?0:Math.max(0,...t.enum.filter(i=>typeof i=="string").map(i=>S0(n,i))))}}return {weight:1,matched:n===void 0?0:1}}function L1(n,e){let t=Array.isArray(e.prefixItems)?e.prefixItems:[],r=Math.min(t.length,n.length),i=0,a=0,s=false;for(let o=0;o<r;o++){let u=j1(n[o],t[o]);i+=u.weight,a+=u.matched,u.weight>1&&(s=true);}return {score:i===0?0:a/i,hasDiscriminant:s}}var q1=.8,E0=new Map;function B1(n){let e=JSON.stringify(n),t=E0.get(e);if(t)return t;let r=new D0.default({strict:false,allErrors:true}).compile(n);return E0.set(e,r),r}function W1(n){if("items"in n)return n;let e=Array.isArray(n.prefixItems)?n.prefixItems.length:0;return {...n,minItems:e,maxItems:e,items:false}}function M1(n,e){let[t]=Ru(n.instancePath);if(t!==void 0&&/^\d+$/.test(t)){let r=Number(t);if(r<e.length)return e[r]}return kf(n)}function G1(n){return n.keyword==="const"?`must be "${n.params.allowedValue}"`:n.keyword==="enum"?`must be one of ${(n.params.allowedValues??[]).map(t=>`"${t}"`).join(", ")}`:n.message??"invalid value"}function Nf(n){let e=n.split(/\r?\n/),t=[];for(let r=0;r<e.length;r++){let i=e[r];for(let a of i.matchAll(k1)){let s=(a[1]??"").trim();if(!s)continue;let o=T.convertTagTolist(s,{mergeInkVariables:true});o.length!==0&&t.push({line:r+1,command:s,tokens:o});}}return t}function kf(n){return n.keyword==="required"&&typeof n.params?.missingProperty=="string"?n.params.missingProperty:n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"?n.params.additionalProperty:n.instancePath.split("/").pop()||"(root)"}function x0(n,e){let t=n.length+1,r=e.length+1,i=Array.from({length:t},(a,s)=>[s,...Array(r-1).fill(0)]);for(let a=1;a<r;a++)i[0][a]=a;for(let a=1;a<t;a++)for(let s=1;s<r;s++){let o=n[a-1]===e[s-1]?0:1;i[a][s]=Math.min(i[a-1][s]+1,i[a][s-1]+1,i[a-1][s-1]+o);}return i[t-1][r-1]}function z1(n,e){let t,r=1/0;for(let a of e){let s=x0(n,a);s<r&&(r=s,t=a);}let i=Math.max(1,Math.floor(n.length/3));return r<=i?t:void 0}function J1(n,e){if(n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"){let t=n.params.additionalProperty,r=e&&z1(t,e),i=r?` (did you mean "${r}"?)`:"";return `has an unrecognised property "${t}"${i}`}return n.message??"invalid value"}function Ru(n){return n.split("/").filter(Boolean).map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}function H1(n,e){let t=n,r,i=a=>{a&&typeof a=="object"&&typeof a.$origin=="string"&&(r=a.$origin);};i(t);for(let a of Ru(e)){if(t===null||typeof t!="object")break;t=t[a],i(t);}return r}function U1(n,e){let t=Ru(e);for(let r=t.length;r>=0;r--){let i=t.slice(0,r),a=n;for(let s of i){if(a===null||typeof a!="object"){a=void 0;break}a=a[s];}if(a&&typeof a=="object"&&!Array.isArray(a)&&typeof a.type=="string")return {path:`/${i.map(o=>o.replace(/~/g,"~0").replace(/\//g,"~1")).join("/")}`,node:a}}}function ku(n,e,t=new Set){if(!n||typeof n!="object")return n;let r=n.$ref;if(typeof r!="string")return n;let i=r.match(/^#\/definitions\/([^/]+)$/);return !i?.[1]||t.has(i[1])||!(i[1]in e)?{}:(t.add(i[1]),ku(e[i[1]],e,t))}function Vu(n,e){let t=ku(n,e);if(!t||typeof t!="object")return;let r=t;if(!(r.anyOf||r.oneOf)){if(Array.isArray(r.allOf)){let i={properties:{},required:[]};for(let a of r.allOf){let s=Vu(a,e);if(!s)return;Object.assign(i.properties,s.properties),i.required.push(...s.required);}return i}return {properties:r.properties??{},required:r.required??[]}}}function w0(n,e){if(!n||typeof n!="object")return true;let t=n;return "const"in t?t.const===e:Array.isArray(t.enum)?t.enum.includes(e):true}function K1(n,e){let t=n.definitions??{},r=[];for(let[i,a]of Object.entries(t)){let s=Vu(a,t);if(!s)continue;let o=s.properties.type;o&&typeof o=="object"&&("const"in o||Array.isArray(o.enum))&&w0(o,e.type)&&w0(s.properties.operationType,e.operationType)&&r.push(i);}return r}function X1(n,e,t){let r=n.definitions??{},i={definitions:r,...r[e]},a=new If.default({strict:false,allErrors:true}).compile(i);return a(t)?[]:a.errors??[]}function Y1(n,e,t){let r=n.definitions??{},i=ku(r[e],r);for(let a of Ru(t)){let o=Vu(i,r)?.properties[a];if(o===void 0)return [];i=ku(o,r);}return Object.keys(Vu(i,r)?.properties??{})}function Iu(n){let e=n.map(o=>o.instancePath),t=o=>e.some(u=>u!==o&&u.startsWith(`${o}/`)),r=n.filter(o=>!t(o.instancePath)),i=new Map;for(let o of r){let u=i.get(o.instancePath)??[];u.push(o),i.set(o.instancePath,u);}let a=[];for(let o of i.values()){let u=o.filter(l=>l.keyword!=="anyOf"&&l.keyword!=="oneOf");a.push(...u.length>0?u:o);}let s=new Set;return a.filter(o=>{let u=`${kf(o)}|${o.message}`;return s.has(u)?false:(s.add(u),true)})}function Ff(n,e,t){return n.map(r=>({instancePath:r.instancePath||"(root)",element:kf(r),message:J1(r,t?.(r)),origin:H1(e,r.instancePath)}))}function Z1(n,e,t){let r=n.map(c=>c.instancePath),i=c=>r.some(h=>h!==c&&h.startsWith(`${c}/`)),a=n.filter(c=>!i(c.instancePath)),s=t&&typeof t=="object"?t:void 0,o=new Map,u=[];for(let c of a){let h=s?U1(e,c.instancePath):void 0;if(!h){u.push(c);continue}let f=o.get(h.path);f?f.errors.push(c):o.set(h.path,{node:h.node,errors:[c]});}let l=Ff(Iu(u),e);for(let[c,h]of o){let f=s?K1(s,h.node):[],d=f.length===1?f[0]:void 0;if(!d||!s){l.push(...Ff(Iu(h.errors),e));continue}let y=Iu(X1(s,d,h.node)).map(S=>({...S,instancePath:`${c}${S.instancePath}`}));l.push(...Ff(y,e,S=>Y1(s,d,S.instancePath.slice(c.length))));}return l}var Vf;(h=>{function n(f,d={labelToRemove:[],initialVarsToRemove:[],functions:[],enums:{}}){let m=[];try{return {json:new A0.Compiler(f,{errorHandler:(b,g)=>{let v=b.replace(/^[A-Z]+: line \d+: ?/,""),p=b.match(/line (\d+)/);m.push({message:v,type:g,line:p?Number(p[1]):-1});},countAllVisits:!0,fileHandler:{ResolveInkFilename:b=>b,LoadInkFileContents:()=>""},pluginNames:[],sourceFilename:null}).Compile().ToJson()||"",issues:m}}catch{let S=false,_={...d,textSource:f};return e(m,()=>{S=true;},_),S?n(_.textSource,d):{issues:m}}}h.compile=n;function e(f,d,m){let{functions:y,initialVarsToRemove:S,labelToRemove:_}=m,b=f.find(g=>g.type===P0.ErrorType.Error);if(b){if(b.message.includes("Divert target not found")){let g=b.message.match(/Divert target not found: '-> (\w+)'/);if(g?.[1]){let v=g[1],p=`
76
+
77
+ === ${v} ===
78
+
79
+ -> DONE`;return m.textSource=m.textSource.concat(p),_.push(v),d()}}if(b.message.includes("Unresolved variable")){let g=b.message.match(/Unresolved variable: (\w+)/);if(g?.[1]){let v=g[1],p=`VAR ${v} = ""
80
+
81
+ `;return m.textSource=p.concat(m.textSource),S.push(v),d()}}if(b.message.includes("Variable could not be found to assign to")){let g=b.message.match(/Variable could not be found to assign to: (\w+)/);if(g?.[1]){let v=g[1],p=`VAR ${v} = ""
82
+
83
+ `;return m.textSource=p.concat(m.textSource),S.push(v),d()}}if(b.message.includes("Variable could not be found to assign to")){let g=b.message.match(/Variable could not be found to assign to: '(\w+)'/);if(g?.[1]){let v=g[1],p=`VAR ${v} = ""
84
+
85
+ `;return m.textSource=p.concat(m.textSource),S.push(v),d()}}if(b.message.includes("Function call target not found")){let g=b.message.match(/Function call target not found: '-> (\w+)'/);if(g?.[1]){let v=g[1],p=`
86
+
87
+ === function ${v}() ===
88
+
89
+ ~ return
90
+
91
+ `;return m.textSource=m.textSource.concat(p),y.push({name:v,args:0}),_.push(v),d()}}if(b.message.includes(" arguments, but got ")){let g=b.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);if(g?.[1]){let v=g[1],p=parseInt(g[3]||"0",10),C=p>0?Array.from({length:p},(A,N)=>`arg${N+1}`).join(", "):"",w=`
92
+
93
+ === function ${v}(${C}) ===
94
+
95
+ ~ return
96
+
97
+ `;m.textSource=m.textSource.replaceAll(`
98
+
99
+ === function ${v}() ===
100
+
101
+ ~ return
102
+
103
+ `,""),m.textSource=m.textSource.concat(w);let O=y.find(A=>A.name===v);return O?O.args=p:(y.push({name:v,args:p}),_.push(v)),d()}}if(b.message.includes("Could not find target for read count")){let g=b.message.match(/Could not find target for read count: -> (\w+\.\w+)/);if(g?.[1]){let v=g[1],[p,C]=v.split("."),w=`
104
+
105
+ LIST ${p} = ${C}
106
+
107
+ `;return m.textSource=m.textSource.concat(w),m.initialVarsToRemove.push(p),m.initialVarsToRemove.push(`${p}.${C}`),d()}}if(b.message.includes("variable for increment could not be found")){let g=b.message.match(/variable for increment could not be found: '(\w+)' after searching:/);if(g?.[1]){let v=g[1],p=`VAR ${v} = 0
108
+
109
+ `;return m.textSource=p.concat(m.textSource),m.initialVarsToRemove.push(v),d()}}return f.forEach(g=>{let v=g.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);v?.[1]&&(g.message=`The function '${v[1]}' have optional arguments, but in ink all arguments must be required. Please make sure to provide all the required arguments for the function call.`);}),{issues:f}}return {issues:f}}h.getErrors=e;function t(f,d){return Nf(f).filter(({tokens:m})=>!d.some(({validation:y})=>Tf(m,y)))}h.getUnknownHashtagCommands=t;function r(f,d){let m=d.filter(S=>S.validation.type==="zod");if(m.length===0)return [];let y=[];for(let S of Nf(f)){if(d.some(({validation:g})=>Tf(S.tokens,g)))continue;let _;for(let g of m)for(let v of Fu(g.validation.schema)){let{score:p,hasDiscriminant:C}=L1(S.tokens,v);C&&(!_||p>_.score)&&(_={command:g,branch:v,score:p});}if(!_||_.score<q1)continue;let b=B1(W1(_.branch));if(!b(S.tokens))for(let g of Iu(b.errors??[]))y.push({line:S.line,command:S.command,handlerName:_.command.name,instancePath:g.instancePath||"(root)",element:M1(g,S.tokens),message:G1(g),score:_.score});}return y}h.getLikelyUnknownHashtagCommandSchemaIssues=r;function i(f,d){let m=new Set;for(let g of f.matchAll(V1))g[1]&&m.add(g[1]);let y=new Set(d),S=new Set,_=f.split(/\r?\n/),b=[];for(let g=0;g<_.length;g++){let v=(_[g]??"").replace(/\/\/.*$/,"");for(let p of v.matchAll(/->[ \t]+(\w[\w.]*)/g)){let C=p[1];if(!C)continue;let w=C.split(".")[0]??C;R1.has(w)||m.has(w)||y.has(C)||y.has(C.replaceAll(".",$1))||y.has(w)||S.has(C)||(S.add(C),b.push({line:g+1,target:C}));}}return b}h.getUnknownDivertTargets=i;function a(f){return new If.default({strict:false,allErrors:true}).compile(f)}h.getSchemaValidator=a;function s(f,d){let m=typeof d=="function"?d:a(d);return m(f)?[]:Z1(m.errors??[],f,m.schema)}h.validateAgainstJsonSchema=s;function o(f,d){let m=new Set,y=[];for(let g of d){let v=u(g);v!==void 0?y.push(v):m.add(String(g));}y.sort((g,v)=>v-g);let S=[],_=f.length;for(let g=f.length-1;g>=0;g--)m.has(f[g])&&(S.push({key:f[g],sectionTokens:f.slice(g+1,_)}),_=g);S.reverse();let b=[];for(let g of y)g<0||g>=_||(b.push({key:g,sectionTokens:f.slice(g,_)}),_=g-1);return b.reverse(),[...b,...S]}h.extractKeyedSections=o;function u(f){return typeof f=="number"?Number.isInteger(f)&&f>=0?f:void 0:/^\d+$/.test(f)?Number(f):void 0}function l(f,d){let m=o(f,Object.keys(d)),y=[];for(let{key:S,sectionTokens:_}of m){let b;try{b=T.convertListStringToObj(_);}catch(v){y.push({key:S,instancePath:"(root)",element:String(S),message:`could not parse "${S}" section into key/value pairs: ${v instanceof Error?v.message:String(v)}`});continue}let g=s(b,d[S]);y.push(...g.map(v=>({...v,key:S})));}return y}h.validateKeyedJsonSchemas=l;function c(f,d){let m=[];for(let y of Nf(f)){let S=d.find(({validation:b})=>Tf(y.tokens,b));if(!S?.keySchemas)continue;let _=l(y.tokens,S.keySchemas);m.push(..._.map(b=>({...b,line:y.line,command:y.command})));}return m}h.getHashtagKeySchemaIssues=c;})(Vf||={});var Rf=Xr(wr(),1);function T0(n){if(!n||n.length===0)return;let e=new Set;for(let t of n){let r=typeof t=="string"?t:t?.id;typeof r=="string"&&r.length>0&&e.add(r);}return e.size>0?e:void 0}function N0(n,e={}){let t={labelToRemove:[],initialVarsToRemove:[],functions:e.functions||[],enums:e.enums||{},textSource:n},{json:r,issues:i}=Vf.compile(n,t);if(i.forEach(({message:s,type:o})=>{o===Rf.ErrorType.Error?K.error(`Ink compilation error: ${s}`):o===Rf.ErrorType.Warning?K.warn(`Ink compilation warning: ${s}`):K.info(`Ink compilation info: ${s}`);}),!r){K.error("No JSON generated from ink file");return}let a;try{a=ti.parse(r);}catch{K.error("Error parsing ink file");return}return t.enums=a.listDefs||{},Qu.inkToJson(a,{...t,characterIds:T0(e.characters)})}export{E as a,Xr as b,Yr as c,lt as d,Ss as e,CN as f,AN as g,LN as h,T as i,RN as j,$N as k,wp as l,wr as m,Vf as n,N0 as o};