parser-glimmer.mjs 137 KB
var t,e,r=(function(t,e){var r="\n",n=function(){function t(t){this.string=t;for(var e=[0],n=0;n<t.length;)switch(t[n]){case r:n+=r.length,e.push(n);break;case"\r":t[n+="\r".length]===r&&(n+=r.length),e.push(n);break;default:n++}this.offsets=e}return t.prototype.locationForIndex=function(t){if(t<0||t>this.string.length)return null;for(var e=0,r=this.offsets;r[e+1]<=t;)e++;return{line:e,column:t-r[e]}},t.prototype.indexForLocation=function(t){var e=t.line,r=t.column;return e<0||e>=this.offsets.length||r<0||r>this.lengthOfLine(e)?null:this.offsets[e]+r},t.prototype.lengthOfLine=function(t){var e=this.offsets[t];return(t===this.offsets.length-1?this.string.length:this.offsets[t+1])-e},t}();e.__esModule=!0,e.default=n}(e={path:t,exports:{},require:function(t,r){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==r&&e.path)}},e.exports),e.exports);var n=function(t,e){const r=new SyntaxError(t+" ("+e.start.line+":"+e.start.column+")");return r.loc=e,r};var s={locStart:function(t){return t.loc.start.offset},locEnd:function(t){return t.loc.end.offset}};Object.freeze([]);function a(){return Object.create(null)}const{keys:i}=Object;function o(t){for(let e=1;e<arguments.length;e++){let r=arguments[e];if(null===r||"object"!=typeof r)continue;let n=i(r);for(let e=0;e<n.length;e++){let s=n[e];t[s]=r[s]}}return t}const l=(...t)=>t;function c(t){return t.length>0}function h(t,e="unexpected empty list"){if(!c(t))throw new Error(e)}const u=console;const p=Object.freeze({line:1,column:0}),d=Object.freeze({source:"(synthetic)",start:p,end:p}),m=(Object.freeze({source:"(temporary)",start:p,end:p}),Object.freeze({source:"(nonexistent)",start:p,end:p})),f=Object.freeze({source:"(broken)",start:p,end:p});class g{constructor(t){this.loc=t.loc,this.chars=t.chars}static synthetic(t){let e=U.synthetic(t);return new g({loc:e,chars:t})}static load(t,e){return new g({loc:U.load(t,e[1]),chars:e[0]})}getString(){return this.chars}serialize(){return[this.chars,this.loc.serialize()]}}var b,y,k,v=function(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r},w=function(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)};class S{constructor(t){b.set(this,void 0),v(this,b,t)}first(t){for(let e of w(this,b)){let r=e.match(t);if(c(r))return r[0]}return null}}b=new WeakMap;class E{constructor(){y.set(this,new Map)}get(t,e){let r=w(this,y).get(t);return r||(r=e(),w(this,y).set(t,r),r)}add(t,e){w(this,y).set(t,e)}match(t){let e=function(t){switch(t){case"Broken":case"InternalsSynthetic":case"NonExistent":return"IS_INVISIBLE";default:return t}}(t),r=[],n=w(this,y).get(e),s=w(this,y).get("MATCH_ANY");return n&&r.push(n),s&&r.push(s),r}}function x(t){return t(new N).check()}y=new WeakMap;class N{constructor(){k.set(this,new E)}check(){return(t,e)=>this.matchFor(t.kind,e.kind)(t,e)}matchFor(t,e){let r=w(this,k).match(t);return new S(r).first(e)}when(t,e,r){return w(this,k).get(t,(()=>new E)).add(e,r),this}}k=new WeakMap;var T,A,P=function(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)},C=function(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r};class L{constructor(t){this.data=t}static forHbsPos(t,e){return new q(t,e,null).wrap()}static broken(t=p){return new O("Broken",t).wrap()}get offset(){let t=this.data.toCharPos();return null===t?null:t.offset}eql(t){return _(this.data,t.data)}until(t){return $(this.data,t.data)}move(t){let e=this.data.toCharPos();if(null===e)return L.broken();{let r=e.offset+t;return e.source.check(r)?new B(e.source,r).wrap():L.broken()}}collapsed(){return $(this.data,this.data)}toJSON(){return this.data.toJSON()}}class B{constructor(t,e){this.source=t,this.charPos=e,this.kind="CharPosition",T.set(this,null)}toCharPos(){return this}toJSON(){let t=this.toHbsPos();return null===t?p:t.toJSON()}wrap(){return new L(this)}get offset(){return this.charPos}toHbsPos(){let t=P(this,T);if(null===t){let e=this.source.hbsPosFor(this.charPos);C(this,T,t=null===e?"BROKEN":new q(this.source,e,this.charPos))}return"BROKEN"===t?null:t}}T=new WeakMap;class q{constructor(t,e,r=null){this.source=t,this.hbsPos=e,this.kind="HbsPosition",A.set(this,void 0),C(this,A,null===r?null:new B(t,r))}toCharPos(){let t=P(this,A);if(null===t){let e=this.source.charPosFor(this.hbsPos);C(this,A,t=null===e?"BROKEN":new B(this.source,e))}return"BROKEN"===t?null:t}toJSON(){return this.hbsPos}wrap(){return new L(this)}toHbsPos(){return this}}A=new WeakMap;class O{constructor(t,e){this.kind=t,this.pos=e}toCharPos(){return null}toJSON(){return this.pos}wrap(){return new L(this)}get offset(){return null}}const _=x((t=>t.when("HbsPosition","HbsPosition",(({hbsPos:t},{hbsPos:e})=>t.column===e.column&&t.line===e.line)).when("CharPosition","CharPosition",(({charPos:t},{charPos:e})=>t===e)).when("CharPosition","HbsPosition",(({offset:t},e)=>{var r;return t===(null===(r=e.toCharPos())||void 0===r?void 0:r.offset)})).when("HbsPosition","CharPosition",((t,{offset:e})=>{var r;return(null===(r=t.toCharPos())||void 0===r?void 0:r.offset)===e})).when("MATCH_ANY","MATCH_ANY",(()=>!1))));var D,H,R,V=function(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)},I=function(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r};class U{constructor(t){this.data=t,this.isInvisible="CharPosition"!==t.kind&&"HbsPosition"!==t.kind}static get NON_EXISTENT(){return new z("NonExistent",m).wrap()}static load(t,e){return"number"==typeof e?U.forCharPositions(t,e,e):"string"==typeof e?U.synthetic(e):Array.isArray(e)?U.forCharPositions(t,e[0],e[1]):"NonExistent"===e?U.NON_EXISTENT:"Broken"===e?U.broken(f):void function(t,e="unexpected unreachable branch"){throw u.log("unreachable",t),u.log("".concat(e," :: ").concat(JSON.stringify(t)," (").concat(t,")")),new Error("code reached unreachable")}(e)}static forHbsLoc(t,e){let r=new q(t,e.start),n=new q(t,e.end);return new F(t,{start:r,end:n},e).wrap()}static forCharPositions(t,e,r){let n=new B(t,e),s=new B(t,r);return new M(t,{start:n,end:s}).wrap()}static synthetic(t){return new z("InternalsSynthetic",m,t).wrap()}static broken(t=f){return new z("Broken",t).wrap()}getStart(){return this.data.getStart().wrap()}getEnd(){return this.data.getEnd().wrap()}get loc(){let t=this.data.toHbsSpan();return null===t?f:t.toHbsLoc()}get module(){return this.data.getModule()}get startPosition(){return this.loc.start}get endPosition(){return this.loc.end}toJSON(){return this.loc}withStart(t){return $(t.data,this.data.getEnd())}withEnd(t){return $(this.data.getStart(),t.data)}asString(){return this.data.asString()}toSlice(t){let e=this.data.asString();return new g({loc:this,chars:t||e})}get start(){return this.loc.start}set start(t){this.data.locDidUpdate({start:t})}get end(){return this.loc.end}set end(t){this.data.locDidUpdate({end:t})}get source(){return this.module}collapse(t){switch(t){case"start":return this.getStart().collapsed();case"end":return this.getEnd().collapsed()}}extend(t){return $(this.data.getStart(),t.data.getEnd())}serialize(){return this.data.serialize()}slice({skipStart:t=0,skipEnd:e=0}){return $(this.getStart().move(t).data,this.getEnd().move(-e).data)}sliceStartChars({skipStart:t=0,chars:e}){return $(this.getStart().move(t).data,this.getStart().move(t+e).data)}sliceEndChars({skipEnd:t=0,chars:e}){return $(this.getEnd().move(t-e).data,this.getStart().move(-t).data)}}class M{constructor(t,e){this.source=t,this.charPositions=e,this.kind="CharPosition",D.set(this,null)}wrap(){return new U(this)}asString(){return this.source.slice(this.charPositions.start.charPos,this.charPositions.end.charPos)}getModule(){return this.source.module}getStart(){return this.charPositions.start}getEnd(){return this.charPositions.end}locDidUpdate(){}toHbsSpan(){let t=V(this,D);if(null===t){let e=this.charPositions.start.toHbsPos(),r=this.charPositions.end.toHbsPos();t=I(this,D,null===e||null===r?"BROKEN":new F(this.source,{start:e,end:r}))}return"BROKEN"===t?null:t}serialize(){let{start:{charPos:t},end:{charPos:e}}=this.charPositions;return t===e?t:[t,e]}toCharPosSpan(){return this}}D=new WeakMap;class F{constructor(t,e,r=null){this.source=t,this.hbsPositions=e,this.kind="HbsPosition",H.set(this,null),R.set(this,void 0),I(this,R,r)}serialize(){let t=this.toCharPosSpan();return null===t?"Broken":t.wrap().serialize()}wrap(){return new U(this)}updateProvided(t,e){V(this,R)&&(V(this,R)[e]=t),I(this,H,null),I(this,R,{start:t,end:t})}locDidUpdate({start:t,end:e}){void 0!==t&&(this.updateProvided(t,"start"),this.hbsPositions.start=new q(this.source,t,null)),void 0!==e&&(this.updateProvided(e,"end"),this.hbsPositions.end=new q(this.source,e,null))}asString(){let t=this.toCharPosSpan();return null===t?"":t.asString()}getModule(){return this.source.module}getStart(){return this.hbsPositions.start}getEnd(){return this.hbsPositions.end}toHbsLoc(){return{start:this.hbsPositions.start.hbsPos,end:this.hbsPositions.end.hbsPos}}toHbsSpan(){return this}toCharPosSpan(){let t=V(this,H);if(null===t){let e=this.hbsPositions.start.toCharPos(),r=this.hbsPositions.end.toCharPos();if(!e||!r)return t=I(this,H,"BROKEN"),null;t=I(this,H,new M(this.source,{start:e,end:r}))}return"BROKEN"===t?null:t}}H=new WeakMap,R=new WeakMap;class z{constructor(t,e,r=null){this.kind=t,this.loc=e,this.string=r}serialize(){switch(this.kind){case"Broken":case"NonExistent":return this.kind;case"InternalsSynthetic":return this.string||""}}wrap(){return new U(this)}asString(){return this.string||""}locDidUpdate({start:t,end:e}){void 0!==t&&(this.loc.start=t),void 0!==e&&(this.loc.end=e)}getModule(){return"an unknown module"}getStart(){return new O(this.kind,this.loc.start)}getEnd(){return new O(this.kind,this.loc.end)}toCharPosSpan(){return this}toHbsSpan(){return null}toHbsLoc(){return f}}const $=x((t=>t.when("HbsPosition","HbsPosition",((t,e)=>new F(t.source,{start:t,end:e}).wrap())).when("CharPosition","CharPosition",((t,e)=>new M(t.source,{start:t,end:e}).wrap())).when("CharPosition","HbsPosition",((t,e)=>{let r=e.toCharPos();return null===r?new z("Broken",f).wrap():$(t,r)})).when("HbsPosition","CharPosition",((t,e)=>{let r=t.toCharPos();return null===r?new z("Broken",f).wrap():$(r,e)})).when("IS_INVISIBLE","MATCH_ANY",(t=>new z(t.kind,f).wrap())).when("MATCH_ANY","IS_INVISIBLE",((t,e)=>new z(e.kind,f).wrap()))));class j{constructor(t,e="an unknown module"){this.source=t,this.module=e}check(t){return t>=0&&t<=this.source.length}slice(t,e){return this.source.slice(t,e)}offsetFor(t,e){return L.forHbsPos(this,{line:t,column:e})}spanFor({start:t,end:e}){return U.forHbsLoc(this,{start:{line:t.line,column:t.column},end:{line:e.line,column:e.column}})}hbsPosFor(t){let e=0,r=0;if(t>this.source.length)return null;for(;;){let n=this.source.indexOf("\n",r);if(t<=n||-1===n)return{line:e+1,column:t-r};e+=1,r=n+1}}charPosFor(t){let{line:e,column:r}=t,n=this.source.length,s=0,a=0;for(;;){if(a>=n)return n;let t=this.source.indexOf("\n",a);if(-1===t&&(t=this.source.length),s===e-1)return a+r>t?t:a+r;if(-1===t)return 0;s+=1,a=t+1}}}class G{constructor(t,e,r,n){this.original=t,this.loc=n,this.type="PathExpression",this.this=!1,this.data=!1;let s=r.slice();"ThisHead"===e.type?this.this=!0:"AtHead"===e.type?(this.data=!0,s.unshift(e.name.slice(1))):s.unshift(e.name),this.parts=s}get head(){let t;t=this.this?"this":this.data?"@".concat(this.parts[0]):this.parts[0];let e=this.loc.collapse("start").sliceStartChars({chars:t.length}).loc;return st.head(t,e)}get tail(){return this.this?this.parts:this.parts.slice(1)}}let K;function W(){return K||(K=new j("","(synthetic)")),K}function J(t){switch(t.type){case"AtHead":return{original:t.name,parts:[t.name]};case"ThisHead":return{original:"this",parts:[]};case"VarHead":return{original:t.name,parts:[t.name]}}}function Q(t,e){let r,[n,...s]=t.split(".");return r="this"===n?{type:"ThisHead",loc:nt(e||null)}:"@"===n[0]?{type:"AtHead",name:n,loc:nt(e||null)}:{type:"VarHead",name:n,loc:nt(e||null)},{head:r,tail:s}}function Y(t){return{type:"ThisHead",loc:nt(t||null)}}function Z(t,e){return{type:"AtHead",name:t,loc:nt(e||null)}}function X(t,e){return{type:"VarHead",name:t,loc:nt(e||null)}}function tt(t,e){if("string"!=typeof t){if("type"in t)return t;{let{head:r,tail:n}=Q(t.head,U.broken()),{original:s}=J(r);return new G([s,...n].join("."),r,n,nt(e||null))}}let{head:r,tail:n}=Q(t,U.broken());return new G(t,r,n,nt(e||null))}function et(t,e,r){return{type:t,value:e,original:e,loc:nt(r||null)}}function rt(t,e){return{type:"Hash",pairs:t||[],loc:nt(e||null)}}function nt(...t){if(1===t.length){let e=t[0];return e&&"object"==typeof e?U.forHbsLoc(W(),e):U.forHbsLoc(W(),d)}{let[e,r,n,s,a]=t,i=a?new j("",a):W();return U.forHbsLoc(i,{start:{line:e,column:r},end:{line:n,column:s}})}}var st={mustache:function(t,e,r,n,s,a){return"string"==typeof t&&(t=tt(t)),{type:"MustacheStatement",path:t,params:e||[],hash:r||rt([]),escaped:!n,trusting:!!n,loc:nt(s||null),strip:a||{open:!1,close:!1}}},block:function(t,e,r,n,s,a,i,l,c){let h,u;return h="Template"===n.type?o({},n,{type:"Block"}):n,u=null!=s&&"Template"===s.type?o({},s,{type:"Block"}):s,{type:"BlockStatement",path:tt(t),params:e||[],hash:r||rt([]),program:h||null,inverse:u||null,loc:nt(a||null),openStrip:i||{open:!1,close:!1},inverseStrip:l||{open:!1,close:!1},closeStrip:c||{open:!1,close:!1}}},partial:function(t,e,r,n,s){return{type:"PartialStatement",name:t,params:e||[],hash:r||rt([]),indent:n||"",strip:{open:!1,close:!1},loc:nt(s||null)}},comment:function(t,e){return{type:"CommentStatement",value:t,loc:nt(e||null)}},mustacheComment:function(t,e){return{type:"MustacheCommentStatement",value:t,loc:nt(e||null)}},element:function(t,e){let r,{attrs:n,blockParams:s,modifiers:a,comments:i,children:o,loc:l}=e,c=!1;return"object"==typeof t?(c=t.selfClosing,r=t.name):"/"===t.slice(-1)?(r=t.slice(0,-1),c=!0):r=t,{type:"ElementNode",tag:r,selfClosing:c,attributes:n||[],blockParams:s||[],modifiers:a||[],comments:i||[],children:o||[],loc:l}},elementModifier:function(t,e,r,n){return{type:"ElementModifierStatement",path:tt(t),params:e||[],hash:r||rt([]),loc:nt(n||null)}},attr:function(t,e,r){return{type:"AttrNode",name:t,value:e,loc:nt(r||null)}},text:function(t,e){return{type:"TextNode",chars:t||"",loc:nt(e||null)}},sexpr:function(t,e,r,n){return{type:"SubExpression",path:tt(t),params:e||[],hash:r||rt([]),loc:nt(n||null)}},concat:function(t,e){if(!c(t))throw new Error("b.concat requires at least one part");return{type:"ConcatStatement",parts:t||[],loc:nt(e||null)}},hash:rt,pair:function(t,e,r){return{type:"HashPair",key:t,value:e,loc:nt(r||null)}},literal:et,program:function(t,e,r){return{type:"Template",body:t||[],blockParams:e||[],loc:nt(r||null)}},blockItself:function(t,e,r=!1,n){return{type:"Block",body:t||[],blockParams:e||[],chained:r,loc:nt(n||null)}},template:function(t,e,r){return{type:"Template",body:t||[],blockParams:e||[],loc:nt(r||null)}},loc:nt,pos:function(t,e){return{line:t,column:e}},path:tt,fullPath:function(t,e,r){let{original:n,parts:s}=J(t),a=[...n,...[...s,...e]].join(".");return new G(a,t,e,nt(r||null))},head:function(t,e){return"@"===t[0]?Z(t,e):"this"===t?Y(e):X(t,e)},at:Z,var:X,this:Y,blockName:function(t,e){return{type:"NamedBlockName",name:t,loc:nt(e||null)}},string:at("StringLiteral"),boolean:at("BooleanLiteral"),number:at("NumberLiteral"),undefined:()=>et("UndefinedLiteral",void 0),null:()=>et("NullLiteral",null)};function at(t){return function(e,r){return et(t,e,r)}}var it=Object.freeze({__proto__:null});class ot{resolution(){return 33}serialize(){return"Strict"}}const lt=new ot;class ct{constructor(t){this.ambiguity=t}static namespaced(t){return new ct({namespaces:[t],fallback:!1})}static fallback(){return new ct({namespaces:[],fallback:!0})}static append({invoke:t}){return new ct({namespaces:["Component","Helper"],fallback:!t})}static attr(){return new ct({namespaces:["Helper"],fallback:!0})}resolution(){if(0===this.ambiguity.namespaces.length)return 34;if(1!==this.ambiguity.namespaces.length)return this.ambiguity.fallback?35:36;if(this.ambiguity.fallback)return 37;switch(this.ambiguity.namespaces[0]){case"Helper":return 38;case"Modifier":return 39;case"Component":return 40}}serialize(){return 0===this.ambiguity.namespaces.length?"Loose":1===this.ambiguity.namespaces.length?this.ambiguity.fallback?["ambiguous","Attr"]:["ns",this.ambiguity.namespaces[0]]:this.ambiguity.fallback?["ambiguous","Append"]:["ambiguous","Invoke"]}}const ht=ct.fallback();function ut(t){if(void 0!==t){const e=t;return{fields:()=>class{constructor(t){this.type=e,this.loc=t.loc,pt(t,this)}}}}return{fields:()=>class{constructor(t){this.loc=t.loc,pt(t,this)}}}}function pt(t,e){for(let n of(r=t,Object.keys(r)))e[n]=t[n];var r}class dt extends(ut().fields()){static empty(t){return new dt({loc:t,positional:mt.empty(t),named:ft.empty(t)})}static named(t){return new dt({loc:t.loc,positional:mt.empty(t.loc.collapse("end")),named:t})}nth(t){return this.positional.nth(t)}get(t){return this.named.get(t)}isEmpty(){return this.positional.isEmpty()&&this.named.isEmpty()}}class mt extends(ut().fields()){static empty(t){return new mt({loc:t,exprs:[]})}get size(){return this.exprs.length}nth(t){return this.exprs[t]||null}isEmpty(){return 0===this.exprs.length}}class ft extends(ut().fields()){static empty(t){return new ft({loc:t,entries:[]})}get size(){return this.entries.length}get(t){let e=this.entries.filter((e=>e.name.chars===t))[0];return e?e.value:null}isEmpty(){return 0===this.entries.length}}class gt{constructor(t){this.loc=t.name.loc.extend(t.value.loc),this.name=t.name,this.value=t.value}}class bt extends(ut("HtmlAttr").fields()){}class yt extends(ut("SplatAttr").fields()){}class kt extends(ut().fields()){toNamedArgument(){return new gt({name:this.name,value:this.value})}}class vt extends(ut("ElementModifier").fields()){}var wt,St=function(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r},Et=function(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)};class xt{constructor(t=[]){wt.set(this,void 0),St(this,wt,t)}static range(t,e=U.NON_EXISTENT){return new xt(t.map(Nt)).getRangeOffset(e)}add(t){Et(this,wt).push(t)}getRangeOffset(t){if(0===Et(this,wt).length)return t;{let t=Et(this,wt)[0],e=Et(this,wt)[Et(this,wt).length-1];return t.extend(e)}}}function Nt(t){if(Array.isArray(t)){let e=t[0],r=t[t.length-1];return Nt(e).extend(Nt(r))}return t instanceof U?t:t.loc}function Tt(t){return!Array.isArray(t)||0!==t.length}wt=new WeakMap;class At extends(ut("GlimmerComment").fields()){}class Pt extends(ut("HtmlText").fields()){}class Ct extends(ut("HtmlComment").fields()){}class Lt extends(ut("AppendContent").fields()){get callee(){return"Call"===this.value.type?this.value.callee:this.value}get args(){return"Call"===this.value.type?this.value.args:dt.empty(this.value.loc.collapse("end"))}}class Bt extends(ut("InvokeBlock").fields()){}class qt extends(ut("InvokeComponent").fields()){get args(){let t=this.componentArgs.map((t=>t.toNamedArgument()));return dt.named(new ft({loc:xt.range(t,this.callee.loc.collapse("end")),entries:t}))}}class Ot extends(ut("SimpleElement").fields()){get args(){let t=this.componentArgs.map((t=>t.toNamedArgument()));return dt.named(new ft({loc:xt.range(t,this.tag.loc.collapse("end")),entries:t}))}}class _t extends(ut("Literal").fields()){toSlice(){return new g({loc:this.loc,chars:this.value})}}class Dt extends(ut("Path").fields()){}class Ht extends(ut("Call").fields()){}class Rt extends(ut("Interpolate").fields()){}class Vt extends(ut("This").fields()){}class It extends(ut("Arg").fields()){}class Ut extends(ut("Local").fields()){}class Mt extends(ut("Free").fields()){}class Ft extends(ut().fields()){}class zt extends(ut().fields()){}class $t extends(ut().fields()){get(t){return this.blocks.filter((e=>e.name.chars===t))[0]||null}}class jt extends(ut().fields()){get args(){let t=this.componentArgs.map((t=>t.toNamedArgument()));return dt.named(new ft({loc:xt.range(t,this.name.loc.collapse("end")),entries:t}))}}var Gt=Object.freeze({__proto__:null,StrictResolution:ot,STRICT_RESOLUTION:lt,LooseModeResolution:ct,ARGUMENT_RESOLUTION:ht,loadResolution:function(t){if("string"==typeof t)switch(t){case"Loose":return ct.fallback();case"Strict":return lt}switch(t[0]){case"ambiguous":switch(t[1]){case"Append":return ct.append({invoke:!1});case"Attr":return ct.attr();case"Invoke":return ct.append({invoke:!0})}case"ns":return ct.namespaced(t[1])}},node:ut,Args:dt,PositionalArguments:mt,NamedArguments:ft,NamedArgument:gt,HtmlAttr:bt,SplatAttr:yt,ComponentArg:kt,ElementModifier:vt,GlimmerComment:At,HtmlText:Pt,HtmlComment:Ct,AppendContent:Lt,InvokeBlock:Bt,InvokeComponent:qt,SimpleElement:Ot,LiteralExpression:_t,isLiteral:function(t,e){return"Literal"===t.type&&(void 0===e||("null"===e?null===t.value:typeof t.value===e))},PathExpression:Dt,CallExpression:Ht,InterpolateExpression:Rt,ThisReference:Vt,ArgReference:It,LocalVarReference:Ut,FreeVarReference:Mt,Template:Ft,Block:zt,NamedBlocks:$t,NamedBlock:jt});const Kt=/[\xA0"&]/,Wt=new RegExp(Kt.source,"g"),Jt=/[\xA0&<>]/,Qt=new RegExp(Jt.source,"g");function Yt(t){switch(t.charCodeAt(0)){case 160:return"&nbsp;";case 34:return"&quot;";case 38:return"&amp;";default:return t}}function Zt(t){switch(t.charCodeAt(0)){case 160:return"&nbsp;";case 38:return"&amp;";case 60:return"&lt;";case 62:return"&gt;";default:return t}}const Xt=Object.create(null);"area base br col command embed hr img input keygen link meta param source track wbr".split(" ").forEach((t=>{Xt[t]=!0}));const te=/\S/;class ee{constructor(t){this.buffer="",this.options=t}handledByOverride(t,e=!1){if(void 0!==this.options.override){let r=this.options.override(t,this.options);if("string"==typeof r)return e&&""!==r&&te.test(r[0])&&(r=" ".concat(r)),this.buffer+=r,!0}return!1}Node(t){switch(t.type){case"MustacheStatement":case"BlockStatement":case"PartialStatement":case"MustacheCommentStatement":case"CommentStatement":case"TextNode":case"ElementNode":case"AttrNode":case"Block":case"Template":return this.TopLevelStatement(t);case"StringLiteral":case"BooleanLiteral":case"NumberLiteral":case"UndefinedLiteral":case"NullLiteral":case"PathExpression":case"SubExpression":return this.Expression(t);case"Program":return this.Block(t);case"ConcatStatement":return this.ConcatStatement(t);case"Hash":return this.Hash(t);case"HashPair":return this.HashPair(t);case"ElementModifierStatement":return this.ElementModifierStatement(t)}}Expression(t){switch(t.type){case"StringLiteral":case"BooleanLiteral":case"NumberLiteral":case"UndefinedLiteral":case"NullLiteral":return this.Literal(t);case"PathExpression":return this.PathExpression(t);case"SubExpression":return this.SubExpression(t)}}Literal(t){switch(t.type){case"StringLiteral":return this.StringLiteral(t);case"BooleanLiteral":return this.BooleanLiteral(t);case"NumberLiteral":return this.NumberLiteral(t);case"UndefinedLiteral":return this.UndefinedLiteral(t);case"NullLiteral":return this.NullLiteral(t)}}TopLevelStatement(t){switch(t.type){case"MustacheStatement":return this.MustacheStatement(t);case"BlockStatement":return this.BlockStatement(t);case"PartialStatement":return this.PartialStatement(t);case"MustacheCommentStatement":return this.MustacheCommentStatement(t);case"CommentStatement":return this.CommentStatement(t);case"TextNode":return this.TextNode(t);case"ElementNode":return this.ElementNode(t);case"Block":case"Template":return this.Block(t);case"AttrNode":return this.AttrNode(t)}}Block(t){if(t.chained){t.body[0].chained=!0}this.handledByOverride(t)||this.TopLevelStatements(t.body)}TopLevelStatements(t){t.forEach((t=>this.TopLevelStatement(t)))}ElementNode(t){this.handledByOverride(t)||(this.OpenElementNode(t),this.TopLevelStatements(t.children),this.CloseElementNode(t))}OpenElementNode(t){this.buffer+="<".concat(t.tag),t.attributes.length&&t.attributes.forEach((t=>{this.buffer+=" ",this.AttrNode(t)})),t.modifiers.length&&t.modifiers.forEach((t=>{this.buffer+=" ",this.ElementModifierStatement(t)})),t.comments.length&&t.comments.forEach((t=>{this.buffer+=" ",this.MustacheCommentStatement(t)})),t.blockParams.length&&this.BlockParams(t.blockParams),t.selfClosing&&(this.buffer+=" /"),this.buffer+=">"}CloseElementNode(t){t.selfClosing||Xt[t.tag.toLowerCase()]||(this.buffer+="</".concat(t.tag,">"))}AttrNode(t){if(this.handledByOverride(t))return;let{name:e,value:r}=t;this.buffer+=e,("TextNode"!==r.type||r.chars.length>0)&&(this.buffer+="=",this.AttrNodeValue(r))}AttrNodeValue(t){"TextNode"===t.type?(this.buffer+='"',this.TextNode(t,!0),this.buffer+='"'):this.Node(t)}TextNode(t,e){var r;this.handledByOverride(t)||("raw"===this.options.entityEncoding?this.buffer+=t.chars:this.buffer+=e?(r=t.chars,Kt.test(r)?r.replace(Wt,Yt):r):function(t){return Jt.test(t)?t.replace(Qt,Zt):t}(t.chars))}MustacheStatement(t){this.handledByOverride(t)||(this.buffer+=t.escaped?"{{":"{{{",t.strip.open&&(this.buffer+="~"),this.Expression(t.path),this.Params(t.params),this.Hash(t.hash),t.strip.close&&(this.buffer+="~"),this.buffer+=t.escaped?"}}":"}}}")}BlockStatement(t){this.handledByOverride(t)||(t.chained?(this.buffer+=t.inverseStrip.open?"{{~":"{{",this.buffer+="else "):this.buffer+=t.openStrip.open?"{{~#":"{{#",this.Expression(t.path),this.Params(t.params),this.Hash(t.hash),t.program.blockParams.length&&this.BlockParams(t.program.blockParams),t.chained?this.buffer+=t.inverseStrip.close?"~}}":"}}":this.buffer+=t.openStrip.close?"~}}":"}}",this.Block(t.program),t.inverse&&(t.inverse.chained||(this.buffer+=t.inverseStrip.open?"{{~":"{{",this.buffer+="else",this.buffer+=t.inverseStrip.close?"~}}":"}}"),this.Block(t.inverse)),t.chained||(this.buffer+=t.closeStrip.open?"{{~/":"{{/",this.Expression(t.path),this.buffer+=t.closeStrip.close?"~}}":"}}"))}BlockParams(t){this.buffer+=" as |".concat(t.join(" "),"|")}PartialStatement(t){this.handledByOverride(t)||(this.buffer+="{{>",this.Expression(t.name),this.Params(t.params),this.Hash(t.hash),this.buffer+="}}")}ConcatStatement(t){this.handledByOverride(t)||(this.buffer+='"',t.parts.forEach((t=>{"TextNode"===t.type?this.TextNode(t,!0):this.Node(t)})),this.buffer+='"')}MustacheCommentStatement(t){this.handledByOverride(t)||(this.buffer+="{{!--".concat(t.value,"--}}"))}ElementModifierStatement(t){this.handledByOverride(t)||(this.buffer+="{{",this.Expression(t.path),this.Params(t.params),this.Hash(t.hash),this.buffer+="}}")}CommentStatement(t){this.handledByOverride(t)||(this.buffer+="\x3c!--".concat(t.value,"--\x3e"))}PathExpression(t){this.handledByOverride(t)||(this.buffer+=t.original)}SubExpression(t){this.handledByOverride(t)||(this.buffer+="(",this.Expression(t.path),this.Params(t.params),this.Hash(t.hash),this.buffer+=")")}Params(t){t.length&&t.forEach((t=>{this.buffer+=" ",this.Expression(t)}))}Hash(t){this.handledByOverride(t,!0)||t.pairs.forEach((t=>{this.buffer+=" ",this.HashPair(t)}))}HashPair(t){this.handledByOverride(t)||(this.buffer+=t.key,this.buffer+="=",this.Node(t.value))}StringLiteral(t){this.handledByOverride(t)||(this.buffer+=JSON.stringify(t.value))}BooleanLiteral(t){this.handledByOverride(t)||(this.buffer+=t.value)}NumberLiteral(t){this.handledByOverride(t)||(this.buffer+=t.value)}UndefinedLiteral(t){this.handledByOverride(t)||(this.buffer+="undefined")}NullLiteral(t){this.handledByOverride(t)||(this.buffer+="null")}print(t){let{options:e}=this;if(e.override){let r=e.override(t,e);if(void 0!==r)return r}return this.buffer="",this.Node(t),this.buffer}}var re=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function ne(t,e){var r,n,s,a,i=e&&e.loc;i&&(r=i.start.line,n=i.end.line,s=i.start.column,a=i.end.column,t+=" - "+r+":"+s);for(var o=Error.prototype.constructor.call(this,t),l=0;l<re.length;l++)this[re[l]]=o[re[l]];Error.captureStackTrace&&Error.captureStackTrace(this,ne);try{i&&(this.lineNumber=r,this.endLineNumber=n,Object.defineProperty?(Object.defineProperty(this,"column",{value:s,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:a,enumerable:!0})):(this.column=s,this.endColumn=a))}catch(t){}}function se(){this.parents=[]}function ae(t){this.acceptRequired(t,"path"),this.acceptArray(t.params),this.acceptKey(t,"hash")}function ie(t){ae.call(this,t),this.acceptKey(t,"program"),this.acceptKey(t,"inverse")}function oe(t){this.acceptRequired(t,"name"),this.acceptArray(t.params),this.acceptKey(t,"hash")}function le(t){void 0===t&&(t={}),this.options=t}function ce(t,e,r){void 0===e&&(e=t.length);var n=t[e-1],s=t[e-2];return n?"ContentStatement"===n.type?(s||!r?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(n.original):void 0:r}function he(t,e,r){void 0===e&&(e=-1);var n=t[e+1],s=t[e+2];return n?"ContentStatement"===n.type?(s||!r?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(n.original):void 0:r}function ue(t,e,r){var n=t[null==e?0:e+1];if(n&&"ContentStatement"===n.type&&(r||!n.rightStripped)){var s=n.value;n.value=n.value.replace(r?/^\s+/:/^[ \t]*\r?\n?/,""),n.rightStripped=n.value!==s}}function pe(t,e,r){var n=t[null==e?t.length-1:e-1];if(n&&"ContentStatement"===n.type&&(r||!n.leftStripped)){var s=n.value;return n.value=n.value.replace(r?/\s+$/:/[ \t]+$/,""),n.leftStripped=n.value!==s,n.leftStripped}}ne.prototype=new Error,se.prototype={constructor:se,mutating:!1,acceptKey:function(t,e){var r=this.accept(t[e]);if(this.mutating){if(r&&!se.prototype[r.type])throw new ne('Unexpected node type "'+r.type+'" found when accepting '+e+" on "+t.type);t[e]=r}},acceptRequired:function(t,e){if(this.acceptKey(t,e),!t[e])throw new ne(t.type+" requires "+e)},acceptArray:function(t){for(var e=0,r=t.length;e<r;e++)this.acceptKey(t,e),t[e]||(t.splice(e,1),e--,r--)},accept:function(t){if(t){if(!this[t.type])throw new ne("Unknown type: "+t.type,t);this.current&&this.parents.unshift(this.current),this.current=t;var e=this[t.type](t);return this.current=this.parents.shift(),!this.mutating||e?e:!1!==e?t:void 0}},Program:function(t){this.acceptArray(t.body)},MustacheStatement:ae,Decorator:ae,BlockStatement:ie,DecoratorBlock:ie,PartialStatement:oe,PartialBlockStatement:function(t){oe.call(this,t),this.acceptKey(t,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:ae,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(t){this.acceptArray(t.pairs)},HashPair:function(t){this.acceptRequired(t,"value")}},le.prototype=new se,le.prototype.Program=function(t){var e=!this.options.ignoreStandalone,r=!this.isRootSeen;this.isRootSeen=!0;for(var n=t.body,s=0,a=n.length;s<a;s++){var i=n[s],o=this.accept(i);if(o){var l=ce(n,s,r),c=he(n,s,r),h=o.openStandalone&&l,u=o.closeStandalone&&c,p=o.inlineStandalone&&l&&c;o.close&&ue(n,s,!0),o.open&&pe(n,s,!0),e&&p&&(ue(n,s),pe(n,s)&&"PartialStatement"===i.type&&(i.indent=/([ \t]+$)/.exec(n[s-1].original)[1])),e&&h&&(ue((i.program||i.inverse).body),pe(n,s)),e&&u&&(ue(n,s),pe((i.inverse||i.program).body))}}return t},le.prototype.BlockStatement=le.prototype.DecoratorBlock=le.prototype.PartialBlockStatement=function(t){this.accept(t.program),this.accept(t.inverse);var e=t.program||t.inverse,r=t.program&&t.inverse,n=r,s=r;if(r&&r.chained)for(n=r.body[0].program;s.chained;)s=s.body[s.body.length-1].program;var a={open:t.openStrip.open,close:t.closeStrip.close,openStandalone:he(e.body),closeStandalone:ce((n||e).body)};if(t.openStrip.close&&ue(e.body,null,!0),r){var i=t.inverseStrip;i.open&&pe(e.body,null,!0),i.close&&ue(n.body,null,!0),t.closeStrip.open&&pe(s.body,null,!0),!this.options.ignoreStandalone&&ce(e.body)&&he(n.body)&&(pe(e.body),ue(n.body))}else t.closeStrip.open&&pe(e.body,null,!0);return a},le.prototype.Decorator=le.prototype.MustacheStatement=function(t){return t.strip},le.prototype.PartialStatement=le.prototype.CommentStatement=function(t){var e=t.strip||{};return{inlineStandalone:!0,open:e.open,close:e.close}};var de=function(){var t=function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},e=[2,46],r=[1,20],n=[5,14,15,19,29,34,39,44,47,48,51,55,60],s=[1,35],a=[1,28],i=[1,29],o=[1,30],l=[1,31],c=[1,32],h=[1,34],u=[14,15,19,29,34,39,44,47,48,51,55,60],p=[14,15,19,29,34,44,47,48,51,55,60],d=[15,18],m=[1,43],f=[14,15,19,29,34,47,48,51,55,60],g=[33,65,72,80,81,82,83,84,85],b=[23,33,54,65,68,72,75,80,81,82,83,84,85],y=[1,50],k=[23,33,54,65,68,72,75,80,81,82,83,84,85,87],v=[2,45],w=[54,65,72,80,81,82,83,84,85],S=[1,57],E=[1,58],x=[1,66],N=[33,65,72,75,80,81,82,83,84,85],T=[23,65,72,80,81,82,83,84,85],A=[1,78],P=[65,68,72,80,81,82,83,84,85],C=[33,75],L=[23,33,54,68,72,75],B=[1,108],q=[1,120],O=[72,77],_={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,0],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(t,e,r,n,s,a,i){var o=a.length-1;switch(s){case 1:return a[o-1];case 2:this.$=n.prepareProgram(a[o]);break;case 3:case 4:case 5:case 6:case 7:case 8:case 20:case 27:case 28:case 33:case 34:case 40:case 41:this.$=a[o];break;case 9:this.$={type:"CommentStatement",value:n.stripComment(a[o]),strip:n.stripFlags(a[o],a[o]),loc:n.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:a[o],value:a[o],loc:n.locInfo(this._$)};break;case 11:this.$=n.prepareRawBlock(a[o-2],a[o-1],a[o],this._$);break;case 12:this.$={path:a[o-3],params:a[o-2],hash:a[o-1]};break;case 13:this.$=n.prepareBlock(a[o-3],a[o-2],a[o-1],a[o],!1,this._$);break;case 14:this.$=n.prepareBlock(a[o-3],a[o-2],a[o-1],a[o],!0,this._$);break;case 15:this.$={open:a[o-5],path:a[o-4],params:a[o-3],hash:a[o-2],blockParams:a[o-1],strip:n.stripFlags(a[o-5],a[o])};break;case 16:case 17:this.$={path:a[o-4],params:a[o-3],hash:a[o-2],blockParams:a[o-1],strip:n.stripFlags(a[o-5],a[o])};break;case 18:this.$={strip:n.stripFlags(a[o-1],a[o-1]),program:a[o]};break;case 19:var l=n.prepareBlock(a[o-2],a[o-1],a[o],a[o],!1,this._$),c=n.prepareProgram([l],a[o-1].loc);c.chained=!0,this.$={strip:a[o-2].strip,program:c,chain:!0};break;case 21:this.$={path:a[o-1],strip:n.stripFlags(a[o-2],a[o])};break;case 22:case 23:this.$=n.prepareMustache(a[o-3],a[o-2],a[o-1],a[o-4],n.stripFlags(a[o-4],a[o]),this._$);break;case 24:this.$={type:"PartialStatement",name:a[o-3],params:a[o-2],hash:a[o-1],indent:"",strip:n.stripFlags(a[o-4],a[o]),loc:n.locInfo(this._$)};break;case 25:this.$=n.preparePartialBlock(a[o-2],a[o-1],a[o],this._$);break;case 26:this.$={path:a[o-3],params:a[o-2],hash:a[o-1],strip:n.stripFlags(a[o-4],a[o])};break;case 29:this.$={type:"SubExpression",path:a[o-3],params:a[o-2],hash:a[o-1],loc:n.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:a[o],loc:n.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:n.id(a[o-2]),value:a[o],loc:n.locInfo(this._$)};break;case 32:this.$=n.id(a[o-1]);break;case 35:this.$={type:"StringLiteral",value:a[o],original:a[o],loc:n.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(a[o]),original:Number(a[o]),loc:n.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:"true"===a[o],original:"true"===a[o],loc:n.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:n.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:n.locInfo(this._$)};break;case 42:this.$=n.preparePath(!0,a[o],this._$);break;case 43:this.$=n.preparePath(!1,a[o],this._$);break;case 44:a[o-2].push({part:n.id(a[o]),original:a[o],separator:a[o-1]}),this.$=a[o-2];break;case 45:this.$=[{part:n.id(a[o]),original:a[o]}];break;case 46:case 48:case 50:case 58:case 64:case 70:case 78:case 82:case 86:case 90:case 94:this.$=[];break;case 47:case 49:case 51:case 59:case 65:case 71:case 79:case 83:case 87:case 91:case 95:case 99:case 101:a[o-1].push(a[o]);break;case 98:case 100:this.$=[a[o]]}},table:[t([5,14,15,19,29,34,48,51,55,60],e,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},t([5,39,44,47],[2,2],{7:5,8:6,9:7,10:8,11:9,12:10,13:11,24:15,27:16,16:17,59:19,14:[1,12],15:r,19:[1,23],29:[1,21],34:[1,22],48:[1,13],51:[1,14],55:[1,18],60:[1,24]}),{1:[2,1]},t(n,[2,47]),t(n,[2,3]),t(n,[2,4]),t(n,[2,5]),t(n,[2,6]),t(n,[2,7]),t(n,[2,8]),t(n,[2,9]),{20:25,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{20:36,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},t(u,e,{6:3,4:37}),t(p,e,{6:3,4:38}),t(d,[2,48],{17:39}),{20:41,56:40,64:42,65:m,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},t(f,e,{6:3,4:44}),t([5,14,15,18,19,29,34,39,44,47,48,51,55,60],[2,10]),{20:45,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{20:46,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{20:47,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{20:41,56:48,64:42,65:m,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},t(g,[2,78],{49:49}),t(b,[2,33]),t(b,[2,34]),t(b,[2,35]),t(b,[2,36]),t(b,[2,37]),t(b,[2,38]),t(b,[2,39]),t(b,[2,43],{87:y}),{72:s,86:51},t(k,v),t(w,[2,82],{52:52}),{25:53,38:55,39:S,43:56,44:E,45:54,47:[2,54]},{28:59,43:60,44:E,47:[2,56]},{13:62,15:r,18:[1,61]},t(g,[2,86],{57:63}),t(g,[2,40]),t(g,[2,41]),{20:64,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{26:65,47:x},t(N,[2,58],{30:67}),t(N,[2,64],{35:68}),t(T,[2,50],{21:69}),t(g,[2,90],{61:70}),{20:74,33:[2,80],50:71,63:72,64:75,65:m,69:73,70:76,71:77,72:A,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{72:[1,79]},t(b,[2,42],{87:y}),{20:74,53:80,54:[2,84],63:81,64:75,65:m,69:82,70:76,71:77,72:A,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{26:83,47:x},{47:[2,55]},t(u,e,{6:3,4:84}),{47:[2,20]},{20:85,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},t(f,e,{6:3,4:86}),{26:87,47:x},{47:[2,57]},t(n,[2,11]),t(d,[2,49]),{20:74,33:[2,88],58:88,63:89,64:75,65:m,69:90,70:76,71:77,72:A,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},t(P,[2,94],{66:91}),t(n,[2,25]),{20:92,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},t(C,[2,60],{78:26,79:27,86:33,20:74,64:75,70:76,71:77,31:93,63:94,69:95,65:m,72:A,80:a,81:i,82:o,83:l,84:c,85:h}),t(C,[2,66],{78:26,79:27,86:33,20:74,64:75,70:76,71:77,36:96,63:97,69:98,65:m,72:A,80:a,81:i,82:o,83:l,84:c,85:h}),{20:74,22:99,23:[2,52],63:100,64:75,65:m,69:101,70:76,71:77,72:A,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{20:74,33:[2,92],62:102,63:103,64:75,65:m,69:104,70:76,71:77,72:A,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{33:[1,105]},t(g,[2,79]),{33:[2,81]},t(b,[2,27]),t(b,[2,28]),t([23,33,54,68,75],[2,30],{71:106,72:[1,107]}),t(L,[2,98]),t(k,v,{73:B}),t(k,[2,44]),{54:[1,109]},t(w,[2,83]),{54:[2,85]},t(n,[2,13]),{38:55,39:S,43:56,44:E,45:111,46:110,47:[2,76]},t(N,[2,70],{40:112}),{47:[2,18]},t(n,[2,14]),{33:[1,113]},t(g,[2,87]),{33:[2,89]},{20:74,63:115,64:75,65:m,67:114,68:[2,96],69:116,70:76,71:77,72:A,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},{33:[1,117]},{32:118,33:[2,62],74:119,75:q},t(N,[2,59]),t(C,[2,61]),{33:[2,68],37:121,74:122,75:q},t(N,[2,65]),t(C,[2,67]),{23:[1,123]},t(T,[2,51]),{23:[2,53]},{33:[1,124]},t(g,[2,91]),{33:[2,93]},t(n,[2,22]),t(L,[2,99]),{73:B},{20:74,63:125,64:75,65:m,72:s,78:26,79:27,80:a,81:i,82:o,83:l,84:c,85:h,86:33},t(n,[2,23]),{47:[2,19]},{47:[2,77]},t(C,[2,72],{78:26,79:27,86:33,20:74,64:75,70:76,71:77,41:126,63:127,69:128,65:m,72:A,80:a,81:i,82:o,83:l,84:c,85:h}),t(n,[2,24]),{68:[1,129]},t(P,[2,95]),{68:[2,97]},t(n,[2,21]),{33:[1,130]},{33:[2,63]},{72:[1,132],76:131},{33:[1,133]},{33:[2,69]},t(d,[2,12]),t(f,[2,26]),t(L,[2,31]),{33:[2,74],42:134,74:135,75:q},t(N,[2,71]),t(C,[2,73]),t(b,[2,29]),t(u,[2,15]),{72:[1,137],77:[1,136]},t(O,[2,100]),t(p,[2,16]),{33:[1,138]},{33:[2,75]},{33:[2,32]},t(O,[2,101]),t(u,[2,17])],defaultActions:{4:[2,1],54:[2,55],56:[2,20],60:[2,57],73:[2,81],82:[2,85],86:[2,18],90:[2,89],101:[2,53],104:[2,93],110:[2,19],111:[2,77],116:[2,97],119:[2,63],122:[2,69],135:[2,75],136:[2,32]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],n=[null],s=[],a=this.table,i="",o=0,l=0,c=2,h=1,u=s.slice.call(arguments,1),p=Object.create(this.lexer),d={yy:{}};for(var m in this.yy)Object.prototype.hasOwnProperty.call(this.yy,m)&&(d.yy[m]=this.yy[m]);p.setInput(t,d.yy),d.yy.lexer=p,d.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var f=p.yylloc;s.push(f);var g=p.options&&p.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,y,k,v,w,S,E,x,N=function(){var t;return"number"!=typeof(t=p.lex()||h)&&(t=e.symbols_[t]||t),t},T={};;){if(y=r[r.length-1],this.defaultActions[y]?k=this.defaultActions[y]:(null==b&&(b=N()),k=a[y]&&a[y][b]),void 0===k||!k.length||!k[0]){var A="";for(w in x=[],a[y])this.terminals_[w]&&w>c&&x.push("'"+this.terminals_[w]+"'");A=p.showPosition?"Parse error on line "+(o+1)+":\n"+p.showPosition()+"\nExpecting "+x.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(o+1)+": Unexpected "+(b==h?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:p.match,token:this.terminals_[b]||b,line:p.yylineno,loc:f,expected:x})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+b);switch(k[0]){case 1:r.push(b),n.push(p.yytext),s.push(p.yylloc),r.push(k[1]),b=null,l=p.yyleng,i=p.yytext,o=p.yylineno,f=p.yylloc;break;case 2:if(S=this.productions_[k[1]][1],T.$=n[n.length-S],T._$={first_line:s[s.length-(S||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(S||1)].first_column,last_column:s[s.length-1].last_column},g&&(T._$.range=[s[s.length-(S||1)].range[0],s[s.length-1].range[1]]),void 0!==(v=this.performAction.apply(T,[i,l,o,d.yy,k[1],n,s].concat(u))))return v;S&&(r=r.slice(0,-1*S*2),n=n.slice(0,-1*S),s=s.slice(0,-1*S)),r.push(this.productions_[k[1]][0]),n.push(T.$),s.push(T._$),E=a[r[r.length-2]][r[r.length-1]],r.push(E);break;case 3:return!0}}return!0}},D={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var s=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===n.length?this.yylloc.first_column:0)+n[n.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,n,s;if(this.options.backtrack_lexer&&(s={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(s.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in s)this[a]=s[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),a=0;a<s.length;a++)if((r=this._input.match(this.rules[s[a]]))&&(!e||r[0].length>e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,s[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,s[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,r,n){function s(t,r){return e.yytext=e.yytext.substring(t,e.yyleng-r+t)}switch(r){case 0:if("\\\\"===e.yytext.slice(-2)?(s(0,1),this.begin("mu")):"\\"===e.yytext.slice(-1)?(s(0,1),this.begin("emu")):this.begin("mu"),e.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(s(5,9),18);case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(e.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return e.yytext=s(1,2).replace(/\\"/g,'"'),80;case 32:return e.yytext=s(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return e.yytext=e.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},rules:[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};function H(){this.yy={}}return _.lexer=D,H.prototype=_,_.Parser=H,new H}();function me(){this.padding=0}function fe(t,e){if(e=e.path?e.path.original:e,t.path.original!==e){var r={loc:t.path.loc};throw new ne(t.path.original+" doesn't match "+e,r)}}function ge(t,e){this.source=t,this.start={line:e.first_line,column:e.first_column},this.end={line:e.last_line,column:e.last_column}}me.prototype=new se,me.prototype.pad=function(t){for(var e="",r=0,n=this.padding;r<n;r++)e+="  ";return e+=t+"\n"},me.prototype.Program=function(t){var e,r,n="",s=t.body;if(t.blockParams){var a="BLOCK PARAMS: [";for(e=0,r=t.blockParams.length;e<r;e++)a+=" "+t.blockParams[e];a+=" ]",n+=this.pad(a)}for(e=0,r=s.length;e<r;e++)n+=this.accept(s[e]);return this.padding--,n},me.prototype.MustacheStatement=function(t){return this.pad("{{ "+this.SubExpression(t)+" }}")},me.prototype.Decorator=function(t){return this.pad("{{ DIRECTIVE "+this.SubExpression(t)+" }}")},me.prototype.BlockStatement=me.prototype.DecoratorBlock=function(t){var e="";return e+=this.pad(("DecoratorBlock"===t.type?"DIRECTIVE ":"")+"BLOCK:"),this.padding++,e+=this.pad(this.SubExpression(t)),t.program&&(e+=this.pad("PROGRAM:"),this.padding++,e+=this.accept(t.program),this.padding--),t.inverse&&(t.program&&this.padding++,e+=this.pad("{{^}}"),this.padding++,e+=this.accept(t.inverse),this.padding--,t.program&&this.padding--),this.padding--,e},me.prototype.PartialStatement=function(t){var e="PARTIAL:"+t.name.original;return t.params[0]&&(e+=" "+this.accept(t.params[0])),t.hash&&(e+=" "+this.accept(t.hash)),this.pad("{{> "+e+" }}")},me.prototype.PartialBlockStatement=function(t){var e="PARTIAL BLOCK:"+t.name.original;return t.params[0]&&(e+=" "+this.accept(t.params[0])),t.hash&&(e+=" "+this.accept(t.hash)),e+=" "+this.pad("PROGRAM:"),this.padding++,e+=this.accept(t.program),this.padding--,this.pad("{{> "+e+" }}")},me.prototype.ContentStatement=function(t){return this.pad("CONTENT[ '"+t.value+"' ]")},me.prototype.CommentStatement=function(t){return this.pad("{{! '"+t.value+"' }}")},me.prototype.SubExpression=function(t){for(var e,r=t.params,n=[],s=0,a=r.length;s<a;s++)n.push(this.accept(r[s]));return r="["+n.join(", ")+"]",e=t.hash?" "+this.accept(t.hash):"",this.accept(t.path)+" "+r+e},me.prototype.PathExpression=function(t){var e=t.parts.join("/");return(t.data?"@":"")+"PATH:"+e},me.prototype.StringLiteral=function(t){return'"'+t.value+'"'},me.prototype.NumberLiteral=function(t){return"NUMBER{"+t.value+"}"},me.prototype.BooleanLiteral=function(t){return"BOOLEAN{"+t.value+"}"},me.prototype.UndefinedLiteral=function(){return"UNDEFINED"},me.prototype.NullLiteral=function(){return"NULL"},me.prototype.Hash=function(t){for(var e=t.pairs,r=[],n=0,s=e.length;n<s;n++)r.push(this.accept(e[n]));return"HASH{"+r.join(", ")+"}"},me.prototype.HashPair=function(t){return t.key+"="+this.accept(t.value)};var be=Object.freeze({__proto__:null,SourceLocation:ge,id:function(t){return/^\[.*\]$/.test(t)?t.substring(1,t.length-1):t},stripFlags:function(t,e){return{open:"~"===t.charAt(2),close:"~"===e.charAt(e.length-3)}},stripComment:function(t){return t.replace(/^\{\{~?!-?-?/,"").replace(/-?-?~?\}\}$/,"")},preparePath:function(t,e,r){r=this.locInfo(r);for(var n=t?"@":"",s=[],a=0,i=0,o=e.length;i<o;i++){var l=e[i].part,c=e[i].original!==l;if(n+=(e[i].separator||"")+l,c||".."!==l&&"."!==l&&"this"!==l)s.push(l);else{if(s.length>0)throw new ne("Invalid path: "+n,{loc:r});".."===l&&a++}}return{type:"PathExpression",data:t,depth:a,parts:s,original:n,loc:r}},prepareMustache:function(t,e,r,n,s,a){var i=n.charAt(3)||n.charAt(2),o="{"!==i&&"&"!==i;return{type:/\*/.test(n)?"Decorator":"MustacheStatement",path:t,params:e,hash:r,escaped:o,strip:s,loc:this.locInfo(a)}},prepareRawBlock:function(t,e,r,n){fe(t,r);var s={type:"Program",body:e,strip:{},loc:n=this.locInfo(n)};return{type:"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:s,openStrip:{},inverseStrip:{},closeStrip:{},loc:n}},prepareBlock:function(t,e,r,n,s,a){n&&n.path&&fe(t,n);var i,o,l=/\*/.test(t.open);if(e.blockParams=t.blockParams,r){if(l)throw new ne("Unexpected inverse block on decorator",r);r.chain&&(r.program.body[0].closeStrip=n.strip),o=r.strip,i=r.program}return s&&(s=i,i=e,e=s),{type:l?"DecoratorBlock":"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:e,inverse:i,openStrip:t.strip,inverseStrip:o,closeStrip:n&&n.strip,loc:this.locInfo(a)}},prepareProgram:function(t,e){if(!e&&t.length){var r=t[0].loc,n=t[t.length-1].loc;r&&n&&(e={source:r.source,start:{line:r.start.line,column:r.start.column},end:{line:n.end.line,column:n.end.column}})}return{type:"Program",body:t,strip:{},loc:e}},preparePartialBlock:function(t,e,r,n){return fe(t,r),{type:"PartialBlockStatement",name:t.path,params:t.params,hash:t.hash,program:e,openStrip:t.strip,closeStrip:r&&r.strip,loc:this.locInfo(n)}}}),ye={};for(var ke in be)Object.prototype.hasOwnProperty.call(be,ke)&&(ye[ke]=be[ke]);function ve(t,e){return"Program"===t.type?t:(de.yy=ye,de.yy.locInfo=function(t){return new ge(e&&e.srcName,t)},de.parse(t))}function we(t,e){var r=ve(t,e);return new le(e).accept(r)}var Se={Aacute:"\xc1",aacute:"\xe1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223e",acd:"\u223f",acE:"\u223e\u0333",Acirc:"\xc2",acirc:"\xe2",acute:"\xb4",Acy:"\u0410",acy:"\u0430",AElig:"\xc6",aelig:"\xe6",af:"\u2061",Afr:"\ud835\udd04",afr:"\ud835\udd1e",Agrave:"\xc0",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03b1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2a3f",amp:"&",AMP:"&",andand:"\u2a55",And:"\u2a53",and:"\u2227",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angmsd:"\u2221",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",Aogon:"\u0104",aogon:"\u0105",Aopf:"\ud835\udd38",aopf:"\ud835\udd52",apacir:"\u2a6f",ap:"\u2248",apE:"\u2a70",ape:"\u224a",apid:"\u224b",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224a",Aring:"\xc5",aring:"\xe5",Ascr:"\ud835\udc9c",ascr:"\ud835\udcb6",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224d",Atilde:"\xc3",atilde:"\xe3",Auml:"\xc4",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",Backslash:"\u2216",Barv:"\u2ae7",barvee:"\u22bd",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",Bernoullis:"\u212c",Beta:"\u0392",beta:"\u03b2",beth:"\u2136",between:"\u226c",Bfr:"\ud835\udd05",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bNot:"\u2aed",bnot:"\u2310",Bopf:"\ud835\udd39",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxbox:"\u29c9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250c",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252c",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxul:"\u2518",boxuL:"\u255b",boxUl:"\u255c",boxUL:"\u255d",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255a",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253c",boxvH:"\u256a",boxVh:"\u256b",boxVH:"\u256c",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251c",boxvR:"\u255e",boxVr:"\u255f",boxVR:"\u2560",bprime:"\u2035",breve:"\u02d8",Breve:"\u02d8",brvbar:"\xa6",bscr:"\ud835\udcb7",Bscr:"\u212c",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsolb:"\u29c5",bsol:"\\",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",Bumpeq:"\u224e",bumpeq:"\u224f",Cacute:"\u0106",cacute:"\u0107",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",cap:"\u2229",Cap:"\u22d2",capcup:"\u2a47",capdot:"\u2a40",CapitalDifferentialD:"\u2145",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",Cayleys:"\u212d",ccaps:"\u2a4d",Ccaron:"\u010c",ccaron:"\u010d",Ccedil:"\xc7",ccedil:"\xe7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2a4c",ccupssm:"\u2a50",Cdot:"\u010a",cdot:"\u010b",cedil:"\xb8",Cedilla:"\xb8",cemptyv:"\u29b2",cent:"\xa2",centerdot:"\xb7",CenterDot:"\xb7",cfr:"\ud835\udd20",Cfr:"\u212d",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",CircleDot:"\u2299",circledR:"\xae",circledS:"\u24c8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25cb",cirE:"\u29c3",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201d",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2a74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",Congruent:"\u2261",conint:"\u222e",Conint:"\u222f",ContourIntegral:"\u222e",copf:"\ud835\udd54",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xa9",COPY:"\xa9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21b5",cross:"\u2717",Cross:"\u2a2f",Cscr:"\ud835\udc9e",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cupbrcap:"\u2a48",cupcap:"\u2a46",CupCap:"\u224d",cup:"\u222a",Cup:"\u22d3",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21a1",dArr:"\u21d3",dash:"\u2010",Dashv:"\u2ae4",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",Dcaron:"\u010e",dcaron:"\u010f",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21ca",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2a77",deg:"\xb0",Del:"\u2207",Delta:"\u0394",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",Dfr:"\ud835\udd07",dfr:"\ud835\udd21",dHar:"\u2965",dharl:"\u21c3",dharr:"\u21c2",DiacriticalAcute:"\xb4",DiacriticalDot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",DiacriticalGrave:"`",DiacriticalTilde:"\u02dc",diam:"\u22c4",diamond:"\u22c4",Diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",DifferentialD:"\u2146",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",Dopf:"\ud835\udd3b",dopf:"\ud835\udd55",Dot:"\xa8",dot:"\u02d9",DotDot:"\u20dc",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222f",DoubleDot:"\xa8",DoubleDownArrow:"\u21d3",DoubleLeftArrow:"\u21d0",DoubleLeftRightArrow:"\u21d4",DoubleLeftTee:"\u2ae4",DoubleLongLeftArrow:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",DoubleLongRightArrow:"\u27f9",DoubleRightArrow:"\u21d2",DoubleRightTee:"\u22a8",DoubleUpArrow:"\u21d1",DoubleUpDownArrow:"\u21d5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21d3",DownArrowUpArrow:"\u21f5",DownBreve:"\u0311",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21bd",DownRightTeeVector:"\u295f",DownRightVectorBar:"\u2957",DownRightVector:"\u21c1",DownTeeArrow:"\u21a7",DownTee:"\u22a4",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",Dscr:"\ud835\udc9f",dscr:"\ud835\udcb9",DScy:"\u0405",dscy:"\u0455",dsol:"\u29f6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",DZcy:"\u040f",dzcy:"\u045f",dzigrarr:"\u27ff",Eacute:"\xc9",eacute:"\xe9",easter:"\u2a6e",Ecaron:"\u011a",ecaron:"\u011b",Ecirc:"\xca",ecirc:"\xea",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042d",ecy:"\u044d",eDDot:"\u2a77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\ud835\udd08",efr:"\ud835\udd22",eg:"\u2a9a",Egrave:"\xc8",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",Element:"\u2208",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25fb",emptyv:"\u2205",EmptyVerySmallSquare:"\u25ab",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014a",eng:"\u014b",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\ud835\udd3c",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",Epsilon:"\u0395",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",Equal:"\u2a75",equals:"=",EqualTilde:"\u2242",equest:"\u225f",Equilibrium:"\u21cc",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erarr:"\u2971",erDot:"\u2253",escr:"\u212f",Escr:"\u2130",esdot:"\u2250",Esim:"\u2a73",esim:"\u2242",Eta:"\u0397",eta:"\u03b7",ETH:"\xd0",eth:"\xf0",Euml:"\xcb",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",Ffr:"\ud835\udd09",ffr:"\ud835\udd23",filig:"\ufb01",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",Fopf:"\ud835\udd3d",fopf:"\ud835\udd57",forall:"\u2200",ForAll:"\u2200",fork:"\u22d4",forkv:"\u2ad9",Fouriertrf:"\u2131",fpartint:"\u2a0d",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",Fscr:"\u2131",gacute:"\u01f5",Gamma:"\u0393",gamma:"\u03b3",Gammad:"\u03dc",gammad:"\u03dd",gap:"\u2a86",Gbreve:"\u011e",gbreve:"\u011f",Gcedil:"\u0122",Gcirc:"\u011c",gcirc:"\u011d",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2a8c",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",gescc:"\u2aa9",ges:"\u2a7e",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",Gfr:"\ud835\udd0a",gfr:"\ud835\udd24",gg:"\u226b",Gg:"\u22d9",ggg:"\u22d9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2aa5",gl:"\u2277",glE:"\u2a92",glj:"\u2aa4",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gnE:"\u2269",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",Gopf:"\ud835\udd3e",gopf:"\ud835\udd58",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",gtcc:"\u2aa7",gtcir:"\u2a7a",gt:">",GT:">",Gt:"\u226b",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",Hacek:"\u02c7",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",HARDcy:"\u042a",hardcy:"\u044a",harrcir:"\u2948",harr:"\u2194",hArr:"\u21d4",harrw:"\u21ad",Hat:"^",hbar:"\u210f",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",Hfr:"\u210c",HilbertSpace:"\u210b",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",Hopf:"\u210d",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\ud835\udcbd",Hscr:"\u210b",hslash:"\u210f",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224e",HumpEqual:"\u224f",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xcd",iacute:"\xed",ic:"\u2063",Icirc:"\xce",icirc:"\xee",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",Ifr:"\u2111",Igrave:"\xcc",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012a",imacr:"\u012b",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22b7",imped:"\u01b5",Implies:"\u21d2",incare:"\u2105",in:"\u2208",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",intcal:"\u22ba",int:"\u222b",Int:"\u222c",integers:"\u2124",Integral:"\u222b",intercal:"\u22ba",Intersection:"\u22c2",intlarhk:"\u2a17",intprod:"\u2a3c",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012e",iogon:"\u012f",Iopf:"\ud835\udd40",iopf:"\ud835\udd5a",Iota:"\u0399",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",iscr:"\ud835\udcbe",Iscr:"\u2110",isin:"\u2208",isindot:"\u22f5",isinE:"\u22f9",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xcf",iuml:"\xef",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\ud835\udd0d",jfr:"\ud835\udd27",jmath:"\u0237",Jopf:"\ud835\udd41",jopf:"\ud835\udd5b",Jscr:"\ud835\udca5",jscr:"\ud835\udcbf",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039a",kappa:"\u03ba",kappav:"\u03f0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041a",kcy:"\u043a",Kfr:"\ud835\udd0e",kfr:"\ud835\udd28",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040c",kjcy:"\u045c",Kopf:"\ud835\udd42",kopf:"\ud835\udd5c",Kscr:"\ud835\udca6",kscr:"\ud835\udcc0",lAarr:"\u21da",Lacute:"\u0139",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",Lambda:"\u039b",lambda:"\u03bb",lang:"\u27e8",Lang:"\u27ea",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",Laplacetrf:"\u2112",laquo:"\xab",larrb:"\u21e4",larrbfs:"\u291f",larr:"\u2190",Larr:"\u219e",lArr:"\u21d0",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",latail:"\u2919",lAtail:"\u291b",lat:"\u2aab",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lBarr:"\u290e",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",Lcaron:"\u013d",lcaron:"\u013e",Lcedil:"\u013b",lcedil:"\u013c",lceil:"\u2308",lcub:"{",Lcy:"\u041b",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27e8",LeftArrowBar:"\u21e4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21d0",LeftArrowRightArrow:"\u21c6",leftarrowtail:"\u21a2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21c3",LeftFloor:"\u230a",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21d4",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",LeftRightVector:"\u294e",LeftTeeArrow:"\u21a4",LeftTee:"\u22a3",LeftTeeVector:"\u295a",leftthreetimes:"\u22cb",LeftTriangleBar:"\u29cf",LeftTriangle:"\u22b2",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21bf",LeftVectorBar:"\u2952",LeftVector:"\u21bc",lEg:"\u2a8b",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",lescc:"\u2aa8",les:"\u2a7d",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2aa1",lesssim:"\u2272",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",lfisht:"\u297c",lfloor:"\u230a",Lfr:"\ud835\udd0f",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lHar:"\u2962",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21c7",ll:"\u226a",Ll:"\u22d8",llcorner:"\u231e",Lleftarrow:"\u21da",llhard:"\u296b",lltri:"\u25fa",Lmidot:"\u013f",lmidot:"\u0140",lmoustache:"\u23b0",lmoust:"\u23b0",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lnE:"\u2268",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",LongLeftArrow:"\u27f5",Longleftarrow:"\u27f8",longleftrightarrow:"\u27f7",LongLeftRightArrow:"\u27f7",Longleftrightarrow:"\u27fa",longmapsto:"\u27fc",longrightarrow:"\u27f6",LongRightArrow:"\u27f6",Longrightarrow:"\u27f9",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",Lopf:"\ud835\udd43",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",Lscr:"\u2112",lsh:"\u21b0",Lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2aa6",ltcir:"\u2a79",lt:"<",LT:"<",Lt:"\u226a",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",ltrPar:"\u2996",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",Mcy:"\u041c",mcy:"\u043c",mdash:"\u2014",mDDot:"\u223a",measuredangle:"\u2221",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",midast:"*",midcir:"\u2af0",mid:"\u2223",middot:"\xb7",minusb:"\u229f",minus:"\u2212",minusd:"\u2238",minusdu:"\u2a2a",MinusPlus:"\u2213",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",Mopf:"\ud835\udd44",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",Mscr:"\u2133",mstpos:"\u223e",Mu:"\u039c",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266e",naturals:"\u2115",natur:"\u266e",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",Ncy:"\u041d",ncy:"\u043d",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21d7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",nexist:"\u2204",nexists:"\u2204",Nfr:"\ud835\udd11",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",nGg:"\u22d9\u0338",ngsim:"\u2275",nGt:"\u226b\u20d2",ngt:"\u226f",ngtr:"\u226f",nGtv:"\u226b\u0338",nharr:"\u21ae",nhArr:"\u21ce",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",NJcy:"\u040a",njcy:"\u045a",nlarr:"\u219a",nlArr:"\u21cd",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219a",nLeftarrow:"\u21cd",nleftrightarrow:"\u21ae",nLeftrightarrow:"\u21ce",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nLl:"\u22d8\u0338",nlsim:"\u2274",nLt:"\u226a\u20d2",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nLtv:"\u226a\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xa0",nopf:"\ud835\udd5f",Nopf:"\u2115",Not:"\u2aec",not:"\xac",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",notin:"\u2209",notindot:"\u22f5\u0338",notinE:"\u22f9\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangle:"\u22eb",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",nprec:"\u2280",npreceq:"\u2aaf\u0338",npre:"\u2aaf\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219b",nrArr:"\u21cf",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nRightarrow:"\u21cf",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",Nscr:"\ud835\udca9",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",Ntilde:"\xd1",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",Nu:"\u039d",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvDash:"\u22ad",nVdash:"\u22ae",nVDash:"\u22af",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvHarr:"\u2904",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21d6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xd3",oacute:"\xf3",oast:"\u229b",Ocirc:"\xd4",ocirc:"\xf4",ocir:"\u229a",Ocy:"\u041e",ocy:"\u043e",odash:"\u229d",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29bf",Ofr:"\ud835\udd12",ofr:"\ud835\udd2c",ogon:"\u02db",Ograve:"\xd2",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",Omacr:"\u014c",omacr:"\u014d",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",Oopf:"\ud835\udd46",oopf:"\ud835\udd60",opar:"\u29b7",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",operp:"\u29b9",oplus:"\u2295",orarr:"\u21bb",Or:"\u2a54",or:"\u2228",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oS:"\u24c8",Oscr:"\ud835\udcaa",oscr:"\u2134",Oslash:"\xd8",oslash:"\xf8",osol:"\u2298",Otilde:"\xd5",otilde:"\xf5",otimesas:"\u2a36",Otimes:"\u2a37",otimes:"\u2297",Ouml:"\xd6",ouml:"\xf6",ovbar:"\u233d",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",para:"\xb6",parallel:"\u2225",par:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",PartialD:"\u2202",Pcy:"\u041f",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",Pfr:"\ud835\udd13",pfr:"\ud835\udd2d",Phi:"\u03a6",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",Pi:"\u03a0",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plus:"+",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",PlusMinus:"\xb1",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",Poincareplane:"\u210c",pointint:"\u2a15",popf:"\ud835\udd61",Popf:"\u2119",pound:"\xa3",prap:"\u2ab7",Pr:"\u2abb",pr:"\u227a",prcue:"\u227c",precapprox:"\u2ab7",prec:"\u227a",preccurlyeq:"\u227c",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",pre:"\u2aaf",prE:"\u2ab3",precsim:"\u227e",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2ab9",prnE:"\u2ab5",prnsim:"\u22e8",prod:"\u220f",Product:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",Proportional:"\u221d",Proportion:"\u2237",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",Pscr:"\ud835\udcab",pscr:"\ud835\udcc5",Psi:"\u03a8",psi:"\u03c8",puncsp:"\u2008",Qfr:"\ud835\udd14",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",Qopf:"\u211a",qprime:"\u2057",Qscr:"\ud835\udcac",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quot:'"',QUOT:'"',rAarr:"\u21db",race:"\u223d\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",Rang:"\u27eb",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21a0",rArr:"\u21d2",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",rAtail:"\u291c",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rBarr:"\u290f",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",Re:"\u211c",rect:"\u25ad",reg:"\xae",REG:"\xae",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",Rfr:"\u211c",rHar:"\u2964",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",Rho:"\u03a1",rho:"\u03c1",rhov:"\u03f1",RightAngleBracket:"\u27e9",RightArrowBar:"\u21e5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21d2",RightArrowLeftArrow:"\u21c4",rightarrowtail:"\u21a3",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVectorBar:"\u2955",RightDownVector:"\u21c2",RightFloor:"\u230b",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",RightTeeArrow:"\u21a6",RightTee:"\u22a2",RightTeeVector:"\u295b",rightthreetimes:"\u22cc",RightTriangleBar:"\u29d0",RightTriangle:"\u22b3",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVectorBar:"\u2954",RightUpVector:"\u21be",RightVectorBar:"\u2953",RightVector:"\u21c0",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoustache:"\u23b1",rmoust:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",Ropf:"\u211d",roplus:"\u2a2e",rotimes:"\u2a35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",Rrightarrow:"\u21db",rsaquo:"\u203a",rscr:"\ud835\udcc7",Rscr:"\u211b",rsh:"\u21b1",Rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",RuleDelayed:"\u29f4",ruluhar:"\u2968",rx:"\u211e",Sacute:"\u015a",sacute:"\u015b",sbquo:"\u201a",scap:"\u2ab8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2abc",sc:"\u227b",sccue:"\u227d",sce:"\u2ab0",scE:"\u2ab4",Scedil:"\u015e",scedil:"\u015f",Scirc:"\u015c",scirc:"\u015d",scnap:"\u2aba",scnE:"\u2ab6",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",Scy:"\u0421",scy:"\u0441",sdotb:"\u22a1",sdot:"\u22c5",sdote:"\u2a66",searhk:"\u2925",searr:"\u2198",seArr:"\u21d8",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\ud835\udd16",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",SOFTcy:"\u042c",softcy:"\u044c",solbar:"\u233f",solb:"\u29c4",sol:"/",Sopf:"\ud835\udd4a",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",Sqrt:"\u221a",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25a1",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25aa",squ:"\u25a1",squf:"\u25aa",srarr:"\u2192",Sscr:"\ud835\udcae",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",Star:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",Sub:"\u22d0",subdot:"\u2abd",subE:"\u2ac5",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",Subset:"\u22d0",subseteq:"\u2286",subseteqq:"\u2ac5",SubsetEqual:"\u2286",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succapprox:"\u2ab8",succ:"\u227b",succcurlyeq:"\u227d",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",SuchThat:"\u220b",sum:"\u2211",Sum:"\u2211",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"\u2283",Sup:"\u22d1",supdot:"\u2abe",supdsub:"\u2ad8",supE:"\u2ac6",supe:"\u2287",supedot:"\u2ac4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",Supset:"\u22d1",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21d9",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",Tab:"\t",target:"\u2316",Tau:"\u03a4",tau:"\u03c4",tbrk:"\u23b4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",Tfr:"\ud835\udd17",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",THORN:"\xde",thorn:"\xfe",tilde:"\u02dc",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2a31",timesb:"\u22a0",times:"\xd7",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",topbot:"\u2336",topcir:"\u2af1",top:"\u22a4",Topf:"\ud835\udd4b",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",TripleDot:"\u20db",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",Tscr:"\ud835\udcaf",tscr:"\ud835\udcc9",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040b",tshcy:"\u045b",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",Uacute:"\xda",uacute:"\xfa",uarr:"\u2191",Uarr:"\u219f",uArr:"\u21d1",Uarrocir:"\u2949",Ubrcy:"\u040e",ubrcy:"\u045e",Ubreve:"\u016c",ubreve:"\u016d",Ucirc:"\xdb",ucirc:"\xfb",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21c5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",Ufr:"\ud835\udd18",ufr:"\ud835\udd32",Ugrave:"\xd9",ugrave:"\xf9",uHar:"\u2963",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",Umacr:"\u016a",umacr:"\u016b",uml:"\xa8",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",uogon:"\u0173",Uopf:"\ud835\udd4c",uopf:"\ud835\udd66",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21d1",UpArrowDownArrow:"\u21c5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21d5",UpEquilibrium:"\u296e",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03c5",Upsi:"\u03d2",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",UpTeeArrow:"\u21a5",UpTee:"\u22a5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",Uring:"\u016e",uring:"\u016f",urtri:"\u25f9",Uscr:"\ud835\udcb0",uscr:"\ud835\udcca",utdot:"\u22f0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",Uuml:"\xdc",uuml:"\xfc",uwangle:"\u29a7",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",vArr:"\u21d5",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vBar:"\u2ae8",Vbar:"\u2aeb",vBarv:"\u2ae9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22a2",vDash:"\u22a8",Vdash:"\u22a9",VDash:"\u22ab",Vdashl:"\u2ae6",veebar:"\u22bb",vee:"\u2228",Vee:"\u22c1",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",Vopf:"\ud835\udd4d",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",Vscr:"\ud835\udcb1",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",Vvdash:"\u22aa",vzigzag:"\u299a",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",Wedge:"\u22c0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\ud835\udd1a",wfr:"\ud835\udd34",Wopf:"\ud835\udd4e",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\ud835\udcb2",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",Xfr:"\ud835\udd1b",xfr:"\ud835\udd35",xharr:"\u27f7",xhArr:"\u27fa",Xi:"\u039e",xi:"\u03be",xlarr:"\u27f5",xlArr:"\u27f8",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",Xopf:"\ud835\udd4f",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrarr:"\u27f6",xrArr:"\u27f9",Xscr:"\ud835\udcb3",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",Yacute:"\xdd",yacute:"\xfd",YAcy:"\u042f",yacy:"\u044f",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042b",ycy:"\u044b",yen:"\xa5",Yfr:"\ud835\udd1c",yfr:"\ud835\udd36",YIcy:"\u0407",yicy:"\u0457",Yopf:"\ud835\udd50",yopf:"\ud835\udd6a",Yscr:"\ud835\udcb4",yscr:"\ud835\udcce",YUcy:"\u042e",yucy:"\u044e",yuml:"\xff",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017a",Zcaron:"\u017d",zcaron:"\u017e",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017b",zdot:"\u017c",zeetrf:"\u2128",ZeroWidthSpace:"\u200b",Zeta:"\u0396",zeta:"\u03b6",zfr:"\ud835\udd37",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",Zopf:"\u2124",Zscr:"\ud835\udcb5",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"},Ee=/^#[xX]([A-Fa-f0-9]+)$/,xe=/^#([0-9]+)$/,Ne=/^([A-Za-z0-9]+)$/,Te=function(){function t(t){this.named=t}return t.prototype.parse=function(t){if(t){var e=t.match(Ee);return e?String.fromCharCode(parseInt(e[1],16)):(e=t.match(xe))?String.fromCharCode(parseInt(e[1],10)):(e=t.match(Ne))?this.named[e[1]]:void 0}},t}(),Ae=/[\t\n\f ]/,Pe=/[A-Za-z]/,Ce=/\r\n?/g;function Le(t){return Ae.test(t)}function Be(t){return Pe.test(t)}var qe=function(){function t(t,e,r){void 0===r&&(r="precompile"),this.delegate=t,this.entityParser=e,this.mode=r,this.state="beforeData",this.line=-1,this.column=-1,this.input="",this.index=-1,this.tagNameBuffer="",this.states={beforeData:function(){var t=this.peek();if("<"!==t||this.isIgnoredEndTag()){if("precompile"===this.mode&&"\n"===t){var e=this.tagNameBuffer.toLowerCase();"pre"!==e&&"textarea"!==e||this.consume()}this.transitionTo("data"),this.delegate.beginData()}else this.transitionTo("tagOpen"),this.markTagStart(),this.consume()},data:function(){var t=this.peek(),e=this.tagNameBuffer;"<"!==t||this.isIgnoredEndTag()?"&"===t&&"script"!==e&&"style"!==e?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(t)):(this.delegate.finishData(),this.transitionTo("tagOpen"),this.markTagStart(),this.consume())},tagOpen:function(){var t=this.consume();"!"===t?this.transitionTo("markupDeclarationOpen"):"/"===t?this.transitionTo("endTagOpen"):("@"===t||":"===t||Be(t))&&(this.transitionTo("tagName"),this.tagNameBuffer="",this.delegate.beginStartTag(),this.appendToTagName(t))},markupDeclarationOpen:function(){"-"===this.consume()&&"-"===this.peek()&&(this.consume(),this.transitionTo("commentStart"),this.delegate.beginComment())},commentStart:function(){var t=this.consume();"-"===t?this.transitionTo("commentStartDash"):">"===t?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData(t),this.transitionTo("comment"))},commentStartDash:function(){var t=this.consume();"-"===t?this.transitionTo("commentEnd"):">"===t?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("-"),this.transitionTo("comment"))},comment:function(){var t=this.consume();"-"===t?this.transitionTo("commentEndDash"):this.delegate.appendToCommentData(t)},commentEndDash:function(){var t=this.consume();"-"===t?this.transitionTo("commentEnd"):(this.delegate.appendToCommentData("-"+t),this.transitionTo("comment"))},commentEnd:function(){var t=this.consume();">"===t?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("--"+t),this.transitionTo("comment"))},tagName:function(){var t=this.consume();Le(t)?this.transitionTo("beforeAttributeName"):"/"===t?this.transitionTo("selfClosingStartTag"):">"===t?(this.delegate.finishTag(),this.transitionTo("beforeData")):this.appendToTagName(t)},endTagName:function(){var t=this.consume();Le(t)?(this.transitionTo("beforeAttributeName"),this.tagNameBuffer=""):"/"===t?(this.transitionTo("selfClosingStartTag"),this.tagNameBuffer=""):">"===t?(this.delegate.finishTag(),this.transitionTo("beforeData"),this.tagNameBuffer=""):this.appendToTagName(t)},beforeAttributeName:function(){var t=this.peek();Le(t)?this.consume():"/"===t?(this.transitionTo("selfClosingStartTag"),this.consume()):">"===t?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):"="===t?(this.delegate.reportSyntaxError("attribute name cannot start with equals sign"),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(t)):(this.transitionTo("attributeName"),this.delegate.beginAttribute())},attributeName:function(){var t=this.peek();Le(t)?(this.transitionTo("afterAttributeName"),this.consume()):"/"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"="===t?(this.transitionTo("beforeAttributeValue"),this.consume()):">"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):'"'===t||"'"===t||"<"===t?(this.delegate.reportSyntaxError(t+" is not a valid character within attribute names"),this.consume(),this.delegate.appendToAttributeName(t)):(this.consume(),this.delegate.appendToAttributeName(t))},afterAttributeName:function(){var t=this.peek();Le(t)?this.consume():"/"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"="===t?(this.consume(),this.transitionTo("beforeAttributeValue")):">"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(t))},beforeAttributeValue:function(){var t=this.peek();Le(t)?this.consume():'"'===t?(this.transitionTo("attributeValueDoubleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):"'"===t?(this.transitionTo("attributeValueSingleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):">"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.transitionTo("attributeValueUnquoted"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(t))},attributeValueDoubleQuoted:function(){var t=this.consume();'"'===t?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):"&"===t?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(t)},attributeValueSingleQuoted:function(){var t=this.consume();"'"===t?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):"&"===t?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(t)},attributeValueUnquoted:function(){var t=this.peek();Le(t)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("beforeAttributeName")):"/"===t?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"&"===t?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||"&")):">"===t?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.consume(),this.delegate.appendToAttributeValue(t))},afterAttributeValueQuoted:function(){var t=this.peek();Le(t)?(this.consume(),this.transitionTo("beforeAttributeName")):"/"===t?(this.consume(),this.transitionTo("selfClosingStartTag")):">"===t?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},selfClosingStartTag:function(){">"===this.peek()?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},endTagOpen:function(){var t=this.consume();("@"===t||":"===t||Be(t))&&(this.transitionTo("endTagName"),this.tagNameBuffer="",this.delegate.beginEndTag(),this.appendToTagName(t))}},this.reset()}return t.prototype.reset=function(){this.transitionTo("beforeData"),this.input="",this.tagNameBuffer="",this.index=0,this.line=1,this.column=0,this.delegate.reset()},t.prototype.transitionTo=function(t){this.state=t},t.prototype.tokenize=function(t){this.reset(),this.tokenizePart(t),this.tokenizeEOF()},t.prototype.tokenizePart=function(t){for(this.input+=function(t){return t.replace(Ce,"\n")}(t);this.index<this.input.length;){var e=this.states[this.state];if(void 0===e)throw new Error("unhandled state "+this.state);e.call(this)}},t.prototype.tokenizeEOF=function(){this.flushData()},t.prototype.flushData=function(){"data"===this.state&&(this.delegate.finishData(),this.transitionTo("beforeData"))},t.prototype.peek=function(){return this.input.charAt(this.index)},t.prototype.consume=function(){var t=this.peek();return this.index++,"\n"===t?(this.line++,this.column=0):this.column++,t},t.prototype.consumeCharRef=function(){var t=this.input.indexOf(";",this.index);if(-1!==t){var e=this.input.slice(this.index,t),r=this.entityParser.parse(e);if(r){for(var n=e.length;n;)this.consume(),n--;return this.consume(),r}}},t.prototype.markTagStart=function(){this.delegate.tagOpen()},t.prototype.appendToTagName=function(t){this.tagNameBuffer+=t,this.delegate.appendToTagName(t)},t.prototype.isIgnoredEndTag=function(){var t=this.tagNameBuffer;return"title"===t&&"</title>"!==this.input.substring(this.index,this.index+8)||"style"===t&&"</style>"!==this.input.substring(this.index,this.index+8)||"script"===t&&"<\/script>"!==this.input.substring(this.index,this.index+9)},t}();function Oe(t,e={entityEncoding:"transformed"}){if(!t)return"";return new ee(e).print(t)}const _e=function(){function t(t,e){let r=Error.call(this,t),{module:n,loc:s}=e,{line:a,column:i}=s.start,o=e.asString(),l=o?"\n\n|\n|  ".concat(o.split("\n").join("\n|  "),"\n|\n\n"):"";this.message="Syntax Error: ".concat(t,": ").concat(l,"(error occurred in '").concat(n,"' @ line ").concat(a," : column ").concat(i,")"),this.stack=r.stack,this.location=e}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}(),De={Program:l("body"),Template:l("body"),Block:l("body"),MustacheStatement:l("path","params","hash"),BlockStatement:l("path","params","hash","program","inverse"),ElementModifierStatement:l("path","params","hash"),PartialStatement:l("name","params","hash"),CommentStatement:l(),MustacheCommentStatement:l(),ElementNode:l("attributes","modifiers","children","comments"),AttrNode:l("value"),TextNode:l(),ConcatStatement:l("parts"),SubExpression:l("path","params","hash"),PathExpression:l(),PathHead:l(),StringLiteral:l(),BooleanLiteral:l(),NumberLiteral:l(),NullLiteral:l(),UndefinedLiteral:l(),Hash:l("pairs"),HashPair:l("value"),NamedBlock:l("attributes","modifiers","children","comments"),SimpleElement:l("attributes","modifiers","children","comments"),Component:l("head","attributes","modifiers","children","comments")},He=function(){function t(t,e,r,n){let s=Error.call(this,t);this.key=n,this.message=t,this.node=e,this.parent=r,this.stack=s.stack}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}();function Re(t,e,r){return new He("Cannot remove a node unless it is part of an array",t,e,r)}function Ve(t,e,r){return new He("Cannot replace a node with multiple nodes unless it is part of an array",t,e,r)}function Ie(t,e){return new He("Replacing and removing in key handlers is not yet supported.",t,null,e)}class Ue{constructor(t,e=null,r=null){this.node=t,this.parent=e,this.parentKey=r}get parentNode(){return this.parent?this.parent.node:null}parents(){return{[Symbol.iterator]:()=>new Me(this)}}}class Me{constructor(t){this.path=t}next(){return this.path.parent?(this.path=this.path.parent,{done:!1,value:this.path}):{done:!0,value:null}}}function Fe(t){return"function"==typeof t?t:t.enter}function ze(t){return"function"==typeof t?void 0:t.exit}function $e(t,e){let r,n,s,{node:a,parent:i,parentKey:o}=e,l=function(t,e){if(("Template"===e||"Block"===e)&&t.Program)return t.Program;let r=t[e];return void 0!==r?r:t.All}(t,a.type);if(void 0!==l&&(r=Fe(l),n=ze(l)),void 0!==r&&(s=r(a,e)),null!=s){if(JSON.stringify(a)!==JSON.stringify(s)){if(Array.isArray(s))return Ke(t,s,i,o),s;return $e(t,new Ue(s,i,o))||s}s=void 0}if(void 0===s){let r=De[a.type];for(let n=0;n<r.length;n++){Ge(t,l,e,r[n])}void 0!==n&&(s=n(a,e))}return s}function je(t,e,r){t[e]=r}function Ge(t,e,r,n){let s,a,{node:i}=r,o=function(t,e){return t[e]}(i,n);if(o){if(void 0!==e){let t=function(t,e){let r="function"!=typeof t?t.keys:void 0;if(void 0===r)return;let n=r[e];return void 0!==n?n:r.All}(e,n);void 0!==t&&(s=Fe(t),a=ze(t))}if(void 0!==s&&void 0!==s(i,n))throw Ie(i,n);if(Array.isArray(o))Ke(t,o,r,n);else{let e=$e(t,new Ue(o,r,n));void 0!==e&&function(t,e,r,n){if(null===n)throw Re(r,t,e);if(Array.isArray(n)){if(1!==n.length)throw 0===n.length?Re(r,t,e):Ve(r,t,e);je(t,e,n[0])}else je(t,e,n)}(i,n,o,e)}if(void 0!==a&&void 0!==a(i,n))throw Ie(i,n)}}function Ke(t,e,r,n){for(let s=0;s<e.length;s++){let a=e[s],i=$e(t,new Ue(a,r,n));void 0!==i&&(s+=We(e,s,i)-1)}}function We(t,e,r){return null===r?(t.splice(e,1),0):Array.isArray(r)?(t.splice(e,1,...r),r.length):(t.splice(e,1,r),1)}function Je(t,e){$e(e,new Ue(t))}class Qe{constructor(t){this.order=t,this.stack=[]}visit(t,e){t&&(this.stack.push(t),"post"===this.order?(this.children(t,e),e(t,this)):(e(t,this),this.children(t,e)),this.stack.pop())}children(t,e){switch(t.type){case"Block":case"Template":return Ye.Program(this,t,e);case"ElementNode":return Ye.ElementNode(this,t,e);case"BlockStatement":return Ye.BlockStatement(this,t,e);default:return}}}const Ye={Program(t,e,r){for(let n=0;n<e.body.length;n++)t.visit(e.body[n],r)},Template(t,e,r){for(let n=0;n<e.body.length;n++)t.visit(e.body[n],r)},Block(t,e,r){for(let n=0;n<e.body.length;n++)t.visit(e.body[n],r)},ElementNode(t,e,r){for(let n=0;n<e.children.length;n++)t.visit(e.children[n],r)},BlockStatement(t,e,r){t.visit(e.program,r),t.visit(e.inverse||null,r)}};let Ze=/[!"#%-,\.\/;->@\[-\^`\{-~]/;function Xe(t){let e=function(t){let e=t.attributes.length,r=[];for(let n=0;n<e;n++)r.push(t.attributes[n].name);let n=r.indexOf("as");if(-1!==n&&e>n&&"|"===r[n+1].charAt(0)){let s=r.slice(n).join(" ");if("|"!==s.charAt(s.length-1)||2!==s.match(/\|/g).length)throw new _e("Invalid block parameters syntax, '"+s+"'",t.loc);let a=[];for(let s=n+1;s<e;s++){let e=r[s].replace(/\|/g,"");if(""!==e){if(Ze.test(e))throw new _e("Invalid identifier for block parameters, '"+e+"'",t.loc);a.push(e)}}if(0===a.length)throw new _e("Cannot use zero block parameters",t.loc);return t.attributes=t.attributes.slice(0,n),a}return null}(t);e&&(t.blockParams=e)}function tr(t,e){(function(t){switch(t.type){case"Block":case"Template":return t.body;case"ElementNode":return t.children}})(t).push(e)}function er(t){return"StringLiteral"===t.type||"BooleanLiteral"===t.type||"NumberLiteral"===t.type||"NullLiteral"===t.type||"UndefinedLiteral"===t.type}const rr={close:!1,open:!1};var nr=new class{pos(t,e){return{line:t,column:e}}blockItself({body:t,blockParams:e,chained:r=!1,loc:n}){return{type:"Block",body:t||[],blockParams:e||[],chained:r,loc:n}}template({body:t,blockParams:e,loc:r}){return{type:"Template",body:t||[],blockParams:e||[],loc:r}}mustache({path:t,params:e,hash:r,trusting:n,loc:s,strip:a=rr}){return{type:"MustacheStatement",path:t,params:e,hash:r,escaped:!n,trusting:n,loc:s,strip:a||{open:!1,close:!1}}}block({path:t,params:e,hash:r,defaultBlock:n,elseBlock:s=null,loc:a,openStrip:i=rr,inverseStrip:o=rr,closeStrip:l=rr}){return{type:"BlockStatement",path:t,params:e,hash:r,program:n,inverse:s,loc:a,openStrip:i,inverseStrip:o,closeStrip:l}}comment(t,e){return{type:"CommentStatement",value:t,loc:e}}mustacheComment(t,e){return{type:"MustacheCommentStatement",value:t,loc:e}}concat(t,e){return{type:"ConcatStatement",parts:t,loc:e}}element({tag:t,selfClosing:e,attrs:r,blockParams:n,modifiers:s,comments:a,children:i,loc:o}){return{type:"ElementNode",tag:t,selfClosing:e,attributes:r||[],blockParams:n||[],modifiers:s||[],comments:a||[],children:i||[],loc:o}}elementModifier({path:t,params:e,hash:r,loc:n}){return{type:"ElementModifierStatement",path:t,params:e,hash:r,loc:n}}attr({name:t,value:e,loc:r}){return{type:"AttrNode",name:t,value:e,loc:r}}text({chars:t,loc:e}){return{type:"TextNode",chars:t,loc:e}}sexpr({path:t,params:e,hash:r,loc:n}){return{type:"SubExpression",path:t,params:e,hash:r,loc:n}}path({head:t,tail:e,loc:r}){let{original:n,parts:s}=function(t){switch(t.type){case"AtHead":return{original:t.name,parts:[t.name]};case"ThisHead":return{original:"this",parts:[]};case"VarHead":return{original:t.name,parts:[t.name]}}}(t),a=[...n,...[...s,...e]].join(".");return new G(a,t,e,r)}head(t,e){return"@"===t[0]?this.atName(t,e):"this"===t?this.this(e):this.var(t,e)}this(t){return{type:"ThisHead",loc:t}}atName(t,e){return{type:"AtHead",name:t,loc:e}}var(t,e){return{type:"VarHead",name:t,loc:e}}hash(t,e){return{type:"Hash",pairs:t||[],loc:e}}pair({key:t,value:e,loc:r}){return{type:"HashPair",key:t,value:e,loc:r}}literal({type:t,value:e,loc:r}){return{type:t,value:e,original:e,loc:r}}undefined(){return this.literal({type:"UndefinedLiteral",value:void 0})}null(){return this.literal({type:"NullLiteral",value:null})}string(t,e){return this.literal({type:"StringLiteral",value:t,loc:e})}boolean(t,e){return this.literal({type:"BooleanLiteral",value:t,loc:e})}number(t,e){return this.literal({type:"NumberLiteral",value:t,loc:e})}};function sr(t,e){let r=t.PathExpression(e.path),n=e.params?e.params.map((e=>t.acceptNode(e))):[],s=n.length>0?n[n.length-1].loc:r.loc;return{path:r,params:n,hash:e.hash?t.Hash(e.hash):{type:"Hash",pairs:[],loc:t.source.spanFor(s).collapse("end")}}}function ar(t,e){let{path:r,params:n,hash:s,loc:a}=e;if(er(r)){let n="{{".concat(function(t){return"UndefinedLiteral"===t.type?"undefined":JSON.stringify(t.value)}(r),"}}"),s="<".concat(t.name," ... ").concat(n," ...");throw new _e("In ".concat(s,", ").concat(n," is not a valid modifier"),e.loc)}let i=nr.elementModifier({path:r,params:n,hash:s,loc:a});t.modifiers.push(i)}class ir extends class extends class{constructor(t,e=new Te(Se),r="precompile"){this.elementStack=[],this.currentAttribute=null,this.currentNode=null,this.source=t,this.lines=t.source.split(/(?:\r\n?|\n)/g),this.tokenizer=new qe(this,e,r)}offset(){let{line:t,column:e}=this.tokenizer;return this.source.offsetFor(t,e)}pos({line:t,column:e}){return this.source.offsetFor(t,e)}finish(t){return o({},t,{loc:t.loc.until(this.offset())})}get currentAttr(){return this.currentAttribute}get currentTag(){return this.currentNode}get currentStartTag(){return this.currentNode}get currentEndTag(){return this.currentNode}get currentComment(){return this.currentNode}get currentData(){return this.currentNode}acceptTemplate(t){return this[t.type](t)}acceptNode(t){return this[t.type](t)}currentElement(){return this.elementStack[this.elementStack.length-1]}sourceForNode(t,e){let r,n,s,a=t.loc.start.line-1,i=a-1,o=t.loc.start.column,l=[];for(e?(n=e.loc.end.line-1,s=e.loc.end.column):(n=t.loc.end.line-1,s=t.loc.end.column);i<n;)i++,r=this.lines[i],i===a?a===n?l.push(r.slice(o,s)):l.push(r.slice(o)):i===n?l.push(r.slice(0,s)):l.push(r);return l.join("\n")}}{get isTopLevel(){return 0===this.elementStack.length}Program(t){let e,r=[];e=this.isTopLevel?nr.template({body:r,blockParams:t.blockParams,loc:this.source.spanFor(t.loc)}):nr.blockItself({body:r,blockParams:t.blockParams,chained:t.chained,loc:this.source.spanFor(t.loc)});let n,s=t.body.length;if(this.elementStack.push(e),0===s)return this.elementStack.pop();for(n=0;n<s;n++)this.acceptNode(t.body[n]);let a=this.elementStack.pop();if(a!==e){let t=a;throw new _e("Unclosed element `".concat(t.tag,"`"),t.loc)}return e}BlockStatement(t){if("comment"===this.tokenizer.state)return void this.appendToCommentData(this.sourceForNode(t));if("data"!==this.tokenizer.state&&"beforeData"!==this.tokenizer.state)throw new _e("A block may only be used inside an HTML element or another block.",this.source.spanFor(t.loc));let{path:e,params:r,hash:n}=sr(this,t);t.program.loc||(t.program.loc=m),t.inverse&&!t.inverse.loc&&(t.inverse.loc=m);let s=this.Program(t.program),a=t.inverse?this.Program(t.inverse):null,i=nr.block({path:e,params:r,hash:n,defaultBlock:s,elseBlock:a,loc:this.source.spanFor(t.loc),openStrip:t.openStrip,inverseStrip:t.inverseStrip,closeStrip:t.closeStrip});tr(this.currentElement(),i)}MustacheStatement(t){let e,{tokenizer:r}=this;if("comment"===r.state)return void this.appendToCommentData(this.sourceForNode(t));let{escaped:n,loc:s,strip:a}=t;if(er(t.path))e=nr.mustache({path:this.acceptNode(t.path),params:[],hash:nr.hash([],this.source.spanFor(t.path.loc).collapse("end")),trusting:!n,loc:this.source.spanFor(s),strip:a});else{let{path:r,params:i,hash:o}=sr(this,t);e=nr.mustache({path:r,params:i,hash:o,trusting:!n,loc:this.source.spanFor(s),strip:a})}switch(r.state){case"tagOpen":case"tagName":throw new _e("Cannot use mustaches in an elements tagname",e.loc);case"beforeAttributeName":ar(this.currentStartTag,e);break;case"attributeName":case"afterAttributeName":this.beginAttributeValue(!1),this.finishAttributeValue(),ar(this.currentStartTag,e),r.transitionTo("beforeAttributeName");break;case"afterAttributeValueQuoted":ar(this.currentStartTag,e),r.transitionTo("beforeAttributeName");break;case"beforeAttributeValue":this.beginAttributeValue(!1),this.appendDynamicAttributeValuePart(e),r.transitionTo("attributeValueUnquoted");break;case"attributeValueDoubleQuoted":case"attributeValueSingleQuoted":case"attributeValueUnquoted":this.appendDynamicAttributeValuePart(e);break;default:tr(this.currentElement(),e)}return e}appendDynamicAttributeValuePart(t){this.finalizeTextPart();let e=this.currentAttr;e.isDynamic=!0,e.parts.push(t)}finalizeTextPart(){let t=this.currentAttr.currentPart;null!==t&&(this.currentAttr.parts.push(t),this.startTextPart())}startTextPart(){this.currentAttr.currentPart=null}ContentStatement(t){!function(t,e){let r=e.loc.start.line,n=e.loc.start.column,s=function(t,e){if(""===e)return{lines:t.split("\n").length-1,columns:0};let r=t.split(e)[0].split(/\n/),n=r.length-1;return{lines:n,columns:r[n].length}}(e.original,e.value);r+=s.lines,s.lines?n=s.columns:n+=s.columns;t.line=r,t.column=n}(this.tokenizer,t),this.tokenizer.tokenizePart(t.value),this.tokenizer.flushData()}CommentStatement(t){let{tokenizer:e}=this;if("comment"===e.state)return this.appendToCommentData(this.sourceForNode(t)),null;let{value:r,loc:n}=t,s=nr.mustacheComment(r,this.source.spanFor(n));switch(e.state){case"beforeAttributeName":this.currentStartTag.comments.push(s);break;case"beforeData":case"data":tr(this.currentElement(),s);break;default:throw new _e("Using a Handlebars comment when in the `".concat(e.state,"` state is not supported"),this.source.spanFor(t.loc))}return s}PartialStatement(t){throw new _e("Handlebars partials are not supported",this.source.spanFor(t.loc))}PartialBlockStatement(t){throw new _e("Handlebars partial blocks are not supported",this.source.spanFor(t.loc))}Decorator(t){throw new _e("Handlebars decorators are not supported",this.source.spanFor(t.loc))}DecoratorBlock(t){throw new _e("Handlebars decorator blocks are not supported",this.source.spanFor(t.loc))}SubExpression(t){let{path:e,params:r,hash:n}=sr(this,t);return nr.sexpr({path:e,params:r,hash:n,loc:this.source.spanFor(t.loc)})}PathExpression(t){let e,{original:r}=t;if(-1!==r.indexOf("/")){if("./"===r.slice(0,2))throw new _e('Using "./" is not supported in Glimmer and unnecessary',this.source.spanFor(t.loc));if("../"===r.slice(0,3))throw new _e('Changing context using "../" is not supported in Glimmer',this.source.spanFor(t.loc));if(-1!==r.indexOf("."))throw new _e("Mixing '.' and '/' in paths is not supported in Glimmer; use only '.' to separate property paths",this.source.spanFor(t.loc));e=[t.parts.join("/")]}else{if("."===r)throw new _e("'.' is not a supported path in Glimmer; check for a path with a trailing '.'",this.source.spanFor(t.loc));e=t.parts}let n,s=!1;if(r.match(/^this(\..+)?$/)&&(s=!0),s)n={type:"ThisHead",loc:{start:t.loc.start,end:{line:t.loc.start.line,column:t.loc.start.column+4}}};else if(t.data){let r=e.shift();if(void 0===r)throw new _e("Attempted to parse a path expression, but it was not valid. Paths beginning with @ must start with a-z.",this.source.spanFor(t.loc));n={type:"AtHead",name:"@".concat(r),loc:{start:t.loc.start,end:{line:t.loc.start.line,column:t.loc.start.column+r.length+1}}}}else{let r=e.shift();if(void 0===r)throw new _e("Attempted to parse a path expression, but it was not valid. Paths must start with a-z or A-Z.",this.source.spanFor(t.loc));n={type:"VarHead",name:r,loc:{start:t.loc.start,end:{line:t.loc.start.line,column:t.loc.start.column+r.length}}}}return new G(t.original,n,e,this.source.spanFor(t.loc))}Hash(t){let e=[];for(let r=0;r<t.pairs.length;r++){let n=t.pairs[r];e.push(nr.pair({key:n.key,value:this.acceptNode(n.value),loc:this.source.spanFor(n.loc)}))}return nr.hash(e,this.source.spanFor(t.loc))}StringLiteral(t){return nr.literal({type:"StringLiteral",value:t.value,loc:t.loc})}BooleanLiteral(t){return nr.literal({type:"BooleanLiteral",value:t.value,loc:t.loc})}NumberLiteral(t){return nr.literal({type:"NumberLiteral",value:t.value,loc:t.loc})}UndefinedLiteral(t){return nr.literal({type:"UndefinedLiteral",value:void 0,loc:t.loc})}NullLiteral(t){return nr.literal({type:"NullLiteral",value:null,loc:t.loc})}}{constructor(){super(...arguments),this.tagOpenLine=0,this.tagOpenColumn=0}reset(){this.currentNode=null}beginComment(){this.currentNode=nr.comment("",this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn))}appendToCommentData(t){this.currentComment.value+=t}finishComment(){tr(this.currentElement(),this.finish(this.currentComment))}beginData(){this.currentNode=nr.text({chars:"",loc:this.offset().collapsed()})}appendToData(t){this.currentData.chars+=t}finishData(){this.currentData.loc=this.currentData.loc.withEnd(this.offset()),tr(this.currentElement(),this.currentData)}tagOpen(){this.tagOpenLine=this.tokenizer.line,this.tagOpenColumn=this.tokenizer.column}beginStartTag(){this.currentNode={type:"StartTag",name:"",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}beginEndTag(){this.currentNode={type:"EndTag",name:"",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}finishTag(){let t=this.finish(this.currentTag);"StartTag"===t.type?(this.finishStartTag(),(Xt[t.name]||t.selfClosing)&&this.finishEndTag(!0)):"EndTag"===t.type&&this.finishEndTag(!1)}finishStartTag(){let{name:t,attributes:e,modifiers:r,comments:n,selfClosing:s,loc:a}=this.finish(this.currentStartTag),i=nr.element({tag:t,selfClosing:s,attrs:e,modifiers:r,comments:n,children:[],blockParams:[],loc:a});this.elementStack.push(i)}finishEndTag(t){let e=this.finish(this.currentTag),r=this.elementStack.pop(),n=this.currentElement();this.validateEndTag(e,r,t),r.loc=r.loc.withEnd(this.offset()),Xe(r),tr(n,r)}markTagAsSelfClosing(){this.currentTag.selfClosing=!0}appendToTagName(t){this.currentTag.name+=t}beginAttribute(){let t=this.offset();this.currentAttribute={name:"",parts:[],currentPart:null,isQuoted:!1,isDynamic:!1,start:t,valueSpan:t.collapsed()}}appendToAttributeName(t){this.currentAttr.name+=t}beginAttributeValue(t){this.currentAttr.isQuoted=t,this.startTextPart(),this.currentAttr.valueSpan=this.offset().collapsed()}appendToAttributeValue(t){let e=this.currentAttr.parts,r=e[e.length-1],n=this.currentAttr.currentPart;if(n)n.chars+=t,n.loc=n.loc.withEnd(this.offset());else{let e=this.offset();e="\n"===t?r?r.loc.getEnd():this.currentAttr.valueSpan.getStart():e.move(-1),this.currentAttr.currentPart=nr.text({chars:t,loc:e.collapsed()})}}finishAttributeValue(){this.finalizeTextPart();let t=this.currentTag,e=this.offset();if("EndTag"===t.type)throw new _e("Invalid end tag: closing tag must not have attributes",this.source.spanFor({start:t.loc.toJSON(),end:e.toJSON()}));let{name:r,parts:n,start:s,isQuoted:a,isDynamic:i,valueSpan:o}=this.currentAttr,l=this.assembleAttributeValue(n,a,i,s.until(e));l.loc=o.withEnd(e);let c=nr.attr({name:r,value:l,loc:s.until(e)});this.currentStartTag.attributes.push(c)}reportSyntaxError(t){throw new _e(t,this.offset().collapsed())}assembleConcatenatedValue(t){for(let e=0;e<t.length;e++){let r=t[e];if("MustacheStatement"!==r.type&&"TextNode"!==r.type)throw new _e("Unsupported node in quoted attribute value: "+r.type,r.loc)}h(t,"the concatenation parts of an element should not be empty");let e=t[0],r=t[t.length-1];return nr.concat(t,this.source.spanFor(e.loc).extend(this.source.spanFor(r.loc)))}validateEndTag(t,e,r){let n;if(Xt[t.name]&&!r?n="<".concat(t.name,"> elements do not need end tags. You should remove it"):void 0===e.tag?n="Closing tag </".concat(t.name,"> without an open tag"):e.tag!==t.name&&(n="Closing tag </".concat(t.name,"> did not match last open tag <").concat(e.tag,"> (on line ").concat(e.loc.startPosition.line,")")),n)throw new _e(n,t.loc)}assembleAttributeValue(t,e,r,n){if(r){if(e)return this.assembleConcatenatedValue(t);if(1===t.length||2===t.length&&"TextNode"===t[1].type&&"/"===t[1].chars)return t[0];throw new _e("An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'",n)}return t.length>0?t[0]:nr.text({chars:"",loc:n})}}const or={parse:lr,builders:st,print:Oe,traverse:Je,Walker:Qe};function lr(t,e={}){var r,n;let s,a,i=e.mode||"precompile";"string"==typeof t?(s=new j(t,null===(r=e.meta)||void 0===r?void 0:r.moduleName),a="codemod"===i?ve(t,e.parseOptions):we(t,e.parseOptions)):t instanceof j?(s=t,a="codemod"===i?ve(t.source,e.parseOptions):we(t.source,e.parseOptions)):(s=new j("",null===(n=e.meta)||void 0===n?void 0:n.moduleName),a=t);let l=void 0;"codemod"===i&&(l=new Te({}));let c=U.forCharPositions(s,0,s.source.length);a.loc={source:"(program)",start:c.startPosition,end:c.endPosition};let h=new ir(s,l,i).acceptTemplate(a);if(e&&e.plugins&&e.plugins.ast)for(let t=0,r=e.plugins.ast.length;t<r;t++){Je(h,(0,e.plugins.ast[t])(o({},e,{syntax:or},{plugins:void 0})).visitor)}return h}var cr,hr=function(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r},ur=function(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)};class pr{static top(){return new dr}child(t){let e=t.map((t=>this.allocate(t)));return new mr(this,t,e)}}class dr extends pr{constructor(){super(...arguments),this.symbols=[],this.upvars=[],this.size=1,this.named=a(),this.blocks=a(),cr.set(this,!1)}setHasEval(){hr(this,cr,!0)}get hasEval(){return ur(this,cr)}has(t){return!1}get(t){throw function(t="unreachable"){return new Error(t)}()}getLocalsMap(){return a()}getEvalInfo(){let t=this.getLocalsMap();return Object.keys(t).map((e=>t[e]))}allocateFree(t){let e=this.upvars.indexOf(t);return-1!==e||(e=this.upvars.length,this.upvars.push(t)),e}allocateNamed(t){let e=this.named[t];return e||(e=this.named[t]=this.allocate(t)),e}allocateBlock(t){"inverse"===t&&(t="else");let e=this.blocks[t];return e||(e=this.blocks[t]=this.allocate("&".concat(t))),e}allocate(t){return this.symbols.push(t),this.size++}}cr=new WeakMap;class mr extends pr{constructor(t,e,r){super(),this.parent=t,this.symbols=e,this.slots=r}get locals(){return this.symbols}has(t){return-1!==this.symbols.indexOf(t)||this.parent.has(t)}get(t){let e=this.symbols.indexOf(t);return-1===e?this.parent.get(t):this.slots[e]}getLocalsMap(){let t=this.parent.getLocalsMap();return this.symbols.forEach((e=>t[e]=this.get(e))),t}getEvalInfo(){let t=this.getLocalsMap();return Object.keys(t).map((e=>t[e]))}setHasEval(){this.parent.setHasEval()}allocateFree(t){return this.parent.allocateFree(t)}allocateNamed(t){return this.parent.allocateNamed(t)}allocateBlock(t){return this.parent.allocateBlock(t)}allocate(t){return this.parent.allocate(t)}}var fr=function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(t);s<n.length;s++)e.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(t,n[s])&&(r[n[s]]=t[n[s]])}return r};class gr{template(t,e,r){return new Ft({table:t,body:e,loc:r})}block(t,e,r){return new zt({scope:t,body:e,loc:r})}namedBlock(t,e,r){return new jt({name:t,block:e,attrs:[],componentArgs:[],modifiers:[],loc:r})}simpleNamedBlock(t,e,r){return new br({selfClosing:!1,attrs:[],componentArgs:[],modifiers:[],comments:[]}).named(t,e,r)}slice(t,e){return new g({loc:e,chars:t})}args(t,e,r){return new dt({loc:r,positional:t,named:e})}positional(t,e){return new mt({loc:e,exprs:t})}namedArgument(t,e){return new gt({name:t,value:e})}named(t,e){return new ft({loc:e,entries:t})}attr({name:t,value:e,trusting:r},n){return new bt({loc:n,name:t,value:e,trusting:r})}splatAttr(t,e){return new yt({symbol:t,loc:e})}arg({name:t,value:e,trusting:r},n){return new kt({name:t,value:e,trusting:r,loc:n})}path(t,e,r){return new Dt({loc:r,ref:t,tail:e})}self(t){return new Vt({loc:t})}at(t,e,r){return new It({loc:r,name:new g({loc:r,chars:t}),symbol:e})}freeVar({name:t,context:e,symbol:r,loc:n}){return new Mt({name:t,resolution:e,symbol:r,loc:n})}localVar(t,e,r){return new Ut({loc:r,name:t,symbol:e})}sexp(t,e){return new Ht({loc:e,callee:t.callee,args:t.args})}interpolate(t,e){return h(t),new Rt({loc:e,parts:t})}literal(t,e){return new _t({loc:e,value:t})}append({table:t,trusting:e,value:r},n){return new Lt({table:t,trusting:e,value:r,loc:n})}modifier({callee:t,args:e},r){return new vt({loc:r,callee:t,args:e})}namedBlocks(t,e){return new $t({loc:e,blocks:t})}blockStatement(t,e){var{symbols:r,program:n,inverse:s=null}=t,a=fr(t,["symbols","program","inverse"]);let i=n.loc,o=[this.namedBlock(g.synthetic("default"),n,n.loc)];return s&&(i=i.extend(s.loc),o.push(this.namedBlock(g.synthetic("else"),s,s.loc))),new Bt({loc:e,blocks:this.namedBlocks(o,i),callee:a.callee,args:a.args})}element(t){return new br(t)}}class br{constructor(t){this.base=t,this.builder=new gr}simple(t,e,r){return new Ot(o({tag:t,body:e,componentArgs:[],loc:r},this.base))}named(t,e,r){return new jt(o({name:t,block:e,componentArgs:[],loc:r},this.base))}selfClosingComponent(t,e){return new qt(o({loc:e,callee:t,blocks:new $t({blocks:[],loc:e.sliceEndChars({skipEnd:1,chars:1})})},this.base))}componentWithDefaultBlock(t,e,r,n){let s=this.builder.block(r,e,n),a=this.builder.namedBlock(g.synthetic("default"),s,n);return new qt(o({loc:n,callee:t,blocks:this.builder.namedBlocks([a],a.loc)},this.base))}componentWithNamedBlocks(t,e,r){return new qt(o({loc:r,callee:t,blocks:this.builder.namedBlocks(e,xt.range(e))},this.base))}}function yr(t){return Sr(t)?ct.namespaced("Helper"):null}function kr(t){return Sr(t)?ct.namespaced("Modifier"):null}function vr(t){return Sr(t)?ct.namespaced("Component"):null}function wr(t){return Er(t)?ct.namespaced("Component"):null}function Sr(t){return Er(t.path)}function Er(t){return"PathExpression"===t.type&&"VarHead"===t.head.type&&0===t.tail.length}function xr(t){return t.params.length>0||t.hash.pairs.length>0}class Nr{constructor(t,e,r){this.source=t,this.options=e,this.table=r,this.builder=new gr}get strict(){return this.options.strictMode||!1}loc(t){return this.source.spanFor(t)}resolutionFor(t,e){if(this.strict)return{resolution:lt};if(this.isFreeVar(t)){let r=e(t);return null===r?{resolution:"error",path:Or(t),head:_r(t)}:{resolution:r}}return{resolution:lt}}isFreeVar(t){return"PathExpression"===t.type?"VarHead"===t.head.type&&!this.table.has(t.head.name):"PathExpression"===t.path.type&&this.isFreeVar(t.path)}hasBinding(t){return this.table.has(t)}child(t){return new Nr(this.source,this.options,this.table.child(t))}customizeComponentName(t){return this.options.customizeComponentName?this.options.customizeComponentName(t):t}}class Tr{constructor(t){this.block=t}normalize(t,e){switch(t.type){case"NullLiteral":case"BooleanLiteral":case"NumberLiteral":case"StringLiteral":case"UndefinedLiteral":return this.block.builder.literal(t.value,this.block.loc(t.loc));case"PathExpression":return this.path(t,e);case"SubExpression":{let e=this.block.resolutionFor(t,yr);if("error"===e.resolution)throw new _e("You attempted to invoke a path (`".concat(e.path,"`) but ").concat(e.head," was not in scope"),t.loc);return this.block.builder.sexp(this.callParts(t,e.resolution),this.block.loc(t.loc))}}}path(t,e){let r=[],n=this.block.loc(t.head.loc);for(let e of t.tail)n=n.sliceStartChars({chars:e.length,skipStart:1}),r.push(new g({loc:n,chars:e}));return this.block.builder.path(this.ref(t.head,e),r,this.block.loc(t.loc))}callParts(t,e){let{path:r,params:n,hash:s}=t,a=this.normalize(r,e),i=n.map((t=>this.normalize(t,ht))),o=xt.range(i,a.loc.collapse("end")),l=this.block.loc(s.loc),c=xt.range([o,l]),h=this.block.builder.positional(n.map((t=>this.normalize(t,ht))),o),u=this.block.builder.named(s.pairs.map((t=>this.namedArgument(t))),this.block.loc(s.loc));return{callee:a,args:this.block.builder.args(h,u,c)}}namedArgument(t){let e=this.block.loc(t.loc).sliceStartChars({chars:t.key.length});return this.block.builder.namedArgument(new g({chars:t.key,loc:e}),this.normalize(t.value,ht))}ref(t,e){let r=this.block.loc(t.loc);switch(t.type){case"ThisHead":return this.block.builder.self(r);case"AtHead":{let e=this.block.table.allocateNamed(t.name);return this.block.builder.at(t.name,e,r)}case"VarHead":if(this.block.hasBinding(t.name)){let e=this.block.table.get(t.name);return this.block.builder.localVar(t.name,e,r)}{let n=this.block.table.allocateFree(t.name);return this.block.builder.freeVar({name:t.name,context:this.block.strict?lt:e,symbol:n,loc:r})}}}}class Ar{constructor(t){this.block=t}normalize(t){switch(t.type){case"PartialStatement":throw new Error("Handlebars partial syntax ({{> ...}}) is not allowed in Glimmer");case"BlockStatement":return this.BlockStatement(t);case"ElementNode":return new Pr(this.block).ElementNode(t);case"MustacheStatement":return this.MustacheStatement(t);case"MustacheCommentStatement":return this.MustacheCommentStatement(t);case"CommentStatement":{let e=this.block.loc(t.loc);return new Ct({loc:e,text:e.slice({skipStart:4,skipEnd:3}).toSlice(t.value)})}case"TextNode":return new Pt({loc:this.block.loc(t.loc),chars:t.chars})}}MustacheCommentStatement(t){let e,r=this.block.loc(t.loc);return e="{{!--"===r.asString().slice(0,5)?r.slice({skipStart:5,skipEnd:4}):r.slice({skipStart:3,skipEnd:2}),new At({loc:r,text:e.toSlice(t.value)})}MustacheStatement(t){let{escaped:e}=t,r=this.block.loc(t.loc),n=this.expr.callParts({path:t.path,params:t.params,hash:t.hash},function(t){let e=Sr(t),r=xr(t);return e?ct.append({invoke:r}):r?lt:ct.fallback()}(t)),s=n.args.isEmpty()?n.callee:this.block.builder.sexp(n,r);return this.block.builder.append({table:this.block.table,trusting:!e,value:s},r)}BlockStatement(t){let{program:e,inverse:r}=t,n=this.block.loc(t.loc),s=this.block.resolutionFor(t,vr);if("error"===s.resolution)throw new _e("You attempted to invoke a path (`{{#".concat(s.path,"}}`) but ").concat(s.head," was not in scope"),n);let a=this.expr.callParts(t,s.resolution);return this.block.builder.blockStatement(o({symbols:this.block.table,program:this.Block(e),inverse:r?this.Block(r):null},a),n)}Block({body:t,loc:e,blockParams:r}){let n=this.block.child(r),s=new Ar(n);return new Br(this.block.loc(e),t.map((t=>s.normalize(t))),this.block).assertBlock(n.table)}get expr(){return new Tr(this.block)}}class Pr{constructor(t){this.ctx=t}ElementNode(t){let{tag:e,selfClosing:r,comments:n}=t,s=this.ctx.loc(t.loc),[a,...i]=e.split("."),o=this.classifyTag(a,i,t.loc),l=t.attributes.filter((t=>"@"!==t.name[0])).map((t=>this.attr(t))),c=t.attributes.filter((t=>"@"===t.name[0])).map((t=>this.arg(t))),h=t.modifiers.map((t=>this.modifier(t))),u=this.ctx.child(t.blockParams),p=new Ar(u),d=t.children.map((t=>p.normalize(t))),m=this.ctx.builder.element({selfClosing:r,attrs:l,componentArgs:c,modifiers:h,comments:n.map((t=>new Ar(this.ctx).MustacheCommentStatement(t)))}),f=new qr(m,s,d,this.ctx),g=this.ctx.loc(t.loc).sliceStartChars({chars:e.length,skipStart:1});if("ElementHead"===o)return":"===e[0]?f.assertNamedBlock(g.slice({skipStart:1}).toSlice(e.slice(1)),u.table):f.assertElement(g.toSlice(e),t.blockParams.length>0);if(t.selfClosing)return m.selfClosingComponent(o,s);{let r=f.assertComponent(e,u.table,t.blockParams.length>0);return m.componentWithNamedBlocks(o,r,s)}}modifier(t){let e=this.ctx.resolutionFor(t,kr);if("error"===e.resolution)throw new _e("You attempted to invoke a path (`{{#".concat(e.path,"}}`) but ").concat(e.head," was not in scope"),t.loc);let r=this.expr.callParts(t,e.resolution);return this.ctx.builder.modifier(r,this.ctx.loc(t.loc))}mustacheAttr(t){let e=this.ctx.builder.sexp(this.expr.callParts(t,function(t){let e=Sr(t),r=xr(t);return e?r?ct.namespaced("Helper"):ct.attr():r?lt:ct.fallback()}(t)),this.ctx.loc(t.loc));return e.args.isEmpty()?e.callee:e}attrPart(t){switch(t.type){case"MustacheStatement":return{expr:this.mustacheAttr(t),trusting:!t.escaped};case"TextNode":return{expr:this.ctx.builder.literal(t.chars,this.ctx.loc(t.loc)),trusting:!0}}}attrValue(t){switch(t.type){case"ConcatStatement":{let e=t.parts.map((t=>this.attrPart(t).expr));return{expr:this.ctx.builder.interpolate(e,this.ctx.loc(t.loc)),trusting:!1}}default:return this.attrPart(t)}}attr(t){if("...attributes"===t.name)return this.ctx.builder.splatAttr(this.ctx.table.allocateBlock("attrs"),this.ctx.loc(t.loc));let e=this.ctx.loc(t.loc),r=e.sliceStartChars({chars:t.name.length}).toSlice(t.name),n=this.attrValue(t.value);return this.ctx.builder.attr({name:r,value:n.expr,trusting:n.trusting},e)}arg(t){let e=this.ctx.loc(t.loc),r=e.sliceStartChars({chars:t.name.length}).toSlice(t.name),n=this.attrValue(t.value);return this.ctx.builder.arg({name:r,value:n.expr,trusting:n.trusting},e)}classifyTag(t,e,r){let n=(s=t)[0]===s[0].toUpperCase()&&s[0]!==s[0].toLowerCase();var s;let a=this.ctx.hasBinding(t),i="@"===t[0]||"this"===t||a||n,o=r.sliceStartChars({skipStart:1,chars:t.length}),l=e.reduce(((t,e)=>t+1+e.length),0),c=o.getEnd().move(l),h=o.withEnd(c);if(i){this.ctx.strict||!n||a||(t=this.ctx.customizeComponentName(t));let s=nr.path({head:nr.head(t,o),tail:e,loc:h}),i=this.ctx.resolutionFor(s,wr);if("error"===i.resolution)throw new _e("You attempted to invoke a path (`<".concat(i.path,">`) but ").concat(i.head," was not in scope"),r);return new Tr(this.ctx).normalize(s,i.resolution)}if(e.length>0)throw new _e("You used ".concat(t,".").concat(e.join(".")," as a tag name, but ").concat(t," is not in scope"),r);return"ElementHead"}get expr(){return new Tr(this.ctx)}}class Cr{constructor(t,e,r){this.loc=t,this.children=e,this.block=r,this.namedBlocks=e.filter((t=>t instanceof jt)),this.hasSemanticContent=Boolean(e.filter((t=>{if(t instanceof jt)return!1;switch(t.type){case"GlimmerComment":case"HtmlComment":return!1;case"HtmlText":return!/^\s*$/.exec(t.chars);default:return!0}})).length),this.nonBlockChildren=e.filter((t=>!(t instanceof jt)))}}class Lr extends Cr{assertTemplate(t){if(c(this.namedBlocks))throw new _e("Unexpected named block at the top-level of a template",this.loc);return this.block.builder.template(t,this.nonBlockChildren,this.block.loc(this.loc))}}class Br extends Cr{assertBlock(t){if(c(this.namedBlocks))throw new _e("Unexpected named block nested in a normal block",this.loc);return this.block.builder.block(t,this.nonBlockChildren,this.loc)}}class qr extends Cr{constructor(t,e,r,n){super(e,r,n),this.el=t}assertNamedBlock(t,e){if(this.el.base.selfClosing)throw new _e("<:".concat(t,"> is not a valid named block: named blocks cannot be self-closing"),this.loc);if(c(this.namedBlocks))throw new _e("Unexpected named block inside <:".concat(t,"> named block: named blocks cannot contain nested named blocks"),this.loc);if((r=t.chars)[0]!==r[0].toLowerCase()||r[0]===r[0].toUpperCase())throw new _e("<:".concat(t,"> is not a valid named block: `").concat(t,"` is uppercase, and named blocks must be lowercase"),this.loc);var r;let n=xt.range(this.nonBlockChildren,this.loc);return this.block.builder.namedBlock(t,this.block.builder.block(e,this.nonBlockChildren,n),this.loc)}assertElement(t,e){if(e)throw new _e("Unexpected block params in <".concat(t,">: simple elements cannot have block params"),this.loc);if(c(this.namedBlocks)){let e=this.namedBlocks.map((t=>t.name));if(1===e.length)throw new _e("Syntax Error: Unexpected named block <:foo> inside <".concat(t,"> HTML element"),this.loc);{let r=e.map((t=>"<:".concat(t.chars,">"))).join(", ");throw new _e("Syntax Error: Unexpected named blocks inside <".concat(t,"> HTML element (").concat(r,")"),this.loc)}}return this.el.simple(t,this.nonBlockChildren,this.loc)}assertComponent(t,e,r){if(c(this.namedBlocks)&&this.hasSemanticContent)throw new _e("Unexpected content inside <".concat(t,"> component invocation: when using named blocks, the tag cannot contain other content"),this.loc);if(c(this.namedBlocks)){if(r)throw new _e("Unexpected block params list on <".concat(t,"> component invocation: when passing named blocks, the invocation tag cannot take block params"),this.loc);return this.namedBlocks}return[this.block.builder.namedBlock(g.synthetic("default"),this.block.builder.block(e,this.nonBlockChildren,this.loc),this.loc)]}}function Or(t){return"PathExpression"!==t.type&&"PathExpression"===t.path.type?Or(t.path):new ee({entityEncoding:"raw"}).print(t)}function _r(t){if("PathExpression"!==t.type)return"PathExpression"===t.path.type?_r(t.path):new ee({entityEncoding:"raw"}).print(t);switch(t.head.type){case"AtHead":case"VarHead":return t.head.name;case"ThisHead":return"this"}}var Dr=Object.freeze({__proto__:null,ASTv1:it,ASTv2:Gt,AST:it,Source:j,builders:st,normalize:function(t,e={}){let r=lr(t,e),n=o({strictMode:!1},e),s=pr.top(),a=new Nr(t,n,s),i=new Ar(a);return new Lr(a.loc(r.loc),r.body.map((t=>i.normalize(t))),a).assertTemplate(s)},SymbolTable:pr,BlockSymbolTable:mr,ProgramSymbolTable:dr,GlimmerSyntaxError:_e,preprocess:lr,print:Oe,Walker:Qe,traverse:Je,cannotRemoveNode:Re,cannotReplaceNode:Ve,WalkerPath:Ue,SourceSlice:g,SourceSpan:U,SpanList:xt,maybeLoc:function(t,e){return Tt(t)?Nt(t):e},loc:Nt,hasSpan:Tt,node:ut,Path:Qe});const Hr=r.default,{locStart:Rr,locEnd:Vr}=s;function Ir(){return{name:"addBackslash",visitor:{TextNode(t){t.chars=t.chars.replace(/\\/,"\\\\")}}}}function Ur(t){const e=new Hr(t),r=({line:t,column:r})=>e.indexForLocation({line:t-1,column:r});return()=>({name:"addOffset",visitor:{All(t){const{start:e,end:n}=t.loc;e.offset=r(e),n.offset=r(n)}}})}var Mr={parsers:{glimmer:{parse:function(t){const{preprocess:e}=Dr;let r;try{r=e(t,{mode:"codemod",plugins:{ast:[Ir,Ur(t)]}})}catch(t){const e=function(t){const{location:e,hash:r}=t;if(e){const{start:t,end:r}=e;return"number"!=typeof r.line?{start:t}:e}if(r){const{loc:{last_line:t,last_column:e}}=r;return{start:{line:t,column:e+1}}}}(t);if(e)throw n(t.message,e);throw t}return r},astFormat:"glimmer",locStart:Rr,locEnd:Vr}}};export default Mr;