toilscript 0.1.46 → 0.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,7 +27,7 @@ import { __toildbResolve } from "toildb";
27
27
  `)),this.injectTopLevelStatements(e,"__toilRest.register((__q: __toilReq): __toilResp | null => new "+n+`().__tryRoute(__q));
28
28
  `)}injectService(e){let t=e.name.text,n=e.members,s=this.hasDecoratorKind(e.decorators,28);for(let p=0,_=n.length;p<_;++p){let f=n[p];if(f.kind!=59||f.name.text!="constructor")continue;let d=f.signature.parameters;for(let h=0,g=d.length;h<g;++h)if(d[h].initializer==null){this.error(102,f.name.range,"@service '"+t+"' must be default-constructible (RPC creates a fresh instance per call); give every constructor parameter a default or use field initializers");break}}let a="",l="";for(let p=0,_=n.length;p<_;++p){let f=n[p];if(f.kind!=59)continue;let d=f;if(!this.hasDecoratorKind(d.decorators,16))continue;let h=d.name.text;if(d.is(32)){this.error(102,d.name.range,"@remote is not valid on a static method ('"+t+"."+h+"'): an RPC call runs on a fresh instance");continue}if(d.is(512)||d.is(1024)){this.error(102,d.name.range,"@remote method '"+t+"."+h+"' cannot be private/protected: an RPC endpoint is a public network surface");continue}let g=_s(t+"."+h).toString(),m=d.signature.parameters,T="",S="";for(let R=0,C=m.length;R<C;++R){let D="__a"+R.toString();T+=this.rpcDecodeArg(m[R].type,D,R),S+=(R>0?",":"")+D}let E=this.ratelimitGuardOf(d);(s||this.hasDecoratorKind(d.decorators,28))&&(E+='if(!AuthService.hasSession()){return __toilRpcResp.text("unauthorized\\n",401);}');let F=d.signature.returnType,k=E+"const __r=new DataReader(__body);"+T;this.rpcIsVoid(F)?k+="this."+h+"("+S+");return __toilRpcResp.bytes(new Uint8Array(0));":k+="const __res=this."+h+"("+S+");const __w=new DataWriter();"+this.rpcEncodeResult(F,"__res")+"return __toilRpcResp.bytes(__w.toBytes());",a+="if(__id=="+g+"){"+k+"}",l+="__toilRpc.register("+g+",(__b: Uint8Array): __toilRpcResp => new "+t+"().__rpcDispatch("+g+`,__b));
29
29
  `}if(a.length==0)return;this.injectClassMember(e,"__rpcDispatch(__id: u32, __body: Uint8Array): __toilRpcResp{"+a+'return __toilRpcResp.internalError("rpc dispatch");}');let o=this.restRuntimePath(e),u=e.range.source.normalizedPath;this.rpcImportedSources.has(u)||(this.rpcImportedSources.add(u),this.injectTopLevelStatements(e,"import { Rpc as __toilRpc, Response as __toilRpcResp } from "+JSON.stringify(o)+`;
30
- `)),this.injectTopLevelStatements(e,l)}rpcIsVoid(e){return e!=null&&e instanceof ae&&e.name.identifier.text=="void"}rpcDecodeArg(e,t,n){if(e==null||!(e instanceof ae))return"const "+t+"=0;";let s=e,a=s.name.identifier.text,l=s.typeArguments;if(a=="Array"&&l!=null&&l.length==1&&l[0]instanceof ae){let o=l[0].name.identifier.text,u="__c"+n.toString(),p="__j"+n.toString(),_=o=="Uint8Array"?"__r.readBytes()":_o(o);return"const "+t+"=new Array<"+o+">();{const "+u+"=__r.readU32();for(let "+p+":u32=0;"+p+"<"+u+"&&__r.ok;++"+p+"){"+t+".push("+_+");}}"}return a=="Uint8Array"?"const "+t+"=__r.readBytes();":"const "+t+"="+_o(a)+";"}rpcEncodeResult(e,t){if(e==null||!(e instanceof ae))return"";let n=e,s=n.name.identifier.text;if(s=="void")return"";let a=n.typeArguments;if(s=="Array"&&a!=null&&a.length==1&&a[0]instanceof ae){let l=a[0].name.identifier.text,o=l=="Uint8Array"?"__w.writeBytes("+t+"[__k]);":po(l,t+"[__k]");return"__w.writeU32(<u32>"+t+".length);for(let __k=0,__m="+t+".length;__k<__m;++__k){"+o+"}"}return s=="Uint8Array"?"__w.writeBytes("+t+");":po(s,t)}weaveRpc(){if(this.projectHasStream())return;this.checkRpcSurfaceCollisions();let e=this.backlog.length;for(let t=0,n=this.sources.length;t<n;++t){let s=this.sources[t];if(s.isLibrary)continue;let a=s.statements;for(let l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind==52){let p=u;this.hasDecoratorKind(p.decorators,17)&&this.injectService(p)}else if(u.kind==56){let p=u;this.hasDecoratorKind(p.decorators,16)&&this.injectRemote(p)}}}this.backlog.length>e&&(this.backlog.length=e)}checkRpcSurfaceCollisions(){let e=new Set;e.add("REST"),e.add("Stream");let t=new Set,n=new Map;for(let s=0,a=this.sources.length;s<a;++s){let l=this.sources[s];if(l.isLibrary)continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind==52){let f=_,d=f.name.text,h=d.length?d.charAt(0).toLowerCase()+d.substring(1):d;if(this.hasDecoratorKind(f.decorators,17)){e.has(h)?this.error(102,f.name.range,"@service surface key '"+h+"' is already taken by another @service/@remote/REST/Stream; rename the service"):e.add(h);let g=f.members;for(let m=0,T=g.length;m<T;++m){let S=g[m];if(S.kind!=59)continue;let E=S;if(!this.hasDecoratorKind(E.decorators,16))continue;let F=d+"."+E.name.text,k=_s(F);n.has(k)?this.error(102,E.name.range,"@remote '"+F+"' has the same FNV method id as '"+n.get(k)+"'; rename one to avoid an RPC dispatch collision"):n.set(k,F)}}else this.hasDecoratorKind(f.decorators,18)&&(t.has(h)?this.error(102,f.name.range,"@rest controller key '"+h+"' under Server.REST is already taken (two controllers whose names differ only by first-letter case collide); rename one"):t.add(h))}else if(_.kind==56){let f=_;if(!this.hasDecoratorKind(f.decorators,16))continue;let d=f.name.text;e.has(d)?this.error(102,f.name.range,"free @remote '"+d+"' collides with another Server surface key (@service/@remote/REST/Stream); rename it"):e.add(d);let h=_s(d);n.has(h)?this.error(102,f.name.range,"@remote '"+d+"' has the same FNV method id as '"+n.get(h)+"'; rename one to avoid an RPC dispatch collision"):n.set(h,d)}}}}projectHasStream(){for(let e=0,t=this.sources.length;e<t;++e){let n=this.sources[e];if(n.isLibrary)continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind==52&&this.hasDecoratorKind(o.decorators,41))return!0}}return!1}injectRemote(e){let t=e.name.text;if(t=="REST"||t=="Stream"){this.error(102,e.name.range,"free @remote '"+t+"' collides with the reserved `Server."+t+"` surface; rename the function");return}let n=_s(t).toString(),s=e.signature.parameters,a="",l="";for(let h=0,g=s.length;h<g;++h){let m="__a"+h.toString();a+=this.rpcDecodeArg(s[h].type,m,h),l+=(h>0?",":"")+m}let o=this.ratelimitGuardOf(e);this.hasDecoratorKind(e.decorators,28)&&(o+='if(!AuthService.hasSession()){return __toilRpcResp.text("unauthorized\\n",401);}');let u=e.signature.returnType,p="__toilRpcFn_"+t,_=o+"const __r=new DataReader(__body);"+a;this.rpcIsVoid(u)?_+=t+"("+l+");return __toilRpcResp.bytes(new Uint8Array(0));":_+="const __res="+t+"("+l+");const __w=new DataWriter();"+this.rpcEncodeResult(u,"__res")+"return __toilRpcResp.bytes(__w.toBytes());";let f=this.restRuntimePath(e),d=e.range.source.normalizedPath;this.rpcImportedSources.has(d)||(this.rpcImportedSources.add(d),this.injectTopLevelStatements(e,"import { Rpc as __toilRpc, Response as __toilRpcResp } from "+JSON.stringify(f)+`;
30
+ `)),this.injectTopLevelStatements(e,l)}rpcIsVoid(e){return e!=null&&e instanceof ae&&e.name.identifier.text=="void"}rpcDecodeArg(e,t,n){if(e==null||!(e instanceof ae))return"const "+t+"=0;";let s=e,a=s.name.identifier.text,l=s.typeArguments;if(a=="Array"&&l!=null&&l.length==1&&l[0]instanceof ae){let o=l[0].name.identifier.text,u="__c"+n.toString(),p="__j"+n.toString(),_=o=="Uint8Array"?"__r.readBytes()":_o(o);return"const "+t+"=new Array<"+o+">();{const "+u+"=__r.readU32();for(let "+p+":u32=0;"+p+"<"+u+"&&__r.ok;++"+p+"){"+t+".push("+_+");}}"}return a=="Uint8Array"?"const "+t+"=__r.readBytes();":"const "+t+"="+_o(a)+";"}rpcEncodeResult(e,t){if(e==null||!(e instanceof ae))return"";let n=e,s=n.name.identifier.text;if(s=="void")return"";let a=n.typeArguments;if(s=="Array"&&a!=null&&a.length==1&&a[0]instanceof ae){let l=a[0].name.identifier.text,o=l=="Uint8Array"?"__w.writeBytes("+t+"[__k]);":po(l,t+"[__k]");return"__w.writeU32(<u32>"+t+".length);for(let __k=0,__m="+t+".length;__k<__m;++__k){"+o+"}"}return s=="Uint8Array"?"__w.writeBytes("+t+");":po(s,t)}weaveRpc(){this.checkRpcSurfaceCollisions();let e=this.backlog.length;for(let t=0,n=this.sources.length;t<n;++t){let s=this.sources[t];if(s.isLibrary||this.sourceHasStream(s))continue;let a=s.statements;for(let l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind==52){let p=u;this.hasDecoratorKind(p.decorators,17)&&this.injectService(p)}else if(u.kind==56){let p=u;this.hasDecoratorKind(p.decorators,16)&&this.injectRemote(p)}}}this.backlog.length>e&&(this.backlog.length=e)}checkRpcSurfaceCollisions(){let e=new Set;e.add("REST"),e.add("Stream");let t=new Set,n=new Map;for(let s=0,a=this.sources.length;s<a;++s){let l=this.sources[s];if(l.isLibrary)continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind==52){let f=_,d=f.name.text,h=d.length?d.charAt(0).toLowerCase()+d.substring(1):d;if(this.hasDecoratorKind(f.decorators,17)){e.has(h)?this.error(102,f.name.range,"@service surface key '"+h+"' is already taken by another @service/@remote/REST/Stream; rename the service"):e.add(h);let g=f.members;for(let m=0,T=g.length;m<T;++m){let S=g[m];if(S.kind!=59)continue;let E=S;if(!this.hasDecoratorKind(E.decorators,16))continue;let F=d+"."+E.name.text,k=_s(F);n.has(k)?this.error(102,E.name.range,"@remote '"+F+"' has the same FNV method id as '"+n.get(k)+"'; rename one to avoid an RPC dispatch collision"):n.set(k,F)}}else this.hasDecoratorKind(f.decorators,18)&&(t.has(h)?this.error(102,f.name.range,"@rest controller key '"+h+"' under Server.REST is already taken (two controllers whose names differ only by first-letter case collide); rename one"):t.add(h))}else if(_.kind==56){let f=_;if(!this.hasDecoratorKind(f.decorators,16))continue;let d=f.name.text;e.has(d)?this.error(102,f.name.range,"free @remote '"+d+"' collides with another Server surface key (@service/@remote/REST/Stream); rename it"):e.add(d);let h=_s(d);n.has(h)?this.error(102,f.name.range,"@remote '"+d+"' has the same FNV method id as '"+n.get(h)+"'; rename one to avoid an RPC dispatch collision"):n.set(h,d)}}}}sourceHasStream(e){let t=e.statements;for(let n=0,s=t.length;n<s;++n){let a=t[n];if(a.kind==52&&this.hasDecoratorKind(a.decorators,41))return!0}return!1}injectRemote(e){let t=e.name.text;if(t=="REST"||t=="Stream"){this.error(102,e.name.range,"free @remote '"+t+"' collides with the reserved `Server."+t+"` surface; rename the function");return}let n=_s(t).toString(),s=e.signature.parameters,a="",l="";for(let h=0,g=s.length;h<g;++h){let m="__a"+h.toString();a+=this.rpcDecodeArg(s[h].type,m,h),l+=(h>0?",":"")+m}let o=this.ratelimitGuardOf(e);this.hasDecoratorKind(e.decorators,28)&&(o+='if(!AuthService.hasSession()){return __toilRpcResp.text("unauthorized\\n",401);}');let u=e.signature.returnType,p="__toilRpcFn_"+t,_=o+"const __r=new DataReader(__body);"+a;this.rpcIsVoid(u)?_+=t+"("+l+");return __toilRpcResp.bytes(new Uint8Array(0));":_+="const __res="+t+"("+l+");const __w=new DataWriter();"+this.rpcEncodeResult(u,"__res")+"return __toilRpcResp.bytes(__w.toBytes());";let f=this.restRuntimePath(e),d=e.range.source.normalizedPath;this.rpcImportedSources.has(d)||(this.rpcImportedSources.add(d),this.injectTopLevelStatements(e,"import { Rpc as __toilRpc, Response as __toilRpcResp } from "+JSON.stringify(f)+`;
31
31
  `)),this.injectTopLevelStatements(e,"function "+p+"(__body: Uint8Array): __toilRpcResp{"+_+`}
32
32
  __toilRpc.register(`+n+","+p+`);
33
33
  `)}injectDaemonHandler(e){let t=e.name.text,n=e.members,s="",a=0,l=!1;for(let p=0,_=n.length;p<_;++p){let f=n[p];if(f.kind!=59)continue;let d=f,h=d.name.text;if(h=="onStart"&&!this.hasDecoratorKind(d.decorators,40)&&(l=!0),!this.hasDecoratorKind(d.decorators,40))continue;this.isVoidNoArgSignature(d.signature)||this.error(9012,d.signature.range,h);let g=a;s+=(g==0?"if":"else if")+" (__task == "+g.toString()+") this."+h+"();",++a}a==0&&this.warning(9008,e.name.range,t),this.injectClassMember(e,"__tick(__task: i32): void{"+s+"}");let o="__toilDaemonInstance",u=l?"__inst.onStart();":"";this.injectTopLevelStatements(e,`// @ts-ignore: injected daemon entry (spec 03 section 5.2)
@@ -46,7 +46,7 @@ let `+m+": "+t+` | null = null;
46
46
  @global class AuthUser extends `+t+` {}
47
47
  `),this.injectTopLevelStatements(e,`// @ts-ignore: injected
48
48
  @global function __toilDecodeAuthUser(__b: Uint8Array): AuthUser { return changetype<AuthUser>(`+t+`.decode(__b)); }
49
- `)}hasDecoratorKind(e,t){if(e==null)return!1;for(let n=0,s=e.length;n<s;++n)if(e[n].decoratorKind==t)return!0;return!1}restPrefixOf(e){let t=e.args;if(t==null||t.length==0)return"";let n=t[0];if(n instanceof ye){let s=n.value.trim();return s.length==0||s=="/"?"":(s.startsWith("/")||(s="/"+s),s.replace(/\/+$/,""))}return""}restStreamOf(e){let t=e.args;if(t!=null&&t.length>0&&t[0]instanceof Pe){let n=this.objectField(t[0],"stream");if(n!=null){let s=this.enumMember(n);if(s!=null)return s}}return"JSON"}routeDecoratorOf(e){let t=e.decorators;if(t==null)return null;for(let n=0,s=t.length;n<s;++n)switch(t[n].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return t[n]}return null}buildRouteBlock(e,t,n,s,a){let l=s.decoratorKind,o,u,p=t;if(l==19){let k=s.args;if(k==null||k.length==0||!(k[0]instanceof Pe))return null;let R=k[0],C=this.objectField(R,"method"),D=this.objectField(R,"path");if(C==null||D==null||!(D instanceof ye))return null;let U=this.enumMember(C);if(U==null)return null;o=U,u=D.value;let G=this.objectField(R,"stream");if(G!=null){let O=this.enumMember(G);O!=null&&(p=O)}}else{o=this.verbName(l);let k=s.args;if(k==null||k.length==0||!(k[0]instanceof ye))return null;u=k[0].value}let _=this.methodEnumValue(o);if(_<0)return null;let f=this.joinPath(e,u),d=n.signature.parameters,h=null,g="";for(let k=0,R=d.length;k<R;++k){let C=d[k].type,D=C instanceof ae?C.name.identifier.text:"";k>0&&(g+=","),D=="RouteContext"?g+="__ctx":(h=D,g+="__body")}let m=n.signature.returnType,T=m instanceof ae?m.name.identifier.text:"",S="this."+n.name.text+"("+g+")",E=this.cacheSuffixOf(n),F="if(__req.method=="+_.toString()+"){";return F+="const __ctx=__toilMatch("+JSON.stringify(f)+",__req);",F+="if(__ctx!=null){",F+=this.ratelimitGuardOf(n),(a||this.hasDecoratorKind(n.decorators,28))&&(F+='if(!AuthService.hasSession()){return __toilResp.text("unauthorized\\n",401);}'),h!=null&&(p=="Binary"?F+="const __body="+h+".decode(__req.body);":F+="const __body="+h+".fromJSON(JSON.parse(__ctx.text()));"),T=="Response"||T=="__toilResp"?F+="return "+S+E+";":T=="void"?F+=S+";return __toilResp.empty(204)"+E+";":p=="Binary"?F+="const __res="+S+";return __toilResp.bytes(__res.encode())"+E+";":F+="const __res="+S+";return __toilResp.json(__res.toJSON().toString())"+E+";",F+="}}",F}cacheSuffixOf(e){let t=e.decorators;if(t==null)return"";for(let n=0,s=t.length;n<s;++n){if(t[n].decoratorKind!=27)continue;let a=t[n].args;if(a==null||a.length==0)return"";let l="";for(let o=0,u=a.length;o<u;++o){let p=a[o];if(!(p instanceof pt||p.kind==26||p.kind==14))return"";o>0&&(l+=","),l+=p.range.toString()}return".cache("+l+")"}return""}ratelimitGuardOf(e){let t=e.decorators;if(t==null)return"";for(let n=0,s=t.length;n<s;++n){if(t[n].decoratorKind!=30)continue;let a=t[n].args;if(a==null||a.length<3)return"";let l=this.ratelimitStrategyTag(a[0]);if(l.length==0)return"";let o=a[1],u=a[2];return!(o instanceof pt)||!(u instanceof pt)?"":"{const __rl=RateLimitService.guard("+(this.ratelimitRouteCounter++).toString()+","+l+","+o.range.toString()+","+u.range.toString()+");if(__rl!=null){return __rl;}}"}return""}ratelimitStrategyTag(e){if(e instanceof pt)return e.range.toString();if(e instanceof _t){let t=e.property.text;return t=="SlidingWindow"?"1":t=="TokenBucket"?"2":"0"}return""}objectField(e,t){let n=e.names;for(let s=0,a=n.length;s<a;++s)if(n[s].text==t)return e.values[s];return null}enumMember(e){return e instanceof _t?e.property.text:null}verbName(e){switch(e){case 21:return"POST";case 22:return"PUT";case 23:return"DELETE";case 24:return"PATCH";case 25:return"HEAD";case 26:return"OPTIONS";default:return"GET"}}methodEnumValue(e){switch(e){case"GET":return 0;case"POST":return 1;case"PUT":return 2;case"DELETE":return 3;case"PATCH":return 4;case"HEAD":return 5;case"OPTIONS":return 6;default:return-1}}joinPath(e,t){let n=t.trim();if(n.length==0&&(n="/"),n.startsWith("/")||(n="/"+n),n=="/")return e.length>0?e:"/";n.length>1&&(n=n.replace(/\/+$/,""));let s=e+n;return s.length==0?"/":s}restRuntimePath(e){let t=e.range.source.statements;for(let n=0,s=t.length;n<s;++n){let a=t[n];if(a.kind!=43)continue;let l=a,o=l.declarations;if(o!=null)for(let u=0,p=o.length;u<p;++u){let _=o[u].foreignName.text;if(_=="Response"||_=="Request"||_=="RouteContext"||_=="ToilHandler"||_=="Method"||_=="Header"||_=="Server"||_=="Rest")return l.path.value}}return"toiljs/server/runtime"}parseClassExpression(e){let t=e.tokenPos,n;if(e.skipIdentifier()?n=z.createIdentifierExpression(e.readIdentifier(),e.range()):n=z.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,a=z.createClassDeclaration(n,null,0,null,null,null,s,e.range(t,e.pos));if(!e.skip(63))do{let l=this.parseClassMember(e,a);if(l)l.kind==66?a.indexSignature=l:(assert(a instanceof je),s.push(l));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));return a.range.end=e.pos,z.createClassExpression(a)}parseClassMember(e,t){let n=t.kind==58,s=0,a=null;if(e.skip(114)){s=e.tokenPos;do{let te=this.parseDecorator(e);if(!te)break;a||(a=new Array),a.push(te)}while(e.skip(114));n&&a&&this.error(1206,ce.join(a[0].range,a[a.length-1].range))}let l=t.flags&32768;n&&(l|=268435456);let o=0,u=0,p=t.is(32768);e.skip(12)?(n?this.error(1042,e.range(),"declare"):p?this.error(1038,e.range()):(l|=32772,o=e.tokenPos,u=e.pos),s||(s=e.tokenPos)):p&&(l|=32768);let _=0,f=0;e.skip(44)?(n?this.error(1042,e.range(),"public"):(l|=256,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos)):e.skip(42)?(n?this.error(1042,e.range(),"private"):(l|=512,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(n?this.error(1042,e.range(),"protected"):(l|=1024,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos));let d=0,h=0,g=0,m=0;e.skip(48)?(n?this.error(1042,e.range(),"static"):(l|=32,d=e.tokenPos,h=e.pos),s||(s=e.tokenPos)):(l|=262144,e.skip(0)&&(n||!t.is(128)?this.error(1042,e.range(),"abstract"):(l|=128,g=e.tokenPos,m=e.pos),s||(s=e.tokenPos)),t.flags&65536&&(l|=131072));let T=0,S=0;e.skip(40)&&(n||t.extendsType==null?this.error(1042,e.range(),"override"):(l|=8192,T=e.tokenPos,S=e.pos),s||(s=e.tokenPos));let E=0,F=0;if(e.peek()==45){let te=e.mark();e.next(),e.peek()!=100?(e.discard(te),l|=64,E=e.tokenPos,F=e.pos,s||(s=E)):e.reset(te)}let k=e.mark(),R=!1,C=!1,D=0,U=0,G=!1,O=0,Y=0;n||(e.skip(25)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=2048,C=!0,D=e.tokenPos,U=e.pos,s||(s=D),l&64&&this.error(1042,e.range(E,F),"readonly")):e.reset(k):e.skip(47)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=4096,G=!0,O=e.tokenPos,Y=e.pos,s||(s=O),l&64&&this.error(1042,e.range(E,F),"readonly")):e.reset(k):e.skip(10)&&(l|=524288,R=!0,s||(s=e.tokenPos),l&32&&this.error(1042,e.range(d,h),"static"),l&128&&this.error(1042,e.range(g,m),"abstract"),l&64&&this.error(1042,e.range(E,F),"readonly")));let Z=C||G,ee;if(R)ee=z.createConstructorExpression(e.range());else{if(!Z&&e.skip(66)){s||(s=e.tokenPos),l&256?this.error(1042,e.range(_,f),"public"):l&1024?this.error(1042,e.range(_,f),"protected"):l&512&&this.error(1042,e.range(_,f),"private"),l&32&&this.error(1042,e.range(d,h),"static"),l&8192&&this.error(1042,e.range(T,S),"override"),l&128&&this.error(1042,e.range(g,m),"abstract");let te=this.parseIndexSignature(e,l,a);return te?(e.skip(70),te):(l&64&&this.error(1042,e.range(E,F),"readonly"),null)}if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),ee=z.createIdentifierExpression(e.readIdentifier(),e.range())}let K=null;if(e.skip(72)){let te=e.tokenPos;if(K=this.parseTypeParameters(e),!K)return null;R?this.error(1092,e.range(te,e.pos)):Z?this.error(1094,e.range(te,e.pos)):l|=65536}if(e.skip(64)){l&4&&this.error(1031,e.range(o,u),"declare");let te=e.tokenPos,H=this.parseParameters(e,R);if(!H)return null;let oe=this.parseParametersThis;if(R)for(let Oe=0,sn=H.length;Oe<sn;++Oe){let Bt=H[Oe];if(Bt.isAny(1856)){let Lt=z.createFieldDeclaration(Bt.name,null,Bt.flags|262144,Bt.type,null,Bt.range);Lt.parameterIndex=Oe,Bt.implicitFieldDeclaration=Lt,t.members.push(Lt)}}else C?H.length&&this.error(1054,ee.range):G?(H.length!=1&&this.error(1049,ee.range),H.length>0&&H[0].initializer&&this.error(1052,ee.range)):ee.text=="constructor"&&this.error(230,ee.range,"constructor");let se=null;if(e.skip(100)){if(ee.kind==27?this.error(1093,e.range()):G&&this.error(1095,e.range()),se=this.parseType(e,G||ee.kind==27),!se)return null}else se=z.createOmittedType(e.range(e.pos)),!G&&ee.kind!=27&&this.error(1110,se.range);let Re=z.createFunctionType(H,se,oe,!1,e.range(te,e.pos)),Pt=null;if(e.skip(62)){if(l&32768?this.error(1183,e.range()):l&128?this.error(1245,e.range(),ee.text):n&&this.error(1005,e.range(),";"),Pt=this.parseBlockStatement(e,!1),!Pt)return null}else!n&&!(l&32896)&&this.error(2391,e.range());let nn=z.createMethodDeclaration(ee,a,l,K,Re,Pt,e.range(s,e.pos));return n&&e.skip(71)||e.skip(70),nn}else if(R)this.error(2390,ee.range);else if(Z)this.error(2391,ee.range);else{l&4&&this.error(100,e.range(o,u),"Ambient fields"),l&128&&this.error(1042,e.range(g,m),"abstract"),l&2048&&this.error(1042,e.range(D,U),"get"),l&4096&&this.error(1042,e.range(O,Y),"set");let te=null;if(e.skip(99)&&this.error(219,e.range(s,e.pos)),e.skip(95)&&(l|=16384),e.skip(100)){if(te=this.parseType(e),!te)return null}else this.error(1110,e.range());let H=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),H=this.parseExpression(e),!H)return null;l&16384&&this.error(1263,ee.range)}let oe=e.range(s,e.pos);(l&16384)!=0&&(n||(l&32768)!=0)&&this.error(1255,oe);let se=z.createFieldDeclaration(ee,a,l,te,H,oe);return n&&e.skip(71)||e.skip(70),se}return null}parseIndexSignature(e,t,n){n&&n.length>0&&this.error(1206,ce.join(n[0].range,n[n.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier()=="key")if(e.skip(100)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(67))if(e.skip(100)){let o=this.parseType(e);return o?o.kind!=1?(this.error(1003,o.range),null):z.createIndexSignature(l,o,t,e.range(s,e.pos)):null}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"]")}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"key");else this.error(1003,e.range());return null}parseNamespace(e,t,n,s){if(e.skipIdentifier()){let a=z.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(62)){let l=new Array,o=z.createNamespaceDeclaration(a,n,t,l,e.range(s,e.pos));for(;!e.skip(63);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==36)return this.error(1319,u.range),null;l.push(u)}else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(70),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,t,n){let s=null,a=assert(this.currentSource);if(e.skip(62)){let l=new Array;for(;!e.skip(63);){let u=this.parseExportMember(e);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(116))s=z.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=z.createExportStatement(l,s,n,e.range(t,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new ds(a,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(70),o}else if(e.skip(84))if(e.skip(23))if(e.skip(116)){s=z.createStringLiteralExpression(e.readString(),e.range());let l=z.createExportStatement(null,s,n,e.range(t,e.pos)),o=assert(l.internalPath),u=e.source,p=u.exportPaths;return p?p.includes(o)||p.push(o):u.exportPaths=[o],this.seenlog.has(o)||(this.dependees.set(o,new ds(a,s)),this.backlog.push(o)),e.skip(70),l}else this.error(1141,e.range());else this.error(1005,e.range(),"from");else this.error(1005,e.range(),"{");return null}parseExportMember(e){if(e.skipIdentifier(2)){let t=z.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier(2))n=z.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?z.createExportMember(t,n,ce.join(t.range,n.range)):z.createExportMember(t,null,t.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,t,n,s){let a=e.readIdentifier(),l=e.range(),o=z.createExportStatement([z.createExportMember(z.createIdentifierExpression(a,l),z.createIdentifierExpression("default",e.range(n,s)),l)],null,!1,e.range(t,e.pos));return e.skip(70),o}parseImport(e){let t=e.tokenPos,n=null,s=null,a=!1;if(e.skip(62))for(n=new Array;!e.skip(63);){let l=this.parseImportDeclaration(e);if(!l)return null;if(n.push(l),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(84))if(e.skip(1))if(e.skipIdentifier())s=z.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;else return this.error(1005,e.range(),"as"),null;else if(e.skip(115,1)){let l=e.readIdentifier(),o=e.range();if(n=[z.createImportDeclaration(z.createIdentifierExpression("default",o),z.createIdentifierExpression(l,o),o)],e.skip(71))return this.error(100,e.range(),"Mixed default and named imports"),null}else a=!0;if(a||e.skip(23))if(e.skip(116)){let l=z.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!n),o=z.createWildcardImportStatement(s,l,e.range(t,e.pos))):o=z.createImportStatement(n,l,e.range(t,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new ds(assert(this.currentSource),l)),this.backlog.push(u)),e.skip(70),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let t=z.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier())n=z.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?z.createImportDeclaration(t,n,ce.join(t.range,n.range)):z.createImportDeclaration(t,null,t.range)}else this.error(1003,e.range());return null}parseExportImport(e,t){if(e.skipIdentifier()){let n=z.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(101))if(e.skipIdentifier()){let s=z.createIdentifierExpression(e.readIdentifier(),e.range()),a=z.createExportImportStatement(s,n,e.range(t,e.pos));return e.skip(70),a}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,t=!1){let n=e.mark(),s=e.next(),a=null;switch(s){case 4:{a=this.parseBreak(e);break}case 8:{a=this.parseVariable(e,8,null,e.tokenPos);break}case 9:{a=this.parseContinue(e);break}case 15:{a=this.parseDoStatement(e);break}case 22:{a=this.parseForStatement(e);break}case 26:{a=this.parseIfStatement(e);break}case 34:{a=this.parseVariable(e,16,null,e.tokenPos);break}case 57:{a=this.parseVariable(e,0,null,e.tokenPos);break}case 62:{a=this.parseBlockStatement(e,t);break}case 46:{t&&this.error(1108,e.range()),a=this.parseReturn(e);break}case 70:return z.createEmptyStatement(e.range(e.tokenPos));case 50:{a=this.parseSwitchStatement(e);break}case 52:{a=this.parseThrowStatement(e);break}case 54:{a=this.parseTryStatement(e);break}case 58:{a=this.parseVoidStatement(e);break}case 59:{a=this.parseWhileStatement(e);break}case 55:if(e.peek(1)==115){a=this.parseTypeDeclaration(e,0,null,e.tokenPos);break}default:{e.reset(n),a=this.parseExpressionStatement(e);break}}return a?e.discard(n):(e.reset(n),this.skipStatement(e)),a}parseBlockStatement(e,t){let n=e.tokenPos,s=new Array;for(;!e.skip(63);){let l=e.mark(),o=this.parseStatement(e,t);if(o)e.discard(l),s.push(o);else{if(e.token==121)return null;e.reset(l),this.skipStatement(e)}}let a=z.createBlockStatement(s,e.range(n,e.pos));return t&&e.skip(70),a}parseBreak(e){let t=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),t=z.createIdentifierExpression(e.readIdentifier(),e.range()));let n=z.createBreakStatement(t,e.range());return e.skip(70),n}parseContinue(e){let t=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),t=z.createIdentifierExpression(e.readIdentifier(),e.range()));let n=z.createContinueStatement(t,e.range());return e.skip(70),n}parseDoStatement(e){let t=e.tokenPos,n=this.parseStatement(e);if(!n)return null;if(e.skip(59))if(e.skip(64)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(65)){let a=z.createDoStatement(n,s,e.range(t,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");else this.error(1005,e.range(),"while");return null}parseExpressionStatement(e){let t=this.parseExpression(e);if(!t)return null;let n=z.createExpressionStatement(t);return e.skip(70),n}parseForStatement(e){let t=e.tokenPos;if(e.skip(64)){let n=null;if(e.skip(8))n=this.parseVariable(e,8,null,e.tokenPos,!0);else if(e.skip(34))n=this.parseVariable(e,16,null,e.tokenPos,!0);else if(e.skip(57))n=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(70)&&(n=this.parseExpressionStatement(e),!n))return null;if(n){if(e.skip(39)){if(n.kind==39)return n.expression.kind!=7?(this.error(1003,n.range),null):this.parseForOfStatement(e,t,n);if(n.kind==48){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let u=s[a].initializer;u&&this.error(1190,u.range)}return this.parseForOfStatement(e,t,n)}return this.error(1003,n.range),null}if(n.kind==48){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a];o.initializer||(o.flags&8?this.error(1155,o.name.range):o.type||this.error(1110,o.name.range.atEnd))}}}if(e.token==70){let s=null;if(!e.skip(70)&&(s=this.parseExpressionStatement(e),!s))return null;if(e.token==70){let a=null;if(!e.skip(65)){if(a=this.parseExpression(e),!a)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null}let l=this.parseStatement(e);return l?z.createForStatement(n,s?s.expression:null,a,l,e.range(t,e.pos)):null}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),"(");return null}parseForOfStatement(e,t,n){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null;let a=this.parseStatement(e);return a?z.createForOfStatement(n,s,a,e.range(t,e.pos)):null}parseIfStatement(e){let t=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=null;return e.skip(16)&&(a=this.parseStatement(e),!a)?null:z.createIfStatement(n,s,a,e.range(t,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let t=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65))if(e.skip(62)){let s=new Array;for(;!e.skip(63);){let l=this.parseSwitchCase(e);if(!l)return null;s.push(l)}let a=z.createSwitchStatement(n,s,e.range(t,e.pos));return e.skip(70),a}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let t=e.tokenPos,n,s;if(e.skip(5)){let a=this.parseExpression(e);if(!a)return null;if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return z.createSwitchCase(a,n,e.range(t,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return z.createSwitchCase(null,n,e.range(t,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let t=e.tokenPos,n=this.parseExpression(e);if(!n)return null;let s=z.createThrowStatement(n,e.range(t,e.pos));return e.skip(70)||this.checkASI(e),s}parseTryStatement(e){let t=e.tokenPos,n;if(e.skip(62)){let s=new Array;for(;!e.skip(63);){if(n=this.parseStatement(e),!n)return null;s.push(n)}let a=null,l=null,o=null;if(e.skip(6)){if(!e.skip(64))return this.error(1005,e.range(),"("),null;if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(a=z.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(65))return this.error(1005,e.range(),")"),null;if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(l=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;l.push(n)}}if(e.skip(21)){if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;o.push(n)}}if(!(l||o))return this.error(1005,e.range(),"catch"),null;let u=z.createTryStatement(s,a,l,o,e.range(t,e.pos));return e.skip(70),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,t,n,s){if(e.skipIdentifier()){let a=z.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(72)){if(l=this.parseTypeParameters(e),!l)return null;t|=65536}if(e.skip(101)){e.skip(93);let o=this.parseType(e);if(!o)return null;if(fs(a.text,o))return this.error(2456,a.range,a.text),null;let u=z.createTypeDeclaration(a,n,t,l,o,e.range(s,e.pos));return e.skip(70),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,t){let n=e.tokenPos;assert(e.next()==116);let s=e.readString(),a=z.createModuleDeclaration(s,t,e.range(n,e.pos));return this.currentModuleName=s,e.skip(70),a}parseVoidStatement(e){let t=e.tokenPos,n=this.parseExpression(e,21);if(!n)return null;let s=z.createVoidStatement(n,e.range(t,e.pos));return e.skip(70),s}parseWhileStatement(e){let t=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=z.createWhileStatement(n,s,e.range(t,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let t=e.next(1),n=e.tokenPos;switch(t){case 69:case 61:case 95:case 96:case 81:case 82:case 56:case 58:case 14:{let s=this.parseExpression(e,17);return s?z.createUnaryPrefixExpression(t,s,e.range(n,e.pos)):null}case 87:case 88:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 7:case 13:case 22:break;default:this.error(2357,s.range)}return z.createUnaryPrefixExpression(t,s,e.range(n,e.pos))}case 37:{if(!e.skipIdentifier())return this.error(1003,e.range()),null;let s=this.parseTypeName(e);if(!s)return null;let a=null,l=null;if(e.skip(64)||(a=this.tryParseTypeArgumentsBeforeArguments(e))){if(l=this.parseArguments(e),!l)return null}else l=[];return z.createNewExpression(s,a,l,e.range(n,e.pos))}case 38:return z.createNullExpression(e.range());case 53:return z.createTrueExpression(e.range());case 20:return z.createFalseExpression(e.range());case 51:return z.createThisExpression(e.range());case 10:return z.createConstructorExpression(e.range());case 64:{if(e.skip(65))return this.parseFunctionExpressionCommon(e,z.createEmptyIdentifierExpression(e.range(n)),[],null,1);let s=e.mark(),a=!0;do switch(e.next(1)){case 69:return e.reset(s),this.parseFunctionExpression(e);case 115:{switch(e.readIdentifier(),e.next()){case 65:{if(e.skip(100)&&this.parseType(e,!0,!0)==null){a=!1;break}if(!e.skip(80)){a=!1;break}}case 100:return e.reset(s),this.parseFunctionExpression(e);case 99:{if(e.skip(100)||e.skip(71)||e.skip(65))return e.reset(s),this.parseFunctionExpression(e);a=!1;break}case 71:break;default:{a=!1;break}}break}default:{a=!1;break}}while(a);e.reset(s);let l=this.parseExpression(e);return l?e.skip(65)?(l=z.createParenthesizedExpression(l,e.range(n,e.pos)),this.maybeParseCallExpression(e,l)):(this.error(1005,e.range(),")"),null):null}case 66:{let s=new Array;for(;!e.skip(67);){let a;if(e.peek()==71)a=z.createOmittedExpression(e.range(e.pos));else if(a=this.parseExpression(e,2),!a)return null;if(s.push(a),!e.skip(71)){if(e.skip(67))break;return this.error(1005,e.range(),"]"),null}}return z.createArrayLiteralExpression(s,e.range(n,e.pos))}case 62:{let s=e.tokenPos,a=new Array,l=new Array,o;for(;!e.skip(63);){if(e.skipIdentifier())o=z.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(116))return this.error(1003,e.range()),null;o=z.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(a.push(o),e.skip(100)){let u=this.parseExpression(e,2);if(!u)return null;l.push(u)}else if(!o.isQuoted)l.push(o);else return this.error(1005,e.range(),":"),null;if(!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}return z.createObjectLiteralExpression(a,l,e.range(s,e.pos))}case 72:{let s=this.parseType(e);if(!s)return null;if(!e.skip(73))return this.error(1005,e.range(),">"),null;let a=this.parseExpression(e,19);return a?z.createAssertionExpression(0,a,s,e.range(n,e.pos)):null}case 115:{let s=e.readIdentifier();if(s=="null")return z.createNullExpression(e.range());let a=z.createIdentifierExpression(s,e.range(n,e.pos));return e.skip(119)?this.parseTemplateLiteral(e,a):e.peek()==80&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,z.createEmptyIdentifierExpression(e.range(n)),[z.createParameter(0,a,z.createOmittedType(a.range.atEnd),null,a.range)],null,2,n):this.maybeParseCallExpression(e,a,!0)}case 49:{e.peek()!=68&&e.nextToken!=64&&this.error(1034,e.range());let s=z.createSuperExpression(e.range(n,e.pos));return this.maybeParseCallExpression(e,s)}case 116:return z.createStringLiteralExpression(e.readString(),e.range(n,e.pos));case 119:return this.parseTemplateLiteral(e);case 117:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),z.createIntegerLiteralExpression(s,e.range(n,e.pos))}case 118:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),z.createFloatLiteralExpression(s,e.range(n,e.pos))}case 85:{let s=e.readRegexpPattern();return e.skip(85)?z.createRegexpLiteralExpression(s,e.readRegexpFlags(),e.range(n,e.pos)):(this.error(1005,e.range(),"/"),null)}case 24:{let s=this.parseFunctionExpression(e);return s?this.maybeParseCallExpression(e,s):null}case 7:return this.parseClassExpression(e);default:return t==121?this.error(1126,e.range(n)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let t=e.mark();if(!e.skip(72))return null;let n=e.tokenPos,s=null;do{if(e.peek()==73)break;let a=this.parseType(e,!0,!0);if(!a)return e.reset(t),null;s?s.push(a):s=[a]}while(e.skip(71));if(e.skip(73)){let a=e.pos;if(e.skip(64))return s||this.error(1099,e.range(n,a)),s}return e.reset(t),null}parseArguments(e){let t=new Array;for(;!e.skip(65);){let n=this.parseExpression(e,2);if(!n)return null;if(t.push(n),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return t}parseExpression(e,t=1){assert(t!=0);let n=this.parseExpressionStart(e);if(!n)return null;let s=n.range.start,a;for(;(a=l6(e.peek()))>=t;){let l=e.next();switch(l){case 1:{if(e.skip(8))n=z.createAssertionExpression(3,n,null,e.range(s,e.pos));else{let o=this.parseType(e);if(!o)return null;n=z.createAssertionExpression(1,n,o,e.range(s,e.pos))}break}case 95:{n=z.createAssertionExpression(2,n,null,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 30:{let o=this.parseType(e);if(!o)return null;n=z.createInstanceOfExpression(n,o,e.range(s,e.pos));break}case 66:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(67))return this.error(1005,e.range(),"]"),null;n=z.createElementAccessExpression(n,o,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 87:case 88:{n.kind!=7&&n.kind!=13&&n.kind!=22&&this.error(2357,n.range),n=z.createUnaryPostfixExpression(l,n,e.range(s,e.pos));break}case 99:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(100))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,t>1?2:1);if(!u)return null;n=z.createTernaryExpression(n,o,u,e.range(s,e.pos));break}case 71:{let o=[n];do{if(n=this.parseExpression(e,2),!n)return null;o.push(n)}while(e.skip(71));n=z.createCommaExpression(o,e.range(s,e.pos));break}case 68:{if(e.skipIdentifier(2)){let o=z.createIdentifierExpression(e.readIdentifier(),e.range());n=z.createPropertyAccessExpression(n,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,a+1);if(!o)return null;if(o.kind==10){if(n=this.joinPropertyCall(e,s,n,o),!n)return null}else return this.error(1003,o.range),null}if(e.skip(119)){if(n=this.parseTemplateLiteral(e,n),!n)return null}else n=this.maybeParseCallExpression(e,n,!0);break}case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:case 83:{let o=this.parseExpression(e,a);if(!o)return null;n=z.createBinaryExpression(l,n,o,e.range(s,e.pos));break}case 72:case 73:case 74:case 75:case 76:case 78:case 79:case 77:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 93:case 94:case 97:case 98:case 29:{let o=this.parseExpression(e,a+1);if(!o)return null;n=z.createBinaryExpression(l,n,o,e.range(s,e.pos));break}default:assert(!1)}}return n}parseTemplateLiteral(e,t=null){let n=t?t.range.start:e.tokenPos,s=new Array,a=new Array,l=new Array;for(s.push(e.readString(0,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd));e.readingTemplateString;){let o=this.parseExpression(e);if(!o)return null;if(l.push(o),!e.skip(63))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return z.createTemplateLiteralExpression(t,s,a,l,e.range(n,e.pos))}joinPropertyCall(e,t,n,s){let a=s.expression;switch(a.kind){case 7:{s.expression=z.createPropertyAccessExpression(n,a,e.range(t,e.pos));break}case 10:{let l=this.joinPropertyCall(e,t,n,a);if(!l)return null;s.expression=l,s.range=e.range(t,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,t,n=!1){let s=null;for(;e.skip(64)||n&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let a=this.parseArguments(e);if(!a)break;t=z.createCallExpression(t,s,a,e.range(t.range.start,e.pos)),n=!1}return t}checkASI(e){let t=e.peek();t==121||t==63||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let t=e.peek();if(t==121||t==70){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 115:{e.readIdentifier();break}case 116:case 119:{e.readString();break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 62:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let t=1,n=!0;do switch(e.next()){case 121:{this.error(1005,e.range(),"}"),n=!1;break}case 62:{++t;break}case 63:{--t,t||(n=!1);break}case 115:{e.readIdentifier();break}case 116:{e.readString();break}case 119:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(n)}},Zg=(R=>(R[R.None=0]="None",R[R.Comma=1]="Comma",R[R.Spread=2]="Spread",R[R.Yield=3]="Yield",R[R.Assignment=4]="Assignment",R[R.Conditional=5]="Conditional",R[R.LogicalOr=6]="LogicalOr",R[R.LogicalAnd=7]="LogicalAnd",R[R.BitwiseOr=8]="BitwiseOr",R[R.BitwiseXor=9]="BitwiseXor",R[R.BitwiseAnd=10]="BitwiseAnd",R[R.Equality=11]="Equality",R[R.Relational=12]="Relational",R[R.Shift=13]="Shift",R[R.Additive=14]="Additive",R[R.Multiplicative=15]="Multiplicative",R[R.Exponentiated=16]="Exponentiated",R[R.UnaryPrefix=17]="UnaryPrefix",R[R.UnaryPostfix=18]="UnaryPostfix",R[R.Call=19]="Call",R[R.MemberAccess=20]="MemberAccess",R[R.Grouping=21]="Grouping",R))(Zg||{});function l6(r){switch(r){case 71:return 1;case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:return 4;case 99:return 5;case 98:return 6;case 97:return 7;case 93:return 8;case 94:return 9;case 92:return 10;case 76:case 77:case 78:case 79:return 11;case 1:case 29:case 30:case 72:case 73:case 74:case 75:return 12;case 89:case 90:case 91:return 13;case 81:case 82:return 14;case 84:case 85:case 86:return 15;case 83:return 16;case 87:case 88:return 18;case 68:case 66:case 95:return 20}return 0}function fs(r,i){switch(i.kind){case 1:{if(i.name.identifier.text==r)return!0;let e=i.typeArguments;if(e){for(let t=0,n=e.length;t<n;t++)if(fs(r,e[t]))return!0}break}case 2:{let e=i;if(fs(r,e.returnType))return!0;let t=e.parameters;for(let n=0,s=t.length;n<s;n++)if(fs(r,t[n].type))return!0;break}case 3:{let e=i.elements;for(let t=0,n=e.length;t<n;t++)if(fs(r,e[t]))return!0;break}default:assert(!1)}return!1}var Yg=16,Vi=Yg-1,fo=class{constructor(i,e,t,n,s){this.localFile=i;this.localIdentifier=e;this.foreignIdentifier=t;this.foreignPath=n;this.foreignPathAlt=s}},ho=class{constructor(i,e,t,n){this.localIdentifier=i;this.foreignIdentifier=e;this.foreignPath=t;this.foreignPathAlt=n}},Pp=class{constructor(i,e,t){this.foreignPath=i;this.foreignPathAlt=e;this.pathLiteral=t}},we=(K=>(K[K.Invalid=0]="Invalid",K[K.IndexedGet=1]="IndexedGet",K[K.IndexedSet=2]="IndexedSet",K[K.UncheckedIndexedGet=3]="UncheckedIndexedGet",K[K.UncheckedIndexedSet=4]="UncheckedIndexedSet",K[K.Add=5]="Add",K[K.Sub=6]="Sub",K[K.Mul=7]="Mul",K[K.Div=8]="Div",K[K.Rem=9]="Rem",K[K.Pow=10]="Pow",K[K.BitwiseAnd=11]="BitwiseAnd",K[K.BitwiseOr=12]="BitwiseOr",K[K.BitwiseXor=13]="BitwiseXor",K[K.BitwiseShl=14]="BitwiseShl",K[K.BitwiseShr=15]="BitwiseShr",K[K.BitwiseShrU=16]="BitwiseShrU",K[K.Eq=17]="Eq",K[K.Ne=18]="Ne",K[K.Gt=19]="Gt",K[K.Ge=20]="Ge",K[K.Lt=21]="Lt",K[K.Le=22]="Le",K[K.Plus=23]="Plus",K[K.Minus=24]="Minus",K[K.Not=25]="Not",K[K.BitwiseNot=26]="BitwiseNot",K[K.PrefixInc=27]="PrefixInc",K[K.PrefixDec=28]="PrefixDec",K[K.PostfixInc=29]="PostfixInc",K[K.PostfixDec=30]="PostfixDec",K))(we||{});(n=>{function r(s,a){switch(assert(a.length),s){case 2:case 3:{switch(a.charCodeAt(0)){case 91:{if(a=="[]")return 1;if(a=="[]=")return 2;break}case 123:{if(a=="{}")return 3;if(a=="{}=")return 4;break}case 43:{if(a=="+")return 5;break}case 45:{if(a=="-")return 6;break}case 42:{if(a=="*")return 7;if(a=="**")return 10;break}case 47:{if(a=="/")return 8;break}case 37:{if(a=="%")return 9;break}case 38:{if(a=="&")return 11;break}case 124:{if(a=="|")return 12;break}case 94:{if(a=="^")return 13;break}case 61:{if(a=="==")return 17;break}case 33:{if(a=="!=")return 18;break}case 62:{if(a==">")return 19;if(a==">=")return 20;if(a==">>")return 15;if(a==">>>")return 16;break}case 60:{if(a=="<")return 21;if(a=="<=")return 22;if(a=="<<")return 14;break}}break}case 4:{switch(a.charCodeAt(0)){case 43:{if(a=="+")return 23;if(a=="++")return 27;break}case 45:{if(a=="-")return 24;if(a=="--")return 28;break}case 33:{if(a=="!")return 25;break}case 126:{if(a=="~")return 26;break}}break}case 5:{switch(a.charCodeAt(0)){case 43:{if(a=="++")return 29;break}case 45:{if(a=="--")return 30;break}}break}}return 0}n.fromDecorator=r;function i(s){switch(s){case 81:case 102:return 5;case 82:case 103:return 6;case 84:case 104:return 7;case 85:case 106:return 8;case 86:case 107:return 9;case 83:case 105:return 10;case 92:case 111:return 11;case 93:case 112:return 12;case 94:case 113:return 13;case 89:case 108:return 14;case 90:case 109:return 15;case 91:case 110:return 16;case 76:case 78:return 17;case 77:case 79:return 18;case 73:return 19;case 75:return 20;case 72:return 21;case 74:return 22}return 0}n.fromBinaryToken=i;function e(s){switch(s){case 81:return 23;case 82:return 24;case 95:return 25;case 96:return 26;case 87:return 27;case 88:return 28}return 0}n.fromUnaryPrefixToken=e;function t(s){switch(s){case 87:return 29;case 88:return 30}return 0}n.fromUnaryPostfixToken=t})(we||={});var ms=class extends Je{constructor(e,t=null){super(t);this.options=e;this.sources=[];this.diagnosticsOffset=0;this.nextClassId=0;this.nextSignatureId=0;this.initialized=!1;this.filesByName=new Map;this.elementsByName=new Map;this.elementsByDeclaration=new Map;this.instancesByName=new Map;this.mainFunction=null;this.daemonClass=null;this.wrapperClasses=new Map;this.managedClasses=new Map;this.uniqueSignatures=new Map;this.moduleImports=new Map;this._arrayBufferViewInstance=null;this._arrayBufferInstance=null;this._arrayPrototype=null;this._staticArrayPrototype=null;this._setPrototype=null;this._mapPrototype=null;this._functionPrototype=null;this._int8ArrayPrototype=null;this._int16ArrayPrototype=null;this._int32ArrayPrototype=null;this._int64ArrayPrototype=null;this._uint8ArrayPrototype=null;this._uint8ClampedArrayPrototype=null;this._uint16ArrayPrototype=null;this._uint32ArrayPrototype=null;this._uint64ArrayPrototype=null;this._float32ArrayPrototype=null;this._float64ArrayPrototype=null;this._stringInstance=null;this._errorInstance=null;this._regexpInstance=null;this._objectPrototype=null;this._objectInstance=null;this._templateStringsArrayInstance=null;this._allocInstance=null;this._reallocInstance=null;this._freeInstance=null;this._newInstance=null;this._renewInstance=null;this._linkInstance=null;this._collectInstance=null;this._visitInstance=null;this._newBufferInstance=null;this._newArrayInstance=null;this._BLOCKInstance=null;this._OBJECTInstance=null;this.nativeDummySignature=null;this.module=Ot.create(e.stackSize>0,e.sizeTypeRef),this.parser=new hs(this.diagnostics,this.sources),this.resolver=new as(this);let n=new bs(this,fe.native);this.nativeFile=n,this.filesByName.set(n.internalName,n),this.parser.options=this.options}get arrayBufferViewInstance(){let e=this._arrayBufferViewInstance;return e||(this._arrayBufferViewInstance=e=this.requireClass(P.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(P.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(P.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(P.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(P.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(P.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(P.Function,6)),e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(P.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(P.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(P.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(P.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(P.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(P.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(P.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(P.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(P.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(P.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(P.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(P.String)),e}get errorInstance(){let e=this._errorInstance;return e||(this._errorInstance=e=this.requireClass(P.Error)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(P.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(P.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(P.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(P.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(P.abort);return!e||e.kind!=4?null:this.resolver.resolveFunction(e,null)}get allocInstance(){let e=this._allocInstance;return e||(this._allocInstance=e=this.requireFunction(P.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(P.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(P.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(P.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(P.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(P.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(P.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(P.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(P.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(P.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(P.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(P.OBJECT)),e}getSource(e){let t=this.sources;for(let n=0;n<t.length;++n){let s=t[n];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+Vi&~Vi}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let t=pp(e);if(t){let n=this.instancesByName;if(n.has(t)){let s=assert(n.get(t));if(s.kind==5)return s}}return null}computeBlockStart(e){let t=this.blockOverhead;return(e+t+Vi&~Vi)-t}computeBlockStart64(e){let t=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,t),Yg),t)}computeBlockSize(e,t){t&&(e+=this.objectOverhead);let n=this.computeBlockStart(e),s=this.blockOverhead,a=(3*this.options.usizeType.byteSize+s+Vi&~Vi)-s;n<a&&(n=a);let l=1<<30;if(n>=l||(n&3)!=0)throw new Error("invalid block size");return n}makeNativeVariableDeclaration(e,t=0){let n=fe.native.range;return z.createVariableDeclaration(z.createIdentifierExpression(e,n),null,t,null,null,n)}makeNativeTypeDeclaration(e,t=0){let n=fe.native.range,s=z.createIdentifierExpression(e,n);return z.createTypeDeclaration(s,null,t,null,z.createOmittedType(n),n)}makeNativeFunctionDeclaration(e,t=0){let n=fe.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=z.createFunctionType([],z.createNamedType(z.createSimpleTypeName(P.void_,n),null,!1,n),null,!1,n)),z.createFunctionDeclaration(z.createIdentifierExpression(e,n),null,t,null,s,null,0,n)}makeNativeNamespaceDeclaration(e,t=0){let n=fe.native.range;return z.createNamespaceDeclaration(z.createIdentifierExpression(e,n),null,t,[],n)}makeNativeFunction(e,t,n=this.nativeFile,s=0,a=0){return new St(e,new tt(e,n,this.makeNativeFunctionDeclaration(e,s),a),null,t)}getElementByDeclaration(e){let t=this.elementsByDeclaration;return t.has(e)?assert(t.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0;let e=this.options;this.registerNativeType(P.i8,c.i8),this.registerNativeType(P.i16,c.i16),this.registerNativeType(P.i32,c.i32),this.registerNativeType(P.i64,c.i64),this.registerNativeType(P.isize,e.isizeType),this.registerNativeType(P.u8,c.u8),this.registerNativeType(P.u16,c.u16),this.registerNativeType(P.u32,c.u32),this.registerNativeType(P.u64,c.u64),this.registerNativeType(P.usize,e.usizeType),this.registerNativeType(P.bool,c.bool),this.registerNativeType(P.f32,c.f32),this.registerNativeType(P.f64,c.f64),this.registerNativeType(P.void_,c.void),this.registerNativeType(P.number,c.f64),this.registerNativeType(P.boolean,c.bool),this.nativeFile.add(P.native,new nt(P.native,this.nativeFile,this.makeNativeTypeDeclaration(P.native,65538),512)),this.nativeFile.add(P.indexof,new nt(P.indexof,this.nativeFile,this.makeNativeTypeDeclaration(P.indexof,65538),512)),this.nativeFile.add(P.valueof,new nt(P.valueof,this.nativeFile,this.makeNativeTypeDeclaration(P.valueof,65538),512)),this.nativeFile.add(P.returnof,new nt(P.returnof,this.nativeFile,this.makeNativeTypeDeclaration(P.returnof,65538),512)),this.nativeFile.add(P.nonnull,new nt(P.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(P.nonnull,65538),512)),this.registerNativeType(P.v128,c.v128),this.registerNativeType(P.ref_func,c.func),this.registerNativeType(P.ref_extern,c.extern),this.registerNativeType(P.ref_any,c.any),this.registerNativeType(P.ref_eq,c.eq),this.registerNativeType(P.ref_struct,c.struct),this.registerNativeType(P.ref_array,c.array),this.registerNativeType(P.ref_i31,c.i31),this.registerNativeType(P.ref_string,c.string),this.registerNativeType(P.ref_stringview_wtf8,c.stringview_wtf8),this.registerNativeType(P.ref_stringview_wtf16,c.stringview_wtf16),this.registerNativeType(P.ref_stringview_iter,c.stringview_iter),this.registerConstantInteger(P.ASC_TARGET,c.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(P.ASC_RUNTIME,c.i32,i64_new(e.runtime)),this.registerConstantInteger(P.ASC_NO_ASSERT,c.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(P.ASC_MEMORY_BASE,c.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(P.ASC_TABLE_BASE,c.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(P.ASC_OPTIMIZE_LEVEL,c.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(P.ASC_SHRINK_LEVEL,c.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(P.ASC_LOW_MEMORY_LIMIT,c.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(P.ASC_EXPORT_RUNTIME,c.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(P.ASC_VERSION_MAJOR,c.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(P.ASC_VERSION_MINOR,c.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(P.ASC_VERSION_PATCH,c.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(P.ASC_FEATURE_SIGN_EXTENSION,c.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MUTABLE_GLOBALS,c.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_NONTRAPPING_F2I,c.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_BULK_MEMORY,c.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_SIMD,c.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_THREADS,c.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_EXCEPTION_HANDLING,c.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_TAIL_CALLS,c.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_REFERENCE_TYPES,c.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MULTI_VALUE,c.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_GC,c.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MEMORY64,c.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_RELAXED_SIMD,c.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_EXTENDED_CONST,c.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_STRINGREF,c.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_SHARED_EVERYTHING,c.bool,i64_new(e.hasFeature(32768)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_CLOSURES,c.bool,i64_new(e.hasFeature(65536)?1:0,0));let t=new Array,n=new Map,s=new Map,a=new Array,l=new Array;for(let u=0,p=this.sources.length;u<p;++u){let _=this.sources[u],f=new bs(this,_);this.filesByName.set(f.internalName,f);let d=_.statements;for(let h=0,g=d.length;h<g;++h){let m=d[h];switch(m.kind){case 36:{this.initializeExports(m,f,n,s);break}case 37:{this.initializeExportDefault(m,f,a,l);break}case 43:{this.initializeImports(m,f,t,n);break}case 48:{this.initializeVariables(m,f);break}case 52:{this.initializeClass(m,f,a,l);break}case 53:{this.initializeEnum(m,f);break}case 56:{this.initializeFunction(m,f);break}case 58:{this.initializeInterface(m,f,a);break}case 60:{this.initializeNamespace(m,f,a,l);break}case 61:{this.initializeTypeDefinition(m,f);break}}}}for(let u=Map_keys(s),p=0,_=u.length;p<_;++p){let f=u[p],d=assert(s.get(f));for(let h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=this.lookupForeignFile(m.foreignPath,m.foreignPathAlt);if(!T){this.error(6054,m.pathLiteral.range,m.pathLiteral.value);continue}f.ensureExportStar(T)}}do{let u=0,p=!1;for(;u<t.length;){let _=t[u],f=_.localIdentifier,d=_.foreignIdentifier,h=assert(this.lookupForeignFile(_.foreignPath,_.foreignPathAlt));if(d){let g=this.lookupForeign(d.text,h,n);g?(_.localFile.add(f.text,g,f),t.splice(u,1),p=!0):++u}else{let g=_.localFile,m=f.text;g.add(m,h.asAliasNamespace(m,g,f),f),t.splice(u,1),p=!0}}if(!p){for(let _=0,f=t.length;_<f;++_){let d=t[_],h=d.foreignIdentifier;h&&this.error(2305,h.range,d.foreignPath,h.text)}break}}while(!0);for(let u=Map_keys(n),p=0,_=u.length;p<_;++p){let f=unchecked(u[p]),d=assert(n.get(f));for(let h=Map_keys(d),g=0,m=h.length;g<m;++g){let T=unchecked(h[g]),S=assert(d.get(T)),E=S.localIdentifier.text,F=S.foreignPath;if(F){let k=assert(this.lookupForeignFile(F,assert(S.foreignPathAlt))),R=this.lookupForeign(E,k,n);R?f.ensureExport(T,R):this.error(2305,S.localIdentifier.range,F,E)}else{let k=f.getMember(E);if(k)f.ensureExport(T,k);else{let R=this.lookup(E);R&&gs(R.kind)?f.ensureExport(T,R):this.error(2305,S.foreignIdentifier.range,f.internalName,S.foreignIdentifier.text)}}}}assert(this.objectInstance.id==0),assert(this.arrayBufferInstance.id==1),assert(this.stringInstance.id==2),assert(this.arrayBufferViewInstance.id==3),this.registerWrapperClass(c.i8,P.I8),this.registerWrapperClass(c.i16,P.I16),this.registerWrapperClass(c.i32,P.I32),this.registerWrapperClass(c.i64,P.I64),this.registerWrapperClass(e.isizeType,P.Isize),this.registerWrapperClass(c.u8,P.U8),this.registerWrapperClass(c.u16,P.U16),this.registerWrapperClass(c.u32,P.U32),this.registerWrapperClass(c.u64,P.U64),this.registerWrapperClass(e.usizeType,P.Usize),this.registerWrapperClass(c.bool,P.Bool),this.registerWrapperClass(c.f32,P.F32),this.registerWrapperClass(c.f64,P.F64),e.hasFeature(16)&&this.registerWrapperClass(c.v128,P.V128),e.hasFeature(256)&&(this.registerWrapperClass(c.func,P.RefFunc),this.registerWrapperClass(c.extern,P.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(c.any,P.RefAny),this.registerWrapperClass(c.eq,P.RefEq),this.registerWrapperClass(c.struct,P.RefStruct),this.registerWrapperClass(c.array,P.RefArray),this.registerWrapperClass(c.i31,P.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(c.string,P.RefString));let o=this.resolver;for(let u=0,p=a.length;u<p;++u){let _=a[u],f=assert(_.extendsNode),d=o.resolveTypeName(f.name,null,_.parent);if(d){if(_.kind==6)if(d.kind==6){let h=d;h.hasDecorator(32)&&this.error(211,f.range,h.identifierNode.text),h.hasDecorator(16)!=_.hasDecorator(16)&&this.error(207,ce.join(_.identifierNode.range,f.range)),_.extends(h)?this.error(2506,h.identifierNode.range,h.identifierNode.text):_.basePrototype=h}else this.error(1311,f.range);else if(_.kind==8)if(d.kind==8){let h=d;_.extends(h)?this.error(2506,h.identifierNode.range,h.identifierNode.text):_.basePrototype=h}else this.error(2312,f.range)}}for(let u=0,p=a.length;u<p;u++){let _=a[u],f=_.instanceMembers;if(f){let d=Map_values(f);for(let h=0,g=d.length;h<g;h++){let m=d[h],T=m.declaration;if(T.is(8192)){let S=_.basePrototype,E=!1;for(;S;){let F=S.instanceMembers;if(F&&F.has(m.name)){E=!0;break}S=S.basePrototype}if(!E){let F=assert(_.basePrototype);this.error(4117,T.name.range,F.name)}}}}}for(let u=0,p=l.length;u<p;++u){let _=l[u],f=assert(_.implementsNodes);for(let d=0,h=f.length;d<h;++d){let g=f[d],m=o.resolveTypeName(g.name,null,_.parent);if(m)if(m.kind==8){let T=m,S=_.interfacePrototypes;S||(_.interfacePrototypes=S=new Array),S.push(T)}else this.error(2422,g.range)}}for(let u=0,p=a.length;u<p;++u){let _=a[u],f=_.basePrototype;f&&this.processOverrides(_,f)}for(let u=0,p=l.length;u<p;++u){let _=l[u],f=_.basePrototype,d=_.interfacePrototypes;if(f&&this.processOverrides(_,f),d)for(let h=0,g=d.length;h<g;++h)this.processOverrides(_,d[h])}{let u=e.globalAliases;u||(u=new Map),u.has(P.abort)||u.set(P.abort,y.abort),u.has(P.trace)||u.set(P.trace,y.trace),u.has(P.seed)||u.set(P.seed,y.seed),u.has(P.Math)||u.set(P.Math,P.NativeMath),u.has(P.Mathf)||u.set(P.Mathf,P.NativeMathf);for(let p=Map_keys(u),_=0,f=p.length;_<f;++_){let d=unchecked(p[_]),h=changetype(u.get(d));if(assert(h!=null),!h.length){this.elementsByName.delete(d);continue}let g=h.charCodeAt(0);if(g>=48&&g<=57)this.registerConstantInteger(d,c.i32,i64_new(parseInt(h,10)));else{let m=this.elementsByName;m.has(h)?m.set(d,assert(m.get(h))):this.error(111,null,h)}}}for(let u=Map_values(this.filesByName),p=0,_=u.length;p<_;++p){let f=unchecked(u[p]);f.source.sourceKind==1&&this.markModuleExports(f)}this.enforceStreamServiceExclusion()}enforceStreamServiceExclusion(){if(this.options.targetMode=="cold")return;let e=!1,t=null;for(let n=0,s=this.sources.length;n<s;++n){let a=this.sources[n];if(a.sourceKind!=1&&a.sourceKind!=0)continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind==52){let _=p;if(Ue(41,_.decorators)&&(e=!0),!t){let d=Ue(17,_.decorators);d&&(t=d)}let f=_.members;for(let d=0,h=f.length;d<h;++d){let g=f[d];if(g.kind==59&&!t){let m=Ue(16,g.decorators);m&&(t=m)}}}else if(p.kind==56&&!t){let _=Ue(16,p.decorators);_&&(t=_)}}}e&&t!=null&&this.error(9003,t.range)}processOverrides(e,t){let n=e.instanceMembers;if(n){let s=Map_values(n),a=null;do{let l=t.instanceMembers;if(l)for(let p=0,_=s.length;p<_;++p){let f=s[p];if(l.has(f.name)){let d=assert(l.get(f.name));this.doProcessOverride(e,f,t,d)}}let o=t.interfacePrototypes;if(o)for(let p=0,_=o.length;p<_;++p){let f=o[p];f!=t&&this.processOverrides(e,f)}let u=t.basePrototype;if(!u||(a||(a=new Set),a.add(t),a.has(u)))break;t=u}while(!0)}}doProcessOverride(e,t,n,s){if(!t.isAny(524800))if(t.kind==4&&s.kind==4){let a=t,l=s,o=a.is(65536),u=l.is(65536);if(o!=u){this.errorRelated(242,a.identifierNode.range,l.identifierNode.range,a.name);return}a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),s.set(268435456);let p=l.unboundOverrides;p||(l.unboundOverrides=p=new Set),p.add(t);let _=l.instances;if(_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d)f[d].set(268435456)}else if(t.kind==10&&s.kind==10){let a=t,l=s;if(a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),l.parent.kind!=8){let p=a.isField;if(p!=l.isField){p?this.errorRelated(2610,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName):this.errorRelated(2611,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName);return}else if(p)return}l.set(268435456);let o=l.getterPrototype;if(o){o.set(268435456);let p=a.getterPrototype;if(p){let f=o.unboundOverrides;f||(o.unboundOverrides=f=new Set),f.add(p)}let _=o.instances;if(_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d)f[d].set(268435456)}let u=l.setterPrototype;if(u&&a.setterPrototype){u.set(268435456);let p=a.setterPrototype;if(p){let f=u.unboundOverrides;f||(u.unboundOverrides=f=new Set),f.add(p)}let _=u.instances;if(_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d)f[d].set(268435456)}}else this.errorRelated(2416,t.identifierNode.range,s.identifierNode.range,t.name,e.internalName,n.internalName)}lookup(e){let t=this.elementsByName;return t.has(e)?assert(t.get(e)):null}require(e,t){let n=this.lookup(e);if(!n)throw this.error(111,null,e),new Error(`Missing standard library component: ${e}`);if(n.kind!=t)throw this.error(111,null,e),new Error(`Invalid standard library component kind: ${e}`);return n}requireGlobal(e){return this.require(e,0)}requireClass(e){let t=this.require(e,6),n=this.resolver.resolveClass(t,null);if(!n)throw new Error(`Invalid standard library class: ${e}`);return n}requireFunction(e,t=null){let n=this.require(e,4),s=this.resolver.resolveFunction(n,t);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let t=e.exports;if(t)for(let s=Map_values(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.markModuleExports(n[s])}markModuleExport(e){switch(e.set(1048576),e.kind){case 6:{let n=e.instanceMembers;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}break}case 10:{let n=e,s=n.getterPrototype;s&&this.markModuleExport(s);let a=n.setterPrototype;a&&this.markModuleExport(a);break}case 11:case 5:case 7:assert(!1)}let t=e.members;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);this.markModuleExport(l)}}markModuleImport(e,t,n){n.set(2097152);let s=this.moduleImports,a;s.has(e)?a=assert(s.get(e)):(a=new Map,s.set(e,a)),a.set(t,n)}registerNativeType(e,t){let n=new nt(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);n.setType(t),this.nativeFile.add(e,n)}registerWrapperClass(e,t){let n=this.wrapperClasses;assert(!e.isInternalReference&&!n.has(e));let s=assert(this.lookup(t));assert(s.kind==6);let a=assert(this.resolver.resolveClass(s,null));a.wrappedType=e,n.set(e,a)}registerConstantInteger(e,t,n){assert(t.isIntegerInclReference);let s=new zr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(n,t),this.nativeFile.add(e,s)}registerConstantFloat(e,t,n){assert(t.isFloatValue);let s=new zr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(n,t),this.nativeFile.add(e,s)}ensureGlobal(e,t){let n=this.elementsByName;if(n.has(e)){let s=assert(n.get(e));if(s!=t){let a=Mp(s,t);if(!a)return gs(s.kind)?this.errorRelated(2300,t.identifierNode.range,s.declaration.name.range,e):this.error(2300,t.identifierNode.range,e),t;t=a}}return n.set(e,t),t}lookupForeignFile(e,t){let n=this.filesByName;return n.has(e)?assert(n.get(e)):n.has(t)?assert(n.get(t)):null}lookupForeign(e,t,n){do{let a=t.lookupExport(e);if(a)return a;if(n.has(t)){let l=assert(n.get(t));if(l.has(e)){let o=assert(l.get(e)),u=o.foreignPath;if(u){let p=this.lookupForeignFile(u,assert(o.foreignPathAlt));if(!p)return null;e=o.localIdentifier.text,t=p;continue}if(a=t.getMember(o.localIdentifier.text),a)return a}}break}while(!0);let s=t.exportsStar;if(s)for(let a=0,l=s.length;a<l;++a){let o=this.lookupForeign(e,s[a],n);if(o)return o}return null}checkDecorators(e,t){let n=0;if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s],o=it.fromNode(l.name),u=cr.fromKind(o);if(u)if(t&u)n&u?this.error(213,l.range):n|=u;else{let p=this.options.targetMode;p=="hot"&&(u==4194304||u==8388608)?this.error(9e3,l.range,l.name.range.toString()):p=="cold"&&(u==65536||u==131072||u==2097152||u==16777216||u==32768||u==16384)?this.error(9001,l.range,l.name.range.toString()):this.error(212,l.range,l.name.range.toString())}}return n}checkFeatureEnabled(e,t){return this.options.hasFeature(e)?!0:(this.error(103,t.range,mi(e)),!1)}checkTypeSupported(e,t){switch(e.kind){case 13:return this.checkFeatureEnabled(16,t);case 15:case 14:return e.is(512)?this.checkFeatureEnabled(256,t):this.checkFeatureEnabled(1024,t);case 16:case 17:case 18:case 19:case 20:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(1024,t);case 21:case 22:case 23:case 24:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(16384,t)}let n=e.getClass();if(n)do{let s=n.typeArguments;if(s){for(let a=0,l=s.length;a<l;++a)if(!this.checkTypeSupported(s[a],t))return!1}n=n.base}while(n);else{let s=e.getSignature();if(s){let a=s.thisType;if(a&&!this.checkTypeSupported(a,t))return!1;let l=s.parameterTypes;for(let u=0,p=l.length;u<p;++u)if(!this.checkTypeSupported(l[u],t))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,t))return!1}}return!0}initializeClass(e,t,n,s){let a=e.name.text,l=this.options.targetMode,o=270385;l!="cold"&&(o|=2195456),l=="cold"&&(o|=4194304);let u=new Ts(a,t,e,this.checkDecorators(e.decorators,o));if(!t.add(a,u))return null;u.hasDecorator(4194304)&&(this.daemonClass?this.error(9002,e.range):this.daemonClass=u);let p=e.implementsTypes;if(p){let f=p.length;f&&(u.hasDecorator(16)?this.error(208,ce.join(e.name.range,p[f-1].range)):s.push(u))}e.extendsType?n.push(u):!u.hasDecorator(16)&&u.internalName!=y.Object&&(u.implicitlyExtendsObject=!0);let _=e.members;for(let f=0,d=_.length;f<d;++f){let h=_[f];switch(h.kind){case 55:{this.initializeField(h,u);break}case 59:{let g=h;if(g.is(128)&&g.is(65536)&&this.error(241,g.name.range,g.name.text),h.isAny(6144))this.initializeProperty(g,u);else{let m=this.initializeMethod(g,u);m&&g.name.kind==27&&(u.constructorPrototype=m)}break}case 66:break;default:assert(!1)}}return u}initializeField(e,t){let n=e.name.text,s=e.decorators,a,l=2048;if(l|=524288,t.is(32768)&&(l|=128),e.is(32)){if(assert(t.kind!=8),l|=1024,e.is(64)&&(l|=64),a=new zr(n,t,this.checkDecorators(s,l),e),!t.add(n,a))return}else if(assert(!e.isAny(6272)),a=Oi.forField(n,t,e,this.checkDecorators(s,l)),!t.addInstance(n,a))return}initializeMethod(e,t){let n=e.name.text,s=e.is(32),a=this.options.targetMode,l=2112;l|=1048576,e.is(65536)||(l|=14,a!="cold"&&(l|=16924672),a=="cold"&&(l|=8388608)),t.is(32768)&&(l|=128),e.range.source.isLibrary&&(l|=512);let o=new tt(n,t,e,this.checkDecorators(e.decorators,l));if(o.hasDecorator(512)&&!x.has(o.internalName)&&this.error(100,e.range,`Builtin '${o.internalName}'`),o.hasDecorator(8388608)&&!t.hasDecorator(4194304)){let u=Ue(40,e.decorators);this.error(9004,u?u.range:e.range)}if(s){if(assert(e.name.kind!=27),!t.add(n,o))return null}else if(!t.addInstance(n,o))return null;return this.checkOperatorOverloads(e.decorators,o,t),o}checkOperatorOverloads(e,t,n){if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s];switch(l.decoratorKind){case 2:case 3:case 4:case 5:{let o=l.args,u=o?o.length:0;if(u==1){let p=l.args[0];if(p.isLiteralKind(2)){let _=p.value,f=we.fromDecorator(l.decoratorKind,_);if(f==0)this.error(224,p.range,_);else{let d=n.operatorOverloadPrototypes;d.has(f)?this.error(2393,p.range):(t.operatorKind=f,d.set(f,t))}}else this.error(1141,p.range)}else this.error(2554,l.range,"1",u.toString())}}}}ensureProperty(e,t){let n=e.name.text;if(e.is(32)){let s=t.members;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Oi(n,t,e);return t.add(n,a)?a:null}}else{let s=t.instanceMembers;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Oi(n,t,e);return t.addInstance(n,a)?a:null}}return this.error(2718,e.name.range,n),null}initializeProperty(e,t){let n=this.ensureProperty(e,t);if(!n)return;let s=e.name.text,a=e.is(2048);if(a){if(n.getterPrototype){this.error(2718,e.name.range,s);return}}else if(n.setterPrototype){this.error(2718,e.name.range,s);return}let l=new tt((a?Aa:va)+s,n.parent,e,this.checkDecorators(e.decorators,2112));a?n.getterPrototype=l:n.setterPrototype=l}initializeEnum(e,t){let n=e.name.text,s=new mo(n,t,e,this.checkDecorators(e.decorators,1089));if(!t.add(n,s))return null;let a=e.values;for(let l=0,o=a.length;l<o;++l)this.initializeEnumValue(a[l],s);return s}initializeEnumValue(e,t){let n=e.name.text,s=new yo(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeExports(e,t,n,s){let a=e.members;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeExport(a[l],t,e.internalPath,n);else{let l;s.has(t)?l=assert(s.get(t)):s.set(t,l=[]);let o=e.internalPath;l.push(new Pp(o,o.endsWith(qe)?o.substring(0,o.length-qe.length):o+qe,assert(e.path)))}}initializeExport(e,t,n,s){let a=e.localName.text,l=e.exportedName.text,o=t.lookupExport(l);if(o){this.error(2484,e.exportedName.range,l);return}if(n==null)if(o=t.getMember(a))t.ensureExport(l,o);else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new ho(e.localName,e.exportedName,null,null))}else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new ho(e.localName,e.exportedName,n,n.endsWith(qe)?n.substring(0,n.length-qe.length):n+qe))}}initializeExportDefault(e,t,n,s){let a=e.declaration,l=null;switch(a.kind){case 53:{l=this.initializeEnum(a,t);break}case 56:{l=this.initializeFunction(a,t);break}case 52:{l=this.initializeClass(a,t,n,s);break}case 58:{l=this.initializeInterface(a,t,n);break}case 60:{l=this.initializeNamespace(a,t,n,s);break}default:assert(!1)}if(l){let o=t.exports;if(!o)t.exports=o=new Map;else if(o.has("default")){let u=assert(o.get("default"));this.errorRelated(2300,a.name.range,u.declaration.name.range,"default");return}o.set("default",l)}}initializeImports(e,t,n,s){let a=e.declarations;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeImport(a[l],t,e.internalPath,n,s);else{let l=e.namespaceName;l&&n.push(new fo(t,l,null,e.internalPath,e.internalPath+qe))}}initializeImport(e,t,n,s,a){let l=n.endsWith(qe)?n.substring(0,n.length-qe.length):n+qe,o=this.lookupForeignFile(n,l);if(o){let u=this.lookupForeign(e.foreignName.text,o,a);if(u){t.add(e.name.text,u,e.name);return}}s.push(new fo(t,e.name,e.foreignName,n,l))}initializeFunction(e,t){let n=e.name.text,s=2048;s|=1048576,e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||t.kind!=6&&(s|=1,e.is(65536)||(s|=4096)),e.is(65536)||(s|=16384),e.range.source.isLibrary&&(s|=512);let a=new tt(n,t,e,this.checkDecorators(e.decorators,s));return a.hasDecorator(512)&&!x.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),a.hasDecorator(4096)&&(this.mainFunction?this.error(213,e.range):this.mainFunction=a),t.add(n,a)?a:null}initializeInterface(e,t,n){let s=e.name.text,a=new go(s,t,e,this.checkDecorators(e.decorators,1));if(!t.add(s,a))return null;e.extendsType&&n.push(a);let l=e.members;for(let o=0,u=l.length;o<u;++o){let p=l[o];switch(p.kind){case 55:{this.initializeFieldAsProperty(p,a);break}case 59:{let _=p;_.is(65536)&&this.error(241,_.name.range,_.name.text),p.isAny(6144)?this.initializeProperty(_,a):this.initializeMethod(_,a);break}default:assert(!1)}}return a}initializeFieldAsProperty(e,t){let n=e.initializer;n&&this.error(1246,n.range);let s=e.type;s||(s=z.createOmittedType(e.name.range.atEnd)),this.initializeProperty(z.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,z.createFunctionType([],s,null,!1,e.range),null,e.range),t),e.is(64)||this.initializeProperty(z.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,z.createFunctionType([z.createParameter(0,e.name,s,null,e.name.range)],z.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),t)}initializeNamespace(e,t,n,s){let a=e.name.text,l=new xs(a,t,e,this.checkDecorators(e.decorators,1));if(!t.add(a,l))return null;let o=assert(t.getMember(a)),u=e.members;for(let p=0,_=u.length;p<_;++p){let f=u[p];switch(f.kind){case 52:{this.initializeClass(f,l,n,s);break}case 53:{this.initializeEnum(f,l);break}case 56:{this.initializeFunction(f,l);break}case 58:{this.initializeInterface(f,l,n);break}case 60:{this.initializeNamespace(f,l,n,s);break}case 61:{this.initializeTypeDefinition(f,l);break}case 48:{this.initializeVariables(f,l);break}default:assert(!1)}}return l!=o&&Wt(l,o),o}initializeTypeDefinition(e,t){let n=e.name.text,s=new nt(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeVariables(e,t){let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.name.text,u=1025;l.is(32768)&&(u|=128),l.is(8)&&(u|=64),l.range.source.isLibrary&&(u|=512);let p=new zr(o,t,this.checkDecorators(l.decorators,u),l);p.hasDecorator(512)&&!mt.has(p.internalName)&&this.error(100,l.range,`Builtin '${p.internalName}'`),t.add(o,p)}}},vt=(m=>(m[m.Global=0]="Global",m[m.Local=1]="Local",m[m.Enum=2]="Enum",m[m.EnumValue=3]="EnumValue",m[m.FunctionPrototype=4]="FunctionPrototype",m[m.Function=5]="Function",m[m.ClassPrototype=6]="ClassPrototype",m[m.Class=7]="Class",m[m.InterfacePrototype=8]="InterfacePrototype",m[m.Interface=9]="Interface",m[m.PropertyPrototype=10]="PropertyPrototype",m[m.Property=11]="Property",m[m.Namespace=12]="Namespace",m[m.File=13]="File",m[m.TypeDefinition=14]="TypeDefinition",m[m.IndexSignature=15]="IndexSignature",m))(vt||{}),cr=(G=>(G[G.None=0]="None",G[G.Global=1]="Global",G[G.OperatorBinary=2]="OperatorBinary",G[G.OperatorPrefix=4]="OperatorPrefix",G[G.OperatorPostfix=8]="OperatorPostfix",G[G.Unmanaged=16]="Unmanaged",G[G.Final=32]="Final",G[G.Inline=64]="Inline",G[G.External=128]="External",G[G.ExternalJs=256]="ExternalJs",G[G.Builtin=512]="Builtin",G[G.Lazy=1024]="Lazy",G[G.Unsafe=2048]="Unsafe",G[G.Main=4096]="Main",G[G.Data=8192]="Data",G[G.Remote=16384]="Remote",G[G.Service=32768]="Service",G[G.Rest=65536]="Rest",G[G.Route=131072]="Route",G[G.Database=262144]="Database",G[G.Collection=524288]="Collection",G[G.DbFunction=1048576]="DbFunction",G[G.Stream=2097152]="Stream",G[G.Daemon=4194304]="Daemon",G[G.Scheduled=8388608]="Scheduled",G[G.StreamHook=16777216]="StreamHook",G))(cr||{});(i=>{function r(e){switch(e){case 1:return 1;case 2:case 3:return 2;case 4:return 4;case 5:return 8;case 6:return 16;case 7:return 32;case 8:return 64;case 9:return 128;case 10:return 256;case 11:return 512;case 12:return 1024;case 13:return 2048;case 14:return 4096;case 15:return 8192;case 16:return 16384;case 17:return 32768;case 18:return 65536;case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return 131072;case 31:return 262144;case 32:return 524288;case 33:case 34:case 35:case 36:case 38:return 1048576;case 41:return 2097152;case 39:return 4194304;case 40:return 8388608;case 42:case 43:case 44:case 45:return 16777216;default:return 0}}i.fromKind=r})(cr||={});var ys=class{constructor(i,e,t,n,s){this.kind=i;this.name=e;this.internalName=t;this.program=n;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=n,this.name=e,this.internalName=t,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let i=this;do if(i=i.parent,i.kind==13)return i;while(!0)}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}hasDecorator(i){return(this.decoratorFlags&i)==i}hasAnyDecorator(i){return(this.decoratorFlags&i)!=0}getMember(i){let e=this.members;return e&&e.has(i)?assert(e.get(i)):null}lookup(i,e=!1){return this.parent.lookup(i,e)}add(i,e,t=null){let n=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(i)){let l=assert(s.get(i));if(l.parent==this){let o=Mp(l,e);if(o)e=o;else{let u=t||e.identifierNode;return gs(l.kind)?this.program.errorRelated(2300,u.range,l.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(i,e);let a=this.program;return(e.kind!=4||!e.isBound)&&(a.elementsByName.set(e.internalName,e),a.elementsByDeclaration.set(n,e)),!0}get isPublic(){return!this.isAny(1536)}get isImplicitlyPublic(){return this.isPublic&&!this.is(256)}visibilityEquals(i){if(this.isPublic==i.isPublic)return!0;let e=1536;return(this.flags&e)==(i.flags&e)}visibilityNoLessThan(i){return this.isPublic?!0:this.is(512)?i.is(512):this.is(1024)?i.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let i=this.parent;switch(i.kind){case 7:case 9:return i}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},$g=new Set;function gs(r){return $g.has(r)}var ur=class extends ys{constructor(e,t,n,s,a,l){super(e,t,n,s,a);this.declaration=l;$g.add(e),this.declaration=l,this.flags=l.flags}get isDeclaredInLibrary(){return this.declaration.range.source.isLibrary}get identifierNode(){return this.declaration.name}get identifierAndSignatureRange(){let e=this.declaration,t=e.name;if(e.kind==56||e.kind==59){let n=e.signature;if(t.range.source==n.range.source)return ce.join(t.range,n.range)}return t.range}get decoratorNodes(){return this.declaration.decorators}},eb=new Set;function ro(r){return eb.has(r)}var jt=class extends ur{constructor(e,t,n,s,a,l){super(e,t,n,s,a,l);this.type=c.void;eb.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}},bs=class extends ys{constructor(e,t){super(13,t.normalizedPath,t.internalPath,e,null);this.source=t;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=t,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let n=this.program.makeNativeFunction(`start:${this.internalName}`,Xe.create(e,[],c.void),this);n.internalName=n.name,this.startFunction=n}add(e,t,n=null){return t.hasDecorator(1)&&(t=this.program.ensureGlobal(e,t)),super.add(e,t,n)?(t=assert(this.getMember(e)),t.is(2)&&!n&&this.ensureExport(t.name,t),!0):!1}getMember(e){let t=super.getMember(e);if(t)return t;let n=this.exportsStar;if(n){for(let s=0,a=n.length;s<a;++s)if(t=n[s].getMember(e))return t}return null}lookup(e,t=!1){let n=this.getMember(e);return n||this.program.lookup(e)}ensureExport(e,t){let n=this.exports;n||(this.exports=n=new Map),n.set(e,t),this.source.sourceKind==3&&this.program.ensureGlobal(e,t);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,t)}ensureExportStar(e){let t=this.exportsStar;if(!t)this.exportsStar=t=[];else if(t.includes(e))return;t.push(e)}lookupExport(e){let t=this.exports;if(t&&t.has(e))return assert(t.get(e));let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s){let l=n[s].lookupExport(e);if(l)return l}return null}asAliasNamespace(e,t,n){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=n;let a=new xs(e,t,s);return a.set(67108864),this.copyExportsToNamespace(a),this.aliasNamespaces.push(a),a}copyExportsToNamespace(e){let t=this.exports;if(t)for(let s=Map_keys(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(t.get(o));e.add(o,u)}let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)n[s].copyExportsToNamespace(e)}},nt=class extends jt{constructor(i,e,t,n=0){super(14,i,Ne(i,e,!1),e.program,e,t),this.decoratorFlags=n}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},xs=class extends ur{constructor(i,e,t,n=0){super(12,i,Ne(i,e,!1),e.program,e,t),this.decoratorFlags=n}lookup(i,e=!1){let t=this.getMember(i);return t||super.lookup(i,e)}},mo=class extends jt{constructor(e,t,n,s=0){super(2,e,Ne(e,t,!1),t.program,t,n);this.toStringFunctionName=null;this.decoratorFlags=s,this.setType(c.i32)}lookup(e,t=!1){let n=this.getMember(e);return n||super.lookup(e,t)}},Lp=(t=>(t[t.None=0]="None",t[t.Integer=1]="Integer",t[t.Float=2]="Float",t))(Lp||{}),Ur=class extends jt{constructor(e,t,n,s=n.program.makeNativeVariableDeclaration(t)){super(e,t,Ne(t,n,s.is(262144)),n.program,n,s);this.constantValueKind=0;this.constantIntegerValue=i64_zero;this.constantFloatValue=0;this.flags=s.flags}get typeNode(){return this.declaration.type}get initializerNode(){return this.declaration.initializer}setConstantIntegerValue(e,t){assert(t.isIntegerInclReference),this.type=t,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,t){assert(t.isFloatValue),this.type=t,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},yo=class extends Ur{constructor(e,t,n,s=0){super(3,e,t,n);this.isImmutable=!1;this.decoratorFlags=s,this.setType(c.i32)}get valueNode(){return this.declaration.initializer}},zr=class extends Ur{constructor(i,e,t,n=e.program.makeNativeVariableDeclaration(i)){super(0,i,e,n),this.decoratorFlags=t}},Bp=class{constructor(i,e,t=null){this.name=i;this.type=e;this.initializer=t}},Qe=class extends Ur{constructor(e,t,n,s,a=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,a);this.index=t;this.isCaptured=!1;this.envSlotIndex=-1;this.envOwner=null;this.wasAccessedAsLocal=!1;this.originalName=e,this.index=t,assert(n!=c.void),this.setType(n)}declaredByFlow(e){return this.parent==e.targetFunction}},tt=class r extends ur{constructor(e,t,n,s=0){super(4,e,Ne(e,t,n.is(262144)),t.program,t,n);this.operatorKind=0;this.instances=null;this.unboundOverrides=null;this.boundPrototypes=null;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get functionTypeNode(){return this.declaration.signature}get bodyNode(){return this.declaration.body}get arrowKind(){return this.declaration.arrowKind}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==59);let s=new r(this.name,e,n,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,t.set(e,s),s}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?assert(t.get(e)):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},St=class r extends jt{constructor(e,t,n,s,a=null){super(5,e,Ne(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.capturedLocals=null;this.envClass=null;this.envLocal=null;this.outerFunction=null;this.closureEnvLocal=null;this.needsCaptureRecompile=!1;this.nextBreakId=0;this.breakStack=null;this.prototype=t,this.typeArguments=n,this.signature=s,this.flags=t.flags|4194304,this.decoratorFlags=t.decoratorFlags,this.contextualTypeArguments=a,this.original=this;let l=t.program;this.type=s.type;let o=qt.createDefault(this);if(this.flow=o,!t.is(32768)){let u=0,p=s.thisType;if(p){let f=new Qe(P.this_,u++,p,this),d=this.flow.scopedLocals;d||(this.flow.scopedLocals=d=new Map),d.set(P.this_,f),this.localsByIndex[f.index]=f,o.setLocalFlag(f.index,8)}let _=s.parameterTypes;for(let f=0,d=_.length;f<d;++f){let h=_[f],g=this.getParameterName(f),m=new Qe(g,u++,h,this),T=this.flow.scopedLocals;T||(this.flow.scopedLocals=T=new Map),T.set(g,m),this.localsByIndex[m.index]=m,o.setLocalFlag(m.index,8)}}l.instancesByName.has(this.internalName)?(l.error(2393,t.declaration.name.range),this.set(16777216)):Np(l,this)}get needsEnvironment(){return this.capturedLocals!=null&&this.capturedLocals.size>0}getNonParameterLocalTypes(){let e=this.localsByIndex,t=this.signature,n=e.length,s=t.parameterTypes.length;t.thisType&&++s;let a=n-s,l=new Array(a);for(let o=0;o<a;++o)l[o]=e[s+o].type;return l}getParameterName(e){let t=this.declaration.signature.parameters;return t.length>e?t[e].name.text:tb(e)}newStub(e,t=this.signature.requiredParameters){let n=new r(this.original.name+wc+e,this.prototype,this.typeArguments,this.signature.clone(t),this.contextualTypeArguments);return n.original=this.original,n.set(this.flags&-8388609|134217728),n}addLocal(e,t=null,n=null){let s=this.localsByIndex,a=s.length,l=t??a.toString();n||(n=this.program.makeNativeVariableDeclaration(l));let o=new Qe(l,a,e,this,n);if(t){let u=this.flow,p=u.scopedLocals;if(p||(u.scopedLocals=p=new Map),p.has(t))throw new Error("duplicate local name");p.set(t,o)}return s[a]=o,o}lookup(e,t=!1){if(!t){let n=this.flow.scopedLocals;if(n&&n.has(e))return assert(n.get(e))}return super.lookup(e,t)}finalize(e,t){this.ref=t;let n=this.breakStack;assert(!n||!n.length),this.breakStack=null,this.addDebugInfo(e,t)}addDebugInfo(e,t){if(this.program.options.sourceMap){let n=this.debugLocations;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o)),p=u.source;e.setDebugLocation(t,o,p.debugInfoIndex,p.lineAt(u.start),p.columnAt()-1)}}if(this.program.options.debugInfo){let n=new Set,s=this.localsByIndex;for(let a=0,l=s.length;a<l;a++){let o=s[a].name;n.has(o)&&(o=`${o}|${a}`),n.add(o),e.setLocalName(t,a,o)}}}},Oi=class r extends ur{constructor(e,t,n){super(10,e,Ne(e,t,n.is(262144)),t.program,t,n);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,t,n,s){let a=fe.native.range,l=n.type;l||(l=z.createOmittedType(n.name.range.atEnd));let o=new Pr(n.name,n.decorators,n.flags|262144|2048,null,new wr([],l,null,!1,a),null,a),u=new Pr(n.name,n.decorators,n.flags|262144|4096,null,new wr([new Ri(0,n.name,l,null,a)],new ae(new ki(new xe("",!1,a),null,a),null,!1,a),null,!1,a),null,a),p=new r(e,t,o);return p.fieldDeclaration=n,p.decoratorFlags=s,p.getterPrototype=new tt(Aa+e,t,o,s),p.setterPrototype=new tt(va+e,t,u,s),p}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let t=this.getterPrototype;if(t){let s=t.declaration;if(s.kind==56)return s.signature.returnType}let n=this.setterPrototype;if(n){let s=n.declaration;if(s.kind==56){let a=s.signature.parameters;if(a.length)return a[0].type}}return null}get initializerNode(){let e=this.fieldDeclaration;return e?e.initializer:null}get parameterIndex(){let e=this.fieldDeclaration;return e?e.parameterIndex:-1}get thisType(){let e=this.parent;return assert(e.kind==7),e.type}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==59);let s=new r(this.name,e,n);s.flags=this.flags,s.fieldDeclaration=this.fieldDeclaration;let a=this.getterPrototype;a&&(s.getterPrototype=a.toBound(e));let l=this.setterPrototype;return l&&(s.setterPrototype=l.toBound(e)),t.set(e,s),s}},ls=class extends Ur{constructor(e,t){super(11,e.name,t,e.isField?assert(e.fieldDeclaration):z.createVariableDeclaration(e.identifierNode,null,e.flags&262144,null,null,e.identifierNode.range));this.getterInstance=null;this.setterInstance=null;this.memoryOffset=-1;this.prototype=e,this.flags=e.flags,this.decoratorFlags=e.decoratorFlags,this.is(262144)&&Np(this.program,this)}get isField(){return this.prototype.isField}checkVisibility(e){let t=this.getterInstance,n=this.setterInstance;t&&n&&!t.visibilityNoLessThan(n)&&e.errorRelated(2808,t.identifierNode.range,n.identifierNode.range,t.identifierNode.text)}},os=class extends jt{constructor(i){super(15,"[]",i.internalName+"[]",i.program,i,i.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(i){return this.parent.lookupOverload(1,i)}getSetterInstance(i){return this.parent.lookupOverload(2,i)}},Ts=class extends ur{constructor(e,t,n,s=0,a=!1){super(a?8:6,e,Ne(e,t,n.is(262144)),t.program,t,n);this.instanceMembers=null;this.basePrototype=null;this.interfacePrototypes=null;this.constructorPrototype=null;this.operatorOverloadPrototypes=new Map;this.instances=null;this.extenders=new Set;this.implicitlyExtendsObject=!1;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get extendsNode(){return this.declaration.extendsType}get implementsNodes(){return this.declaration.implementsTypes}get isBuiltinArray(){let e=this.program.arrayBufferViewInstance;return e&&this.extends(e.prototype)}extends(e){let t=this,n=new Set;do{if(n.has(t))break;if(n.add(t),t==e)return!0;t=t.basePrototype}while(t);return!1}addInstance(e,t){let n=t.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let a=assert(s.get(e)),l=Mp(a,t);if(!l)return gs(a.kind)?this.program.errorRelated(2300,t.identifierNode.range,a.declaration.name.range,t.identifierNode.text):this.program.error(2300,t.identifierNode.range,t.identifierNode.text),!1;t=l}return s.set(e,t),t.is(2)&&this.is(1048576)&&t.set(1048576),this.program.elementsByDeclaration.set(n,t),!0}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?t.get(e):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},lr=class extends jt{constructor(e,t,n=null,s=!1){super(s?9:7,e,Ne(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=0;this.constructorInstance=null;this.operatorOverloads=null;this.indexSignature=null;this._id=0;this.rttiFlags=0;this.wrappedType=null;this.extenders=null;this.implementers=null;this.didCheckFieldInitialization=!1;this.visitRef=0;this.prototype=t,this.flags=t.flags,this.decoratorFlags=t.decoratorFlags,this.typeArguments=n;let a=this.program,l=a.options.usizeType,o=new c(l.kind,l.flags&-129|256,l.size);if(o.classReference=this,this.setType(o),!this.hasDecorator(16)){let p=a.nextClassId++;this._id=p,a.managedClasses.set(p,this)}let u=t.typeParameterNodes;if(n){let p=n.length;if(!u||p!=u.length)throw new Error("type argument count mismatch");if(p){let _=this.contextualTypeArguments;_||(this.contextualTypeArguments=_=new Map);for(let f=0;f<p;++f)_.set(u[f].name.text,n[f])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");Np(a,this)}get id(){return this._id}get isBuiltinArray(){return this.prototype.isBuiltinArray}get isArrayLike(){if(this.isBuiltinArray)return!0;let e=this.getMember("length");return e?(e.kind==11&&e.getterInstance!=null||e.kind==10&&e.getterPrototype!=null)&&(this.lookupOverload(1)!=null||this.lookupOverload(3)!=null):!1}get isInterface(){return this.kind==9}static leastUpperBound(e,t){if(e==t)return e;let n=new Set;for(n.add(e),n.add(t);;){let s=e.base,a=t.base;if(!s&&!a)return null;if(s){if(n.has(s))return s;n.add(e=s)}if(a){if(n.has(a))return a;n.add(t=a)}}}setBase(e){assert(!this.base),this.base=e;let t=e.contextualTypeArguments;if(t){let a=this.contextualTypeArguments;for(let l=Map_keys(t),o=0,u=l.length;o<u;++o){let p=unchecked(l[o]),_=assert(t.get(p));a?a.has(p)||a.set(p,_):(this.contextualTypeArguments=a=new Map,a.set(p,_))}}e.propagateExtenderUp(this);let n=this.extenders;if(n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];e.propagateExtenderUp(u)}let s=e;do{let a=s.interfaces;if(a)for(let l=Set_values(a),o=0,u=l.length;o<u;++o){let p=l[o];this.propagateInterfaceDown(p)}s=s.base}while(s)}propagateExtenderUp(e){let t=this;do{let n=t.extenders;n||(t.extenders=n=new Set),n.add(e),t=t.base}while(t)}propagateInterfaceDown(e){let t=e,n=this.extenders;do{let s=t.implementers;if(s||(t.implementers=s=new Set),s.add(this),n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];s.add(u)}t=t.base}while(t)}addInterface(e){let t=this.interfaces;t||(this.interfaces=t=new Set),t.add(e),this.propagateInterfaceDown(e)}isAssignableTo(e){return e.isInterface?this.isInterface?this==e||this.extends(e):this.implements(e):this.isInterface?e==this.program.objectInstance:this==e||this.extends(e)}hasSubclassAssignableTo(e){return e.isInterface?this.isInterface?this.hasImplementerImplementing(e):this.hasExtenderImplementing(e):this.isInterface?this.hasImplementer(e):this.hasExtender(e)}lookupOverload(e,t=!1){if(t)switch(e){case 1:{let s=this.lookupOverload(3);if(s)return s;break}case 2:{let s=this.lookupOverload(4);if(s)return s;break}default:assert(!1)}let n=this;do{let s=n.operatorOverloads;if(s!=null&&s.has(e))return assert(s.get(e));n=n.base}while(n);return null}getMethod(e,t=null){let n=this.getMember(e);return n&&n.kind==4?this.program.resolver.resolveFunction(n,t):null}offsetof(e){let t=assert(this.getMember(e));assert(t.kind==10);let s=t.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let t=this.program,n=this.nextMemoryOffset+e,s=t.computeBlockSize(n,!0),a=new Uint8Array(t.blockOverhead+s),l=t.OBJECTInstance;return l.writeField("mmInfo",s,a,0),l.writeField("gcInfo",0,a,0),l.writeField("gcInfo2",0,a,0),l.writeField("rtId",this.id,a,0),l.writeField("rtSize",n,a,0),a}writeField(e,t,n,s=this.program.totalOverhead){let a=this.getMember(e);if(a&&a.kind==10){let o=a.instance;if(!o)return 0;assert(o.isField&&o.memoryOffset>=0);let u=s+o.memoryOffset,p=o.type.kind;switch(p){case 1:case 6:return assert(!i64_is(t)),de(i32(t),n,u),1;case 2:case 7:return assert(!i64_is(t)),rr(i32(t),n,u),2;case 3:case 8:return assert(!i64_is(t)),ge(i32(t),n,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(t)?xi(t,n,u):Sa(i32(t),n,u,p==10),8):(i64_is(t)?Cc(t,n,u,p==10):ge(i32(t),n,u),4);case 4:case 9:return i64_is(t)?xi(t,n,u):Sa(i32(t),n,u,p==9),8;case 11:return assert(!i64_is(t)),Sr(f32(t),n,u),4;case 12:return assert(!i64_is(t)),Ir(f64(t),n,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let t=this;do{if(t.prototype==e)return t.typeArguments;t=t.base}while(t);return null}getArrayValueType(){let e=this,t=this.program,n=t.arrayPrototype;if(this.extendsPrototype(n))return this.getTypeArgumentsTo(n)[0];let s=t.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let a=t.arrayBufferViewInstance;for(;e.base!=a;)e=assert(e.base);let l=e.prototype;switch(l.name.charCodeAt(0)){case 70:{if(l==t.float32ArrayPrototype)return c.f32;if(l==t.float64ArrayPrototype)return c.f64;break}case 73:{if(l==t.int8ArrayPrototype)return c.i8;if(l==t.int16ArrayPrototype)return c.i16;if(l==t.int32ArrayPrototype)return c.i32;if(l==t.int64ArrayPrototype)return c.i64;break}case 85:{if(l==t.uint8ArrayPrototype)return c.u8;if(l==t.uint8ClampedArrayPrototype)return c.u8;if(l==t.uint16ArrayPrototype)return c.u16;if(l==t.uint32ArrayPrototype)return c.u32;if(l==t.uint64ArrayPrototype)return c.u64;break}}return assert(!1),c.void}get isPointerfree(){let e=this.program,t=this.members;if(t){for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(l.kind==10){let u=l.instance;if(!u)continue;if(u.isField&&u.type.isManaged)return!1}}if(t.has(P.visit)){let n=this.prototype;if(n==e.arrayPrototype||n==e.staticArrayPrototype||n==e.setPrototype||n==e.mapPrototype){let s=assert(this.getTypeArgumentsTo(n));for(let a=0,l=s.length;a<l;++a)if(s[a].isManaged)return!1;return!0}return!1}}return!0}extends(e){return e.hasExtender(this)}hasExtender(e){let t=this.extenders;return t!=null&&t.has(e)}hasExtenderImplementing(e){let t=this.extenders;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}implements(e){return e.hasImplementer(this)}hasImplementer(e){let t=this.implementers;return t!=null&&t.has(e)}hasImplementerImplementing(e){let t=this.implementers;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}},go=class extends Ts{constructor(i,e,t,n){super(i,e,t,n,!0)}},us=class extends lr{constructor(i,e,t=null){super(i,e,t,!0)}};function Np(r,i){assert(!r.instancesByName.has(i.internalName)),r.instancesByName.set(i.internalName,i)}function Mp(r,i){if(assert(r.program==i.program),i.members)return null;let e=null;switch(r.kind){case 4:{switch(i.kind){case 12:{Wt(i,r),e=r;break}case 14:{r.shadowType||(r.shadowType=i,Wt(i,r),e=r);break}}break}case 6:case 2:{if(i.kind==12){Wt(i,r),e=r;break}break}case 12:{switch(i.kind){case 2:case 6:case 4:{Wt(r,i),e=i;break}case 12:{Wt(i,r),e=r;break}case 14:{r.shadowType||(r.shadowType=i,Wt(i,r),e=r);break}}break}case 0:{i.kind==14&&(r.shadowType||(r.shadowType=i,Wt(i,r),e=r));break}case 14:{switch(i.kind){case 0:case 4:case 12:{i.shadowType||(i.shadowType=r,Wt(r,i),e=i);break}}break}}if(e){let t=r.is(2)||r.hasDecorator(1),n=i.is(2)||i.hasDecorator(1);t!=n&&r.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function Wt(r,i){let e=r.members;if(e){let t=i.members;t||(i.members=t=new Map);for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));t.set(l,o)}}}function Ne(r,i,e,t=!1){switch(i.kind){case 13:return t?r:i.internalName+lt+r;case 5:return t?r:(assert(!e),i.internalName+Fc+r);case 10:case 11:i=i.parent;default:return Ne(i.name,i.parent,i.is(262144),t)+(e?Rc:Nn)+r}}var Cp=[];function tb(r){for(let i=Cp.length;i<=r;++i)Cp.push(`$${i}`);return Cp[r]}var sr=(G=>(G[G.Bool=0]="Bool",G[G.I8=1]="I8",G[G.I16=2]="I16",G[G.I32=3]="I32",G[G.I64=4]="I64",G[G.Isize=5]="Isize",G[G.U8=6]="U8",G[G.U16=7]="U16",G[G.U32=8]="U32",G[G.U64=9]="U64",G[G.Usize=10]="Usize",G[G.F32=11]="F32",G[G.F64=12]="F64",G[G.V128=13]="V128",G[G.Extern=14]="Extern",G[G.Func=15]="Func",G[G.Any=16]="Any",G[G.Eq=17]="Eq",G[G.Struct=18]="Struct",G[G.Array=19]="Array",G[G.I31=20]="I31",G[G.String=21]="String",G[G.StringviewWTF8=22]="StringviewWTF8",G[G.StringviewWTF16=23]="StringviewWTF16",G[G.StringviewIter=24]="StringviewIter",G[G.Void=25]="Void",G))(sr||{}),Et=(g=>(g[g.None=0]="None",g[g.Signed=1]="Signed",g[g.Unsigned=2]="Unsigned",g[g.Integer=4]="Integer",g[g.Float=8]="Float",g[g.Varying=16]="Varying",g[g.Short=32]="Short",g[g.Long=64]="Long",g[g.Value=128]="Value",g[g.Reference=256]="Reference",g[g.Nullable=512]="Nullable",g[g.Vector=1024]="Vector",g[g.External=2048]="External",g[g.Class=4096]="Class",g[g.Function=8192]="Function",g))(Et||{}),c=class r{constructor(i,e,t){this.classReference=null;this.signatureReference=null;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=i,this.flags=e,this.size=t,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==r.auto)return this;switch(this.kind){case 0:case 3:case 11:return r.i32;case 1:return r.i8;case 2:return r.i16;case 12:case 4:return r.i64;case 5:return this.size==64?r.isize64:r.isize32;case 6:return r.u8;case 7:return r.u16;case 8:return r.u32;case 9:return r.u64;case 10:return this.size==64?r.usize64:r.usize32;default:return r.i32}}get exceptVoid(){return this.kind==25?r.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return 31-clz(this.byteSize)}get isValue(){return this.is(128)}get isIntegerValue(){return this.is(132)}get isShortIntegerValue(){return this.is(164)}get isLongIntegerValue(){return this.is(196)}get isSignedIntegerValue(){return this.is(133)}get isUnsignedIntegerValue(){return this.is(134)}get isVaryingIntegerValue(){return this.is(148)}get isIntegerInclReference(){return this.is(4)}get isFloatValue(){return this.is(136)}get isNumericValue(){return this.isIntegerValue||this.isFloatValue}get isBooleanValue(){return this==r.bool}get isVectorValue(){return this.is(1152)}get isReference(){return this.is(256)}get isNullableReference(){return this.is(768)}get isInternalReference(){return this.is(260)}get isExternalReference(){return this.is(2304)}get isNullableExternalReference(){return this.is(2816)}getClass(){return this.isInternalReference?this.classReference:null}get isClass(){return this.getClass()!=null}getClassOrWrapper(i){let e=this.getClass();if(e)return e;{let t=this.getSignature();if(t){let n=t.type,s=assert(i.resolver.resolveClass(i.functionPrototype,[n]));return s.wrappedType=n,s}else{let n=i.wrapperClasses;if(n.has(this))return assert(n.get(this))}}return null}lookupOverload(i,e){let t=this.getClassOrWrapper(e);return t?t.lookupOverload(i):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let i=this.classReference;return i?!i.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let i=this.classReference;return i!=null&&i.hasDecorator(16)}get isMemory(){switch(this.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:return!0}return!1}get nonNullableType(){return assert(this._nonNullableType)}get nullableType(){return this.isReference?this.asNullable():null}computeSmallIntegerShift(i){return i.size-this.size}computeSmallIntegerMask(i){let e=this.size;return this.is(2)||(e-=1),-1>>>i.size-e}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}asNullable(){assert(this.isReference);let i=this._nullableType;return i||(assert(!this.isNullableReference),this._nullableType=i=new r(this.kind,this.flags|512,this.size),i.classReference=this.classReference,i.signatureReference=this.signatureReference,i._nonNullableType=this),i}toUnsigned(){switch(this.kind){case 1:return r.u8;case 2:return r.u16;case 3:return r.u32;case 4:return r.u64;case 5:return this.size==64?r.usize64:r.usize32}return this}equals(i){if(this.kind!=i.kind)return!1;if(this.isReference){let e=this.signatureReference,t=i.signatureReference;return this.classReference==i.classReference&&e==t&&this.isNullableReference==i.isNullableReference}return!0}isAssignableTo(i,e=!1){let t,n,s,a;if(this.isReference){if(i.isReference&&(!this.isNullableReference||i.isNullableReference)){if(t=this.getClass()){if(n=i.getClass())return t.isAssignableTo(n)}else if(s=this.getSignature()){if(a=i.getSignature())return s.isAssignableTo(a)}else if(this.isExternalReference&&(this.kind==i.kind||i.kind==16&&this.kind!=14))return!0}}else if(!i.isReference){if(this.isIntegerValue)if(i.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==i.isSignedIntegerValue)return this.size<=i.size}else{if(i.kind==11)return this.size<=23;if(i.kind==12)return this.size<=52}else if(this.isFloatValue){if(i.isFloatValue)return this.size<=i.size}else if(this.isVectorValue&&i.isVectorValue)return this.size==i.size}return!1}isStrictlyAssignableTo(i,e=!1){return this.isReference?this.isAssignableTo(i):i.isReference?!1:this.isIntegerValue?i.isIntegerValue&&i.size==this.size&&(!e||this.isSignedIntegerValue==i.isSignedIntegerValue):this.kind==i.kind}hasSubtypeAssignableTo(i){let e=this.getClass(),t=i.getClass();return!e||!t?!1:e.hasSubclassAssignableTo(t)}isChangeableTo(i){if(this.is(4)&&i.is(4)){let e=this.size;return e==i.size&&(e>=32||this.is(1)==i.is(1))}return this.kind==i.kind}canExtendOrImplement(i){let e=this.getClass(),t=i.getClass();if(!e||!t||this.isManaged!=i.isManaged)return!1;if(this.isInternalReference){if(!i.isInternalReference)return!1}else if(this.isExternalReference){if(!i.isExternalReference)return!1}else return!1;return!0}static commonType(i,e,t=r.auto,n=!1){if(i.isInternalReference){if(!e.isInternalReference)return null;if(t!=r.void&&i.isAssignableTo(t)&&e.isAssignableTo(t))return t;let s=i.getClass(),a=e.getClass();if(s&&a){let l=lr.leastUpperBound(s,a);if(l)return i.is(512)||e.is(512)?l.type.asNullable():l.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(i,n)?i:i.isAssignableTo(e,n)?e:null}kindToString(){switch(this.kind){case 0:return P.bool;case 1:return P.i8;case 2:return P.i16;case 3:return P.i32;case 4:return P.i64;case 5:return P.isize;case 6:return P.u8;case 7:return P.u16;case 8:return P.u32;case 9:return P.u64;case 10:return P.usize;case 11:return P.f32;case 12:return P.f64;case 13:return P.v128;case 15:return P.ref_func;case 14:return P.ref_extern;case 16:return P.ref_any;case 17:return P.ref_eq;case 18:return P.ref_struct;case 19:return P.ref_array;case 20:return P.ref_i31;case 21:return P.ref_string;case 22:return P.ref_stringview_wtf8;case 23:return P.ref_stringview_wtf16;case 24:return P.ref_stringview_iter;default:assert(!1);case 25:return P.void_}}toString(i=!1){let e=i?"|null":" | null";if(this.isReference){let t=this.getClass();if(t)return this.isNullableReference?t.internalName+e:t.internalName;{let n=this.getSignature();return n?this.isNullableReference?`(${n.toString(i)})${e}`:n.toString(i):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==r.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return N.I32;case 5:case 10:if(this.size!=64)return N.I32;case 4:case 9:return N.I64;case 11:return N.F32;case 12:return N.F64;case 13:return N.V128;case 15:return me(Te.Func,this.is(512));case 14:return me(Te.Extern,this.is(512));case 16:return me(Te.Any,this.is(512));case 17:return me(Te.Eq,this.is(512));case 18:return me(Te.Struct,this.is(512));case 19:return me(Te.Array,this.is(512));case 20:return me(Te.I31,this.is(512));case 21:return me(Te.String,this.is(512));case 25:return N.None}return assert(!1),ns(this)}static{this.i8=new r(1,165,8)}static{this.i16=new r(2,165,16)}static{this.i32=new r(3,133,32)}static{this.i64=new r(4,197,64)}static{this.isize32=new r(5,149,32)}static{this.isize64=new r(5,213,64)}static{this.u8=new r(6,166,8)}static{this.u16=new r(7,166,16)}static{this.u32=new r(8,134,32)}static{this.u64=new r(9,198,64)}static{this.usize32=new r(10,150,32)}static{this.usize64=new r(10,214,64)}static{this.bool=new r(0,166,1)}static{this.f32=new r(11,137,32)}static{this.f64=new r(12,201,64)}static{this.v128=new r(13,1152,128)}static{this.func=new r(15,2304,0)}static{this.extern=new r(14,2304,0)}static{this.any=new r(16,2304,0)}static{this.eq=new r(17,2304,0)}static{this.struct=new r(18,2304,0)}static{this.array=new r(19,2304,0)}static{this.i31=new r(20,2304,0)}static{this.string=new r(21,2304,0)}static{this.stringview_wtf8=new r(22,2304,0)}static{this.stringview_wtf16=new r(23,2304,0)}static{this.stringview_iter=new r(24,2304,0)}static{this.void=new r(25,0,0)}static{this.auto=new r(r.i32.kind,r.i32.flags,r.i32.size)}};function Vr(r){let i=r.length,e=new Array(i);for(let t=0;t<i;++t)unchecked(e[t]=r[t].toRef());return e}function io(r){let i=r.length;if(!i)return"";let e=new Array(i);for(let t=0;t<i;++t)unchecked(e[t]=r[t].toString(!0));return e.join(",")}var Xe=class r{constructor(i,e,t,n,s,a,l,o){this.program=i;this.parameterTypes=e;this.returnType=t;this.thisType=n;this.requiredParameters=s;this.hasRest=a;this.id=l;this.type=o}static create(i,e=[],t=c.void,n=null,s=e?e.length:0,a=!1){let l=i.options.usizeType,o=new c(l.kind,l.flags&-129|256,l.size),u=i.uniqueSignatures,p=i.nextSignatureId,_=new r(i,e,t,n,s,a,p,o),f=_.toString();if(u.has(f)){let d=assert(u.get(f));return assert(_.equals(d)),d}return i.nextSignatureId=p+1,o.signatureReference=_,u.set(f,_),_}get paramRefs(){let i=this.thisType,e=this.parameterTypes,t=e.length;if(!t)return i?i.toRef():N.None;if(i){let n=new Array(1+t);unchecked(n[0]=i.toRef());for(let s=0;s<t;++s)unchecked(n[s+1]=e[s].toRef());return Ze(n)}return Ze(Vr(e))}get resultRefs(){return this.returnType.toRef()}equals(i){let e=this.thisType,t=i.thisType;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;if(this.hasRest!=i.hasRest||!this.returnType.equals(i.returnType))return!1;let n=this.parameterTypes,s=i.parameterTypes,a=n.length;if(a!=s.length)return!1;for(let l=0;l<a;++l){let o=unchecked(n[l]),u=unchecked(s[l]);if(!o.equals(u))return!1}return!0}isAssignableTo(i,e=!1){let t=this.thisType,n=i.thisType;if(t&&n){if(!(e?t.canExtendOrImplement(n):n.isAssignableTo(t)))return!1}else if(t||n)return!1;if(this.hasRest!=i.hasRest)return!1;let s=this.returnType,a=i.returnType;if(!(s==a||s.isAssignableTo(a)))return!1;let l=this.parameterTypes,o=i.parameterTypes,u=l.length;if(u!=o.length)return!1;for(let p=0;p<u;++p){let _=unchecked(l[p]),f=unchecked(o[p]);if(_!=f)return!1}return!0}get hasManagedOperands(){let i=this.thisType;if(i&&i.isManaged)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isManaged)return!0;return!1}getManagedOperandIndices(){let i=new Array,e=0,t=this.thisType;t&&(t.isManaged&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isManaged&&i.push(e),++e;return i}get hasVectorValueOperands(){let i=this.thisType;if(i&&i.isVectorValue)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let i=new Array,e=0,t=this.thisType;t&&(t.isVectorValue&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isVectorValue&&i.push(e),++e;return i}toString(i=!1){let e=new Array;e.push(i?"%28":"(");let t=0,n=this.thisType;n&&(e.push(i?"this:":"this: "),e.push(n.toString(i)),t=1);let s=this.parameterTypes,a=s.length;if(a){let l=this.requiredParameters,o=this.hasRest?a-1:-1;for(let u=0;u<a;++u,++t)t&&e.push(i?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(i)),u>=l&&u!=o&&e.push("?")}return e.push(i?"%29=>":") => "),e.push(this.returnType.toString(i)),e.join("")}clone(i=this.requiredParameters,e=this.hasRest){let t=this.parameterTypes,n=t.length,s=new Array(n);for(let a=0;a<n;++a)unchecked(s[a]=t[a]);return r.create(this.program,s,this.returnType,this.thisType,i,e)}};var y;(b=>(b.start="~start",b.started="~started",b.argumentsLength="~argumentsLength",b.setArgumentsLength="~setArgumentsLength",b.abort="~lib/builtins/abort",b.trace="~lib/builtins/trace",b.seed="~lib/builtins/seed",b.isBoolean="~lib/builtins/isBoolean",b.isInteger="~lib/builtins/isInteger",b.isSigned="~lib/builtins/isSigned",b.isFloat="~lib/builtins/isFloat",b.isVector="~lib/builtins/isVector",b.isReference="~lib/builtins/isReference",b.isString="~lib/builtins/isString",b.isArray="~lib/builtins/isArray",b.isArrayLike="~lib/builtins/isArrayLike",b.isFunction="~lib/builtins/isFunction",b.isNullable="~lib/builtins/isNullable",b.isDefined="~lib/builtins/isDefined",b.isConstant="~lib/builtins/isConstant",b.isManaged="~lib/builtins/isManaged",b.isVoid="~lib/builtins/isVoid",b.add="~lib/builtins/add",b.sub="~lib/builtins/sub",b.mul="~lib/builtins/mul",b.div="~lib/builtins/div",b.clz="~lib/builtins/clz",b.ctz="~lib/builtins/ctz",b.popcnt="~lib/builtins/popcnt",b.rotl="~lib/builtins/rotl",b.rotr="~lib/builtins/rotr",b.abs="~lib/builtins/abs",b.max="~lib/builtins/max",b.min="~lib/builtins/min",b.ceil="~lib/builtins/ceil",b.floor="~lib/builtins/floor",b.copysign="~lib/builtins/copysign",b.nearest="~lib/builtins/nearest",b.reinterpret="~lib/builtins/reinterpret",b.sqrt="~lib/builtins/sqrt",b.trunc="~lib/builtins/trunc",b.eq="~lib/builtins/eq",b.ne="~lib/builtins/ne",b.rem="~lib/builtins/rem",b.load="~lib/builtins/load",b.store="~lib/builtins/store",b.atomic_load="~lib/builtins/atomic.load",b.atomic_store="~lib/builtins/atomic.store",b.atomic_add="~lib/builtins/atomic.add",b.atomic_sub="~lib/builtins/atomic.sub",b.atomic_and="~lib/builtins/atomic.and",b.atomic_or="~lib/builtins/atomic.or",b.atomic_xor="~lib/builtins/atomic.xor",b.atomic_xchg="~lib/builtins/atomic.xchg",b.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",b.atomic_wait="~lib/builtins/atomic.wait",b.atomic_notify="~lib/builtins/atomic.notify",b.atomic_fence="~lib/builtins/atomic.fence",b.sizeof="~lib/builtins/sizeof",b.alignof="~lib/builtins/alignof",b.offsetof="~lib/builtins/offsetof",b.nameof="~lib/builtins/nameof",b.lengthof="~lib/builtins/lengthof",b.select="~lib/builtins/select",b.unreachable="~lib/builtins/unreachable",b.changetype="~lib/builtins/changetype",b.assert="~lib/builtins/assert",b.call_indirect="~lib/builtins/call_indirect",b.unchecked="~lib/builtins/unchecked",b.inline_always="~lib/builtins/inline.always",b.instantiate="~lib/builtins/instantiate",b.idof="~lib/builtins/idof",b.i8="~lib/builtins/i8",b.i16="~lib/builtins/i16",b.i32="~lib/builtins/i32",b.i64="~lib/builtins/i64",b.isize="~lib/builtins/isize",b.u8="~lib/builtins/u8",b.u16="~lib/builtins/u16",b.u32="~lib/builtins/u32",b.u64="~lib/builtins/u64",b.usize="~lib/builtins/usize",b.bool="~lib/builtins/bool",b.f32="~lib/builtins/f32",b.f64="~lib/builtins/f64",b.v128="~lib/builtins/v128",b.i32_clz="~lib/builtins/i32.clz",b.i64_clz="~lib/builtins/i64.clz",b.i32_ctz="~lib/builtins/i32.ctz",b.i64_ctz="~lib/builtins/i64.ctz",b.i32_popcnt="~lib/builtins/i32.popcnt",b.i64_popcnt="~lib/builtins/i64.popcnt",b.i32_rotl="~lib/builtins/i32.rotl",b.i64_rotl="~lib/builtins/i64.rotl",b.i32_rotr="~lib/builtins/i32.rotr",b.i64_rotr="~lib/builtins/i64.rotr",b.f32_abs="~lib/builtins/f32.abs",b.f64_abs="~lib/builtins/f64.abs",b.f32_max="~lib/builtins/f32.max",b.f64_max="~lib/builtins/f64.max",b.f32_min="~lib/builtins/f32.min",b.f64_min="~lib/builtins/f64.min",b.f32_ceil="~lib/builtins/f32.ceil",b.f64_ceil="~lib/builtins/f64.ceil",b.f32_floor="~lib/builtins/f32.floor",b.f64_floor="~lib/builtins/f64.floor",b.f32_copysign="~lib/builtins/f32.copysign",b.f64_copysign="~lib/builtins/f64.copysign",b.f32_nearest="~lib/builtins/f32.nearest",b.f64_nearest="~lib/builtins/f64.nearest",b.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",b.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",b.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",b.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",b.f32_sqrt="~lib/builtins/f32.sqrt",b.f64_sqrt="~lib/builtins/f64.sqrt",b.f32_trunc="~lib/builtins/f32.trunc",b.f64_trunc="~lib/builtins/f64.trunc",b.i32_add="~lib/builtins/i32.add",b.i64_add="~lib/builtins/i64.add",b.f32_add="~lib/builtins/f32.add",b.f64_add="~lib/builtins/f64.add",b.i32_sub="~lib/builtins/i32.sub",b.i64_sub="~lib/builtins/i64.sub",b.f32_sub="~lib/builtins/f32.sub",b.f64_sub="~lib/builtins/f64.sub",b.i32_mul="~lib/builtins/i32.mul",b.i64_mul="~lib/builtins/i64.mul",b.f32_mul="~lib/builtins/f32.mul",b.f64_mul="~lib/builtins/f64.mul",b.i32_div_s="~lib/builtins/i32.div_s",b.i32_div_u="~lib/builtins/i32.div_u",b.i64_div_s="~lib/builtins/i64.div_s",b.i64_div_u="~lib/builtins/i64.div_u",b.f32_div="~lib/builtins/f32.div",b.f64_div="~lib/builtins/f64.div",b.i32_eq="~lib/builtins/i32.eq",b.i64_eq="~lib/builtins/i64.eq",b.f32_eq="~lib/builtins/f32.eq",b.f64_eq="~lib/builtins/f64.eq",b.i32_ne="~lib/builtins/i32.ne",b.i64_ne="~lib/builtins/i64.ne",b.f32_ne="~lib/builtins/f32.ne",b.f64_ne="~lib/builtins/f64.ne",b.i32_rem_s="~lib/builtins/i32.rem_s",b.i32_rem_u="~lib/builtins/i32.rem_u",b.i64_rem_s="~lib/builtins/i64.rem_s",b.i64_rem_u="~lib/builtins/i64.rem_u",b.i32_load8_s="~lib/builtins/i32.load8_s",b.i32_load8_u="~lib/builtins/i32.load8_u",b.i32_load16_s="~lib/builtins/i32.load16_s",b.i32_load16_u="~lib/builtins/i32.load16_u",b.i32_load="~lib/builtins/i32.load",b.i64_load8_s="~lib/builtins/i64.load8_s",b.i64_load8_u="~lib/builtins/i64.load8_u",b.i64_load16_s="~lib/builtins/i64.load16_s",b.i64_load16_u="~lib/builtins/i64.load16_u",b.i64_load32_s="~lib/builtins/i64.load32_s",b.i64_load32_u="~lib/builtins/i64.load32_u",b.i64_load="~lib/builtins/i64.load",b.f32_load="~lib/builtins/f32.load",b.f64_load="~lib/builtins/f64.load",b.i32_store8="~lib/builtins/i32.store8",b.i32_store16="~lib/builtins/i32.store16",b.i32_store="~lib/builtins/i32.store",b.i64_store8="~lib/builtins/i64.store8",b.i64_store16="~lib/builtins/i64.store16",b.i64_store32="~lib/builtins/i64.store32",b.i64_store="~lib/builtins/i64.store",b.f32_store="~lib/builtins/f32.store",b.f64_store="~lib/builtins/f64.store",b.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",b.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",b.i32_atomic_load="~lib/builtins/i32.atomic.load",b.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",b.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",b.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",b.i64_atomic_load="~lib/builtins/i64.atomic.load",b.i32_atomic_store8="~lib/builtins/i32.atomic.store8",b.i32_atomic_store16="~lib/builtins/i32.atomic.store16",b.i32_atomic_store="~lib/builtins/i32.atomic.store",b.i64_atomic_store8="~lib/builtins/i64.atomic.store8",b.i64_atomic_store16="~lib/builtins/i64.atomic.store16",b.i64_atomic_store32="~lib/builtins/i64.atomic.store32",b.i64_atomic_store="~lib/builtins/i64.atomic.store",b.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",b.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",b.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",b.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",b.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",b.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",b.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",b.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",b.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",b.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",b.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",b.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",b.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",b.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",b.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",b.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",b.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",b.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",b.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",b.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",b.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",b.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",b.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",b.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",b.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",b.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",b.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",b.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",b.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",b.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",b.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",b.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",b.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",b.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",b.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",b.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",b.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",b.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",b.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",b.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",b.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",b.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",b.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",b.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",b.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",b.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",b.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",b.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",b.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",b.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",b.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",b.v128_splat="~lib/builtins/v128.splat",b.v128_extract_lane="~lib/builtins/v128.extract_lane",b.v128_replace_lane="~lib/builtins/v128.replace_lane",b.v128_shuffle="~lib/builtins/v128.shuffle",b.v128_swizzle="~lib/builtins/v128.swizzle",b.v128_load_splat="~lib/builtins/v128.load_splat",b.v128_load_ext="~lib/builtins/v128.load_ext",b.v128_load_zero="~lib/builtins/v128.load_zero",b.v128_load_lane="~lib/builtins/v128.load_lane",b.v128_store_lane="~lib/builtins/v128.store_lane",b.v128_load="~lib/builtins/v128.load",b.v128_load8x8_s="~lib/builtins/v128.load8x8_s",b.v128_load8x8_u="~lib/builtins/v128.load8x8_u",b.v128_load16x4_s="~lib/builtins/v128.load16x4_s",b.v128_load16x4_u="~lib/builtins/v128.load16x4_u",b.v128_load32x2_s="~lib/builtins/v128.load32x2_s",b.v128_load32x2_u="~lib/builtins/v128.load32x2_u",b.v128_load8_splat="~lib/builtins/v128.load8_splat",b.v128_load16_splat="~lib/builtins/v128.load16_splat",b.v128_load32_splat="~lib/builtins/v128.load32_splat",b.v128_load64_splat="~lib/builtins/v128.load64_splat",b.v128_load32_zero="~lib/builtins/v128.load32_zero",b.v128_load64_zero="~lib/builtins/v128.load64_zero",b.v128_load8_lane="~lib/builtins/v128.load8_lane",b.v128_load16_lane="~lib/builtins/v128.load16_lane",b.v128_load32_lane="~lib/builtins/v128.load32_lane",b.v128_load64_lane="~lib/builtins/v128.load64_lane",b.v128_store8_lane="~lib/builtins/v128.store8_lane",b.v128_store16_lane="~lib/builtins/v128.store16_lane",b.v128_store32_lane="~lib/builtins/v128.store32_lane",b.v128_store64_lane="~lib/builtins/v128.store64_lane",b.v128_store="~lib/builtins/v128.store",b.v128_add="~lib/builtins/v128.add",b.v128_sub="~lib/builtins/v128.sub",b.v128_mul="~lib/builtins/v128.mul",b.v128_div="~lib/builtins/v128.div",b.v128_neg="~lib/builtins/v128.neg",b.v128_add_sat="~lib/builtins/v128.add_sat",b.v128_sub_sat="~lib/builtins/v128.sub_sat",b.v128_shl="~lib/builtins/v128.shl",b.v128_shr="~lib/builtins/v128.shr",b.v128_and="~lib/builtins/v128.and",b.v128_or="~lib/builtins/v128.or",b.v128_xor="~lib/builtins/v128.xor",b.v128_andnot="~lib/builtins/v128.andnot",b.v128_not="~lib/builtins/v128.not",b.v128_bitselect="~lib/builtins/v128.bitselect",b.v128_any_true="~lib/builtins/v128.any_true",b.v128_all_true="~lib/builtins/v128.all_true",b.v128_bitmask="~lib/builtins/v128.bitmask",b.v128_popcnt="~lib/builtins/v128.popcnt",b.v128_min="~lib/builtins/v128.min",b.v128_max="~lib/builtins/v128.max",b.v128_pmin="~lib/builtins/v128.pmin",b.v128_pmax="~lib/builtins/v128.pmax",b.v128_dot="~lib/builtins/v128.dot",b.v128_avgr="~lib/builtins/v128.avgr",b.v128_abs="~lib/builtins/v128.abs",b.v128_sqrt="~lib/builtins/v128.sqrt",b.v128_ceil="~lib/builtins/v128.ceil",b.v128_floor="~lib/builtins/v128.floor",b.v128_trunc="~lib/builtins/v128.trunc",b.v128_nearest="~lib/builtins/v128.nearest",b.v128_eq="~lib/builtins/v128.eq",b.v128_ne="~lib/builtins/v128.ne",b.v128_lt="~lib/builtins/v128.lt",b.v128_le="~lib/builtins/v128.le",b.v128_gt="~lib/builtins/v128.gt",b.v128_ge="~lib/builtins/v128.ge",b.v128_convert="~lib/builtins/v128.convert",b.v128_convert_low="~lib/builtins/v128.convert_low",b.v128_trunc_sat="~lib/builtins/v128.trunc_sat",b.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",b.v128_narrow="~lib/builtins/v128.narrow",b.v128_extend_low="~lib/builtins/v128.extend_low",b.v128_extend_high="~lib/builtins/v128.extend_high",b.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",b.v128_demote_zero="~lib/builtins/v128.demote_zero",b.v128_promote_low="~lib/builtins/v128.promote_low",b.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",b.v128_extmul_low="~lib/builtins/v128.extmul_low",b.v128_extmul_high="~lib/builtins/v128.extmul_high",b.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",b.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",b.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",b.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",b.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",b.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",b.v128_relaxed_min="~lib/builtins/v128.relaxed_min",b.v128_relaxed_max="~lib/builtins/v128.relaxed_max",b.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",b.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",b.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",b.i8x16="~lib/builtins/i8x16",b.i16x8="~lib/builtins/i16x8",b.i32x4="~lib/builtins/i32x4",b.i64x2="~lib/builtins/i64x2",b.f32x4="~lib/builtins/f32x4",b.f64x2="~lib/builtins/f64x2",b.i8x16_splat="~lib/builtins/i8x16.splat",b.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",b.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",b.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",b.i8x16_add="~lib/builtins/i8x16.add",b.i8x16_sub="~lib/builtins/i8x16.sub",b.i8x16_mul="~lib/builtins/i8x16.mul",b.i8x16_min_s="~lib/builtins/i8x16.min_s",b.i8x16_min_u="~lib/builtins/i8x16.min_u",b.i8x16_max_s="~lib/builtins/i8x16.max_s",b.i8x16_max_u="~lib/builtins/i8x16.max_u",b.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",b.i8x16_abs="~lib/builtins/i8x16.abs",b.i8x16_neg="~lib/builtins/i8x16.neg",b.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",b.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",b.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",b.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",b.i8x16_shl="~lib/builtins/i8x16.shl",b.i8x16_shr_s="~lib/builtins/i8x16.shr_s",b.i8x16_shr_u="~lib/builtins/i8x16.shr_u",b.i8x16_all_true="~lib/builtins/i8x16.all_true",b.i8x16_bitmask="~lib/builtins/i8x16.bitmask",b.i8x16_popcnt="~lib/builtins/i8x16.popcnt",b.i8x16_eq="~lib/builtins/i8x16.eq",b.i8x16_ne="~lib/builtins/i8x16.ne",b.i8x16_lt_s="~lib/builtins/i8x16.lt_s",b.i8x16_lt_u="~lib/builtins/i8x16.lt_u",b.i8x16_le_s="~lib/builtins/i8x16.le_s",b.i8x16_le_u="~lib/builtins/i8x16.le_u",b.i8x16_gt_s="~lib/builtins/i8x16.gt_s",b.i8x16_gt_u="~lib/builtins/i8x16.gt_u",b.i8x16_ge_s="~lib/builtins/i8x16.ge_s",b.i8x16_ge_u="~lib/builtins/i8x16.ge_u",b.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",b.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",b.i8x16_shuffle="~lib/builtins/i8x16.shuffle",b.i8x16_swizzle="~lib/builtins/i8x16.swizzle",b.i16x8_splat="~lib/builtins/i16x8.splat",b.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",b.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",b.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",b.i16x8_add="~lib/builtins/i16x8.add",b.i16x8_sub="~lib/builtins/i16x8.sub",b.i16x8_mul="~lib/builtins/i16x8.mul",b.i16x8_min_s="~lib/builtins/i16x8.min_s",b.i16x8_min_u="~lib/builtins/i16x8.min_u",b.i16x8_max_s="~lib/builtins/i16x8.max_s",b.i16x8_max_u="~lib/builtins/i16x8.max_u",b.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",b.i16x8_abs="~lib/builtins/i16x8.abs",b.i16x8_neg="~lib/builtins/i16x8.neg",b.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",b.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",b.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",b.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",b.i16x8_shl="~lib/builtins/i16x8.shl",b.i16x8_shr_s="~lib/builtins/i16x8.shr_s",b.i16x8_shr_u="~lib/builtins/i16x8.shr_u",b.i16x8_all_true="~lib/builtins/i16x8.all_true",b.i16x8_bitmask="~lib/builtins/i16x8.bitmask",b.i16x8_eq="~lib/builtins/i16x8.eq",b.i16x8_ne="~lib/builtins/i16x8.ne",b.i16x8_lt_s="~lib/builtins/i16x8.lt_s",b.i16x8_lt_u="~lib/builtins/i16x8.lt_u",b.i16x8_le_s="~lib/builtins/i16x8.le_s",b.i16x8_le_u="~lib/builtins/i16x8.le_u",b.i16x8_gt_s="~lib/builtins/i16x8.gt_s",b.i16x8_gt_u="~lib/builtins/i16x8.gt_u",b.i16x8_ge_s="~lib/builtins/i16x8.ge_s",b.i16x8_ge_u="~lib/builtins/i16x8.ge_u",b.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",b.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",b.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",b.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",b.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",b.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",b.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",b.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",b.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",b.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",b.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",b.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",b.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",b.i16x8_shuffle="~lib/builtins/i16x8.shuffle",b.i32x4_splat="~lib/builtins/i32x4.splat",b.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",b.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",b.i32x4_add="~lib/builtins/i32x4.add",b.i32x4_sub="~lib/builtins/i32x4.sub",b.i32x4_mul="~lib/builtins/i32x4.mul",b.i32x4_min_s="~lib/builtins/i32x4.min_s",b.i32x4_min_u="~lib/builtins/i32x4.min_u",b.i32x4_max_s="~lib/builtins/i32x4.max_s",b.i32x4_max_u="~lib/builtins/i32x4.max_u",b.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",b.i32x4_abs="~lib/builtins/i32x4.abs",b.i32x4_neg="~lib/builtins/i32x4.neg",b.i32x4_shl="~lib/builtins/i32x4.shl",b.i32x4_shr_s="~lib/builtins/i32x4.shr_s",b.i32x4_shr_u="~lib/builtins/i32x4.shr_u",b.i32x4_all_true="~lib/builtins/i32x4.all_true",b.i32x4_bitmask="~lib/builtins/i32x4.bitmask",b.i32x4_eq="~lib/builtins/i32x4.eq",b.i32x4_ne="~lib/builtins/i32x4.ne",b.i32x4_lt_s="~lib/builtins/i32x4.lt_s",b.i32x4_lt_u="~lib/builtins/i32x4.lt_u",b.i32x4_le_s="~lib/builtins/i32x4.le_s",b.i32x4_le_u="~lib/builtins/i32x4.le_u",b.i32x4_gt_s="~lib/builtins/i32x4.gt_s",b.i32x4_gt_u="~lib/builtins/i32x4.gt_u",b.i32x4_ge_s="~lib/builtins/i32x4.ge_s",b.i32x4_ge_u="~lib/builtins/i32x4.ge_u",b.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",b.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",b.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",b.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",b.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",b.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",b.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",b.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",b.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",b.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",b.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",b.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",b.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",b.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",b.i32x4_shuffle="~lib/builtins/i32x4.shuffle",b.i64x2_splat="~lib/builtins/i64x2.splat",b.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",b.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",b.i64x2_add="~lib/builtins/i64x2.add",b.i64x2_sub="~lib/builtins/i64x2.sub",b.i64x2_mul="~lib/builtins/i64x2.mul",b.i64x2_abs="~lib/builtins/i64x2.abs",b.i64x2_neg="~lib/builtins/i64x2.neg",b.i64x2_shl="~lib/builtins/i64x2.shl",b.i64x2_shr_s="~lib/builtins/i64x2.shr_s",b.i64x2_shr_u="~lib/builtins/i64x2.shr_u",b.i64x2_all_true="~lib/builtins/i64x2.all_true",b.i64x2_bitmask="~lib/builtins/i64x2.bitmask",b.i64x2_eq="~lib/builtins/i64x2.eq",b.i64x2_ne="~lib/builtins/i64x2.ne",b.i64x2_lt_s="~lib/builtins/i64x2.lt_s",b.i64x2_lt_u="~lib/builtins/i64x2.lt_u",b.i64x2_le_s="~lib/builtins/i64x2.le_s",b.i64x2_le_u="~lib/builtins/i64x2.le_u",b.i64x2_gt_s="~lib/builtins/i64x2.gt_s",b.i64x2_gt_u="~lib/builtins/i64x2.gt_u",b.i64x2_ge_s="~lib/builtins/i64x2.ge_s",b.i64x2_ge_u="~lib/builtins/i64x2.ge_u",b.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",b.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",b.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",b.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",b.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",b.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",b.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",b.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",b.i64x2_shuffle="~lib/builtins/i64x2.shuffle",b.f32x4_splat="~lib/builtins/f32x4.splat",b.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",b.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",b.f32x4_add="~lib/builtins/f32x4.add",b.f32x4_sub="~lib/builtins/f32x4.sub",b.f32x4_mul="~lib/builtins/f32x4.mul",b.f32x4_div="~lib/builtins/f32x4.div",b.f32x4_neg="~lib/builtins/f32x4.neg",b.f32x4_min="~lib/builtins/f32x4.min",b.f32x4_max="~lib/builtins/f32x4.max",b.f32x4_pmin="~lib/builtins/f32x4.pmin",b.f32x4_pmax="~lib/builtins/f32x4.pmax",b.f32x4_abs="~lib/builtins/f32x4.abs",b.f32x4_sqrt="~lib/builtins/f32x4.sqrt",b.f32x4_ceil="~lib/builtins/f32x4.ceil",b.f32x4_floor="~lib/builtins/f32x4.floor",b.f32x4_trunc="~lib/builtins/f32x4.trunc",b.f32x4_nearest="~lib/builtins/f32x4.nearest",b.f32x4_eq="~lib/builtins/f32x4.eq",b.f32x4_ne="~lib/builtins/f32x4.ne",b.f32x4_lt="~lib/builtins/f32x4.lt",b.f32x4_le="~lib/builtins/f32x4.le",b.f32x4_gt="~lib/builtins/f32x4.gt",b.f32x4_ge="~lib/builtins/f32x4.ge",b.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",b.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",b.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",b.f32x4_shuffle="~lib/builtins/f32x4.shuffle",b.f64x2_splat="~lib/builtins/f64x2.splat",b.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",b.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",b.f64x2_add="~lib/builtins/f64x2.add",b.f64x2_sub="~lib/builtins/f64x2.sub",b.f64x2_mul="~lib/builtins/f64x2.mul",b.f64x2_div="~lib/builtins/f64x2.div",b.f64x2_neg="~lib/builtins/f64x2.neg",b.f64x2_min="~lib/builtins/f64x2.min",b.f64x2_max="~lib/builtins/f64x2.max",b.f64x2_pmin="~lib/builtins/f64x2.pmin",b.f64x2_pmax="~lib/builtins/f64x2.pmax",b.f64x2_abs="~lib/builtins/f64x2.abs",b.f64x2_sqrt="~lib/builtins/f64x2.sqrt",b.f64x2_ceil="~lib/builtins/f64x2.ceil",b.f64x2_floor="~lib/builtins/f64x2.floor",b.f64x2_trunc="~lib/builtins/f64x2.trunc",b.f64x2_nearest="~lib/builtins/f64x2.nearest",b.f64x2_eq="~lib/builtins/f64x2.eq",b.f64x2_ne="~lib/builtins/f64x2.ne",b.f64x2_lt="~lib/builtins/f64x2.lt",b.f64x2_le="~lib/builtins/f64x2.le",b.f64x2_gt="~lib/builtins/f64x2.gt",b.f64x2_ge="~lib/builtins/f64x2.ge",b.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",b.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",b.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",b.f64x2_shuffle="~lib/builtins/f64x2.shuffle",b.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",b.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",b.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",b.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",b.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",b.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",b.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",b.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",b.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",b.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",b.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",b.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",b.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",b.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",b.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",b.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",b.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",b.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",b.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",b.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",b.i31_new="~lib/builtins/i31.new",b.i31_get="~lib/builtins/i31.get",b.data_end="~lib/memory/__data_end",b.stack_pointer="~lib/memory/__stack_pointer",b.heap_base="~lib/memory/__heap_base",b.rtti_base="~lib/rt/__rtti_base",b.visit_globals="~lib/rt/__visit_globals",b.visit_members="~lib/rt/__visit_members",b.tostack="~lib/rt/__tostack",b.NaN="~lib/number/NaN",b.Infinity="~lib/number/Infinity",b.isNaN="~lib/number/isNaN",b.isFinite="~lib/number/isFinite",b.ERROR="~lib/diagnostics/ERROR",b.WARNING="~lib/diagnostics/WARNING",b.INFO="~lib/diagnostics/INFO",b.Function="~lib/function/Function",b.Function_call="~lib/function/Function#call",b.memory_size="~lib/memory/memory.size",b.memory_grow="~lib/memory/memory.grow",b.memory_copy="~lib/memory/memory.copy",b.memory_fill="~lib/memory/memory.fill",b.memory_data="~lib/memory/memory.data",b.Int8Array="~lib/typedarray/Int8Array",b.Uint8Array="~lib/typedarray/Uint8Array",b.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",b.Int16Array="~lib/typedarray/Int16Array",b.Uint16Array="~lib/typedarray/Uint16Array",b.Int32Array="~lib/typedarray/Int32Array",b.Uint32Array="~lib/typedarray/Uint32Array",b.Int64Array="~lib/typedarray/Int64Array",b.Uint64Array="~lib/typedarray/Uint64Array",b.Float32Array="~lib/typedarray/Float32Array",b.Float64Array="~lib/typedarray/Float64Array",b.String_raw="~lib/string/String.raw",b.String_eq="~lib/string/String.__eq",b.String_ne="~lib/string/String.__ne",b.String_not="~lib/string/String.__not",b.Object="~lib/object/Object"))(y||={});var so=class{constructor(i,e,t,n,s){this.resolver=i;this.node=e;this.ctxElement=t;this.ctxTypes=n;this.reportMode=s}},As=class{constructor(i,e,t=e.type,n=e.identifierNode){this.compiler=i;this.element=e;this.contextualType=t;this.reportNode=n}},bo=class{constructor(i,e,t,n,s,a,l,o){this.compiler=i;this.prototype=e;this.typeArguments=t;this.operands=n;this.thisOperand=s;this.contextualType=a;this.reportNode=l;this.contextIsExact=o}},ar=new Map,x=new Map,Ht=new Map,mt=new Map;function o6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);if(!l)return null;switch(l.kind){case 1:case 2:case 3:return c.i32;case 5:if(!i.program.options.isWasm64)return c.i32;case 4:return c.i64;case 6:case 7:case 8:case 0:return c.u32;case 10:if(!i.program.options.isWasm64)return c.u32;case 9:return c.u64;case 11:return c.f32;case 12:return c.f64;case 13:return c.v128;case 25:return c.void;default:assert(!1)}return null}ar.set(P.native,o6);function u6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);if(!l)return null;let o=l.classReference;if(!o)return s==0&&i.error(2329,a.range,l.toString()),null;let u=o.lookupOverload(1);if(u){let p=u.signature.parameterTypes;return u.is(32)?(assert(p.length==2),p[1]):(assert(p.length==1),p[0])}return s==0&&i.error(2329,a.range,l.toString()),null}ar.set(P.indexof,u6);function c6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(i.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&i.error(2329,a.range,l.toString()),null}ar.set(P.valueof,c6);function p6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getSignature();return o?o.returnType:(s==0&&i.error(2757,a.range,l.toString()),null)}ar.set(P.returnof,p6);function _6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}ar.set(P.nonnull,_6);var Wi=0;function f6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isBooleanValue?1:0)):e.unreachable()}x.set(y.isBoolean,f6);function d6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isIntegerValue?1:0)):e.unreachable()}x.set(y.isInteger,d6);function h6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isSignedIntegerValue?1:0)):e.unreachable()}x.set(y.isSigned,h6);function m6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isFloatValue?1:0)):e.unreachable()}x.set(y.isFloat,m6);function y6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isVectorValue?1:0)):e.unreachable()}x.set(y.isVector,y6);function g6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isReference?1:0)):e.unreachable()}x.set(y.isReference,g6);function b6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.bool,!t)return e.unreachable();let n=t.getClass();return Ce(r,e.i32(n&&n.isAssignableTo(i.program.stringInstance)?1:0))}x.set(y.isString,b6);function x6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.bool,!t)return e.unreachable();let n=t.getClass();return Ce(r,e.i32(n&&n.extendsPrototype(i.program.arrayPrototype)?1:0))}x.set(y.isArray,x6);function T6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.bool,!t)return e.unreachable();let n=t.getClass();return Ce(r,e.i32(n&&n.isArrayLike?1:0))}x.set(y.isArrayLike,T6);function A6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isFunction?1:0)):e.unreachable()}x.set(y.isFunction,A6);function v6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isNullableReference?1:0)):e.unreachable()}x.set(y.isNullable,v6);function E6(r){let i=r.compiler,e=i.module;if(i.currentType=c.bool,I(r)|j(r,1))return e.unreachable();let t=i.resolver.lookupExpression(r.operands[0],i.currentFlow,c.auto,1);return e.i32(t?1:0)}x.set(y.isDefined,E6);function S6(r){let i=r.compiler,e=i.module;if(i.currentType=c.bool,I(r)|j(r,1))return e.unreachable();let t=i.compileExpression(r.operands[0],c.auto);return i.currentType=c.bool,Yl(t,e.ref)?e.block(null,[e.maybeDrop(t),e.i32(0)],le(t)):e.i32(e.isConstExpression(t)?1:0)}x.set(y.isConstant,S6);function I6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isManaged?1:0)):e.unreachable()}x.set(y.isManaged,I6);function k6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.kind==25?1:0)):e.unreachable()}x.set(y.isVoid,k6);function R6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.i32,!t)return e.unreachable();let n=t.signatureReference;return n?Ce(r,e.i32(n.parameterTypes.length)):(i.error(2757,r.reportNode.range,t.toString()),e.unreachable())}x.set(y.lengthof,R6);function F6(r){let i=r.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(r)|j(r,0))return e.unreachable();let t=r.typeArguments[0],n=t.byteSize;return n?xo(i,i64_new(n),r.contextualType):(i.error(203,r.reportNode.typeArgumentsRange,"sizeof",t.toString()),e.unreachable())}x.set(y.sizeof,F6);function w6(r){let i=r.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(r)|j(r,0))return e.unreachable();let t=r.typeArguments[0],n=t.byteSize;return zt(n)?xo(i,i64_new(ctz(n)),r.contextualType):(i.error(203,r.reportNode.typeArgumentsRange,"alignof",t.toString()),e.unreachable())}x.set(y.alignof,w6);function C6(r){let i=r.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(r)|ke(r,0,1))return e.unreachable();let t=r.operands,n=r.contextualType,s=r.typeArguments[0],a=s.getClassOrWrapper(i.program);if(!a)return i.error(203,r.reportNode.typeArgumentsRange,"offsetof",s.toString()),i.options.isWasm64?n.isIntegerValue&&n.size<=32&&(i.currentType=c.u32):n.isIntegerValue&&n.size==64&&(i.currentType=c.u64),e.unreachable();if(t.length){let l=t[0];if(!l.isLiteralKind(2))return i.error(1141,t[0].range),e.unreachable();let o=l.value,u=a.getMember(o);if(u&&u.kind==10){let p=u.instance;if(p&&p.isField)return assert(p.memoryOffset>=0),xo(i,i64_new(p.memoryOffset),n)}return i.error(2460,l.range,a.internalName,o),e.unreachable()}return xo(i,i64_new(a.nextMemoryOffset),n)}x.set(y.offsetof,C6);function P6(r){let i=r.compiler,e=i.module,t=De(r);if(!t)return i.currentType=i.program.stringInstance.type,e.unreachable();let n;if(t.isInternalReference){let s=t.getClass();s?n=s.name:(assert(t.getSignature()),n="Function")}else n=t.toString();return Ce(r,i.ensureStaticString(n))}x.set(y.nameof,P6);function B6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.u32,!t)return e.unreachable();let n=t.getSignature();if(n)return Ce(r,e.i32(n.id));let s=t.getClassOrWrapper(i.program);return s&&!s.hasDecorator(16)?Ce(r,e.i32(s.id)):(i.error(203,r.reportNode.typeArgumentsRange,"idof",t.toString()),e.unreachable())}x.set(y.idof,B6);function L6(r){let i=r.element;if(i.is(1048576)){let e=r.compiler.module;e.addGlobal(i.internalName,N.F64,!1,e.f64(NaN))}}Ht.set(y.NaN,L6);function N6(r){let i=r.compiler,e=i.module;return r.contextualType==c.f32?(i.currentType=c.f32,e.f32(NaN)):(i.currentType=c.f64,e.f64(NaN))}mt.set(y.NaN,N6);function M6(r){let i=r.element;if(i.is(1048576)){let e=r.compiler.module;e.addGlobal(i.internalName,N.F64,!1,e.f64(1/0))}}Ht.set(y.Infinity,M6);function D6(r){let i=r.compiler,e=i.module;return r.contextualType==c.f32?(i.currentType=c.f32,e.f32(1/0)):(i.currentType=c.f64,e.f64(1/0))}mt.set(y.Infinity,D6);function Dp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.typeArguments,n=t?i.compileExpression(r.operands[0],t[0],5):i.compileExpression(r.operands[0],c.i32,4),s=i.currentType;if(s.isValue)switch(s.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(0,n);case 5:case 10:return e.unary(142,n);case 4:case 9:return e.unary(1,n)}return i.error(203,r.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}x.set(y.clz,Dp);function Gp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.i32,4),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(2,s);case 5:case 10:return e.unary(143,s);case 4:case 9:return e.unary(3,s)}return i.error(203,r.reportNode.typeArgumentsRange,"ctz",a.toString()),e.unreachable()}x.set(y.ctz,Gp);function zp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.i32,4),a=i.currentType;if(a.isValue)switch(i.currentType.kind){case 0:return s;case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(4,s);case 4:case 9:return e.unary(5,s);case 5:case 10:return e.unary(144,s)}return i.error(203,r.reportNode.typeArgumentsRange,"popcnt",a.toString()),e.unreachable()}x.set(y.popcnt,zp);function Up(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let p=o.getTempLocal(a);return o.setLocalFlag(p.index,2),e.binary(8,e.binary(10,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(p.index,l,!1),e.i32(a.size-1))),e.binary(12,e.local_get(u.index,N.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(p.index,N.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(13,s,l);case 4:case 9:return e.binary(38,s,l);case 5:case 10:return e.binary(230,s,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"rotl",a.toString()),e.unreachable()}x.set(y.rotl,Up);function Vp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let p=o.getTempLocal(a);return o.setLocalFlag(p.index,2),e.binary(8,e.binary(12,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(p.index,l,!1),e.i32(a.size-1))),e.binary(10,e.local_get(u.index,N.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(p.index,N.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(14,s,l);case 4:case 9:return e.binary(39,s,l);case 5:case 10:return e.binary(231,s,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"rotr",a.toString()),e.unreachable()}x.set(y.rotr,Vp);function Op(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.auto,4),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 6:case 7:case 8:case 9:case 10:return s;case 1:case 2:case 3:{let l=i.currentFlow,o=l.getTempLocal(c.i32),u=l.getTempLocal(c.i32);return e.binary(9,e.binary(0,e.local_tee(u.index,e.binary(11,e.local_tee(o.index,s,!1),e.i32(31)),!1),e.local_get(o.index,N.I32)),e.local_get(u.index,N.I32))}case 5:{let l=i.options,o=i.currentFlow,u=o.getTempLocal(l.usizeType),p=o.getTempLocal(l.usizeType);return e.binary(226,e.binary(217,e.local_tee(p.index,e.binary(228,e.local_tee(u.index,s,!1),i.options.isWasm64?e.i64(63):e.i32(31)),!1),e.local_get(u.index,l.sizeTypeRef)),e.local_get(p.index,l.sizeTypeRef))}case 4:{let l=i.currentFlow,o=l.getTempLocal(c.i64),u=l.getTempLocal(c.i64);return e.binary(34,e.binary(25,e.local_tee(u.index,e.binary(36,e.local_tee(o.index,s,!1),e.i64(63)),!1),e.local_get(o.index,N.I64)),e.local_get(u.index,N.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return i.error(203,r.reportNode.typeArgumentsRange,"abs",a.toString()),e.unreachable()}x.set(y.abs,Op);function qp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(t[0],c.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=21;break}case 0:case 6:case 7:case 8:{u=22;break}case 4:{u=46;break}case 9:{u=47;break}case 5:{u=238;break}case 10:{u=239;break}case 11:return e.binary(56,a,o);case 12:return e.binary(69,a,o)}if(u!=-1){let p=i.currentFlow,_=l.toRef(),f=p.getTempLocal(l);p.setLocalFlag(f.index,2);let d=p.getTempLocal(l);return p.setLocalFlag(d.index,2),e.select(e.local_tee(f.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(f.index,_),e.local_get(d.index,_)))}}return i.error(203,r.reportNode.typeArgumentsRange,"max",l.toString()),e.unreachable()}x.set(y.max,qp);function Wp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(t[0],c.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=17;break}case 0:case 6:case 7:case 8:{u=18;break}case 4:{u=42;break}case 9:{u=43;break}case 5:{u=234;break}case 10:{u=235;break}case 11:return e.binary(55,a,o);case 12:return e.binary(68,a,o)}if(u!=-1){let p=i.currentFlow,_=l.toRef(),f=p.getTempLocal(l);p.setLocalFlag(f.index,2);let d=p.getTempLocal(l);return p.setLocalFlag(d.index,2),e.select(e.local_tee(f.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(f.index,_),e.local_get(d.index,_)))}}return i.error(203,r.reportNode.typeArgumentsRange,"min",l.toString()),e.unreachable()}x.set(y.min,Wp);function jp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(10,s);case 12:return e.unary(11,s)}return i.error(203,r.reportNode.typeArgumentsRange,"ceil",a.toString()),e.unreachable()}x.set(y.ceil,jp);function Kp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(12,s);case 12:return e.unary(13,s)}return i.error(203,r.reportNode.typeArgumentsRange,"floor",a.toString()),e.unreachable()}x.set(y.floor,Kp);function Hp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.f64,0),a=i.currentType;if(a.isValue){let l=i.compileExpression(t[1],a,1);switch(a.kind){case 11:return e.binary(54,s,l);case 12:return e.binary(67,s,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"copysign",a.toString()),e.unreachable()}x.set(y.copysign,Hp);function Qp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(16,s);case 12:return e.unary(17,s)}return i.error(203,r.reportNode.typeArgumentsRange,"nearest",a.toString()),e.unreachable()}x.set(y.nearest,Qp);function vs(r){let i=r.compiler,e=i.module;if(J(r,!0)|j(r,1))return e.unreachable();let t=r.operands,s=r.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let a=i.compileExpression(t[0],c.f32,1);return i.currentType=s,e.unary(33,a)}case 4:case 9:{let a=i.compileExpression(t[0],c.f64,1);return i.currentType=s,e.unary(34,a)}case 5:case 10:{let a=i.options.isWasm64,l=i.compileExpression(t[0],a?c.f64:c.f32,1);return i.currentType=s,e.unary(a?34:33,l)}case 11:{let a=i.compileExpression(t[0],c.i32,1);return i.currentType=c.f32,e.unary(45,a)}case 12:{let a=i.compileExpression(t[0],c.i64,1);return i.currentType=c.f64,e.unary(46,a)}}return i.error(203,r.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}x.set(y.reinterpret,vs);function Xp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.f64,0),a=i.currentType;if(a.isValue)switch(a.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return i.error(203,r.reportNode.typeArgumentsRange,"sqrt",a.toString()),e.unreachable()}x.set(y.sqrt,Xp);function Jp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(14,s);case 12:return e.unary(15,s)}return i.error(203,r.reportNode.typeArgumentsRange,"trunc",a.toString()),e.unreachable()}x.set(y.trunc,Jp);function G6(r){let i=r.compiler,e=i.module;if(ue(r)|j(r,1))return i.currentType=c.bool,e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto),a=i.currentType;if(i.currentType=c.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(0));case 11:{if(re(s)==8)return e.binary(58,s,e.local_get(Tt(s),N.F32));let o=i.currentFlow.getTempLocal(c.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,N.F32))}case 12:{if(re(s)==8)return e.binary(71,s,e.local_get(Tt(s),N.F64));let o=i.currentFlow.getTempLocal(c.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,N.F64))}}return i.error(203,r.reportNode.typeArgumentsRange,"isNaN",a.toString()),e.unreachable()}x.set(y.isNaN,G6);function z6(r){let i=r.compiler,e=i.module;if(ue(r)|j(r,1))return i.currentType=c.bool,e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto),a=i.currentType;if(i.currentType=c.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(1));case 11:{if(re(s)==8)return e.binary(57,e.binary(51,s,e.local_get(Tt(s),N.F32)),e.f32(0));let o=i.currentFlow.getTempLocal(c.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,N.F32)),e.f32(0))}case 12:{if(re(s)==8)return e.binary(70,e.binary(64,s,e.local_get(Tt(s),N.F64)),e.f64(0));let o=i.currentFlow.getTempLocal(c.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,N.F64)),e.f64(0))}}return i.error(203,r.reportNode.typeArgumentsRange,"isFinite",a.toString()),e.unreachable()}x.set(y.isFinite,z6);function U6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;i.runtimeFeatures|=4,e.getGlobal(t.internalName)||e.addGlobal(t.internalName,n.toRef(),!0,i.makeZero(n))}Ht.set(y.heap_base,U6);function V6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;return i.runtimeFeatures|=4,i.currentType=n,e.global_get(t.internalName,n.toRef())}mt.set(y.heap_base,V6);function O6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;i.runtimeFeatures|=1,e.getGlobal(t.internalName)||e.addGlobal(t.internalName,n.toRef(),!0,i.makeZero(n))}Ht.set(y.data_end,O6);function q6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;return i.runtimeFeatures|=1,i.currentType=n,e.global_get(t.internalName,n.toRef())}mt.set(y.data_end,q6);function W6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;i.runtimeFeatures|=2,e.getGlobal(t.internalName)||e.addGlobal(t.internalName,n.toRef(),!0,i.makeZero(n))}Ht.set(y.stack_pointer,W6);function j6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;return i.runtimeFeatures|=2,i.currentType=n,e.global_get(t.internalName,n.toRef())}mt.set(y.stack_pointer,j6);function K6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;i.runtimeFeatures|=8,e.getGlobal(t.internalName)||e.addGlobal(t.internalName,n.toRef(),!0,i.makeZero(n))}Ht.set(y.rtti_base,K6);function H6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;return i.runtimeFeatures|=8,i.currentType=n,e.global_get(t.internalName,n.toRef())}mt.set(y.rtti_base,H6);function Me(r){let i=r.compiler,e=i.module;if(J(r,!0)|ke(r,1,3))return e.unreachable();let t=r.operands,n=r.typeArguments,s=r.contextualType,a=n[0],l=s!=c.auto&&a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!l.isMemory)return i.error(203,r.reportNode.typeArgumentsRange,"load",l.toString()),i.currentType=c.void,e.unreachable();let o=i.compileExpression(t[0],i.options.usizeType,1),u=t.length,p=0,_=a.byteSize;return u>=2&&(p=st(t[1],i),p<0||u==3&&(_=Kt(t[2],_,i),_<0))?(i.currentType=l,e.unreachable()):(i.currentType=l,e.load(a.byteSize,a.isSignedIntegerValue,o,l.toRef(),p,_))}x.set(y.load,Me);function yt(r){let i=r.compiler,e=i.module;if(i.currentType=c.void,J(r)|ke(r,2,4))return e.unreachable();let t=r.operands,n=t.length,s=r.typeArguments,a=r.contextualType,l=s[0],o=i.compileExpression(t[0],i.options.usizeType,1),u=r.contextIsExact?i.compileExpression(t[1],a,1):i.compileExpression(t[1],l,l.isIntegerValue?0:1),p=i.currentType;if(!p.isMemory)return i.error(203,r.reportNode.typeArgumentsRange,"store",p.toString()),i.currentType=c.void,e.unreachable();l.isIntegerValue&&(!p.isIntegerValue||p.size<l.size)&&(u=i.convertExpression(u,p,l,!1,t[1]),p=l);let _=0,f=l.byteSize;if(n>=3){if(_=st(t[2],i),_<0)return i.currentType=c.void,e.unreachable();if(n==4&&(f=Kt(t[3],f,i),f<0))return i.currentType=c.void,e.unreachable()}return i.currentType=c.void,e.store(l.byteSize,o,u,p.toRef(),_,f)}x.set(y.store,yt);function Es(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isIntegerValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isIntegerValue)return i.makeRem(a,o,l,r.reportNode)}return i.error(203,r.reportNode.typeArgumentsRange,"rem",l.toString()),e.unreachable()}x.set(y.rem,Es);function Ss(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.makeAdd(a,o,l)}return i.error(203,r.reportNode.typeArgumentsRange,"add",l.toString()),e.unreachable()}x.set(y.add,Ss);function Is(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.makeSub(a,o,l)}return i.error(203,r.reportNode.typeArgumentsRange,"sub",l.toString()),e.unreachable()}x.set(y.sub,Is);function ks(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.makeMul(a,o,l)}return i.error(203,r.reportNode.typeArgumentsRange,"mul",l.toString()),e.unreachable()}x.set(y.mul,ks);function Or(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.makeDiv(a,o,l)}return i.error(203,r.reportNode.typeArgumentsRange,"div",l.toString()),e.unreachable()}x.set(y.div,Or);function Rs(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.currentType=c.i32,i.makeEq(a,o,l,r.reportNode)}return i.error(203,r.reportNode.typeArgumentsRange,"eq",l.toString()),e.unreachable()}x.set(y.eq,Rs);function Fs(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.currentType=c.i32,i.makeNe(a,o,l,r.reportNode)}return i.error(203,r.reportNode.typeArgumentsRange,"ne",l.toString()),e.unreachable()}x.set(y.ne,Fs);function pr(r){let i=r.compiler,e=i.module;if(X(r,32)|J(r,!0)|ke(r,1,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=r.contextualType,a=n[0],l=a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!a.isIntegerValue)return i.error(203,r.reportNode.typeArgumentsRange,"atomic.load",a.toString()),i.currentType=l,e.unreachable();let o=i.compileExpression(t[0],i.options.usizeType,1),u=t.length==2?st(t[1],i):0;return u<0?(i.currentType=l,e.unreachable()):(i.currentType=l,e.atomic_load(a.byteSize,o,l.toRef(),u))}x.set(y.atomic_load,pr);function _r(r){let i=r.compiler,e=i.module;if(X(r,32)|J(r)|ke(r,2,3))return e.unreachable();let t=r.operands,n=r.typeArguments,s=r.contextualType,a=n[0];if(!a.isIntegerValue)return i.error(203,r.reportNode.typeArgumentsRange,"atomic.store",a.toString()),i.currentType=c.void,e.unreachable();let l=i.compileExpression(t[0],i.options.usizeType,1),o=r.contextIsExact?i.compileExpression(t[1],s,1):i.compileExpression(t[1],a,a.isIntegerValue?0:1),u=i.currentType;a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,t[1]),u=a);let p=t.length==3?st(t[2],i):0;return p<0?(i.currentType=c.void,e.unreachable()):(i.currentType=c.void,e.atomic_store(a.byteSize,l,o,u.toRef(),p))}x.set(y.atomic_store,_r);function ji(r,i,e){let t=r.compiler,n=t.module;if(X(r,32)|J(r,!0)|ke(r,2,3))return n.unreachable();let s=r.operands,a=r.typeArguments,l=r.contextualType,o=a[0];if(!o.isIntegerValue||o.size<8)return t.error(203,r.reportNode.typeArgumentsRange,e,o.toString()),n.unreachable();let u=t.compileExpression(s[0],t.options.usizeType,1),p=r.contextIsExact?t.compileExpression(s[1],l,1):t.compileExpression(s[1],o,o.isIntegerValue?0:1),_=t.currentType;o.isIntegerValue&&(!_.isIntegerValue||_.size<o.size)&&(p=t.convertExpression(p,_,o,!1,s[1]),_=o);let f=s.length==3?st(s[2],t):0;return f<0?(t.currentType=_,n.unreachable()):(t.currentType=_,n.atomic_rmw(i,o.byteSize,f,u,p,_.toRef()))}function fr(r){return ji(r,0,"atomic.add")}x.set(y.atomic_add,fr);function dr(r){return ji(r,1,"atomic.sub")}x.set(y.atomic_sub,dr);function hr(r){return ji(r,2,"atomic.and")}x.set(y.atomic_and,hr);function mr(r){return ji(r,3,"atomic.or")}x.set(y.atomic_or,mr);function yr(r){return ji(r,4,"atomic.xor")}x.set(y.atomic_xor,yr);function gr(r){return ji(r,5,"atomic.xchg")}x.set(y.atomic_xchg,gr);function br(r){let i=r.compiler,e=i.module;if(X(r,32)|J(r,!0)|ke(r,3,4))return e.unreachable();let t=r.operands,n=r.typeArguments,s=r.contextualType,a=n[0];if(!a.isIntegerValue||a.size<8)return i.error(203,r.reportNode.typeArgumentsRange,"atomic.cmpxchg",a.toString()),e.unreachable();let l=i.compileExpression(t[0],i.options.usizeType,1),o=r.contextIsExact?i.compileExpression(t[1],s,1):i.compileExpression(t[1],a,a.isIntegerValue?0:1),u=i.currentType,p=i.compileExpression(t[2],u,1);a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,t[1]),p=i.convertExpression(p,u,a,!1,t[2]),u=a);let _=t.length==4?st(t[3],i):0;return _<0?(i.currentType=u,e.unreachable()):(i.currentType=u,e.atomic_cmpxchg(a.byteSize,_,l,o,p,u.toRef()))}x.set(y.atomic_cmpxchg,br);function Zp(r){let i=r.compiler,e=i.module;if(X(r,32)|J(r)|ke(r,2,3))return i.currentType=c.i32,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=i.compileExpression(t[1],s,1),o=t.length==3?i.compileExpression(t[2],c.i64,1):e.i64(-1,-1);switch(i.currentType=c.i32,s.kind){case 3:case 4:case 5:case 8:case 9:case 10:return e.atomic_wait(a,l,o,s.toRef())}return i.error(203,r.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}x.set(y.atomic_wait,Zp);function Q6(r){let i=r.compiler,e=i.module;if(X(r,32)|I(r)|ke(r,1,2))return i.currentType=c.i32,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],i.options.usizeType,1),s=t.length==2?i.compileExpression(t[1],c.i32,1):e.i32(-1);return i.currentType=c.i32,e.atomic_notify(n,s)}x.set(y.atomic_notify,Q6);function X6(r){let i=r.compiler,e=i.module;return i.currentType=c.void,X(r,32)|I(r)|j(r,0)?e.unreachable():e.atomic_fence()}x.set(y.atomic_fence,X6);function J6(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,3))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto),a=i.currentType;if(!a.isAny(384))return i.error(203,r.reportNode.typeArgumentsRange,"select",a.toString()),e.unreachable();let l=i.compileExpression(t[1],a,1),o=i.makeIsTrueish(i.compileExpression(t[2],c.bool),i.currentType,t[2]);return i.currentType=a,e.select(s,l,o)}x.set(y.select,J6);function Z6(r){return I(r),j(r,0),r.compiler.module.unreachable()}x.set(y.unreachable,Z6);function Y6(r){let i=r.compiler,e=i.module;return i.currentType=c.i32,I(r)|j(r,0)?e.unreachable():e.memory_size()}x.set(y.memory_size,Y6);function $6(r){let i=r.compiler,e=i.module;return i.currentType=c.i32,I(r)|j(r,1)?e.unreachable():e.memory_grow(i.compileExpression(r.operands[0],c.i32,1))}x.set(y.memory_grow,$6);function eT(r){let i=r.compiler,e=i.module;if(i.currentType=c.void,I(r)|j(r,3))return e.unreachable();let t=r.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(r.prototype,null);return i.currentType=c.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,t,r.reportNode)}let n=i.options.usizeType,s=i.compileExpression(t[0],n,1),a=i.compileExpression(t[1],n,1),l=i.compileExpression(t[2],n,1);return i.currentType=c.void,e.memory_copy(s,a,l)}x.set(y.memory_copy,eT);function tT(r){let i=r.compiler,e=i.module;if(i.currentType=c.void,I(r)|j(r,3))return e.unreachable();let t=r.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(r.prototype,null);return i.currentType=c.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,t,r.reportNode)}let n=i.options.usizeType,s=i.compileExpression(t[0],n,1),a=i.compileExpression(t[1],c.u8,1),l=i.compileExpression(t[2],n,1);return i.currentType=c.void,e.memory_fill(s,a,l)}x.set(y.memory_fill,tT);function rT(r){let i=r.compiler,e=i.module;if(i.currentType=c.i32,ue(r)|ke(r,1,2))return e.unreachable();let t=r.typeArguments,n=r.operands,s=n.length,a=i.options.usizeType,l;if(t&&t.length>0){let o=t[0];if(!o.isValue)return i.error(203,r.reportNode.typeArgumentsRange,"memory.data",o.toString()),i.currentType=a,e.unreachable();let u=n[0];if(u.kind!=17||u.literalKind!=5)return i.error(227,n[0].range),i.currentType=a,e.unreachable();let p=u.elementExpressions,_=p.length,f=new Array(_),d=!0;for(let m=0;m<_;++m){let T=p[m];if(T.kind!=20){let S=i.compileExpression(T,o,1),E=e.runExpression(S,1);E?S=E:d=!1,f[m]=S}else f[m]=i.makeZero(o)}if(!d)return i.error(220,u.range),i.currentType=a,e.unreachable();let h=o.byteSize;if(s==2&&(h=Kt(n[1],h,i),h<0))return i.currentType=a,e.unreachable();let g=new Uint8Array(_*o.byteSize);assert(i.writeStaticBuffer(g,0,o,f)==g.byteLength),l=i.addAlignedMemorySegment(g,h).offset}else{let o=i.compileExpression(n[0],c.i32,1),u=e.runExpression(o,1);if(!u)return i.error(220,n[0].range),i.currentType=a,e.unreachable();let p=ne(u);if(p<1)return i.error(222,n[0].range,"1",i32.MAX_VALUE.toString()),i.currentType=a,e.unreachable();let _=16;if(s==2&&(_=Kt(n[1],_,i),_<0))return i.currentType=a,e.unreachable();l=i.addAlignedMemorySegment(new Uint8Array(p),_).offset}return i.currentType=a,a==c.usize32?(assert(!i64_high(l)),e.i32(i64_low(l))):e.i64(i64_low(l),i64_high(l))}x.set(y.memory_data,rT);function iT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.i32,1);return i.currentType=c.i31,e.i31_new(n)}x.set(y.i31_new,iT);function nT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.i31.asNullable(),1);return r.contextualType.is(2)?(i.currentType=c.u32,e.i31_get(n,!1)):(i.currentType=c.i32,e.i31_get(n,!0))}x.set(y.i31_get,nT);function sT(r){let i=r.compiler,e=i.module;if(J(r,!0)|j(r,1))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.auto),l=i.currentType;return i.currentType=s,l.isChangeableTo(s)?a:(i.error(202,r.reportNode.range,l.toString(),s.toString()),e.unreachable())}x.set(y.changetype,sT);function aT(r){let i=r.compiler,e=i.module,t=r.typeArguments;if(ue(r,!0)|ke(r,1,2))return t&&(assert(t.length),i.currentType=t[0].nonNullableType),e.unreachable();let n=r.operands,s=r.contextualType,a=t?i.compileExpression(n[0],t[0],5):i.compileExpression(n[0],c.bool,4),l=i.currentType;if(i.currentType=l.nonNullableType,i.options.noAssert)return a;let o=e.runExpression(a,0);if(o)switch(le(o)){case N.I32:{if(ne(o))return a;break}case N.I64:{if(Ie(o)|Le(o))return a;break}case N.F32:{if(Ee(o))return a;break}case N.F64:{if(Se(o))return a;break}}let u=i.makeAbort(n.length==2?n[1]:null,r.reportNode);if(i.currentType=l.nonNullableType,s==c.void)switch(i.currentType=c.void,l.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return e.if(e.unary(20,a),u);case 4:case 9:return e.if(e.unary(21,a),u);case 5:case 10:return e.if(e.unary(145,a),u);case 11:return e.if(e.binary(57,a,e.f32(0)),u);case 12:return e.if(e.binary(70,a,e.f64(0)),u);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return e.if(e.ref_is_null(a),u)}else{i.currentType=l.nonNullableType;let p=i.currentFlow;switch(i.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let _=p.getTempLocal(l);return p.setLocalFlag(_.index,2),e.if(e.local_tee(_.index,a,!1),e.local_get(_.index,N.I32),u)}case 4:case 9:{let _=p.getTempLocal(c.i64);return e.if(e.unary(21,e.local_tee(_.index,a,!1)),u,e.local_get(_.index,N.I64))}case 5:case 10:{let _=p.getTempLocal(i.options.usizeType);return e.if(e.unary(145,e.local_tee(_.index,a,l.isManaged)),u,e.local_get(_.index,i.options.sizeTypeRef))}case 11:{let _=p.getTempLocal(c.f32);return e.if(e.binary(57,e.local_tee(_.index,a,!1),e.f32(0)),u,e.local_get(_.index,N.F32))}case 12:{let _=p.getTempLocal(c.f64);return e.if(e.binary(70,e.local_tee(_.index,a,!1),e.f64(0)),u,e.local_get(_.index,N.F64))}case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:{let _=p.getTempLocal(l);return e.if(e.ref_is_null(e.local_tee(_.index,a,!1)),u,e.local_get(_.index,l.toRef()))}}}return i.error(203,r.reportNode.typeArgumentsRange,"assert",i.currentType.toString()),u}x.set(y.assert,aT);function lT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return e.unreachable();let t=i.currentFlow,n=i.options.uncheckedBehavior===1,s=t.is(32768);n?assert(!s):t.set(32768);let a=i.compileExpression(r.operands[0],r.contextualType);return s||t.unset(32768),a}x.set(y.unchecked,lT);function oT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return e.unreachable();let t=i.currentFlow,n=t.is(131072);n||t.set(131072);let s=i.compileExpression(r.operands[0],r.contextualType);return n||t.unset(131072),s}x.set(y.inline_always,oT);function uT(r){let i=r.compiler,e=i.module;if(ue(r,!0)|ke(r,1,i32.MAX_VALUE))return e.unreachable();let t=r.operands,n=r.typeArguments,s;n?(assert(n.length),s=n[0]):s=r.contextualType;let a=i.compileExpression(t[0],c.u32,1),l=t.length-1,o=new Array(l),u=new Array(l);for(let p=0;p<l;++p)o[p]=i.compileExpression(t[1+p],c.auto),i.currentType.isManaged&&(o[p]=e.tostack(o[p])),u[p]=i.currentType.toRef();return i.currentType=s,e.call_indirect(null,a,o,Ze(u),s.toRef())}x.set(y.call_indirect,uT);function cT(r){let i=r.compiler,e=i.module;if(J(r,!0))return e.unreachable();let t=r.operands,a=r.typeArguments[0].getClass();if(!a)return i.error(2351,r.reportNode.expression.range),e.unreachable();i.currentType=a.type;let l=i.ensureConstructor(a,r.reportNode);return i.checkFieldInitialization(a,r.reportNode),i.compileInstantiate(l,t,0,r.reportNode)}x.set(y.instantiate,cT);function Yp(r,i){let e=r.compiler,t=e.module;I(r);let n=r.operands,s=r.reportNode;return e.emitDiagnostic(102,i,s.range,null,n.length?n[0].range.toString():s.range.toString()),i==3?t.unreachable():t.nop()}function pT(r){return Yp(r,3)}x.set(y.ERROR,pT);function _T(r){return Yp(r,2)}x.set(y.WARNING,_T);function fT(r){return Yp(r,1)}x.set(y.INFO,fT);function dT(r){let i=r.compiler,e=r.prototype.parent;assert(e.kind==7);let t=e;assert(t.prototype==i.program.functionPrototype);let n=assert(t.typeArguments);assert(n.length==1);let s=n[0],a=assert(s.getSignature()),l=a.returnType;if(I(r)|ke(r,1+a.requiredParameters,1+a.parameterTypes.length))return i.currentType=l,i.module.unreachable();let o=i.compileExpression(assert(r.thisOperand),s,1),u=assert(r.operands.shift()),p=a.thisType,_=0;if(p)_=i.compileExpression(u,p,1);else if(u.kind!=19)return i.error(2332,u.range),i.module.unreachable();return i.compileCallIndirect(a,o,r.operands,r.reportNode,_,r.contextualType==c.void)}x.set(y.Function_call,dT);function hT(r){let i=r.compiler,e=i.module;return i.currentType=r.compiler.program.stringInstance.type,i.error(100,r.reportNode.range,"String.raw"),e.unreachable()}x.set(y.String_raw,hT);function rt(r,i){let e=r.compiler;return I(r)|j(r,1)?(e.currentType=i,e.module.unreachable()):e.compileExpression(r.operands[0],i,2)}function mT(r){return rt(r,c.i8)}x.set(y.i8,mT);function yT(r){return rt(r,c.i16)}x.set(y.i16,yT);function gT(r){return rt(r,c.i32)}x.set(y.i32,gT);function bT(r){return rt(r,c.i64)}x.set(y.i64,bT);function xT(r){return rt(r,r.compiler.options.isizeType)}x.set(y.isize,xT);function TT(r){return rt(r,c.u8)}x.set(y.u8,TT);function AT(r){return rt(r,c.u16)}x.set(y.u16,AT);function vT(r){return rt(r,c.u32)}x.set(y.u32,vT);function ET(r){return rt(r,c.u64)}x.set(y.u64,ET);function ST(r){return rt(r,r.compiler.options.usizeType)}x.set(y.usize,ST);function IT(r){return rt(r,c.bool)}x.set(y.bool,IT);function kT(r){return rt(r,c.f32)}x.set(y.f32,kT);function RT(r){return rt(r,c.f64)}x.set(y.f64,RT);function FT(r){return rb(r)}x.set(y.v128,FT);function rb(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,16))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(16),a=0;for(let l=0;l<16;++l){let o=i.compileExpression(t[l],c.i8,1),u=e.runExpression(o,1);u?de(ne(u),n,l):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==16;o?l=e.unary(60,s[0]):l=e.v128(n);for(let u=i32(o);u<16;u++){let p=s[u];p&&(l=e.simd_replace(0,l,u,p))}return l}}x.set(y.i8x16,rb);function wT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,8))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(8),a=0;for(let l=0;l<8;++l){let o=i.compileExpression(t[l],c.i16,1),u=e.runExpression(o,1);u?rr(ne(u),n,l<<1):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==8;o?l=e.unary(61,s[0]):l=e.v128(n);for(let u=i32(o);u<8;u++){let p=s[u];p&&(l=e.simd_replace(1,l,u,p))}return l}}x.set(y.i16x8,wT);function CT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,4))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(t[l],c.i32,1),u=e.runExpression(o,1);u?ge(ne(u),n,l<<2):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(62,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let p=s[u];p&&(l=e.simd_replace(2,l,u,p))}return l}}x.set(y.i32x4,CT);function PT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(t[l],c.i64,1),u=e.runExpression(o,1);if(u){let p=l<<3;ge(Ie(u),n,p+0),ge(Le(u),n,p+4)}else s[l]=o,a++}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(63,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let p=s[u];p&&(l=e.simd_replace(3,l,u,p))}return l}}x.set(y.i64x2,PT);function BT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,4))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(t[l],c.f32,1),u=e.runExpression(o,1);u?Sr(Ee(u),n,l<<2):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(64,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let p=s[u];p&&(l=e.simd_replace(5,l,u,p))}return l}}x.set(y.f32x4,BT);function LT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(t[l],c.f64,1),u=e.runExpression(o,1);u?Ir(Se(u),n,l<<3):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(65,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let p=s[u];p&&(l=e.simd_replace(6,l,u,p))}return l}}x.set(y.f64x2,LT);function qr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],s,1);if(i.currentType=c.v128,s.isValue)switch(s.kind){case 1:case 6:return e.unary(60,a);case 2:case 7:return e.unary(61,a);case 3:case 8:return e.unary(62,a);case 4:case 9:return e.unary(63,a);case 5:case 10:return e.unary(i.options.isWasm64?63:62,a);case 11:return e.unary(64,a);case 12:return e.unary(65,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}x.set(y.v128_splat,qr);function Qt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|j(r,2))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.u8,1);i.currentType=s;let o=0,u=e.runExpression(l,1);if(u?o=ne(u):i.error(220,t[1].range),s.isValue){let p=16/assert(s.byteSize)-1;switch((o<0||o>p)&&(i.error(222,t[1].range,"Lane index","0",p.toString()),o=0),s.kind){case 1:return e.simd_extract(0,a,o);case 6:return e.simd_extract(1,a,o);case 2:return e.simd_extract(2,a,o);case 7:return e.simd_extract(3,a,o);case 3:case 8:return e.simd_extract(4,a,o);case 4:case 9:return e.simd_extract(5,a,o);case 5:case 10:return e.simd_extract(i.options.isWasm64?5:4,a,o);case 11:return e.simd_extract(7,a,o);case 12:return e.simd_extract(8,a,o)}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}x.set(y.v128_extract_lane,Qt);function Wr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.u8,1),o=i.compileExpression(t[2],s,1);i.currentType=c.v128;let u=0,p=e.runExpression(l,1);if(p?u=ne(p):i.error(220,t[1].range),s.isValue){let _=16/assert(s.byteSize)-1;switch((u<0||u>_)&&(i.error(222,t[1].range,"Lane index","0",_.toString()),u=0),s.kind){case 1:case 6:return e.simd_replace(0,a,u,o);case 2:case 7:return e.simd_replace(1,a,u,o);case 3:case 8:return e.simd_replace(2,a,u,o);case 4:case 9:return e.simd_replace(3,a,u,o);case 5:case 10:return e.simd_replace(i.options.isWasm64?3:2,a,u,o);case 11:return e.simd_replace(5,a,u,o);case 12:return e.simd_replace(6,a,u,o)}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}x.set(y.v128_replace_lane,Wr);function jr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0];if(s.isValue){let a=s.byteSize,l=16/a;if(assert(Number.isInteger(l)&&zt(l)),j(r,2+l))return i.currentType=c.v128,e.unreachable();let o=i.compileExpression(t[0],c.v128,1),u=i.compileExpression(t[1],c.v128,1);switch(s.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{let p=new Uint8Array(16),_=(l<<1)-1;for(let f=0;f<l;++f){let d=t[2+f],h=i.compileExpression(d,c.u8,1),g=e.runExpression(h,1),m=0;switch(g?(m=ne(g),(m<0||m>_)&&(i.error(222,d.range,"Lane index","0",_.toString()),m=0)):i.error(220,d.range),a){case 1:{de(m,p,f);break}case 2:{let T=f<<1,S=m<<1;de(S,p,T),de(S+1,p,T+1);break}case 4:{let T=f<<2,S=m<<2;de(S,p,T),de(S+1,p,T+1),de(S+2,p,T+2),de(S+3,p,T+3);break}case 8:{let T=f<<3,S=m<<3;de(S,p,T),de(S+1,p,T+1),de(S+2,p,T+2),de(S+3,p,T+3),de(S+4,p,T+4),de(S+5,p,T+5),de(S+6,p,T+6),de(S+7,p,T+7);break}default:assert(!1)}}return i.currentType=c.v128,e.simd_shuffle(o,u,p)}}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),i.currentType=c.v128,e.unreachable()}x.set(y.v128_shuffle,jr);function ib(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.v128,1),s=i.compileExpression(t[1],c.v128,1);return e.binary(209,n,s)}x.set(y.v128_swizzle,ib);function ws(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,1,3))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=st(t[1],i),o<0)return i.currentType=c.v128,e.unreachable();if(l==3&&(u=Kt(t[2],u,i),u<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.v128,s.isValue)switch(s.kind){case 1:case 6:return e.simd_load(0,a,o,u);case 2:case 7:return e.simd_load(1,a,o,u);case 3:case 8:case 11:return e.simd_load(2,a,o,u);case 5:case 10:if(!i.options.isWasm64)return e.simd_load(2,a,o,u);case 4:case 9:case 12:return e.simd_load(3,a,o,u)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}x.set(y.v128_load_splat,ws);function Kr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,1,3))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=st(t[1],i),o<0)return i.currentType=c.v128,e.unreachable();if(l==3&&(u=Kt(t[2],u,i),u<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.v128,s.isValue)switch(s.kind){case 1:return e.simd_load(4,a,o,u);case 6:return e.simd_load(5,a,o,u);case 2:return e.simd_load(6,a,o,u);case 7:return e.simd_load(7,a,o,u);case 5:if(i.options.isWasm64)break;case 3:return e.simd_load(8,a,o,u);case 10:if(i.options.isWasm64)break;case 8:return e.simd_load(9,a,o,u)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}x.set(y.v128_load_ext,Kr);function $p(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,1,3))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=st(t[1],i),o<0)return i.currentType=c.v128,e.unreachable();if(l==3&&(u=Kt(t[2],u,i),u<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.v128,s.isValue)switch(s.kind){case 3:case 8:case 11:return e.simd_load(10,a,o,u);case 4:case 9:case 12:return e.simd_load(11,a,o,u);case 5:case 10:return e.simd_load(i.options.isWasm64?11:10,a,o,u)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}x.set(y.v128_load_zero,$p);function Cs(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,3,5))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.u8,1),u=0,p=e.runExpression(o,1);p?u=ne(p):i.error(220,t[2].range);let _=t.length,f=0,d=s.byteSize;if(_>=4){if(f=st(t[3],i),f<0)return i.currentType=c.v128,e.unreachable();if(_==5&&(d=Kt(t[4],d,i),d<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.v128,s.isValue){let h=16/assert(s.byteSize)-1;switch((u<0||u>h)&&(i.error(222,t[1].range,"Lane index","0",h.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,a,f,d,u,l);case 2:case 7:return e.simd_loadstorelane(1,a,f,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(2,a,f,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(3,a,f,d,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?3:2,a,f,d,u,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}x.set(y.v128_load_lane,Cs);function Ps(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,3,5))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.u8,1),u=0,p=e.runExpression(o,1);p?u=ne(p):i.error(220,t[2].range);let _=t.length,f=0,d=s.byteSize;if(_>=4){if(f=st(t[3],i),f<0)return i.currentType=c.v128,e.unreachable();if(_==5&&(d=Kt(t[4],d,i),d<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.void,s.isValue){let h=16/assert(s.byteSize)-1;switch((u<0||u>h)&&(i.error(222,t[1].range,"Lane index","0",h.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,a,f,d,u,l);case 2:case 7:return e.simd_loadstorelane(5,a,f,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(6,a,f,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(7,a,f,d,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?7:6,a,f,d,u,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}x.set(y.v128_store_lane,Ps);function Hr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(134,a,l);case 2:case 7:return e.binary(145,a,l);case 3:case 8:return e.binary(162,a,l);case 4:case 9:return e.binary(174,a,l);case 5:case 10:return e.binary(i.options.isWasm64?174:162,a,l);case 11:return e.binary(189,a,l);case 12:return e.binary(197,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}x.set(y.v128_add,Hr);function Qr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(137,a,l);case 2:case 7:return e.binary(148,a,l);case 3:case 8:return e.binary(163,a,l);case 4:case 9:return e.binary(175,a,l);case 5:case 10:return e.binary(i.options.isWasm64?175:163,a,l);case 11:return e.binary(190,a,l);case 12:return e.binary(198,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}x.set(y.v128_sub,Qr);function Ki(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 2:case 7:return e.binary(151,a,l);case 3:case 8:return e.binary(164,a,l);case 4:case 9:return e.binary(176,a,l);case 5:case 10:return e.binary(i.options.isWasm64?176:164,a,l);case 11:return e.binary(191,a,l);case 12:return e.binary(199,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}x.set(y.v128_mul,Ki);function e_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(192,a,l);case 12:return e.binary(200,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}x.set(y.v128_div,e_);function Bs(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(135,a,l);case 6:return e.binary(136,a,l);case 2:return e.binary(146,a,l);case 7:return e.binary(147,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}x.set(y.v128_add_sat,Bs);function Ls(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(138,a,l);case 6:return e.binary(139,a,l);case 2:return e.binary(149,a,l);case 7:return e.binary(150,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}x.set(y.v128_sub_sat,Ls);function Xt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(140,a,l);case 6:return e.binary(141,a,l);case 2:return e.binary(152,a,l);case 7:return e.binary(153,a,l);case 5:if(i.options.isWasm64)break;case 3:return e.binary(165,a,l);case 10:if(i.options.isWasm64)break;case 8:return e.binary(166,a,l);case 11:return e.binary(193,a,l);case 12:return e.binary(201,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}x.set(y.v128_min,Xt);function Jt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(142,a,l);case 6:return e.binary(143,a,l);case 2:return e.binary(154,a,l);case 7:return e.binary(155,a,l);case 5:if(i.options.isWasm64)break;case 3:return e.binary(167,a,l);case 10:if(i.options.isWasm64)break;case 8:return e.binary(168,a,l);case 11:return e.binary(194,a,l);case 12:return e.binary(202,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}x.set(y.v128_max,Jt);function t_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(195,a,l);case 12:return e.binary(203,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}x.set(y.v128_pmin,t_);function r_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(196,a,l);case 12:return e.binary(204,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}x.set(y.v128_pmax,r_);function nb(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);return s.isValue&&s.kind===2?e.binary(169,a,l):(i.error(203,r.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}x.set(y.v128_dot,nb);function i_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 6:return e.binary(144,a,l);case 7:return e.binary(156,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}x.set(y.v128_avgr,i_);function Xr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(76,a,l);case 2:case 7:return e.binary(86,a,l);case 3:case 8:return e.binary(96,a,l);case 4:case 9:return e.binary(106,a,l);case 5:case 10:return e.binary(i.options.isWasm64?106:96,a,l);case 11:return e.binary(118,a,l);case 12:return e.binary(124,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}x.set(y.v128_eq,Xr);function Jr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(77,a,l);case 2:case 7:return e.binary(87,a,l);case 3:case 8:return e.binary(97,a,l);case 4:case 9:return e.binary(107,a,l);case 5:case 10:return e.binary(i.options.isWasm64?107:97,a,l);case 11:return e.binary(119,a,l);case 12:return e.binary(125,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}x.set(y.v128_ne,Jr);function kt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(78,a,l);case 6:return e.binary(79,a,l);case 2:return e.binary(88,a,l);case 7:return e.binary(89,a,l);case 3:return e.binary(98,a,l);case 8:return e.binary(99,a,l);case 4:return e.binary(108,a,l);case 5:return e.binary(i.options.isWasm64?108:98,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(99,a,l)}case 11:return e.binary(120,a,l);case 12:return e.binary(126,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}x.set(y.v128_lt,kt);function Rt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(82,a,l);case 6:return e.binary(83,a,l);case 2:return e.binary(92,a,l);case 7:return e.binary(93,a,l);case 3:return e.binary(102,a,l);case 8:return e.binary(103,a,l);case 4:return e.binary(110,a,l);case 5:return e.binary(i.options.isWasm64?110:102,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(103,a,l)}case 11:return e.binary(122,a,l);case 12:return e.binary(128,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}x.set(y.v128_le,Rt);function Ft(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(80,a,l);case 6:return e.binary(81,a,l);case 2:return e.binary(90,a,l);case 7:return e.binary(91,a,l);case 3:return e.binary(100,a,l);case 8:return e.binary(101,a,l);case 4:return e.binary(109,a,l);case 5:return e.binary(i.options.isWasm64?109:100,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(101,a,l)}case 11:return e.binary(121,a,l);case 12:return e.binary(127,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}x.set(y.v128_gt,Ft);function wt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(84,a,l);case 6:return e.binary(85,a,l);case 2:return e.binary(94,a,l);case 7:return e.binary(95,a,l);case 3:return e.binary(104,a,l);case 8:return e.binary(105,a,l);case 4:return e.binary(111,a,l);case 5:return e.binary(i.options.isWasm64?111:104,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(105,a,l)}case 11:return e.binary(123,a,l);case 12:return e.binary(129,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}x.set(y.v128_ge,wt);function Ns(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 2:return e.binary(205,a,l);case 7:return e.binary(206,a,l);case 3:return e.binary(207,a,l);case 8:return e.binary(208,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}x.set(y.v128_narrow,Ns);function Zr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.unary(69,a);case 2:case 7:return e.unary(74,a);case 3:case 8:return e.unary(78,a);case 4:case 9:return e.unary(82,a);case 5:case 10:return e.unary(i.options.isWasm64?82:78,a);case 11:return e.unary(93,a);case 12:return e.unary(100,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}x.set(y.v128_neg,Zr);function Yr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(68,a);case 2:return e.unary(73,a);case 3:return e.unary(77,a);case 4:return e.unary(81,a);case 5:return e.unary(i.options.isWasm64?81:77,a);case 6:case 7:case 8:case 9:case 10:return a;case 11:return e.unary(92,a);case 12:return e.unary(99,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}x.set(y.v128_abs,Yr);function n_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(94,a);case 12:return e.unary(101,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}x.set(y.v128_sqrt,n_);function s_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(95,a);case 12:return e.unary(102,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}x.set(y.v128_ceil,s_);function a_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(96,a);case 12:return e.unary(103,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}x.set(y.v128_floor,a_);function l_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(97,a);case 12:return e.unary(104,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}x.set(y.v128_trunc,l_);function o_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(98,a);case 12:return e.unary(105,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}x.set(y.v128_nearest,o_);function u_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(112,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(113,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}x.set(y.v128_convert,u_);function c_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(126,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(127,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}x.set(y.v128_convert_low,c_);function p_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(110,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(111,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}x.set(y.v128_trunc_sat,p_);function __(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(128,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(129,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}x.set(y.v128_trunc_sat_zero,__);function $r(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(114,a);case 6:return e.unary(116,a);case 2:return e.unary(118,a);case 7:return e.unary(120,a);case 5:if(i.options.isWasm64)break;case 3:return e.unary(122,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(124,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}x.set(y.v128_extend_low,$r);function ei(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(115,a);case 6:return e.unary(117,a);case 2:return e.unary(119,a);case 7:return e.unary(121,a);case 5:if(i.options.isWasm64)break;case 3:return e.unary(123,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(125,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}x.set(y.v128_extend_high,ei);function Ms(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1),a=i.compileExpression(t[1],c.i32,1);if(i.currentType=c.v128,n.isValue)switch(n.kind){case 1:case 6:return e.simd_shift(0,s,a);case 2:case 7:return e.simd_shift(3,s,a);case 3:case 8:return e.simd_shift(6,s,a);case 4:case 9:return e.simd_shift(9,s,a);case 5:case 10:return e.simd_shift(i.options.isWasm64?9:6,s,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.shl",n.toString()),e.unreachable()}x.set(y.v128_shl,Ms);function Zt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1),a=i.compileExpression(t[1],c.i32,1);if(i.currentType=c.v128,n.isValue)switch(n.kind){case 1:return e.simd_shift(1,s,a);case 6:return e.simd_shift(2,s,a);case 2:return e.simd_shift(4,s,a);case 7:return e.simd_shift(5,s,a);case 3:return e.simd_shift(7,s,a);case 8:return e.simd_shift(8,s,a);case 4:return e.simd_shift(10,s,a);case 9:return e.simd_shift(11,s,a);case 5:return e.simd_shift(i.options.isWasm64?10:7,s,a);case 10:return e.simd_shift(i.options.isWasm64?11:8,s,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.shr",n.toString()),e.unreachable()}x.set(y.v128_shr,Zt);function To(r,i){let e=r.compiler,t=e.module;if(X(r,16)|I(r)|j(r,2))return e.currentType=c.v128,t.unreachable();let n=r.operands,s=e.compileExpression(n[0],c.v128,1),a=e.compileExpression(n[1],c.v128,1);return t.binary(i,s,a)}function NT(r){return To(r,130)}x.set(y.v128_and,NT);function MT(r){return To(r,131)}x.set(y.v128_or,MT);function DT(r){return To(r,132)}x.set(y.v128_xor,DT);function GT(r){return To(r,133)}x.set(y.v128_andnot,GT);function zT(r,i){let e=r.compiler,t=e.module;if(X(r,16)|I(r)|j(r,1))return e.currentType=c.v128,t.unreachable();let n=r.operands,s=e.compileExpression(n[0],c.v128,1);return t.unary(i,s)}function UT(r){return zT(r,66)}x.set(y.v128_not,UT);function VT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.v128,1),s=i.compileExpression(t[1],c.v128,1),a=i.compileExpression(t[2],c.v128,1);return e.simd_ternary(0,n,s,a)}x.set(y.v128_bitselect,VT);function OT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,1))return i.currentType=c.bool,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.v128,1);return i.currentType=c.bool,e.unary(67,n)}x.set(y.v128_any_true,OT);function Ds(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.bool,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1);if(i.currentType=c.bool,n.isValue)switch(n.kind){case 1:case 6:return e.unary(70,s);case 2:case 7:return e.unary(75,s);case 3:case 8:return e.unary(79,s);case 4:case 9:return e.unary(83,s);case 5:case 10:return e.unary(i.options.isWasm64?83:79,s)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.all_true",n.toString()),e.unreachable()}x.set(y.v128_all_true,Ds);function Gs(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.i32,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1);if(i.currentType=c.i32,n.isValue)switch(n.kind){case 1:case 6:return e.unary(71,s);case 2:case 7:return e.unary(76,s);case 3:case 8:return e.unary(80,s);case 4:case 9:return e.unary(84,s);case 5:case 10:return e.unary(i.options.isWasm64?84:80,s)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.bitmask",n.toString()),e.unreachable()}x.set(y.v128_bitmask,Gs);function sb(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1);if(i.currentType=c.v128,n.isValue)switch(n.kind){case 1:case 6:return e.unary(72,s)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.popcnt",n.toString()),e.unreachable()}x.set(y.v128_popcnt,sb);function zs(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1);if(i.currentType=c.v128,n.isValue)switch(n.kind){case 1:return e.unary(106,s);case 6:return e.unary(107,s);case 2:return e.unary(108,s);case 7:return e.unary(109,s)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extadd_pairwise",n.toString()),e.unreachable()}x.set(y.v128_extadd_pairwise,zs);function ab(r){let i=r.compiler,e=i.module;if(X(r,16)|ue(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments,s=n?n[0]:c.f64,a=i.compileExpression(t[0],c.v128,1);return i.currentType=c.v128,s.isValue&&s.kind===12?e.unary(130,a):(i.error(203,r.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}x.set(y.v128_demote_zero,ab);function lb(r){let i=r.compiler,e=i.module;if(X(r,16)|ue(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments,s=n?n[0]:c.f32,a=i.compileExpression(t[0],c.v128,1);return i.currentType=c.v128,s.isValue&&s.kind===11?e.unary(131,a):(i.error(203,r.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}x.set(y.v128_promote_low,lb);function ob(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);return s.isValue&&s.kind===2?e.binary(157,a,l):(i.error(203,r.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}x.set(y.v128_q15mulr_sat,ob);function ti(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(158,a,l);case 6:return e.binary(160,a,l);case 2:return e.binary(170,a,l);case 7:return e.binary(172,a,l);case 3:return e.binary(177,a,l);case 8:return e.binary(179,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}x.set(y.v128_extmul_low,ti);function ri(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(159,a,l);case 6:return e.binary(161,a,l);case 2:return e.binary(171,a,l);case 7:return e.binary(173,a,l);case 3:return e.binary(178,a,l);case 8:return e.binary(180,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}x.set(y.v128_extmul_high,ri);function ub(r){let i=r.compiler,e=i.module;if(X(r,4096)|I(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.v128,1),s=i.compileExpression(t[1],c.v128,1);return e.binary(210,n,s)}x.set(y.v128_relaxed_swizzle,ub);function f_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(132,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(133,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}x.set(y.v128_relaxed_trunc,f_);function d_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(134,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(135,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}x.set(y.v128_relaxed_trunc_zero,d_);function h_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(1,a,l,o);case 12:return e.simd_ternary(3,a,l,o)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}x.set(y.v128_relaxed_madd,h_);function m_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(2,a,l,o);case 12:return e.simd_ternary(4,a,l,o)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}x.set(y.v128_relaxed_nmadd,m_);function Us(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.simd_ternary(5,a,l,o);case 2:case 7:return e.simd_ternary(6,a,l,o);case 3:case 8:return e.simd_ternary(7,a,l,o);case 4:case 9:return e.simd_ternary(8,a,l,o);case 5:case 10:return e.simd_ternary(i.options.isWasm64?8:7,a,l,o)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}x.set(y.v128_relaxed_laneselect,Us);function y_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(211,a,l);case 12:return e.binary(213,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}x.set(y.v128_relaxed_min,y_);function g_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(212,a,l);case 12:return e.binary(214,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}x.set(y.v128_relaxed_max,g_);function cb(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);return s.isValue&&s.kind===2?e.binary(215,a,l):(i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}x.set(y.v128_relaxed_q15mulr,cb);function pb(r){let i=r.compiler,e=i.module;if(X(r,4096)|j(r,2)|J(r))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);return s.kind===2?e.binary(216,a,l):(i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}x.set(y.v128_relaxed_dot,pb);function _b(r){let i=r.compiler,e=i.module;if(X(r,4096)|j(r,3)|J(r))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.v128,1);switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.simd_ternary(9,a,l,o)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}x.set(y.v128_relaxed_dot_add,_b);function qT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return i.currentType=c.void,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.u32,1);return i.runtimeFeatures|=16,i.currentType=c.void,e.call(y.visit_globals,[n],N.None)}x.set(y.visit_globals,qT);function WT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,2))return i.currentType=c.void,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],i.options.usizeType,1),s=i.compileExpression(t[1],c.u32,1);return i.runtimeFeatures|=32,i.currentType=c.void,e.call(y.visit_members,[n,s],N.None)}x.set(y.visit_members,WT);function jT(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Dp(r)}x.set(y.i32_clz,jT);function KT(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Dp(r)}x.set(y.i64_clz,KT);function HT(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Gp(r)}x.set(y.i32_ctz,HT);function QT(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Gp(r)}x.set(y.i64_ctz,QT);function XT(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,zp(r)}x.set(y.i32_popcnt,XT);function JT(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,zp(r)}x.set(y.i64_popcnt,JT);function ZT(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Up(r)}x.set(y.i32_rotl,ZT);function YT(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Up(r)}x.set(y.i64_rotl,YT);function $T(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Vp(r)}x.set(y.i32_rotr,$T);function eA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Vp(r)}x.set(y.i64_rotr,eA);function tA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Op(r)}x.set(y.f32_abs,tA);function rA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Op(r)}x.set(y.f64_abs,rA);function iA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,qp(r)}x.set(y.f32_max,iA);function nA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,qp(r)}x.set(y.f64_max,nA);function sA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Wp(r)}x.set(y.f32_min,sA);function aA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Wp(r)}x.set(y.f64_min,aA);function lA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,jp(r)}x.set(y.f32_ceil,lA);function oA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,jp(r)}x.set(y.f64_ceil,oA);function uA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Kp(r)}x.set(y.f32_floor,uA);function cA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Kp(r)}x.set(y.f64_floor,cA);function pA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Hp(r)}x.set(y.f32_copysign,pA);function _A(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Hp(r)}x.set(y.f64_copysign,_A);function fA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Qp(r)}x.set(y.f32_nearest,fA);function dA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Qp(r)}x.set(y.f64_nearest,dA);function hA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.f32,vs(r)}x.set(y.i32_reinterpret_f32,hA);function mA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.f64,vs(r)}x.set(y.i64_reinterpret_f64,mA);function yA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.i32,vs(r)}x.set(y.f32_reinterpret_i32,yA);function gA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.i64,vs(r)}x.set(y.f64_reinterpret_i64,gA);function bA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Xp(r)}x.set(y.f32_sqrt,bA);function xA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Xp(r)}x.set(y.f64_sqrt,xA);function TA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Jp(r)}x.set(y.f32_trunc,TA);function AA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Jp(r)}x.set(y.f64_trunc,AA);function vA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Es(r)}x.set(y.i32_rem_s,vA);function EA(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.u32,Es(r)}x.set(y.i32_rem_u,EA);function SA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Es(r)}x.set(y.i64_rem_s,SA);function IA(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.u64,Es(r)}x.set(y.i64_rem_u,IA);function kA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Ss(r)}x.set(y.i32_add,kA);function RA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Ss(r)}x.set(y.i64_add,RA);function FA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Ss(r)}x.set(y.f32_add,FA);function wA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Ss(r)}x.set(y.f64_add,wA);function CA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Is(r)}x.set(y.i32_sub,CA);function PA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Is(r)}x.set(y.i64_sub,PA);function BA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Is(r)}x.set(y.f32_sub,BA);function LA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Is(r)}x.set(y.f64_sub,LA);function NA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,ks(r)}x.set(y.i32_mul,NA);function MA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,ks(r)}x.set(y.i64_mul,MA);function DA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,ks(r)}x.set(y.f32_mul,DA);function GA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,ks(r)}x.set(y.f64_mul,GA);function zA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Or(r)}x.set(y.i32_div_s,zA);function UA(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.u32,Or(r)}x.set(y.i32_div_u,UA);function VA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Or(r)}x.set(y.i64_div_s,VA);function OA(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.u64,Or(r)}x.set(y.i64_div_u,OA);function qA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Or(r)}x.set(y.f32_div,qA);function WA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Or(r)}x.set(y.f64_div,WA);function jA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Rs(r)}x.set(y.i32_eq,jA);function KA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Rs(r)}x.set(y.i64_eq,KA);function HA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.i32,Rs(r)}x.set(y.f32_eq,HA);function QA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.i32,Rs(r)}x.set(y.f64_eq,QA);function XA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Fs(r)}x.set(y.i32_ne,XA);function JA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Fs(r)}x.set(y.i64_ne,JA);function ZA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.i32,Fs(r)}x.set(y.f32_ne,ZA);function YA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.i32,Fs(r)}x.set(y.f64_ne,YA);function $A(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Me(r)}x.set(y.i32_load8_s,$A);function ev(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,Me(r)}x.set(y.i32_load8_u,ev);function tv(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Me(r)}x.set(y.i32_load16_s,tv);function rv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,Me(r)}x.set(y.i32_load16_u,rv);function iv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Me(r)}x.set(y.i32_load,iv);function nv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i64,Me(r)}x.set(y.i64_load8_s,nv);function sv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,Me(r)}x.set(y.i64_load8_u,sv);function av(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i64,Me(r)}x.set(y.i64_load16_s,av);function lv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,Me(r)}x.set(y.i64_load16_u,lv);function ov(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i64,Me(r)}x.set(y.i64_load32_s,ov);function uv(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,Me(r)}x.set(y.i64_load32_u,uv);function cv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Me(r)}x.set(y.i64_load,cv);function pv(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Me(r)}x.set(y.f32_load,pv);function _v(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Me(r)}x.set(y.f64_load,_v);function fv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,r.contextIsExact=!0,yt(r)}x.set(y.i32_store8,fv);function dv(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,r.contextIsExact=!0,yt(r)}x.set(y.i32_store16,dv);function hv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,yt(r)}x.set(y.i32_store,hv);function mv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i64,r.contextIsExact=!0,yt(r)}x.set(y.i64_store8,mv);function yv(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i64,r.contextIsExact=!0,yt(r)}x.set(y.i64_store16,yv);function gv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i64,r.contextIsExact=!0,yt(r)}x.set(y.i64_store32,gv);function bv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,yt(r)}x.set(y.i64_store,bv);function xv(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,r.contextIsExact=!0,yt(r)}x.set(y.f32_store,xv);function Tv(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,r.contextIsExact=!0,yt(r)}x.set(y.f64_store,Tv);function Av(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,pr(r)}x.set(y.i32_atomic_load8_u,Av);function vv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,pr(r)}x.set(y.i32_atomic_load16_u,vv);function Ev(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,pr(r)}x.set(y.i32_atomic_load,Ev);function Sv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,pr(r)}x.set(y.i64_atomic_load8_u,Sv);function Iv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,pr(r)}x.set(y.i64_atomic_load16_u,Iv);function kv(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,pr(r)}x.set(y.i64_atomic_load32_u,kv);function Rv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,pr(r)}x.set(y.i64_atomic_load,Rv);function Fv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,r.contextIsExact=!0,_r(r)}x.set(y.i32_atomic_store8,Fv);function wv(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,r.contextIsExact=!0,_r(r)}x.set(y.i32_atomic_store16,wv);function Cv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,_r(r)}x.set(y.i32_atomic_store,Cv);function Pv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i64,r.contextIsExact=!0,_r(r)}x.set(y.i64_atomic_store8,Pv);function Bv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,_r(r)}x.set(y.i64_atomic_store16,Bv);function Lv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i64,r.contextIsExact=!0,_r(r)}x.set(y.i64_atomic_store32,Lv);function Nv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,_r(r)}x.set(y.i64_atomic_store,Nv);function Mv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,fr(r)}x.set(y.i32_atomic_rmw8_add_u,Mv);function Dv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,fr(r)}x.set(y.i32_atomic_rmw16_add_u,Dv);function Gv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,fr(r)}x.set(y.i32_atomic_rmw_add,Gv);function zv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,fr(r)}x.set(y.i64_atomic_rmw8_add_u,zv);function Uv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,fr(r)}x.set(y.i64_atomic_rmw16_add_u,Uv);function Vv(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,fr(r)}x.set(y.i64_atomic_rmw32_add_u,Vv);function Ov(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,fr(r)}x.set(y.i64_atomic_rmw_add,Ov);function qv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,dr(r)}x.set(y.i32_atomic_rmw8_sub_u,qv);function Wv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,dr(r)}x.set(y.i32_atomic_rmw16_sub_u,Wv);function jv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,dr(r)}x.set(y.i32_atomic_rmw_sub,jv);function Kv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,dr(r)}x.set(y.i64_atomic_rmw8_sub_u,Kv);function Hv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,dr(r)}x.set(y.i64_atomic_rmw16_sub_u,Hv);function Qv(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,dr(r)}x.set(y.i64_atomic_rmw32_sub_u,Qv);function Xv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,dr(r)}x.set(y.i64_atomic_rmw_sub,Xv);function Jv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,hr(r)}x.set(y.i32_atomic_rmw8_and_u,Jv);function Zv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,hr(r)}x.set(y.i32_atomic_rmw16_and_u,Zv);function Yv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,hr(r)}x.set(y.i32_atomic_rmw_and,Yv);function $v(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,hr(r)}x.set(y.i64_atomic_rmw8_and_u,$v);function eE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,hr(r)}x.set(y.i64_atomic_rmw16_and_u,eE);function tE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,hr(r)}x.set(y.i64_atomic_rmw32_and_u,tE);function rE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,hr(r)}x.set(y.i64_atomic_rmw_and,rE);function iE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,mr(r)}x.set(y.i32_atomic_rmw8_or_u,iE);function nE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,mr(r)}x.set(y.i32_atomic_rmw16_or_u,nE);function sE(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,mr(r)}x.set(y.i32_atomic_rmw_or,sE);function aE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,mr(r)}x.set(y.i64_atomic_rmw8_or_u,aE);function lE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,mr(r)}x.set(y.i64_atomic_rmw16_or_u,lE);function oE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,mr(r)}x.set(y.i64_atomic_rmw32_or_u,oE);function uE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,mr(r)}x.set(y.i64_atomic_rmw_or,uE);function cE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,yr(r)}x.set(y.i32_atomic_rmw8_xor_u,cE);function pE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,yr(r)}x.set(y.i32_atomic_rmw16_xor_u,pE);function _E(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,yr(r)}x.set(y.i32_atomic_rmw_xor,_E);function fE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,yr(r)}x.set(y.i64_atomic_rmw8_xor_u,fE);function dE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,yr(r)}x.set(y.i64_atomic_rmw16_xor_u,dE);function hE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,yr(r)}x.set(y.i64_atomic_rmw32_xor_u,hE);function mE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,yr(r)}x.set(y.i64_atomic_rmw_xor,mE);function yE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,gr(r)}x.set(y.i32_atomic_rmw8_xchg_u,yE);function gE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,gr(r)}x.set(y.i32_atomic_rmw16_xchg_u,gE);function bE(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,gr(r)}x.set(y.i32_atomic_rmw_xchg,bE);function xE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,gr(r)}x.set(y.i64_atomic_rmw8_xchg_u,xE);function TE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,gr(r)}x.set(y.i64_atomic_rmw16_xchg_u,TE);function AE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,gr(r)}x.set(y.i64_atomic_rmw32_xchg_u,AE);function vE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,gr(r)}x.set(y.i64_atomic_rmw_xchg,vE);function EE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,br(r)}x.set(y.i32_atomic_rmw8_cmpxchg_u,EE);function SE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,br(r)}x.set(y.i32_atomic_rmw16_cmpxchg_u,SE);function IE(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,br(r)}x.set(y.i32_atomic_rmw_cmpxchg,IE);function kE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,br(r)}x.set(y.i64_atomic_rmw8_cmpxchg_u,kE);function RE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,br(r)}x.set(y.i64_atomic_rmw16_cmpxchg_u,RE);function FE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,br(r)}x.set(y.i64_atomic_rmw32_cmpxchg_u,FE);function wE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,br(r)}x.set(y.i64_atomic_rmw_cmpxchg,wE);function CE(r){return I(r),r.typeArguments=[c.i32],Zp(r)}x.set(y.memory_atomic_wait32,CE);function PE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Zp(r)}x.set(y.memory_atomic_wait64,PE);function BE(r){return I(r),r.typeArguments=[c.v128],r.contextualType=c.v128,Me(r)}x.set(y.v128_load,BE);function LE(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load8x8_s,LE);function NE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load8x8_u,NE);function ME(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load16x4_s,ME);function DE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load16x4_u,DE);function GE(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load32x2_s,GE);function zE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load32x2_u,zE);function UE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ws(r)}x.set(y.v128_load8_splat,UE);function VE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,ws(r)}x.set(y.v128_load16_splat,VE);function OE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,ws(r)}x.set(y.v128_load32_splat,OE);function qE(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,ws(r)}x.set(y.v128_load64_splat,qE);function WE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,$p(r)}x.set(y.v128_load32_zero,WE);function jE(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,$p(r)}x.set(y.v128_load64_zero,jE);function KE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Cs(r)}x.set(y.v128_load8_lane,KE);function HE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Cs(r)}x.set(y.v128_load16_lane,HE);function QE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Cs(r)}x.set(y.v128_load32_lane,QE);function XE(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,Cs(r)}x.set(y.v128_load64_lane,XE);function JE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Ps(r)}x.set(y.v128_store8_lane,JE);function ZE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ps(r)}x.set(y.v128_store16_lane,ZE);function YE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Ps(r)}x.set(y.v128_store32_lane,YE);function $E(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,Ps(r)}x.set(y.v128_store64_lane,$E);function e0(r){return I(r),r.typeArguments=[c.v128],r.contextualType=c.v128,r.contextIsExact=!0,yt(r)}x.set(y.v128_store,e0);function t0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,qr(r)}x.set(y.i8x16_splat,t0);function r0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Qt(r)}x.set(y.i8x16_extract_lane_s,r0);function i0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,Qt(r)}x.set(y.i8x16_extract_lane_u,i0);function n0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Wr(r)}x.set(y.i8x16_replace_lane,n0);function s0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Hr(r)}x.set(y.i8x16_add,s0);function a0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Qr(r)}x.set(y.i8x16_sub,a0);function l0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Xt(r)}x.set(y.i8x16_min_s,l0);function o0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Xt(r)}x.set(y.i8x16_min_u,o0);function u0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Jt(r)}x.set(y.i8x16_max_s,u0);function c0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Jt(r)}x.set(y.i8x16_max_u,c0);function p0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,i_(r)}x.set(y.i8x16_avgr_u,p0);function _0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Yr(r)}x.set(y.i8x16_abs,_0);function f0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Zr(r)}x.set(y.i8x16_neg,f0);function d0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Bs(r)}x.set(y.i8x16_add_sat_s,d0);function h0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Bs(r)}x.set(y.i8x16_add_sat_u,h0);function m0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Ls(r)}x.set(y.i8x16_sub_sat_s,m0);function y0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Ls(r)}x.set(y.i8x16_sub_sat_u,y0);function g0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Ms(r)}x.set(y.i8x16_shl,g0);function b0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Zt(r)}x.set(y.i8x16_shr_s,b0);function x0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Zt(r)}x.set(y.i8x16_shr_u,x0);function T0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Ds(r)}x.set(y.i8x16_all_true,T0);function A0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Gs(r)}x.set(y.i8x16_bitmask,A0);function v0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,sb(r)}x.set(y.i8x16_popcnt,v0);function E0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Xr(r)}x.set(y.i8x16_eq,E0);function S0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Jr(r)}x.set(y.i8x16_ne,S0);function I0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,kt(r)}x.set(y.i8x16_lt_s,I0);function k0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,kt(r)}x.set(y.i8x16_lt_u,k0);function R0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Rt(r)}x.set(y.i8x16_le_s,R0);function F0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Rt(r)}x.set(y.i8x16_le_u,F0);function w0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Ft(r)}x.set(y.i8x16_gt_s,w0);function C0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Ft(r)}x.set(y.i8x16_gt_u,C0);function P0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,wt(r)}x.set(y.i8x16_ge_s,P0);function B0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,wt(r)}x.set(y.i8x16_ge_u,B0);function L0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ns(r)}x.set(y.i8x16_narrow_i16x8_s,L0);function N0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ns(r)}x.set(y.i8x16_narrow_i16x8_u,N0);function M0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,jr(r)}x.set(y.i8x16_shuffle,M0);function D0(r){return I(r),r.typeArguments=null,r.contextualType=c.v128,ib(r)}x.set(y.i8x16_swizzle,D0);function G0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,qr(r)}x.set(y.i16x8_splat,G0);function z0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Qt(r)}x.set(y.i16x8_extract_lane_s,z0);function U0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,Qt(r)}x.set(y.i16x8_extract_lane_u,U0);function V0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Wr(r)}x.set(y.i16x8_replace_lane,V0);function O0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Hr(r)}x.set(y.i16x8_add,O0);function q0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Qr(r)}x.set(y.i16x8_sub,q0);function W0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ki(r)}x.set(y.i16x8_mul,W0);function j0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Xt(r)}x.set(y.i16x8_min_s,j0);function K0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Xt(r)}x.set(y.i16x8_min_u,K0);function H0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Jt(r)}x.set(y.i16x8_max_s,H0);function Q0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Jt(r)}x.set(y.i16x8_max_u,Q0);function X0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,i_(r)}x.set(y.i16x8_avgr_u,X0);function J0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Yr(r)}x.set(y.i16x8_abs,J0);function Z0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Zr(r)}x.set(y.i16x8_neg,Z0);function Y0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Bs(r)}x.set(y.i16x8_add_sat_s,Y0);function $0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Bs(r)}x.set(y.i16x8_add_sat_u,$0);function e4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ls(r)}x.set(y.i16x8_sub_sat_s,e4);function t4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ls(r)}x.set(y.i16x8_sub_sat_u,t4);function r4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ms(r)}x.set(y.i16x8_shl,r4);function i4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Zt(r)}x.set(y.i16x8_shr_s,i4);function n4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Zt(r)}x.set(y.i16x8_shr_u,n4);function s4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Ds(r)}x.set(y.i16x8_all_true,s4);function a4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Gs(r)}x.set(y.i16x8_bitmask,a4);function l4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Xr(r)}x.set(y.i16x8_eq,l4);function o4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Jr(r)}x.set(y.i16x8_ne,o4);function u4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,kt(r)}x.set(y.i16x8_lt_s,u4);function c4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,kt(r)}x.set(y.i16x8_lt_u,c4);function p4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Rt(r)}x.set(y.i16x8_le_s,p4);function _4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Rt(r)}x.set(y.i16x8_le_u,_4);function f4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ft(r)}x.set(y.i16x8_gt_s,f4);function d4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ft(r)}x.set(y.i16x8_gt_u,d4);function h4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,wt(r)}x.set(y.i16x8_ge_s,h4);function m4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,wt(r)}x.set(y.i16x8_ge_u,m4);function y4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ns(r)}x.set(y.i16x8_narrow_i32x4_s,y4);function g4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Ns(r)}x.set(y.i16x8_narrow_i32x4_u,g4);function b4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,$r(r)}x.set(y.i16x8_extend_low_i8x16_s,b4);function x4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,$r(r)}x.set(y.i16x8_extend_low_i8x16_u,x4);function T4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,ei(r)}x.set(y.i16x8_extend_high_i8x16_s,T4);function A4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ei(r)}x.set(y.i16x8_extend_high_i8x16_u,A4);function v4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,zs(r)}x.set(y.i16x8_extadd_pairwise_i8x16_s,v4);function E4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,zs(r)}x.set(y.i16x8_extadd_pairwise_i8x16_u,E4);function S4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,ob(r)}x.set(y.i16x8_q15mulr_sat_s,S4);function I4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,ti(r)}x.set(y.i16x8_extmul_low_i8x16_s,I4);function k4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ti(r)}x.set(y.i16x8_extmul_low_i8x16_u,k4);function R4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,ri(r)}x.set(y.i16x8_extmul_high_i8x16_s,R4);function F4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ri(r)}x.set(y.i16x8_extmul_high_i8x16_u,F4);function w4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,jr(r)}x.set(y.i16x8_shuffle,w4);function C4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,qr(r)}x.set(y.i32x4_splat,C4);function P4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Qt(r)}x.set(y.i32x4_extract_lane,P4);function B4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Wr(r)}x.set(y.i32x4_replace_lane,B4);function L4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Hr(r)}x.set(y.i32x4_add,L4);function N4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Qr(r)}x.set(y.i32x4_sub,N4);function M4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ki(r)}x.set(y.i32x4_mul,M4);function D4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Xt(r)}x.set(y.i32x4_min_s,D4);function G4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Xt(r)}x.set(y.i32x4_min_u,G4);function z4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Jt(r)}x.set(y.i32x4_max_s,z4);function U4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Jt(r)}x.set(y.i32x4_max_u,U4);function V4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,nb(r)}x.set(y.i32x4_dot_i16x8_s,V4);function O4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Yr(r)}x.set(y.i32x4_abs,O4);function q4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Zr(r)}x.set(y.i32x4_neg,q4);function W4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ms(r)}x.set(y.i32x4_shl,W4);function j4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Zt(r)}x.set(y.i32x4_shr_s,j4);function K4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Zt(r)}x.set(y.i32x4_shr_u,K4);function H4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Ds(r)}x.set(y.i32x4_all_true,H4);function Q4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Gs(r)}x.set(y.i32x4_bitmask,Q4);function X4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Xr(r)}x.set(y.i32x4_eq,X4);function J4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Jr(r)}x.set(y.i32x4_ne,J4);function Z4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,kt(r)}x.set(y.i32x4_lt_s,Z4);function Y4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,kt(r)}x.set(y.i32x4_lt_u,Y4);function $4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Rt(r)}x.set(y.i32x4_le_s,$4);function eS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Rt(r)}x.set(y.i32x4_le_u,eS);function tS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ft(r)}x.set(y.i32x4_gt_s,tS);function rS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Ft(r)}x.set(y.i32x4_gt_u,rS);function iS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,wt(r)}x.set(y.i32x4_ge_s,iS);function nS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,wt(r)}x.set(y.i32x4_ge_u,nS);function sS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,p_(r)}x.set(y.i32x4_trunc_sat_f32x4_s,sS);function aS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,p_(r)}x.set(y.i32x4_trunc_sat_f32x4_u,aS);function lS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,__(r)}x.set(y.i32x4_trunc_sat_f64x2_s_zero,lS);function oS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,__(r)}x.set(y.i32x4_trunc_sat_f64x2_u_zero,oS);function uS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,$r(r)}x.set(y.i32x4_extend_low_i16x8_s,uS);function cS(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,$r(r)}x.set(y.i32x4_extend_low_i16x8_u,cS);function pS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,ei(r)}x.set(y.i32x4_extend_high_i16x8_s,pS);function _S(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,ei(r)}x.set(y.i32x4_extend_high_i16x8_u,_S);function fS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,zs(r)}x.set(y.i32x4_extadd_pairwise_i16x8_s,fS);function dS(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,zs(r)}x.set(y.i32x4_extadd_pairwise_i16x8_u,dS);function hS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,ti(r)}x.set(y.i32x4_extmul_low_i16x8_s,hS);function mS(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,ti(r)}x.set(y.i32x4_extmul_low_i16x8_u,mS);function yS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,ri(r)}x.set(y.i32x4_extmul_high_i16x8_s,yS);function gS(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,ri(r)}x.set(y.i32x4_extmul_high_i16x8_u,gS);function bS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,jr(r)}x.set(y.i32x4_shuffle,bS);function xS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,qr(r)}x.set(y.i64x2_splat,xS);function TS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Qt(r)}x.set(y.i64x2_extract_lane,TS);function AS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Wr(r)}x.set(y.i64x2_replace_lane,AS);function vS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Hr(r)}x.set(y.i64x2_add,vS);function ES(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Qr(r)}x.set(y.i64x2_sub,ES);function SS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Ki(r)}x.set(y.i64x2_mul,SS);function IS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Yr(r)}x.set(y.i64x2_abs,IS);function kS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Zr(r)}x.set(y.i64x2_neg,kS);function RS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Ms(r)}x.set(y.i64x2_shl,RS);function FS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Zt(r)}x.set(y.i64x2_shr_s,FS);function wS(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,Zt(r)}x.set(y.i64x2_shr_u,wS);function CS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Ds(r)}x.set(y.i64x2_all_true,CS);function PS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Gs(r)}x.set(y.i64x2_bitmask,PS);function BS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Xr(r)}x.set(y.i64x2_eq,BS);function LS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Jr(r)}x.set(y.i64x2_ne,LS);function NS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,kt(r)}x.set(y.i64x2_lt_s,NS);function MS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Rt(r)}x.set(y.i64x2_le_s,MS);function DS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Ft(r)}x.set(y.i64x2_gt_s,DS);function GS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,wt(r)}x.set(y.i64x2_ge_s,GS);function zS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,$r(r)}x.set(y.i64x2_extend_low_i32x4_s,zS);function US(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,$r(r)}x.set(y.i64x2_extend_low_i32x4_u,US);function VS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,ei(r)}x.set(y.i64x2_extend_high_i32x4_s,VS);function OS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,ei(r)}x.set(y.i64x2_extend_high_i32x4_u,OS);function qS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,ti(r)}x.set(y.i64x2_extmul_low_i32x4_s,qS);function WS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,ti(r)}x.set(y.i64x2_extmul_low_i32x4_u,WS);function jS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,ri(r)}x.set(y.i64x2_extmul_high_i32x4_s,jS);function KS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,ri(r)}x.set(y.i64x2_extmul_high_i32x4_u,KS);function HS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,jr(r)}x.set(y.i64x2_shuffle,HS);function QS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,qr(r)}x.set(y.f32x4_splat,QS);function XS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Qt(r)}x.set(y.f32x4_extract_lane,XS);function JS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Wr(r)}x.set(y.f32x4_replace_lane,JS);function ZS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Hr(r)}x.set(y.f32x4_add,ZS);function YS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Qr(r)}x.set(y.f32x4_sub,YS);function $S(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Ki(r)}x.set(y.f32x4_mul,$S);function e3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,e_(r)}x.set(y.f32x4_div,e3);function t3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Zr(r)}x.set(y.f32x4_neg,t3);function r3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Xt(r)}x.set(y.f32x4_min,r3);function i3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Jt(r)}x.set(y.f32x4_max,i3);function n3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,t_(r)}x.set(y.f32x4_pmin,n3);function s3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,r_(r)}x.set(y.f32x4_pmax,s3);function a3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Yr(r)}x.set(y.f32x4_abs,a3);function l3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,n_(r)}x.set(y.f32x4_sqrt,l3);function o3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,s_(r)}x.set(y.f32x4_ceil,o3);function u3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,a_(r)}x.set(y.f32x4_floor,u3);function c3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,l_(r)}x.set(y.f32x4_trunc,c3);function p3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,o_(r)}x.set(y.f32x4_nearest,p3);function _3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Xr(r)}x.set(y.f32x4_eq,_3);function f3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Jr(r)}x.set(y.f32x4_ne,f3);function d3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,kt(r)}x.set(y.f32x4_lt,d3);function h3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Rt(r)}x.set(y.f32x4_le,h3);function m3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Ft(r)}x.set(y.f32x4_gt,m3);function y3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,wt(r)}x.set(y.f32x4_ge,y3);function g3(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,u_(r)}x.set(y.f32x4_convert_i32x4_s,g3);function b3(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,u_(r)}x.set(y.f32x4_convert_i32x4_u,b3);function x3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,ab(r)}x.set(y.f32x4_demote_f64x2_zero,x3);function T3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,jr(r)}x.set(y.f32x4_shuffle,T3);function A3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,qr(r)}x.set(y.f64x2_splat,A3);function v3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Qt(r)}x.set(y.f64x2_extract_lane,v3);function E3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Wr(r)}x.set(y.f64x2_replace_lane,E3);function S3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Hr(r)}x.set(y.f64x2_add,S3);function I3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Qr(r)}x.set(y.f64x2_sub,I3);function k3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Ki(r)}x.set(y.f64x2_mul,k3);function R3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,e_(r)}x.set(y.f64x2_div,R3);function F3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Zr(r)}x.set(y.f64x2_neg,F3);function w3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Xt(r)}x.set(y.f64x2_min,w3);function C3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Jt(r)}x.set(y.f64x2_max,C3);function P3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,t_(r)}x.set(y.f64x2_pmin,P3);function B3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,r_(r)}x.set(y.f64x2_pmax,B3);function L3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Yr(r)}x.set(y.f64x2_abs,L3);function N3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,n_(r)}x.set(y.f64x2_sqrt,N3);function M3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,s_(r)}x.set(y.f64x2_ceil,M3);function D3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,a_(r)}x.set(y.f64x2_floor,D3);function G3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,l_(r)}x.set(y.f64x2_trunc,G3);function z3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,o_(r)}x.set(y.f64x2_nearest,z3);function U3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Xr(r)}x.set(y.f64x2_eq,U3);function V3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Jr(r)}x.set(y.f64x2_ne,V3);function O3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,kt(r)}x.set(y.f64x2_lt,O3);function q3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Rt(r)}x.set(y.f64x2_le,q3);function W3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Ft(r)}x.set(y.f64x2_gt,W3);function j3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,wt(r)}x.set(y.f64x2_ge,j3);function K3(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,c_(r)}x.set(y.f64x2_convert_low_i32x4_s,K3);function H3(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,c_(r)}x.set(y.f64x2_convert_low_i32x4_u,H3);function Q3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,lb(r)}x.set(y.f64x2_promote_low_f32x4,Q3);function X3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,jr(r)}x.set(y.f64x2_shuffle,X3);function J3(r){return I(r),r.typeArguments=null,r.contextualType=c.v128,ub(r)}x.set(y.i8x16_relaxed_swizzle,J3);function Z3(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,f_(r)}x.set(y.i32x4_relaxed_trunc_f32x4_s,Z3);function Y3(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,f_(r)}x.set(y.i32x4_relaxed_trunc_f32x4_u,Y3);function $3(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,d_(r)}x.set(y.i32x4_relaxed_trunc_f64x2_s_zero,$3);function eI(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,d_(r)}x.set(y.i32x4_relaxed_trunc_f64x2_u_zero,eI);function tI(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,h_(r)}x.set(y.f32x4_relaxed_madd,tI);function rI(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,m_(r)}x.set(y.f32x4_relaxed_nmadd,rI);function iI(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,h_(r)}x.set(y.f64x2_relaxed_madd,iI);function nI(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,m_(r)}x.set(y.f64x2_relaxed_nmadd,nI);function sI(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Us(r)}x.set(y.i8x16_relaxed_laneselect,sI);function aI(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Us(r)}x.set(y.i16x8_relaxed_laneselect,aI);function lI(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Us(r)}x.set(y.i32x4_relaxed_laneselect,lI);function oI(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Us(r)}x.set(y.i64x2_relaxed_laneselect,oI);function uI(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,y_(r)}x.set(y.f32x4_relaxed_min,uI);function cI(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,g_(r)}x.set(y.f32x4_relaxed_max,cI);function pI(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,y_(r)}x.set(y.f64x2_relaxed_min,pI);function _I(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,g_(r)}x.set(y.f64x2_relaxed_max,_I);function fI(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,cb(r)}x.set(y.i16x8_relaxed_q15mulr_s,fI);function dI(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,pb(r)}x.set(y.i16x8_relaxed_dot_i8x16_i7x16_s,dI);function hI(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,_b(r)}x.set(y.i32x4_relaxed_dot_i8x16_i7x16_add_s,hI);function fb(r){let i=r.module,e=new Array,t=r.options.sizeTypeRef,n=assert(r.program.visitInstance);r.compileFunction(n,!0);for(let s=Map_values(r.program.elementsByName),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=0)continue;let u=o,_=u.type.getClass();if(_&&!_.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let f=u.constantIntegerValue;(i64_low(f)||i64_high(f))&&e.push(i.call(n.internalName,[r.options.isWasm64?i.i64(i64_low(f),i64_high(f)):i.i32(i64_low(f)),i.local_get(0,N.I32)],N.None))}else e.push(i.if(i.local_tee(1,i.global_get(u.internalName,t),!1),i.call(n.internalName,[i.local_get(1,t),i.local_get(0,N.I32)],N.None)))}i.addFunction(y.visit_globals,N.I32,N.None,[t],e.length?i.block(null,e):i.nop())}function db(r,i){if(assert(i.type.isManaged),i.visitRef)return;let e=r.program,t=r.module,n=e.options.usizeType,s=n.toRef(),a=n.byteSize,l=assert(e.visitInstance),o=new Array,u=i.base;u&&o.push(t.call(`${u.internalName}~visit`,[t.local_get(0,s),t.local_get(1,N.I32)],N.None));let p=!1;if(i.isDeclaredInLibrary){let f=i.getMember("__visit");if(f){assert(f.kind==4);let d=e.resolver.resolveFunction(f,null);if(!d||!r.compileFunction(d))o.push(t.unreachable());else{let h=d.signature,g=assert(h.thisType);assert(h.parameterTypes.length==1&&h.parameterTypes[0]==c.u32&&h.returnType==c.void&&i.type.isStrictlyAssignableTo(g)),o.push(t.call(d.internalName,[t.local_get(0,s),t.local_get(1,N.I32)],N.None))}p=!0}}let _=!1;if(!p){let f=i.members;if(f)for(let d=Map_values(f),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]);if(m.kind!=10)continue;let T=m.instance;if(!T)continue;let S=T.type;if(!T.isField||T.getBoundClassOrInterface()!=i||!S.isManaged)continue;let E=T.memoryOffset;assert(E>=0),_=!0,o.push(t.call(l.internalName,[t.load(a,!1,t.local_get(0,s),s,E),t.local_get(1,N.I32)],N.None))}}i.visitRef=t.addFunction(`${i.internalName}~visit`,Ze([s,N.I32]),N.None,_?[s]:null,t.flatten(o,N.None)),u&&u.type.isManaged&&db(r,u)}function hb(r){let i=r.program,e=r.module,n=i.options.usizeType.toRef(),s=i.managedClasses,a=assert(i.visitInstance);r.compileFunction(a,!0);let l=new Array,o=new Array,u=0;for(let _=Map_keys(s),f=0,d=_.length;f<d;++f){let h=_[f];assert(h==u++);let g=assert(s.get(h));l[f]=g.internalName,g.isPointerfree?o[f]=e.return():(o[f]=e.block(null,[e.call(`${g.internalName}~visit`,[e.local_get(0,n),e.local_get(1,N.I32)],N.None),e.return()],N.None),db(r,g))}let p=e.block(l[0],[e.switch(l,"invalid",e.load(4,!1,n==N.I64?e.binary(26,e.local_get(0,n),e.i64(8)):e.binary(1,e.local_get(0,n),e.i32(8)),N.I32,0))],N.None);for(let _=0,f=l.length-1;_<f;++_)p=e.block(l[_+1],[p,o[_]],N.None);p=e.block("invalid",[p,o[l.length-1]],N.None),e.addFunction(y.visit_members,Ze([n,N.I32]),N.None,null,e.flatten([p,e.unreachable()]))}function qi(r){let i=64*(1<<r.alignLog2);return r.is(1)&&(i|=2048),r.is(8)&&(i|=4096),r.is(512)&&(i|=8192),r.isManaged&&(i|=16384),i/64}function mb(r){let i=r.program,e=r.module,t=i.managedClasses,n=t.size,s=4+4*n,a=new Uint8Array(s);ge(n,a,0);let l=4,o=i.arrayBufferViewInstance,u=o.prototype,p=i.arrayPrototype,_=i.setPrototype,f=i.mapPrototype,d=i.staticArrayPrototype,h=0;for(let T=Map_keys(t),S=0,E=T.length;S<E;++S){let F=unchecked(T[S]),k=assert(t.get(F));assert(F==h++);let R=0;if(k.isPointerfree&&(R|=32),k!=o&&k.extendsPrototype(u)){let C=k.getArrayValueType();R|=1,R|=64*qi(C)}else if(k.extendsPrototype(p)){let C=k.getArrayValueType();R|=2,R|=64*qi(C)}else if(k.extendsPrototype(_)){let C=assert(k.getTypeArgumentsTo(_));assert(C.length==1),R|=8,R|=64*qi(C[0])}else if(k.extendsPrototype(f)){let C=assert(k.getTypeArgumentsTo(f));assert(C.length==2),R|=16,R|=32768*qi(C[0]),R|=64*qi(C[1])}else if(k.extendsPrototype(d)){let C=k.getArrayValueType();R|=4,R|=64*qi(C)}ge(R,a,l),l+=4,k.rttiFlags=R}assert(l==s);let g=i.options.usizeType,m=r.addAlignedMemorySegment(a);if(g.size==8){let T=m.offset;e.addGlobal(y.rtti_base,N.I64,!1,e.i64(i64_low(T),i64_high(T)))}else e.addGlobal(y.rtti_base,N.I32,!1,e.i32(i64_low(m.offset)))}function De(r){let i=r.compiler,e=r.operands,t=r.typeArguments;if(Wi=0,e.length==0)return!t||t.length!=1?(i.error(2558,r.reportNode.typeArgumentsRange,"1",t?t.length.toString():"0"),null):t[0];if(e.length==1){if(t&&t.length>0){if(t.length>1)return i.error(2558,r.reportNode.typeArgumentsRange,"1",t.length.toString()),null;Wi=i.compileExpression(e[0],t[0],1)}else Wi=i.compileExpression(e[0],c.auto);return i.currentType}return t&&t.length>1&&i.error(2558,r.reportNode.typeArgumentsRange,"1",t.length.toString()),i.error(2554,r.reportNode.argumentsRange,"1",e.length.toString()),null}function Ce(r,i){let e=r.compiler.module;return Wi&&Yl(Wi,e.ref)&&(i=e.block(null,[e.maybeDrop(Wi),i],le(i))),i}function st(r,i){let e=i.module,t;if(i.options.isWasm64){let n=i.compileExpression(r,c.usize64,1),s=e.runExpression(n,1);s?(assert(Le(s)==0),t=Ie(s)):(i.error(220,r.range),t=-1)}else{let n=i.compileExpression(r,c.usize32,1),s=e.runExpression(n,1);s?t=ne(s):(i.error(220,r.range),t=-1)}return t}function Kt(r,i,e){let t=st(r,e);return t<0?t:t<1||i>16?(e.error(222,r.range,"Alignment","1",i.toString()),-1):zt(t)?t:(e.error(223,r.range,"Alignment"),-1)}function X(r,i){let e=r.compiler;return e.options.hasFeature(i)?0:(e.error(103,r.reportNode.range,mi(i)),1)}function J(r,i=!1){let e=r.compiler,t=r.typeArguments;if(t){let n=t.length;if(n==1)return 0;assert(n),i&&(e.currentType=t[0]),e.error(2558,r.reportNode.typeArgumentsRange,"1",n.toString())}else e.error(2558,r.reportNode.range,"1","0");return 1}function ue(r,i=!1){let e=r.typeArguments;if(e){let t=r.compiler,n=e.length;return n==1?0:(assert(n),i&&(t.currentType=e[0]),t.error(2558,r.reportNode.typeArgumentsRange,"1",n.toString()),1)}return 0}function I(r){if(r.typeArguments){let e=r.prototype;return e.program.error(2315,r.reportNode.typeArgumentsRange,e.internalName),1}return 0}function j(r,i){let e=r.operands;return e.length!=i?(r.compiler.error(2554,r.reportNode.range,i.toString(),e.length.toString()),1):0}function ke(r,i,e){let n=r.operands.length;return n<i?(r.compiler.error(2555,r.reportNode.range,i.toString(),n.toString()),1):n>e?(r.compiler.error(2554,r.reportNode.range,e.toString(),n.toString()),1):0}function xo(r,i,e){let t=r.module;if(e!=c.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(i))return r.currentType=c.i32,t.i32(i64_low(i));break}case 8:{if(i64_is_u32(i))return r.currentType=c.u32,t.i32(i64_low(i));break}case 4:case 9:return r.currentType=e,t.i64(i64_low(i),i64_high(i))}return r.options.isWasm64?(r.currentType=c.usize64,t.i64(i64_low(i),i64_high(i))):(r.currentType=c.usize32,assert(!i64_high(i)),t.i32(i64_low(i)))}var T_=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let i=this._currentExpression;if(!i)throw new Error("not walking expressions");return i}get parentExpressionOrNull(){let i=this.stack,e=i.length;return e?i[e-1]:0}visitBlock(i){}visitIf(i){}visitLoop(i){}visitBreak(i){}visitSwitch(i){}visitCallPre(i){}visitCall(i){}visitCallIndirectPre(i){}visitCallIndirect(i){}visitLocalGet(i){}visitLocalSet(i){}visitGlobalGet(i){}visitGlobalSet(i){}visitLoad(i){}visitStore(i){}visitConst(i){}visitUnary(i){}visitBinary(i){}visitSelect(i){}visitDrop(i){}visitReturn(i){}visitMemorySize(i){}visitMemoryGrow(i){}visitNop(i){}visitUnreachable(i){}visitAtomicRMW(i){}visitAtomicCmpxchg(i){}visitAtomicWait(i){}visitAtomicNotify(i){}visitAtomicFence(i){}visitSIMDExtract(i){}visitSIMDReplace(i){}visitSIMDShuffle(i){}visitSIMDTernary(i){}visitSIMDShift(i){}visitSIMDLoad(i){}visitSIMDLoadStoreLane(i){}visitMemoryInit(i){}visitDataDrop(i){}visitMemoryCopy(i){}visitMemoryFill(i){}visitPop(i){}visitRefNull(i){}visitRefIsNull(i){}visitRefFunc(i){}visitRefEq(i){}visitTry(i){}visitThrow(i){}visitRethrow(i){}visitTupleMake(i){}visitTupleExtract(i){}visitRefI31(i){}visitI31Get(i){}visitCallRef(i){}visitRefTest(i){}visitRefCast(i){}visitBrOn(i){}visitStructNew(i){}visitStructGet(i){}visitStructSet(i){}visitArrayNew(i){}visitArrayNewFixed(i){}visitArrayGet(i){}visitArraySet(i){}visitArrayLen(i){}visitArrayCopy(i){}visitRefAs(i){}visitStringNew(i){}visitStringConst(i){}visitStringMeasure(i){}visitStringEncode(i){}visitStringConcat(i){}visitStringEq(i){}visitStringAs(i){}visitStringWTF8Advance(i){}visitStringWTF16Get(i){}visitStringIterNext(i){}visitStringIterMove(i){}visitStringSliceWTF(i){}visitStringSliceIter(i){}visitName(i){}visitLabel(i){}visitIndex(i){}visitTag(i){}visit(i){let e=this._currentExpression;switch(this._currentExpression=assert(i),Nt(i)){case 1:{this.stack.push(i);let t=Ys(i);t&&this.visitLabel(t);for(let n=0,s=cn(i);n<s;++n)this.visit(pn(i,n));assert(this.stack.pop()==i),this.visitBlock(i);break}case 2:{this.stack.push(i),this.visit(_n(i)),this.visit(fn(i));let t=dn(i);t&&this.visit(t),assert(this.stack.pop()==i),this.visitIf(i);break}case 3:{this.stack.push(i);let t=$s(i);t&&this.visitLabel(t),this.visit(hn(i)),assert(this.stack.pop()==i),this.visitLoop(i);break}case 4:{this.stack.push(i),this.visitLabel(ea(i));let t=mn(i);t&&this.visit(t);let n=Co(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitBreak(i);break}case 5:{this.stack.push(i);let t=Tf(i);t&&this.visitLabel(t);let n=bf(i);for(let a=0;a<n;++a)this.visitLabel(xf(i,a));this.visit(Po(i));let s=Bo(i);s&&this.visit(s),assert(this.stack.pop()==i),this.visitSwitch(i);break}case 6:{this.visitCallPre(i),this.stack.push(i),this.visitName(li(i));let t=$t(i);for(let n=0;n<t;++n)this.visit(er(i,n));assert(this.stack.pop()==i),this.visitCall(i);break}case 7:{this.visitCallIndirectPre(i),this.stack.push(i),this.visit(Lo(i));for(let t=0,n=yn(i);t<n;++t)this.visit(gn(i,t));assert(this.stack.pop()==i),this.visitCallIndirect(i);break}case 8:{this.stack.push(i),this.visitIndex(ia(i)),assert(this.stack.pop()==i),this.visitLocalGet(i);break}case 9:{this.stack.push(i),this.visitIndex(oi(i)),this.visit(Tr(i)),assert(this.stack.pop()==i),this.visitLocalSet(i);break}case 10:{this.stack.push(i),this.visitName(aa(i)),assert(this.stack.pop()==i),this.visitGlobalGet(i);break}case 11:{this.stack.push(i),this.visitName(Bf(i)),this.visit(No(i)),assert(this.stack.pop()==i),this.visitGlobalSet(i);break}case 12:{this.stack.push(i),this.visit(Tn(i)),assert(this.stack.pop()==i),this.visitLoad(i);break}case 13:{this.stack.push(i),this.visit(Ar(i)),this.visit(An(i)),assert(this.stack.pop()==i),this.visitStore(i);break}case 14:{this.visitConst(i);break}case 15:{this.stack.push(i),this.visit(vn(i)),assert(this.stack.pop()==i),this.visitUnary(i);break}case 16:{this.stack.push(i),this.visit(En(i)),this.visit(Sn(i)),assert(this.stack.pop()==i),this.visitBinary(i);break}case 17:{this.stack.push(i),this.visit(In(i)),this.visit(kn(i)),this.visit(Rn(i)),assert(this.stack.pop()==i),this.visitSelect(i);break}case 18:{this.stack.push(i),this.visit(Fn(i)),assert(this.stack.pop()==i),this.visitDrop(i);break}case 19:{let t=vr(i);t&&(this.stack.push(i),this.visit(t),assert(this.stack.pop()==i)),this.visitReturn(i);break}case 20:{this.visitMemorySize(i);break}case 21:{this.stack.push(i),this.visit(xn(i)),assert(this.stack.pop()==i),this.visitMemoryGrow(i);break}case 22:{this.visitNop(i);break}case 23:{this.visitUnreachable(i);break}case 24:{this.stack.push(i),this.visit(Do(i)),this.visit(Go(i)),assert(this.stack.pop()==i),this.visitAtomicRMW(i);break}case 25:{this.stack.push(i),this.visit(zo(i)),this.visit(Uo(i)),this.visit(Vo(i)),assert(this.stack.pop()==i),this.visitAtomicCmpxchg(i);break}case 26:{this.stack.push(i),this.visit(Oo(i)),this.visit(qo(i)),this.visit(Wo(i)),assert(this.stack.pop()==i),this.visitAtomicWait(i);break}case 27:{this.stack.push(i),this.visit(jo(i)),this.visit(Ko(i)),assert(this.stack.pop()==i),this.visitAtomicNotify(i);break}case 28:{this.visitAtomicFence(i);break}case 30:{this.stack.push(i),this.visit(Ho(i)),assert(this.stack.pop()==i),this.visitSIMDExtract(i);break}case 31:{this.stack.push(i),this.visit(Qo(i)),this.visit(Xo(i)),assert(this.stack.pop()==i),this.visitSIMDReplace(i);break}case 32:{this.stack.push(i),this.visit(Jo(i)),this.visit(Zo(i)),assert(this.stack.pop()==i),this.visitSIMDShuffle(i);break}case 33:{this.stack.push(i),this.visit(Yo(i)),this.visit($o(i)),this.visit(eu(i)),assert(this.stack.pop()==i),this.visitSIMDTernary(i);break}case 34:{this.stack.push(i),this.visit(tu(i)),this.visit(ru(i)),assert(this.stack.pop()==i),this.visitSIMDShift(i);break}case 35:{this.stack.push(i),this.visit(iu(i)),assert(this.stack.pop()==i),this.visitSIMDLoad(i);break}case 36:{this.stack.push(i),this.visit(nu(i)),this.visit(su(i)),assert(this.stack.pop()==i),this.visitSIMDLoadStoreLane(i);break}case 37:{this.stack.push(i),this.visit(au(i)),this.visit(lu(i)),this.visit(ou(i)),assert(this.stack.pop()==i),this.visitMemoryInit(i);break}case 38:{this.visitDataDrop(i);break}case 39:{this.stack.push(i),this.visit(uu(i)),this.visit(cu(i)),this.visit(pu(i)),assert(this.stack.pop()==i),this.visitMemoryCopy(i);break}case 40:{this.stack.push(i),this.visit(_u(i)),this.visit(fu(i)),this.visit(du(i)),assert(this.stack.pop()==i),this.visitMemoryFill(i);break}case 41:{this.visitPop(i);break}case 42:{this.visitRefNull(i);break}case 43:{this.stack.push(i),this.visit(hu(i)),assert(this.stack.pop()==i),this.visitRefIsNull(i);break}case 44:{this.stack.push(i),this.visitName(ph(i)),assert(this.stack.pop()==i),this.visitRefFunc(i);break}case 45:{this.stack.push(i),this.visit(gu(i)),this.visit(bu(i)),assert(this.stack.pop()==i),this.visitRefEq(i);break}case 54:{this.stack.push(i),this.visit(xu(i));let t=Tu(i);for(let n=0;n<t;++n)this.visit(Au(i,n));assert(this.stack.pop()==i),this.visitTry(i);break}case 56:{this.stack.push(i),this.visitTag(vh(i));let t=vu(i);for(let n=0;n<t;++n)this.visit(Eu(i,n));assert(this.stack.pop()==i),this.visitThrow(i);break}case 57:{this.visitRethrow(i);break}case 59:{let t=Su(i);if(t){this.stack.push(i);for(let n=0;n<t;++n)this.visit(Iu(i,n));assert(this.stack.pop()==i)}this.visitTupleMake(i);break}case 60:{this.stack.push(i),this.visit(ku(i)),assert(this.stack.pop()==i),this.visitTupleExtract(i);break}case 61:{this.stack.push(i),this.visit(Ru(i)),assert(this.stack.pop()==i),this.visitRefI31(i);break}case 62:{this.stack.push(i),this.visit(Fu(i)),assert(this.stack.pop()==i),this.visitI31Get(i);break}case 63:{this.stack.push(i);let t=wu(i);if(t)for(let n=0;n<t;++n)this.visit(Cu(i,n));this.visit(Pu(i)),assert(this.stack.pop()==i),this.visitCallRef(i);break}case 64:{this.stack.push(i),this.visit(Bu(i)),assert(this.stack.pop()==i),this.visitRefTest(i);break}case 65:{this.stack.push(i),this.visit(Lu(i)),assert(this.stack.pop()==i),this.visitRefCast(i);break}case 67:{this.stack.push(i),this.visitLabel(zh(i)),this.visit(Nu(i)),assert(this.stack.pop()==i),this.visitBrOn(i);break}case 68:{let t=Mu(i);if(t){this.stack.push(i);for(let n=0;n<t;++n)this.visit(Du(i,n));assert(this.stack.pop()==i)}this.visitStructNew(i);break}case 69:{this.stack.push(i),this.visit(Gu(i)),this.visitIndex(Oh(i)),assert(this.stack.pop()==i),this.visitStructGet(i);break}case 70:{this.stack.push(i),this.visit(zu(i)),this.visitIndex(Wh(i)),this.visit(Uu(i)),assert(this.stack.pop()==i),this.visitStructSet(i);break}case 73:{this.stack.push(i),this.visit(Ou(i));let t=Vu(i);t&&this.visit(t),assert(this.stack.pop()==i),this.visitArrayNew(i);break}case 76:{let t=qu(i);if(t){this.stack.push(i);for(let n=0;n<t;++n)this.visit(Wu(i,n));assert(this.stack.pop()==i)}this.visitArrayNewFixed(i);break}case 77:{this.stack.push(i),this.visit(ju(i)),this.visit(Ku(i)),assert(this.stack.pop()==i),this.visitArrayGet(i);break}case 78:{this.stack.push(i),this.visit(Hu(i)),this.visit(Qu(i)),this.visit(Xu(i)),assert(this.stack.pop()==i),this.visitArraySet(i);break}case 81:{this.stack.push(i),this.visit(Ju(i)),assert(this.stack.pop()==i),this.visitArrayLen(i);break}case 82:{this.stack.push(i),this.visit(Zu(i)),this.visit(Yu(i)),this.visit($u(i)),this.visit(ec(i)),this.visit(tc(i)),assert(this.stack.pop()==i),this.visitArrayCopy(i);break}case 88:{this.stack.push(i),this.visit(yu(i)),assert(this.stack.pop()==i),this.visitRefAs(i);break}case 89:{this.stack.push(i),this.visit(rc(i));let t=ic(i);t&&this.visit(t);let n=nc(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitStringNew(i);break}case 90:{this.stack.push(i),assert(this.stack.pop()==i),this.visitStringConst(i);break}case 91:{this.stack.push(i),this.visit(sc(i)),assert(this.stack.pop()==i),this.visitStringMeasure(i);break}case 92:{this.stack.push(i),this.visit(ac(i)),this.visit(lc(i));let t=oc(i);t&&this.visit(t),assert(this.stack.pop()==i),this.visitStringEncode(i);break}case 93:{this.stack.push(i),this.visit(uc(i)),this.visit(cc(i)),assert(this.stack.pop()==i),this.visitStringConcat(i);break}case 94:{this.stack.push(i),this.visit(_c(i)),this.visit(fc(i)),assert(this.stack.pop()==i),this.visitStringEq(i);break}case 96:{this.stack.push(i),this.visit(dc(i)),this.visit(hc(i)),assert(this.stack.pop()==i),this.visitStringWTF16Get(i);break}case 97:{this.stack.push(i),this.visit(mc(i)),this.visit(yc(i)),this.visit(gc(i)),assert(this.stack.pop()==i),this.visitStringSliceWTF(i);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},ii=class extends T_{constructor(e){super();this.module=e;this._currentFunction=0;this._currentGlobal=0}get currentFunction(){let e=this._currentFunction;if(!e)throw new Error("not walking a function");return e}get currentGlobal(){let e=this._currentGlobal;if(!e)throw new Error("not walking a global");return e}walkModule(){this.walkFunctions(),this.walkGlobals()}walkFunctions(){let e=this.module.ref;for(let t=0,n=_i(e);t<n;++t)this.walkFunction(Cn(e,t))}walkFunction(e){let t=Dt(e);t&&(this._currentFunction=e,this.visit(t),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let t=0,n=Um(e);t<n;++t)this.walkGlobal(Vm(e,t))}walkGlobal(e){this._currentGlobal=e;let t=ma(e);t&&this.visit(t),this._currentGlobal=0}replaceCurrent(e){let t=this.currentExpression,n=this.currentFunction;if(Dt(n)==t)Ln(n,e);else{let a=assert(this.parentExpressionOrNull);if(!mI(a,t,e))throw Error("failed to replace expression");af(a)}}};function mI(r,i,e){switch(Nt(r)){case 1:{let t=cn(r);for(let n=0;n<t;++n){let s=pn(r,n);if(s==i)return of(r,n,e),s}break}case 2:{let t=_n(r);if(t==i)return cf(r,e),t;let n=fn(r);if(n==i)return pf(r,e),n;let s=dn(r);if(s==i)return _f(r,e),s;break}case 3:{let t=hn(r);if(t==i)return df(r,e),t;break}case 4:{let t=mn(r);if(t==i)return mf(r,e),t;let n=Co(r);if(n==i)return yf(r,e),n;break}case 5:{let t=Po(r);if(t==i)return Af(r,e),t;let n=Bo(r);if(n==i)return vf(r,e),n;break}case 6:{let t=$t(r);for(let n=0;n<t;++n){let s=er(r,n);if(s==i)return ta(r,n,e),s}break}case 7:{let t=Lo(r);if(t==i)return kf(r,e),t;let n=yn(r);for(let s=0;s<n;++s){let a=gn(r,s);if(a==i)return ra(r,s,e),a}break}case 8:break;case 9:{let t=Tr(r);if(t==i)return sa(r,e),t;break}case 10:break;case 11:{let t=No(r);if(t==i)return Lf(r,e),t;break}case 12:{let t=Tn(r);if(t==i)return Of(r,e),t;break}case 13:{let t=Ar(r);if(t==i)return ua(r,e),t;let n=An(r);if(n==i)return jf(r,e),n;break}case 14:break;case 15:{let t=vn(r);if(t==i)return $f(r,e),t;break}case 16:{let t=En(r);if(t==i)return nd(r,e),t;let n=Sn(r);if(n==i)return sd(r,e),n;break}case 17:{let t=In(r);if(t==i)return ld(r,e),t;let n=kn(r);if(n==i)return od(r,e),n;let s=Rn(r);if(s==i)return ud(r,e),s;break}case 18:{let t=Fn(r);if(t==i)return cd(r,e),t;break}case 19:{let t=vr(r);if(t==i)return ca(r,e),t;break}case 20:break;case 21:{let t=xn(r);if(t==i)return Df(r,e),t;break}case 22:break;case 23:break;case 24:{let t=Do(r);if(t==i)return hd(r,e),t;let n=Go(r);if(n==i)return md(r,e),n;break}case 25:{let t=zo(r);if(t==i)return gd(r,e),t;let n=Uo(r);if(n==i)return bd(r,e),n;let s=Vo(r);if(s==i)return xd(r,e),s;break}case 26:{let t=Oo(r);if(t==i)return Ad(r,e),t;let n=qo(r);if(n==i)return vd(r,e),n;let s=Wo(r);if(s==i)return Ed(r,e),s;break}case 27:{let t=jo(r);if(t==i)return Id(r,e),t;let n=Ko(r);if(n==i)return kd(r,e),n;break}case 28:break;case 30:{let t=Ho(r);if(t==i)return wd(r,e),t;break}case 31:{let t=Qo(r);if(t==i)return Pd(r,e),t;let n=Xo(r);if(n==i)return Bd(r,e),n;break}case 32:{let t=Jo(r);if(t==i)return Nd(r,e),t;let n=Zo(r);if(n==i)return Md(r,e),n;break}case 33:{let t=Yo(r);if(t==i)return Gd(r,e),t;let n=$o(r);if(n==i)return zd(r,e),n;let s=eu(r);if(s==i)return Ud(r,e),s;break}case 34:{let t=tu(r);if(t==i)return Od(r,e),t;let n=ru(r);if(n==i)return qd(r,e),n;break}case 35:{let t=iu(r);if(t==i)return jd(r,e),t;break}case 36:{let t=nu(r);if(t==i)return Hd(r,e),t;if(su(r)==i)return Qd(r,e),t;break}case 37:{let t=au(r);if(t==i)return Xd(r,e),t;let n=lu(r);if(n==i)return Jd(r,e),n;let s=ou(r);if(s==i)return Zd(r,e),s;break}case 38:break;case 39:{let t=uu(r);if(t==i)return $d(r,e),t;let n=cu(r);if(n==i)return eh(r,e),n;let s=pu(r);if(s==i)return th(r,e),s;break}case 40:{let t=_u(r);if(t==i)return ih(r,e),t;let n=fu(r);if(n==i)return nh(r,e),n;let s=du(r);if(s==i)return sh(r,e),s;break}case 41:break;case 42:break;case 43:{let t=hu(r);if(t==i)return oh(r,e),t;break}case 44:break;case 45:{let t=gu(r);if(t==i)return fh(r,e),t;let n=bu(r);if(n==i)return dh(r,e),n;break}case 54:{let t=xu(r);if(t==i)return xh(r,e),t;let n=Tu(r);for(let s=0;s<n;++s){let a=Au(r,s);if(a==i)return Th(r,s,e),a}break}case 56:{let t=vu(r);for(let n=0;n<t;++n){let s=Eu(r,n);if(s==i)return Eh(r,n,e),s}break}case 57:break;case 59:{let t=Su(r);for(let n=0;n<t;++n){let s=Iu(r,n);if(s==i)return kh(r,n,e),s}break}case 60:{let t=ku(r);if(t==i)return Fh(r,e),t;break}case 61:{let t=Ru(r);if(t==i)return Ph(r,e),t;break}case 62:{let t=Fu(r);if(t==i)return Lh(r,e),t;break}case 63:{let t=wu(r);for(let s=0;s<t;++s){let a=Cu(r,s);if(a==i)return Nh(r,s,e),a}let n=Pu(r);if(n==i)return Mh(r,e),n;break}case 64:{let t=Bu(r);if(t==i)return Dh(r,e),t;break}case 65:{let t=Lu(r);if(t==i)return Gh(r,e),t;break}case 67:{let t=Nu(r);if(t==i)return Uh(r,e),t;break}case 68:{let t=Mu(r);for(let n=0;n<t;++n){let s=Du(r,n);if(s==i)return Vh(r,n,e),s}break}case 69:{let t=Gu(r);if(t==i)return qh(r,e),t;break}case 70:{let t=zu(r);if(t==i)return jh(r,e),t;let n=Uu(r);if(n==i)return Kh(r,e),n;break}case 73:{let t=Ou(r);if(t==i)return Qh(r,e),t;let n=Vu(r);if(n==i)return Hh(r,e),n;break}case 76:{let t=qu(r);for(let n=0;n<t;++n){let s=Wu(r,n);if(s==i)return Xh(r,n,e),s}break}case 77:{let t=ju(r);if(t==i)return Jh(r,e),t;let n=Ku(r);if(n==i)return Zh(r,e),n;break}case 78:{let t=Hu(r);if(t==i)return Yh(r,e),t;let n=Qu(r);if(n==i)return $h(r,e),n;let s=Xu(r);if(s==i)return em(r,e),s;break}case 81:{let t=Ju(r);if(t==i)return tm(r,e),t;break}case 82:{let t=Zu(r);if(t==i)return rm(r,e),t;let n=Yu(r);if(n==i)return im(r,e),n;let s=$u(r);if(s==i)return nm(r,e),s;let a=ec(r);if(a==i)return sm(r,e),a;let l=tc(r);if(l==i)return am(r,e),l;break}case 88:{let t=yu(r);if(t==i)return uh(r,e),t;break}case 89:{let t=rc(r);if(t==i)return lm(r,e),t;let n=ic(r);if(n==i)return om(r,e),n;let s=nc(r);if(s==i)return um(r,e),s;break}case 90:break;case 91:{let t=sc(r);if(t==i)return cm(r,e),t;break}case 92:{let t=ac(r);if(t==i)return pm(r,e),t;let n=lc(r);if(n==i)return _m(r,e),n;let s=oc(r);if(s==i)return fm(r,e),s;break}case 93:{let t=uc(r);if(t==i)return dm(r,e),t;let n=cc(r);if(n==i)return hm(r,e),n;break}case 94:{let t=_c(r);if(t==i)return mm(r,e),t;let n=fc(r);if(n==i)return ym(r,e),n;break}case 96:{let t=dc(r);if(t==i)return gm(r,e),t;let n=hc(r);if(n==i)return bm(r,e),n;break}case 97:{let t=mc(r);if(t==i)return xm(r,e),t;let n=yc(r);if(n==i)return Tm(r,e),n;let s=gc(r);if(s==i)return Am(r,e),s;break}default:throw new Error("unexpected expression id")}return 0}var Ao=class extends ii{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(fi(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let t=this.module,n=Ar(e),s=oa(e),a=la(e);ua(e,t.call("~onstore",[n,t.i32(s),t.i32(a),t.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",Ze([this.ptrType,N.I32,N.I32,N.I32]),this.ptrType)}};function yb(r,i){let e=!1;for(;Nt(i)==6&&r.readStringCached(li(i))==y.tostack;)assert($t(i)==1),i=er(i,0),e=!0;return e?i:0}function gb(r){return Nt(r)===14?!Ye(r):!0}var Vs=class extends ii{constructor(e){super(e.module);this.slotMaps=new Map;this.tempMaps=new Map;this.exportMap=new Map;this.hasStackCheckFunction=!1;this.callSlotOffset=0;this.callSlotStack=new Array;this.compiler=e}get options(){return this.compiler.options}get ptrType(){return this.options.sizeTypeRef}get ptrSize(){return this.ptrType==N.I64?8:4}get ptrBinaryAdd(){return this.ptrType==N.I64?25:0}get ptrBinarySub(){return this.ptrType==N.I64?26:1}ptrConst(e){return this.ptrType==N.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,t){let n;if(this.slotMaps.has(e)){if(n=changetype(this.slotMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.slotMaps.set(e,n);let s=n.size;return n.set(t,s),s}noteExport(e,t){t.length&&this.exportMap.set(e,t)}getSharedTemp(e,t){let n;if(this.tempMaps.has(e)){if(n=changetype(this.tempMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.tempMaps.set(e,n);let a=bc(e)+n.size;return n.set(t,a),a}makeStackOffset(e){assert(e!=0);let t=this.module,n=t.global_set(y.stack_pointer,t.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,t.global_get(y.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?n:t.block(null,[n,this.makeStackCheck()],N.None)}makeStackFill(e,t){assert(e>0);let n=this.module;if(this.options.hasFeature(8)&&e>16)t.push(n.memory_fill(n.global_get(y.stack_pointer,this.ptrType),n.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)t.push(n.store(8,n.global_get(y.stack_pointer,this.ptrType),n.i64(0),N.I64,e-s)),s-=8;s&&(assert(s==4),t.push(n.store(4,n.global_get(y.stack_pointer,this.ptrType),n.i32(0),N.I32,e-s)))}}makeStackCheck(){let e=this.module;return!this.hasStackCheckFunction&&!e.hasFunction("~stack_check")&&(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",N.None,N.None,null,e.if(e.binary(17,e.global_get(y.stack_pointer,this.ptrType),e.global_get(y.data_end,this.ptrType)),this.compiler.options.hasFeature(64)?e.unreachable():this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),fe.native)))),e.call("~stack_check",null,N.None)}updateCallOperands(e){let t=this.module,n=0;for(let s=0,a=e.length;s<a;++s){let l=e[s],o=yb(t,l);if(!o)continue;if(!gb(o)){e[s]=o;continue}let u=this.currentFunction,p=bc(u),_=this.noteSlot(u,p+this.callSlotOffset+n),f=this.getSharedTemp(u,this.ptrType),d=new Array;d.push(t.local_set(f,o,!1)),d.push(t.store(this.ptrSize,t.global_get(y.stack_pointer,this.ptrType),t.local_get(f,this.ptrType),this.ptrType,_*this.ptrSize)),d.push(t.local_get(f,this.ptrType)),e[s]=t.block(null,d,this.ptrType),++n}return n}visitCallPre(e){let t=$t(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=er(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)ta(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitCallIndirectPre(e){let t=yn(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=gn(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)ra(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitLocalSet(e){let t=this.module,n=Tr(e),s=yb(t,n);if(!s)return;if(!gb(s)){sa(e,s);return}let a=oi(e),l=this.noteSlot(this.currentFunction,a),o=new Array;o.push(t.store(this.ptrSize,t.global_get(y.stack_pointer,this.ptrType),t.local_tee(a,s,!1),this.ptrType,l*this.ptrSize)),na(e)?(o.push(t.local_get(a,this.ptrType)),this.replaceCurrent(t.flatten(o,this.ptrType))):this.replaceCurrent(t.flatten(o,N.None))}updateFunction(e){let t=fi(e),n=Pn(e),s=Bn(e),a=assert(Dt(e)),l=pa(e),o=new Array;for(let d=0;d<l;++d)o[d]=_a(e,d);let u=this.tempMaps;if(u.has(e)){let d=changetype(u.get(e));for(let h=Map_keys(d),g=0,m=h.length;g<m;++g)o.push(h[g])}let p=this.module.ref;wn(p,t);let _=he(o),f=ci(p,t,n,s,_,o.length,a);if(this.options.sourceMap||this.options.debugInfo){let d=this.compiler.program.searchFunctionByRef(f);d&&d.addDebugInfo(this.module,f)}ie(_)}updateExport(e,t){let n=this.module,s=n.ref;assert(Nm(e)==0);let a=Dm(e),l=n.readStringCached(a),o=Mm(e),u=pi(s,a),p=Pn(u),_=np(p),f=_.length,d=Bn(u),h=f,g=new Array,m=assert(t.length),T=m*this.ptrSize,S="export:"+l,E=n.allocStringCached(S);if(pi(s,E)==0){let F=new Array;F.push(this.makeStackOffset(-T));for(let C=0;C<m;++C)F.push(n.store(this.ptrSize,n.global_get(y.stack_pointer,this.ptrType),n.local_get(t[C],this.ptrType),this.ptrType,C*this.ptrSize));let k=new Array(f);for(let C=0;C<f;++C)k[C]=n.local_get(C,_[C]);if(d!=N.None){let C=h++;g.push(d),F.push(n.local_set(C,n.call(l,k,d),!1)),F.push(this.makeStackOffset(+T)),F.push(n.local_get(C,d))}else F.push(n.call(l,k,d)),F.push(this.makeStackOffset(+T));let R=he(g);ci(s,E,p,d,R,g.length,n.block(null,F,d)),ie(R)}ha(s,o),fa(s,E,o)}walkModule(){let e=this.module.ref,t=this.module,n=0,s=0,a=new Set;for(;;){let u=_i(e);if(u==n)break;for(let _=n;_<u;++_)this.walkFunction(Cn(e,_));let p=new vo(this);for(let _=Map_keys(this.slotMaps),f=0,d=_.length;f<d;++f){let h=_[f];if(a.has(h))continue;a.add(h);let m=changetype(this.slotMaps.get(h)).size*this.ptrSize;p.frameSize=m,p.walkFunction(h);let T=new Array;T.push(this.makeStackOffset(-m)),this.makeStackFill(m,T);let S=Dt(h),E=Mt(S);if(E==N.Unreachable)T.push(S);else if(E==N.None)T.push(S),T.push(this.makeStackOffset(+m));else{let F=this.getSharedTemp(h,E);T.push(t.local_set(F,S,!1)),T.push(this.makeStackOffset(+m)),T.push(t.local_get(F,E))}Ln(h,t.flatten(T,E))}if(n=u,s++,s>100)throw new Error("ShadowStackPass: too many iterations, possible infinite loop")}this.walkGlobals();let l=this.exportMap;for(let u=Map_keys(l),p=0,_=u.length;p<_;++p){let f=u[p],d=da(t.ref,t.allocStringCached(f)),h=changetype(l.get(f));this.updateExport(d,h)}let o=_i(e);for(;n<o;){for(let p=n;p<o;++p)this.walkFunction(Cn(e,p));let u=new vo(this);for(let p=Map_keys(this.slotMaps),_=0,f=p.length;_<f;++_){let d=p[_];if(a.has(d))continue;a.add(d);let g=changetype(this.slotMaps.get(d)).size*this.ptrSize;u.frameSize=g,u.walkFunction(d);let m=new Array;m.push(this.makeStackOffset(-g)),this.makeStackFill(g,m);let T=Dt(d),S=Mt(T);if(S==N.Unreachable)m.push(T);else if(S==N.None)m.push(T),m.push(this.makeStackOffset(+g));else{let E=this.getSharedTemp(d,S);m.push(t.local_set(E,T,!1)),m.push(this.makeStackOffset(+g)),m.push(t.local_get(E,S))}Ln(d,t.flatten(m,S))}n=o,o=_i(e)}for(let u=Map_keys(this.tempMaps),p=0,_=u.length;p<_;++p)this.updateFunction(u[p])}},vo=class extends ii{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let t=this.module,n=vr(e),s=new Array;if(n){let a=Mt(n);if(a==N.Unreachable)return;let l=this.parentPass.getSharedTemp(this.currentFunction,a);s.push(t.local_set(l,n,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),ca(e,t.local_get(l,a))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(t.flatten(s,N.Unreachable))}};var Hi=class{constructor(i,e=!1){this.seen=new Map;this.program=i,this.includePrivate=e}walk(){for(let i=Map_values(this.program.filesByName),e=0,t=i.length;e<t;++e){let n=unchecked(i[e]);n.source.sourceKind==1&&this.visitFile(n)}}visitFile(i){let e=i.exports;if(e)for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));this.visitElement(l,o)}let t=i.exportsStar;if(t)for(let n=0,s=t.length;n<s;++n){let a=unchecked(t[n]);this.visitFile(a)}}visitElement(i,e){if(e.is(512)&&!this.includePrivate)return;let t=this.seen;if(!e.is(262144)&&t.has(e)){this.visitAlias(i,e,assert(t.get(e)));return}switch(t.set(e,i),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(i,e);break}case 2:{e.is(8388608)&&this.visitEnum(i,e);break}case 3:break;case 4:{this.visitFunctionInstances(i,e);break}case 6:{this.visitClassInstances(i,e);break}case 8:{this.visitInterfaceInstances(i,e);break}case 10:{let n=e.instance;if(!n)break;e=n}case 11:{let n=e,s=n.getterInstance;s&&this.visitFunction(i,s);let a=n.setterInstance;a&&this.visitFunction(i,a);break}case 12:{bb(e)&&this.visitNamespace(i,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(i,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);l.is(8388608)&&this.visitFunction(i,l)}}visitClassInstances(i,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==7),l.is(8388608)&&this.visitClass(i,l)}}visitInterfaceInstances(i,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==9),l.is(8388608)&&this.visitInterface(i,l)}}};function bb(r){let i=r.members;if(i)for(let e=Map_values(i),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]);switch(s.kind){case 4:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}case 6:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}default:{if(s.is(8388608)||bb(s))return!0;break}}}return!1}function yI(r){return r=="rtrace"?"#rtrace":r}function gI(r){return r!="rtrace"}var Xi=class r extends Hi{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.needsLiftBuffer=!1;this.needsLowerBuffer=!1;this.needsLiftString=!1;this.needsLowerString=!1;this.needsLiftArray=!1;this.needsLowerArray=!1;this.needsLiftTypedArray=!1;this.needsLowerTypedArray=!1;this.needsLiftStaticArray=!1;this.needsLowerStaticArray=!1;this.needsLiftInternref=!1;this.needsLowerInternref=!1;this.needsRetain=!1;this.needsRelease=!1;this.needsNotNull=!1;this.needsSetU8=!1;this.needsSetU16=!1;this.needsSetU32=!1;this.needsSetU64=!1;this.needsSetF32=!1;this.needsSetF64=!1;this.needsGetI8=!1;this.needsGetU8=!1;this.needsGetI16=!1;this.needsGetU16=!1;this.needsGetI32=!1;this.needsGetU32=!1;this.needsGetI64=!1;this.needsGetU64=!1;this.needsGetF32=!1;this.needsGetF64=!1;this.deferredLifts=new Set;this.deferredLowers=new Set;this.deferredCode=new Array;this.exports=new Array;this.importMappings=new Map;this.esm=t}static build(e,t=!0){return new r(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type;this.exports.push(e),ni(s,1)||(W(n,this.indentLevel),n.push(e),n.push(`: {
49
+ `)}hasDecoratorKind(e,t){if(e==null)return!1;for(let n=0,s=e.length;n<s;++n)if(e[n].decoratorKind==t)return!0;return!1}restPrefixOf(e){let t=e.args;if(t==null||t.length==0)return"";let n=t[0];if(n instanceof ye){let s=n.value.trim();return s.length==0||s=="/"?"":(s.startsWith("/")||(s="/"+s),s.replace(/\/+$/,""))}return""}restStreamOf(e){let t=e.args;if(t!=null&&t.length>0&&t[0]instanceof Pe){let n=this.objectField(t[0],"stream");if(n!=null){let s=this.enumMember(n);if(s!=null)return s}}return"JSON"}routeDecoratorOf(e){let t=e.decorators;if(t==null)return null;for(let n=0,s=t.length;n<s;++n)switch(t[n].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return t[n]}return null}buildRouteBlock(e,t,n,s,a){let l=s.decoratorKind,o,u,p=t;if(l==19){let k=s.args;if(k==null||k.length==0||!(k[0]instanceof Pe))return null;let R=k[0],C=this.objectField(R,"method"),D=this.objectField(R,"path");if(C==null||D==null||!(D instanceof ye))return null;let U=this.enumMember(C);if(U==null)return null;o=U,u=D.value;let G=this.objectField(R,"stream");if(G!=null){let O=this.enumMember(G);O!=null&&(p=O)}}else{o=this.verbName(l);let k=s.args;if(k==null||k.length==0||!(k[0]instanceof ye))return null;u=k[0].value}let _=this.methodEnumValue(o);if(_<0)return null;let f=this.joinPath(e,u),d=n.signature.parameters,h=null,g="";for(let k=0,R=d.length;k<R;++k){let C=d[k].type,D=C instanceof ae?C.name.identifier.text:"";k>0&&(g+=","),D=="RouteContext"?g+="__ctx":(h=D,g+="__body")}let m=n.signature.returnType,T=m instanceof ae?m.name.identifier.text:"",S="this."+n.name.text+"("+g+")",E=this.cacheSuffixOf(n),F="if(__req.method=="+_.toString()+"){";return F+="const __ctx=__toilMatch("+JSON.stringify(f)+",__req);",F+="if(__ctx!=null){",F+=this.ratelimitGuardOf(n),(a||this.hasDecoratorKind(n.decorators,28))&&(F+='if(!AuthService.hasSession()){return __toilResp.text("unauthorized\\n",401);}'),h!=null&&(p=="Binary"?F+="const __body="+h+".decode(__req.body);":F+="const __body="+h+".fromJSON(JSON.parse(__ctx.text()));"),T=="Response"||T=="__toilResp"?F+="return "+S+E+";":T=="void"?F+=S+";return __toilResp.empty(204)"+E+";":p=="Binary"?F+="const __res="+S+";return __toilResp.bytes(__res.encode())"+E+";":F+="const __res="+S+";return __toilResp.json(__res.toJSON().toString())"+E+";",F+="}}",F}cacheSuffixOf(e){let t=e.decorators;if(t==null)return"";for(let n=0,s=t.length;n<s;++n){if(t[n].decoratorKind!=27)continue;let a=t[n].args;if(a==null||a.length==0)return"";let l="";for(let o=0,u=a.length;o<u;++o){let p=a[o];if(!(p instanceof pt||p.kind==26||p.kind==14))return"";o>0&&(l+=","),l+=p.range.toString()}return".cache("+l+")"}return""}ratelimitGuardOf(e){let t=e.decorators;if(t==null)return"";for(let n=0,s=t.length;n<s;++n){if(t[n].decoratorKind!=30)continue;let a=t[n].args;if(a==null||a.length<3)return"";let l=this.ratelimitStrategyTag(a[0]);if(l.length==0)return"";let o=a[1],u=a[2];return!(o instanceof pt)||!(u instanceof pt)?"":"{const __rl=RateLimitService.guard("+(this.ratelimitRouteCounter++).toString()+","+l+","+o.range.toString()+","+u.range.toString()+");if(__rl!=null){return __rl;}}"}return""}ratelimitStrategyTag(e){if(e instanceof pt)return e.range.toString();if(e instanceof _t){let t=e.property.text;return t=="SlidingWindow"?"1":t=="TokenBucket"?"2":"0"}return""}objectField(e,t){let n=e.names;for(let s=0,a=n.length;s<a;++s)if(n[s].text==t)return e.values[s];return null}enumMember(e){return e instanceof _t?e.property.text:null}verbName(e){switch(e){case 21:return"POST";case 22:return"PUT";case 23:return"DELETE";case 24:return"PATCH";case 25:return"HEAD";case 26:return"OPTIONS";default:return"GET"}}methodEnumValue(e){switch(e){case"GET":return 0;case"POST":return 1;case"PUT":return 2;case"DELETE":return 3;case"PATCH":return 4;case"HEAD":return 5;case"OPTIONS":return 6;default:return-1}}joinPath(e,t){let n=t.trim();if(n.length==0&&(n="/"),n.startsWith("/")||(n="/"+n),n=="/")return e.length>0?e:"/";n.length>1&&(n=n.replace(/\/+$/,""));let s=e+n;return s.length==0?"/":s}restRuntimePath(e){let t=e.range.source.statements;for(let n=0,s=t.length;n<s;++n){let a=t[n];if(a.kind!=43)continue;let l=a,o=l.declarations;if(o!=null)for(let u=0,p=o.length;u<p;++u){let _=o[u].foreignName.text;if(_=="Response"||_=="Request"||_=="RouteContext"||_=="ToilHandler"||_=="Method"||_=="Header"||_=="Server"||_=="Rest")return l.path.value}}return"toiljs/server/runtime"}parseClassExpression(e){let t=e.tokenPos,n;if(e.skipIdentifier()?n=z.createIdentifierExpression(e.readIdentifier(),e.range()):n=z.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,a=z.createClassDeclaration(n,null,0,null,null,null,s,e.range(t,e.pos));if(!e.skip(63))do{let l=this.parseClassMember(e,a);if(l)l.kind==66?a.indexSignature=l:(assert(a instanceof je),s.push(l));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));return a.range.end=e.pos,z.createClassExpression(a)}parseClassMember(e,t){let n=t.kind==58,s=0,a=null;if(e.skip(114)){s=e.tokenPos;do{let te=this.parseDecorator(e);if(!te)break;a||(a=new Array),a.push(te)}while(e.skip(114));n&&a&&this.error(1206,ce.join(a[0].range,a[a.length-1].range))}let l=t.flags&32768;n&&(l|=268435456);let o=0,u=0,p=t.is(32768);e.skip(12)?(n?this.error(1042,e.range(),"declare"):p?this.error(1038,e.range()):(l|=32772,o=e.tokenPos,u=e.pos),s||(s=e.tokenPos)):p&&(l|=32768);let _=0,f=0;e.skip(44)?(n?this.error(1042,e.range(),"public"):(l|=256,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos)):e.skip(42)?(n?this.error(1042,e.range(),"private"):(l|=512,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(n?this.error(1042,e.range(),"protected"):(l|=1024,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos));let d=0,h=0,g=0,m=0;e.skip(48)?(n?this.error(1042,e.range(),"static"):(l|=32,d=e.tokenPos,h=e.pos),s||(s=e.tokenPos)):(l|=262144,e.skip(0)&&(n||!t.is(128)?this.error(1042,e.range(),"abstract"):(l|=128,g=e.tokenPos,m=e.pos),s||(s=e.tokenPos)),t.flags&65536&&(l|=131072));let T=0,S=0;e.skip(40)&&(n||t.extendsType==null?this.error(1042,e.range(),"override"):(l|=8192,T=e.tokenPos,S=e.pos),s||(s=e.tokenPos));let E=0,F=0;if(e.peek()==45){let te=e.mark();e.next(),e.peek()!=100?(e.discard(te),l|=64,E=e.tokenPos,F=e.pos,s||(s=E)):e.reset(te)}let k=e.mark(),R=!1,C=!1,D=0,U=0,G=!1,O=0,Y=0;n||(e.skip(25)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=2048,C=!0,D=e.tokenPos,U=e.pos,s||(s=D),l&64&&this.error(1042,e.range(E,F),"readonly")):e.reset(k):e.skip(47)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=4096,G=!0,O=e.tokenPos,Y=e.pos,s||(s=O),l&64&&this.error(1042,e.range(E,F),"readonly")):e.reset(k):e.skip(10)&&(l|=524288,R=!0,s||(s=e.tokenPos),l&32&&this.error(1042,e.range(d,h),"static"),l&128&&this.error(1042,e.range(g,m),"abstract"),l&64&&this.error(1042,e.range(E,F),"readonly")));let Z=C||G,ee;if(R)ee=z.createConstructorExpression(e.range());else{if(!Z&&e.skip(66)){s||(s=e.tokenPos),l&256?this.error(1042,e.range(_,f),"public"):l&1024?this.error(1042,e.range(_,f),"protected"):l&512&&this.error(1042,e.range(_,f),"private"),l&32&&this.error(1042,e.range(d,h),"static"),l&8192&&this.error(1042,e.range(T,S),"override"),l&128&&this.error(1042,e.range(g,m),"abstract");let te=this.parseIndexSignature(e,l,a);return te?(e.skip(70),te):(l&64&&this.error(1042,e.range(E,F),"readonly"),null)}if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),ee=z.createIdentifierExpression(e.readIdentifier(),e.range())}let K=null;if(e.skip(72)){let te=e.tokenPos;if(K=this.parseTypeParameters(e),!K)return null;R?this.error(1092,e.range(te,e.pos)):Z?this.error(1094,e.range(te,e.pos)):l|=65536}if(e.skip(64)){l&4&&this.error(1031,e.range(o,u),"declare");let te=e.tokenPos,H=this.parseParameters(e,R);if(!H)return null;let oe=this.parseParametersThis;if(R)for(let Oe=0,sn=H.length;Oe<sn;++Oe){let Bt=H[Oe];if(Bt.isAny(1856)){let Lt=z.createFieldDeclaration(Bt.name,null,Bt.flags|262144,Bt.type,null,Bt.range);Lt.parameterIndex=Oe,Bt.implicitFieldDeclaration=Lt,t.members.push(Lt)}}else C?H.length&&this.error(1054,ee.range):G?(H.length!=1&&this.error(1049,ee.range),H.length>0&&H[0].initializer&&this.error(1052,ee.range)):ee.text=="constructor"&&this.error(230,ee.range,"constructor");let se=null;if(e.skip(100)){if(ee.kind==27?this.error(1093,e.range()):G&&this.error(1095,e.range()),se=this.parseType(e,G||ee.kind==27),!se)return null}else se=z.createOmittedType(e.range(e.pos)),!G&&ee.kind!=27&&this.error(1110,se.range);let Re=z.createFunctionType(H,se,oe,!1,e.range(te,e.pos)),Pt=null;if(e.skip(62)){if(l&32768?this.error(1183,e.range()):l&128?this.error(1245,e.range(),ee.text):n&&this.error(1005,e.range(),";"),Pt=this.parseBlockStatement(e,!1),!Pt)return null}else!n&&!(l&32896)&&this.error(2391,e.range());let nn=z.createMethodDeclaration(ee,a,l,K,Re,Pt,e.range(s,e.pos));return n&&e.skip(71)||e.skip(70),nn}else if(R)this.error(2390,ee.range);else if(Z)this.error(2391,ee.range);else{l&4&&this.error(100,e.range(o,u),"Ambient fields"),l&128&&this.error(1042,e.range(g,m),"abstract"),l&2048&&this.error(1042,e.range(D,U),"get"),l&4096&&this.error(1042,e.range(O,Y),"set");let te=null;if(e.skip(99)&&this.error(219,e.range(s,e.pos)),e.skip(95)&&(l|=16384),e.skip(100)){if(te=this.parseType(e),!te)return null}else this.error(1110,e.range());let H=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),H=this.parseExpression(e),!H)return null;l&16384&&this.error(1263,ee.range)}let oe=e.range(s,e.pos);(l&16384)!=0&&(n||(l&32768)!=0)&&this.error(1255,oe);let se=z.createFieldDeclaration(ee,a,l,te,H,oe);return n&&e.skip(71)||e.skip(70),se}return null}parseIndexSignature(e,t,n){n&&n.length>0&&this.error(1206,ce.join(n[0].range,n[n.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier()=="key")if(e.skip(100)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(67))if(e.skip(100)){let o=this.parseType(e);return o?o.kind!=1?(this.error(1003,o.range),null):z.createIndexSignature(l,o,t,e.range(s,e.pos)):null}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"]")}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"key");else this.error(1003,e.range());return null}parseNamespace(e,t,n,s){if(e.skipIdentifier()){let a=z.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(62)){let l=new Array,o=z.createNamespaceDeclaration(a,n,t,l,e.range(s,e.pos));for(;!e.skip(63);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==36)return this.error(1319,u.range),null;l.push(u)}else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(70),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,t,n){let s=null,a=assert(this.currentSource);if(e.skip(62)){let l=new Array;for(;!e.skip(63);){let u=this.parseExportMember(e);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(116))s=z.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=z.createExportStatement(l,s,n,e.range(t,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new ds(a,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(70),o}else if(e.skip(84))if(e.skip(23))if(e.skip(116)){s=z.createStringLiteralExpression(e.readString(),e.range());let l=z.createExportStatement(null,s,n,e.range(t,e.pos)),o=assert(l.internalPath),u=e.source,p=u.exportPaths;return p?p.includes(o)||p.push(o):u.exportPaths=[o],this.seenlog.has(o)||(this.dependees.set(o,new ds(a,s)),this.backlog.push(o)),e.skip(70),l}else this.error(1141,e.range());else this.error(1005,e.range(),"from");else this.error(1005,e.range(),"{");return null}parseExportMember(e){if(e.skipIdentifier(2)){let t=z.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier(2))n=z.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?z.createExportMember(t,n,ce.join(t.range,n.range)):z.createExportMember(t,null,t.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,t,n,s){let a=e.readIdentifier(),l=e.range(),o=z.createExportStatement([z.createExportMember(z.createIdentifierExpression(a,l),z.createIdentifierExpression("default",e.range(n,s)),l)],null,!1,e.range(t,e.pos));return e.skip(70),o}parseImport(e){let t=e.tokenPos,n=null,s=null,a=!1;if(e.skip(62))for(n=new Array;!e.skip(63);){let l=this.parseImportDeclaration(e);if(!l)return null;if(n.push(l),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(84))if(e.skip(1))if(e.skipIdentifier())s=z.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;else return this.error(1005,e.range(),"as"),null;else if(e.skip(115,1)){let l=e.readIdentifier(),o=e.range();if(n=[z.createImportDeclaration(z.createIdentifierExpression("default",o),z.createIdentifierExpression(l,o),o)],e.skip(71))return this.error(100,e.range(),"Mixed default and named imports"),null}else a=!0;if(a||e.skip(23))if(e.skip(116)){let l=z.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!n),o=z.createWildcardImportStatement(s,l,e.range(t,e.pos))):o=z.createImportStatement(n,l,e.range(t,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new ds(assert(this.currentSource),l)),this.backlog.push(u)),e.skip(70),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let t=z.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier())n=z.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?z.createImportDeclaration(t,n,ce.join(t.range,n.range)):z.createImportDeclaration(t,null,t.range)}else this.error(1003,e.range());return null}parseExportImport(e,t){if(e.skipIdentifier()){let n=z.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(101))if(e.skipIdentifier()){let s=z.createIdentifierExpression(e.readIdentifier(),e.range()),a=z.createExportImportStatement(s,n,e.range(t,e.pos));return e.skip(70),a}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,t=!1){let n=e.mark(),s=e.next(),a=null;switch(s){case 4:{a=this.parseBreak(e);break}case 8:{a=this.parseVariable(e,8,null,e.tokenPos);break}case 9:{a=this.parseContinue(e);break}case 15:{a=this.parseDoStatement(e);break}case 22:{a=this.parseForStatement(e);break}case 26:{a=this.parseIfStatement(e);break}case 34:{a=this.parseVariable(e,16,null,e.tokenPos);break}case 57:{a=this.parseVariable(e,0,null,e.tokenPos);break}case 62:{a=this.parseBlockStatement(e,t);break}case 46:{t&&this.error(1108,e.range()),a=this.parseReturn(e);break}case 70:return z.createEmptyStatement(e.range(e.tokenPos));case 50:{a=this.parseSwitchStatement(e);break}case 52:{a=this.parseThrowStatement(e);break}case 54:{a=this.parseTryStatement(e);break}case 58:{a=this.parseVoidStatement(e);break}case 59:{a=this.parseWhileStatement(e);break}case 55:if(e.peek(1)==115){a=this.parseTypeDeclaration(e,0,null,e.tokenPos);break}default:{e.reset(n),a=this.parseExpressionStatement(e);break}}return a?e.discard(n):(e.reset(n),this.skipStatement(e)),a}parseBlockStatement(e,t){let n=e.tokenPos,s=new Array;for(;!e.skip(63);){let l=e.mark(),o=this.parseStatement(e,t);if(o)e.discard(l),s.push(o);else{if(e.token==121)return null;e.reset(l),this.skipStatement(e)}}let a=z.createBlockStatement(s,e.range(n,e.pos));return t&&e.skip(70),a}parseBreak(e){let t=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),t=z.createIdentifierExpression(e.readIdentifier(),e.range()));let n=z.createBreakStatement(t,e.range());return e.skip(70),n}parseContinue(e){let t=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),t=z.createIdentifierExpression(e.readIdentifier(),e.range()));let n=z.createContinueStatement(t,e.range());return e.skip(70),n}parseDoStatement(e){let t=e.tokenPos,n=this.parseStatement(e);if(!n)return null;if(e.skip(59))if(e.skip(64)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(65)){let a=z.createDoStatement(n,s,e.range(t,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");else this.error(1005,e.range(),"while");return null}parseExpressionStatement(e){let t=this.parseExpression(e);if(!t)return null;let n=z.createExpressionStatement(t);return e.skip(70),n}parseForStatement(e){let t=e.tokenPos;if(e.skip(64)){let n=null;if(e.skip(8))n=this.parseVariable(e,8,null,e.tokenPos,!0);else if(e.skip(34))n=this.parseVariable(e,16,null,e.tokenPos,!0);else if(e.skip(57))n=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(70)&&(n=this.parseExpressionStatement(e),!n))return null;if(n){if(e.skip(39)){if(n.kind==39)return n.expression.kind!=7?(this.error(1003,n.range),null):this.parseForOfStatement(e,t,n);if(n.kind==48){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let u=s[a].initializer;u&&this.error(1190,u.range)}return this.parseForOfStatement(e,t,n)}return this.error(1003,n.range),null}if(n.kind==48){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a];o.initializer||(o.flags&8?this.error(1155,o.name.range):o.type||this.error(1110,o.name.range.atEnd))}}}if(e.token==70){let s=null;if(!e.skip(70)&&(s=this.parseExpressionStatement(e),!s))return null;if(e.token==70){let a=null;if(!e.skip(65)){if(a=this.parseExpression(e),!a)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null}let l=this.parseStatement(e);return l?z.createForStatement(n,s?s.expression:null,a,l,e.range(t,e.pos)):null}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),"(");return null}parseForOfStatement(e,t,n){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null;let a=this.parseStatement(e);return a?z.createForOfStatement(n,s,a,e.range(t,e.pos)):null}parseIfStatement(e){let t=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=null;return e.skip(16)&&(a=this.parseStatement(e),!a)?null:z.createIfStatement(n,s,a,e.range(t,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let t=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65))if(e.skip(62)){let s=new Array;for(;!e.skip(63);){let l=this.parseSwitchCase(e);if(!l)return null;s.push(l)}let a=z.createSwitchStatement(n,s,e.range(t,e.pos));return e.skip(70),a}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let t=e.tokenPos,n,s;if(e.skip(5)){let a=this.parseExpression(e);if(!a)return null;if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return z.createSwitchCase(a,n,e.range(t,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return z.createSwitchCase(null,n,e.range(t,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let t=e.tokenPos,n=this.parseExpression(e);if(!n)return null;let s=z.createThrowStatement(n,e.range(t,e.pos));return e.skip(70)||this.checkASI(e),s}parseTryStatement(e){let t=e.tokenPos,n;if(e.skip(62)){let s=new Array;for(;!e.skip(63);){if(n=this.parseStatement(e),!n)return null;s.push(n)}let a=null,l=null,o=null;if(e.skip(6)){if(!e.skip(64))return this.error(1005,e.range(),"("),null;if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(a=z.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(65))return this.error(1005,e.range(),")"),null;if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(l=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;l.push(n)}}if(e.skip(21)){if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;o.push(n)}}if(!(l||o))return this.error(1005,e.range(),"catch"),null;let u=z.createTryStatement(s,a,l,o,e.range(t,e.pos));return e.skip(70),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,t,n,s){if(e.skipIdentifier()){let a=z.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(72)){if(l=this.parseTypeParameters(e),!l)return null;t|=65536}if(e.skip(101)){e.skip(93);let o=this.parseType(e);if(!o)return null;if(fs(a.text,o))return this.error(2456,a.range,a.text),null;let u=z.createTypeDeclaration(a,n,t,l,o,e.range(s,e.pos));return e.skip(70),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,t){let n=e.tokenPos;assert(e.next()==116);let s=e.readString(),a=z.createModuleDeclaration(s,t,e.range(n,e.pos));return this.currentModuleName=s,e.skip(70),a}parseVoidStatement(e){let t=e.tokenPos,n=this.parseExpression(e,21);if(!n)return null;let s=z.createVoidStatement(n,e.range(t,e.pos));return e.skip(70),s}parseWhileStatement(e){let t=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=z.createWhileStatement(n,s,e.range(t,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let t=e.next(1),n=e.tokenPos;switch(t){case 69:case 61:case 95:case 96:case 81:case 82:case 56:case 58:case 14:{let s=this.parseExpression(e,17);return s?z.createUnaryPrefixExpression(t,s,e.range(n,e.pos)):null}case 87:case 88:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 7:case 13:case 22:break;default:this.error(2357,s.range)}return z.createUnaryPrefixExpression(t,s,e.range(n,e.pos))}case 37:{if(!e.skipIdentifier())return this.error(1003,e.range()),null;let s=this.parseTypeName(e);if(!s)return null;let a=null,l=null;if(e.skip(64)||(a=this.tryParseTypeArgumentsBeforeArguments(e))){if(l=this.parseArguments(e),!l)return null}else l=[];return z.createNewExpression(s,a,l,e.range(n,e.pos))}case 38:return z.createNullExpression(e.range());case 53:return z.createTrueExpression(e.range());case 20:return z.createFalseExpression(e.range());case 51:return z.createThisExpression(e.range());case 10:return z.createConstructorExpression(e.range());case 64:{if(e.skip(65))return this.parseFunctionExpressionCommon(e,z.createEmptyIdentifierExpression(e.range(n)),[],null,1);let s=e.mark(),a=!0;do switch(e.next(1)){case 69:return e.reset(s),this.parseFunctionExpression(e);case 115:{switch(e.readIdentifier(),e.next()){case 65:{if(e.skip(100)&&this.parseType(e,!0,!0)==null){a=!1;break}if(!e.skip(80)){a=!1;break}}case 100:return e.reset(s),this.parseFunctionExpression(e);case 99:{if(e.skip(100)||e.skip(71)||e.skip(65))return e.reset(s),this.parseFunctionExpression(e);a=!1;break}case 71:break;default:{a=!1;break}}break}default:{a=!1;break}}while(a);e.reset(s);let l=this.parseExpression(e);return l?e.skip(65)?(l=z.createParenthesizedExpression(l,e.range(n,e.pos)),this.maybeParseCallExpression(e,l)):(this.error(1005,e.range(),")"),null):null}case 66:{let s=new Array;for(;!e.skip(67);){let a;if(e.peek()==71)a=z.createOmittedExpression(e.range(e.pos));else if(a=this.parseExpression(e,2),!a)return null;if(s.push(a),!e.skip(71)){if(e.skip(67))break;return this.error(1005,e.range(),"]"),null}}return z.createArrayLiteralExpression(s,e.range(n,e.pos))}case 62:{let s=e.tokenPos,a=new Array,l=new Array,o;for(;!e.skip(63);){if(e.skipIdentifier())o=z.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(116))return this.error(1003,e.range()),null;o=z.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(a.push(o),e.skip(100)){let u=this.parseExpression(e,2);if(!u)return null;l.push(u)}else if(!o.isQuoted)l.push(o);else return this.error(1005,e.range(),":"),null;if(!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}return z.createObjectLiteralExpression(a,l,e.range(s,e.pos))}case 72:{let s=this.parseType(e);if(!s)return null;if(!e.skip(73))return this.error(1005,e.range(),">"),null;let a=this.parseExpression(e,19);return a?z.createAssertionExpression(0,a,s,e.range(n,e.pos)):null}case 115:{let s=e.readIdentifier();if(s=="null")return z.createNullExpression(e.range());let a=z.createIdentifierExpression(s,e.range(n,e.pos));return e.skip(119)?this.parseTemplateLiteral(e,a):e.peek()==80&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,z.createEmptyIdentifierExpression(e.range(n)),[z.createParameter(0,a,z.createOmittedType(a.range.atEnd),null,a.range)],null,2,n):this.maybeParseCallExpression(e,a,!0)}case 49:{e.peek()!=68&&e.nextToken!=64&&this.error(1034,e.range());let s=z.createSuperExpression(e.range(n,e.pos));return this.maybeParseCallExpression(e,s)}case 116:return z.createStringLiteralExpression(e.readString(),e.range(n,e.pos));case 119:return this.parseTemplateLiteral(e);case 117:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),z.createIntegerLiteralExpression(s,e.range(n,e.pos))}case 118:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),z.createFloatLiteralExpression(s,e.range(n,e.pos))}case 85:{let s=e.readRegexpPattern();return e.skip(85)?z.createRegexpLiteralExpression(s,e.readRegexpFlags(),e.range(n,e.pos)):(this.error(1005,e.range(),"/"),null)}case 24:{let s=this.parseFunctionExpression(e);return s?this.maybeParseCallExpression(e,s):null}case 7:return this.parseClassExpression(e);default:return t==121?this.error(1126,e.range(n)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let t=e.mark();if(!e.skip(72))return null;let n=e.tokenPos,s=null;do{if(e.peek()==73)break;let a=this.parseType(e,!0,!0);if(!a)return e.reset(t),null;s?s.push(a):s=[a]}while(e.skip(71));if(e.skip(73)){let a=e.pos;if(e.skip(64))return s||this.error(1099,e.range(n,a)),s}return e.reset(t),null}parseArguments(e){let t=new Array;for(;!e.skip(65);){let n=this.parseExpression(e,2);if(!n)return null;if(t.push(n),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return t}parseExpression(e,t=1){assert(t!=0);let n=this.parseExpressionStart(e);if(!n)return null;let s=n.range.start,a;for(;(a=l6(e.peek()))>=t;){let l=e.next();switch(l){case 1:{if(e.skip(8))n=z.createAssertionExpression(3,n,null,e.range(s,e.pos));else{let o=this.parseType(e);if(!o)return null;n=z.createAssertionExpression(1,n,o,e.range(s,e.pos))}break}case 95:{n=z.createAssertionExpression(2,n,null,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 30:{let o=this.parseType(e);if(!o)return null;n=z.createInstanceOfExpression(n,o,e.range(s,e.pos));break}case 66:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(67))return this.error(1005,e.range(),"]"),null;n=z.createElementAccessExpression(n,o,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 87:case 88:{n.kind!=7&&n.kind!=13&&n.kind!=22&&this.error(2357,n.range),n=z.createUnaryPostfixExpression(l,n,e.range(s,e.pos));break}case 99:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(100))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,t>1?2:1);if(!u)return null;n=z.createTernaryExpression(n,o,u,e.range(s,e.pos));break}case 71:{let o=[n];do{if(n=this.parseExpression(e,2),!n)return null;o.push(n)}while(e.skip(71));n=z.createCommaExpression(o,e.range(s,e.pos));break}case 68:{if(e.skipIdentifier(2)){let o=z.createIdentifierExpression(e.readIdentifier(),e.range());n=z.createPropertyAccessExpression(n,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,a+1);if(!o)return null;if(o.kind==10){if(n=this.joinPropertyCall(e,s,n,o),!n)return null}else return this.error(1003,o.range),null}if(e.skip(119)){if(n=this.parseTemplateLiteral(e,n),!n)return null}else n=this.maybeParseCallExpression(e,n,!0);break}case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:case 83:{let o=this.parseExpression(e,a);if(!o)return null;n=z.createBinaryExpression(l,n,o,e.range(s,e.pos));break}case 72:case 73:case 74:case 75:case 76:case 78:case 79:case 77:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 93:case 94:case 97:case 98:case 29:{let o=this.parseExpression(e,a+1);if(!o)return null;n=z.createBinaryExpression(l,n,o,e.range(s,e.pos));break}default:assert(!1)}}return n}parseTemplateLiteral(e,t=null){let n=t?t.range.start:e.tokenPos,s=new Array,a=new Array,l=new Array;for(s.push(e.readString(0,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd));e.readingTemplateString;){let o=this.parseExpression(e);if(!o)return null;if(l.push(o),!e.skip(63))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return z.createTemplateLiteralExpression(t,s,a,l,e.range(n,e.pos))}joinPropertyCall(e,t,n,s){let a=s.expression;switch(a.kind){case 7:{s.expression=z.createPropertyAccessExpression(n,a,e.range(t,e.pos));break}case 10:{let l=this.joinPropertyCall(e,t,n,a);if(!l)return null;s.expression=l,s.range=e.range(t,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,t,n=!1){let s=null;for(;e.skip(64)||n&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let a=this.parseArguments(e);if(!a)break;t=z.createCallExpression(t,s,a,e.range(t.range.start,e.pos)),n=!1}return t}checkASI(e){let t=e.peek();t==121||t==63||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let t=e.peek();if(t==121||t==70){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 115:{e.readIdentifier();break}case 116:case 119:{e.readString();break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 62:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let t=1,n=!0;do switch(e.next()){case 121:{this.error(1005,e.range(),"}"),n=!1;break}case 62:{++t;break}case 63:{--t,t||(n=!1);break}case 115:{e.readIdentifier();break}case 116:{e.readString();break}case 119:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(n)}},Zg=(R=>(R[R.None=0]="None",R[R.Comma=1]="Comma",R[R.Spread=2]="Spread",R[R.Yield=3]="Yield",R[R.Assignment=4]="Assignment",R[R.Conditional=5]="Conditional",R[R.LogicalOr=6]="LogicalOr",R[R.LogicalAnd=7]="LogicalAnd",R[R.BitwiseOr=8]="BitwiseOr",R[R.BitwiseXor=9]="BitwiseXor",R[R.BitwiseAnd=10]="BitwiseAnd",R[R.Equality=11]="Equality",R[R.Relational=12]="Relational",R[R.Shift=13]="Shift",R[R.Additive=14]="Additive",R[R.Multiplicative=15]="Multiplicative",R[R.Exponentiated=16]="Exponentiated",R[R.UnaryPrefix=17]="UnaryPrefix",R[R.UnaryPostfix=18]="UnaryPostfix",R[R.Call=19]="Call",R[R.MemberAccess=20]="MemberAccess",R[R.Grouping=21]="Grouping",R))(Zg||{});function l6(r){switch(r){case 71:return 1;case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:return 4;case 99:return 5;case 98:return 6;case 97:return 7;case 93:return 8;case 94:return 9;case 92:return 10;case 76:case 77:case 78:case 79:return 11;case 1:case 29:case 30:case 72:case 73:case 74:case 75:return 12;case 89:case 90:case 91:return 13;case 81:case 82:return 14;case 84:case 85:case 86:return 15;case 83:return 16;case 87:case 88:return 18;case 68:case 66:case 95:return 20}return 0}function fs(r,i){switch(i.kind){case 1:{if(i.name.identifier.text==r)return!0;let e=i.typeArguments;if(e){for(let t=0,n=e.length;t<n;t++)if(fs(r,e[t]))return!0}break}case 2:{let e=i;if(fs(r,e.returnType))return!0;let t=e.parameters;for(let n=0,s=t.length;n<s;n++)if(fs(r,t[n].type))return!0;break}case 3:{let e=i.elements;for(let t=0,n=e.length;t<n;t++)if(fs(r,e[t]))return!0;break}default:assert(!1)}return!1}var Yg=16,Vi=Yg-1,fo=class{constructor(i,e,t,n,s){this.localFile=i;this.localIdentifier=e;this.foreignIdentifier=t;this.foreignPath=n;this.foreignPathAlt=s}},ho=class{constructor(i,e,t,n){this.localIdentifier=i;this.foreignIdentifier=e;this.foreignPath=t;this.foreignPathAlt=n}},Pp=class{constructor(i,e,t){this.foreignPath=i;this.foreignPathAlt=e;this.pathLiteral=t}},we=(K=>(K[K.Invalid=0]="Invalid",K[K.IndexedGet=1]="IndexedGet",K[K.IndexedSet=2]="IndexedSet",K[K.UncheckedIndexedGet=3]="UncheckedIndexedGet",K[K.UncheckedIndexedSet=4]="UncheckedIndexedSet",K[K.Add=5]="Add",K[K.Sub=6]="Sub",K[K.Mul=7]="Mul",K[K.Div=8]="Div",K[K.Rem=9]="Rem",K[K.Pow=10]="Pow",K[K.BitwiseAnd=11]="BitwiseAnd",K[K.BitwiseOr=12]="BitwiseOr",K[K.BitwiseXor=13]="BitwiseXor",K[K.BitwiseShl=14]="BitwiseShl",K[K.BitwiseShr=15]="BitwiseShr",K[K.BitwiseShrU=16]="BitwiseShrU",K[K.Eq=17]="Eq",K[K.Ne=18]="Ne",K[K.Gt=19]="Gt",K[K.Ge=20]="Ge",K[K.Lt=21]="Lt",K[K.Le=22]="Le",K[K.Plus=23]="Plus",K[K.Minus=24]="Minus",K[K.Not=25]="Not",K[K.BitwiseNot=26]="BitwiseNot",K[K.PrefixInc=27]="PrefixInc",K[K.PrefixDec=28]="PrefixDec",K[K.PostfixInc=29]="PostfixInc",K[K.PostfixDec=30]="PostfixDec",K))(we||{});(n=>{function r(s,a){switch(assert(a.length),s){case 2:case 3:{switch(a.charCodeAt(0)){case 91:{if(a=="[]")return 1;if(a=="[]=")return 2;break}case 123:{if(a=="{}")return 3;if(a=="{}=")return 4;break}case 43:{if(a=="+")return 5;break}case 45:{if(a=="-")return 6;break}case 42:{if(a=="*")return 7;if(a=="**")return 10;break}case 47:{if(a=="/")return 8;break}case 37:{if(a=="%")return 9;break}case 38:{if(a=="&")return 11;break}case 124:{if(a=="|")return 12;break}case 94:{if(a=="^")return 13;break}case 61:{if(a=="==")return 17;break}case 33:{if(a=="!=")return 18;break}case 62:{if(a==">")return 19;if(a==">=")return 20;if(a==">>")return 15;if(a==">>>")return 16;break}case 60:{if(a=="<")return 21;if(a=="<=")return 22;if(a=="<<")return 14;break}}break}case 4:{switch(a.charCodeAt(0)){case 43:{if(a=="+")return 23;if(a=="++")return 27;break}case 45:{if(a=="-")return 24;if(a=="--")return 28;break}case 33:{if(a=="!")return 25;break}case 126:{if(a=="~")return 26;break}}break}case 5:{switch(a.charCodeAt(0)){case 43:{if(a=="++")return 29;break}case 45:{if(a=="--")return 30;break}}break}}return 0}n.fromDecorator=r;function i(s){switch(s){case 81:case 102:return 5;case 82:case 103:return 6;case 84:case 104:return 7;case 85:case 106:return 8;case 86:case 107:return 9;case 83:case 105:return 10;case 92:case 111:return 11;case 93:case 112:return 12;case 94:case 113:return 13;case 89:case 108:return 14;case 90:case 109:return 15;case 91:case 110:return 16;case 76:case 78:return 17;case 77:case 79:return 18;case 73:return 19;case 75:return 20;case 72:return 21;case 74:return 22}return 0}n.fromBinaryToken=i;function e(s){switch(s){case 81:return 23;case 82:return 24;case 95:return 25;case 96:return 26;case 87:return 27;case 88:return 28}return 0}n.fromUnaryPrefixToken=e;function t(s){switch(s){case 87:return 29;case 88:return 30}return 0}n.fromUnaryPostfixToken=t})(we||={});var ms=class extends Je{constructor(e,t=null){super(t);this.options=e;this.sources=[];this.diagnosticsOffset=0;this.nextClassId=0;this.nextSignatureId=0;this.initialized=!1;this.filesByName=new Map;this.elementsByName=new Map;this.elementsByDeclaration=new Map;this.instancesByName=new Map;this.mainFunction=null;this.daemonClass=null;this.wrapperClasses=new Map;this.managedClasses=new Map;this.uniqueSignatures=new Map;this.moduleImports=new Map;this._arrayBufferViewInstance=null;this._arrayBufferInstance=null;this._arrayPrototype=null;this._staticArrayPrototype=null;this._setPrototype=null;this._mapPrototype=null;this._functionPrototype=null;this._int8ArrayPrototype=null;this._int16ArrayPrototype=null;this._int32ArrayPrototype=null;this._int64ArrayPrototype=null;this._uint8ArrayPrototype=null;this._uint8ClampedArrayPrototype=null;this._uint16ArrayPrototype=null;this._uint32ArrayPrototype=null;this._uint64ArrayPrototype=null;this._float32ArrayPrototype=null;this._float64ArrayPrototype=null;this._stringInstance=null;this._errorInstance=null;this._regexpInstance=null;this._objectPrototype=null;this._objectInstance=null;this._templateStringsArrayInstance=null;this._allocInstance=null;this._reallocInstance=null;this._freeInstance=null;this._newInstance=null;this._renewInstance=null;this._linkInstance=null;this._collectInstance=null;this._visitInstance=null;this._newBufferInstance=null;this._newArrayInstance=null;this._BLOCKInstance=null;this._OBJECTInstance=null;this.nativeDummySignature=null;this.module=Ot.create(e.stackSize>0,e.sizeTypeRef),this.parser=new hs(this.diagnostics,this.sources),this.resolver=new as(this);let n=new bs(this,fe.native);this.nativeFile=n,this.filesByName.set(n.internalName,n),this.parser.options=this.options}get arrayBufferViewInstance(){let e=this._arrayBufferViewInstance;return e||(this._arrayBufferViewInstance=e=this.requireClass(P.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(P.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(P.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(P.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(P.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(P.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(P.Function,6)),e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(P.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(P.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(P.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(P.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(P.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(P.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(P.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(P.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(P.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(P.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(P.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(P.String)),e}get errorInstance(){let e=this._errorInstance;return e||(this._errorInstance=e=this.requireClass(P.Error)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(P.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(P.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(P.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(P.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(P.abort);return!e||e.kind!=4?null:this.resolver.resolveFunction(e,null)}get allocInstance(){let e=this._allocInstance;return e||(this._allocInstance=e=this.requireFunction(P.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(P.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(P.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(P.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(P.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(P.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(P.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(P.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(P.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(P.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(P.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(P.OBJECT)),e}getSource(e){let t=this.sources;for(let n=0;n<t.length;++n){let s=t[n];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+Vi&~Vi}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let t=pp(e);if(t){let n=this.instancesByName;if(n.has(t)){let s=assert(n.get(t));if(s.kind==5)return s}}return null}computeBlockStart(e){let t=this.blockOverhead;return(e+t+Vi&~Vi)-t}computeBlockStart64(e){let t=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,t),Yg),t)}computeBlockSize(e,t){t&&(e+=this.objectOverhead);let n=this.computeBlockStart(e),s=this.blockOverhead,a=(3*this.options.usizeType.byteSize+s+Vi&~Vi)-s;n<a&&(n=a);let l=1<<30;if(n>=l||(n&3)!=0)throw new Error("invalid block size");return n}makeNativeVariableDeclaration(e,t=0){let n=fe.native.range;return z.createVariableDeclaration(z.createIdentifierExpression(e,n),null,t,null,null,n)}makeNativeTypeDeclaration(e,t=0){let n=fe.native.range,s=z.createIdentifierExpression(e,n);return z.createTypeDeclaration(s,null,t,null,z.createOmittedType(n),n)}makeNativeFunctionDeclaration(e,t=0){let n=fe.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=z.createFunctionType([],z.createNamedType(z.createSimpleTypeName(P.void_,n),null,!1,n),null,!1,n)),z.createFunctionDeclaration(z.createIdentifierExpression(e,n),null,t,null,s,null,0,n)}makeNativeNamespaceDeclaration(e,t=0){let n=fe.native.range;return z.createNamespaceDeclaration(z.createIdentifierExpression(e,n),null,t,[],n)}makeNativeFunction(e,t,n=this.nativeFile,s=0,a=0){return new St(e,new tt(e,n,this.makeNativeFunctionDeclaration(e,s),a),null,t)}getElementByDeclaration(e){let t=this.elementsByDeclaration;return t.has(e)?assert(t.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0;let e=this.options;this.registerNativeType(P.i8,c.i8),this.registerNativeType(P.i16,c.i16),this.registerNativeType(P.i32,c.i32),this.registerNativeType(P.i64,c.i64),this.registerNativeType(P.isize,e.isizeType),this.registerNativeType(P.u8,c.u8),this.registerNativeType(P.u16,c.u16),this.registerNativeType(P.u32,c.u32),this.registerNativeType(P.u64,c.u64),this.registerNativeType(P.usize,e.usizeType),this.registerNativeType(P.bool,c.bool),this.registerNativeType(P.f32,c.f32),this.registerNativeType(P.f64,c.f64),this.registerNativeType(P.void_,c.void),this.registerNativeType(P.number,c.f64),this.registerNativeType(P.boolean,c.bool),this.nativeFile.add(P.native,new nt(P.native,this.nativeFile,this.makeNativeTypeDeclaration(P.native,65538),512)),this.nativeFile.add(P.indexof,new nt(P.indexof,this.nativeFile,this.makeNativeTypeDeclaration(P.indexof,65538),512)),this.nativeFile.add(P.valueof,new nt(P.valueof,this.nativeFile,this.makeNativeTypeDeclaration(P.valueof,65538),512)),this.nativeFile.add(P.returnof,new nt(P.returnof,this.nativeFile,this.makeNativeTypeDeclaration(P.returnof,65538),512)),this.nativeFile.add(P.nonnull,new nt(P.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(P.nonnull,65538),512)),this.registerNativeType(P.v128,c.v128),this.registerNativeType(P.ref_func,c.func),this.registerNativeType(P.ref_extern,c.extern),this.registerNativeType(P.ref_any,c.any),this.registerNativeType(P.ref_eq,c.eq),this.registerNativeType(P.ref_struct,c.struct),this.registerNativeType(P.ref_array,c.array),this.registerNativeType(P.ref_i31,c.i31),this.registerNativeType(P.ref_string,c.string),this.registerNativeType(P.ref_stringview_wtf8,c.stringview_wtf8),this.registerNativeType(P.ref_stringview_wtf16,c.stringview_wtf16),this.registerNativeType(P.ref_stringview_iter,c.stringview_iter),this.registerConstantInteger(P.ASC_TARGET,c.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(P.ASC_RUNTIME,c.i32,i64_new(e.runtime)),this.registerConstantInteger(P.ASC_NO_ASSERT,c.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(P.ASC_MEMORY_BASE,c.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(P.ASC_TABLE_BASE,c.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(P.ASC_OPTIMIZE_LEVEL,c.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(P.ASC_SHRINK_LEVEL,c.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(P.ASC_LOW_MEMORY_LIMIT,c.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(P.ASC_EXPORT_RUNTIME,c.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(P.ASC_VERSION_MAJOR,c.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(P.ASC_VERSION_MINOR,c.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(P.ASC_VERSION_PATCH,c.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(P.ASC_FEATURE_SIGN_EXTENSION,c.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MUTABLE_GLOBALS,c.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_NONTRAPPING_F2I,c.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_BULK_MEMORY,c.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_SIMD,c.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_THREADS,c.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_EXCEPTION_HANDLING,c.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_TAIL_CALLS,c.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_REFERENCE_TYPES,c.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MULTI_VALUE,c.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_GC,c.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MEMORY64,c.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_RELAXED_SIMD,c.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_EXTENDED_CONST,c.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_STRINGREF,c.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_SHARED_EVERYTHING,c.bool,i64_new(e.hasFeature(32768)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_CLOSURES,c.bool,i64_new(e.hasFeature(65536)?1:0,0));let t=new Array,n=new Map,s=new Map,a=new Array,l=new Array;for(let u=0,p=this.sources.length;u<p;++u){let _=this.sources[u],f=new bs(this,_);this.filesByName.set(f.internalName,f);let d=_.statements;for(let h=0,g=d.length;h<g;++h){let m=d[h];switch(m.kind){case 36:{this.initializeExports(m,f,n,s);break}case 37:{this.initializeExportDefault(m,f,a,l);break}case 43:{this.initializeImports(m,f,t,n);break}case 48:{this.initializeVariables(m,f);break}case 52:{this.initializeClass(m,f,a,l);break}case 53:{this.initializeEnum(m,f);break}case 56:{this.initializeFunction(m,f);break}case 58:{this.initializeInterface(m,f,a);break}case 60:{this.initializeNamespace(m,f,a,l);break}case 61:{this.initializeTypeDefinition(m,f);break}}}}for(let u=Map_keys(s),p=0,_=u.length;p<_;++p){let f=u[p],d=assert(s.get(f));for(let h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=this.lookupForeignFile(m.foreignPath,m.foreignPathAlt);if(!T){this.error(6054,m.pathLiteral.range,m.pathLiteral.value);continue}f.ensureExportStar(T)}}do{let u=0,p=!1;for(;u<t.length;){let _=t[u],f=_.localIdentifier,d=_.foreignIdentifier,h=assert(this.lookupForeignFile(_.foreignPath,_.foreignPathAlt));if(d){let g=this.lookupForeign(d.text,h,n);g?(_.localFile.add(f.text,g,f),t.splice(u,1),p=!0):++u}else{let g=_.localFile,m=f.text;g.add(m,h.asAliasNamespace(m,g,f),f),t.splice(u,1),p=!0}}if(!p){for(let _=0,f=t.length;_<f;++_){let d=t[_],h=d.foreignIdentifier;h&&this.error(2305,h.range,d.foreignPath,h.text)}break}}while(!0);for(let u=Map_keys(n),p=0,_=u.length;p<_;++p){let f=unchecked(u[p]),d=assert(n.get(f));for(let h=Map_keys(d),g=0,m=h.length;g<m;++g){let T=unchecked(h[g]),S=assert(d.get(T)),E=S.localIdentifier.text,F=S.foreignPath;if(F){let k=assert(this.lookupForeignFile(F,assert(S.foreignPathAlt))),R=this.lookupForeign(E,k,n);R?f.ensureExport(T,R):this.error(2305,S.localIdentifier.range,F,E)}else{let k=f.getMember(E);if(k)f.ensureExport(T,k);else{let R=this.lookup(E);R&&gs(R.kind)?f.ensureExport(T,R):this.error(2305,S.foreignIdentifier.range,f.internalName,S.foreignIdentifier.text)}}}}assert(this.objectInstance.id==0),assert(this.arrayBufferInstance.id==1),assert(this.stringInstance.id==2),assert(this.arrayBufferViewInstance.id==3),this.registerWrapperClass(c.i8,P.I8),this.registerWrapperClass(c.i16,P.I16),this.registerWrapperClass(c.i32,P.I32),this.registerWrapperClass(c.i64,P.I64),this.registerWrapperClass(e.isizeType,P.Isize),this.registerWrapperClass(c.u8,P.U8),this.registerWrapperClass(c.u16,P.U16),this.registerWrapperClass(c.u32,P.U32),this.registerWrapperClass(c.u64,P.U64),this.registerWrapperClass(e.usizeType,P.Usize),this.registerWrapperClass(c.bool,P.Bool),this.registerWrapperClass(c.f32,P.F32),this.registerWrapperClass(c.f64,P.F64),e.hasFeature(16)&&this.registerWrapperClass(c.v128,P.V128),e.hasFeature(256)&&(this.registerWrapperClass(c.func,P.RefFunc),this.registerWrapperClass(c.extern,P.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(c.any,P.RefAny),this.registerWrapperClass(c.eq,P.RefEq),this.registerWrapperClass(c.struct,P.RefStruct),this.registerWrapperClass(c.array,P.RefArray),this.registerWrapperClass(c.i31,P.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(c.string,P.RefString));let o=this.resolver;for(let u=0,p=a.length;u<p;++u){let _=a[u],f=assert(_.extendsNode),d=o.resolveTypeName(f.name,null,_.parent);if(d){if(_.kind==6)if(d.kind==6){let h=d;h.hasDecorator(32)&&this.error(211,f.range,h.identifierNode.text),h.hasDecorator(16)!=_.hasDecorator(16)&&this.error(207,ce.join(_.identifierNode.range,f.range)),_.extends(h)?this.error(2506,h.identifierNode.range,h.identifierNode.text):_.basePrototype=h}else this.error(1311,f.range);else if(_.kind==8)if(d.kind==8){let h=d;_.extends(h)?this.error(2506,h.identifierNode.range,h.identifierNode.text):_.basePrototype=h}else this.error(2312,f.range)}}for(let u=0,p=a.length;u<p;u++){let _=a[u],f=_.instanceMembers;if(f){let d=Map_values(f);for(let h=0,g=d.length;h<g;h++){let m=d[h],T=m.declaration;if(T.is(8192)){let S=_.basePrototype,E=!1;for(;S;){let F=S.instanceMembers;if(F&&F.has(m.name)){E=!0;break}S=S.basePrototype}if(!E){let F=assert(_.basePrototype);this.error(4117,T.name.range,F.name)}}}}}for(let u=0,p=l.length;u<p;++u){let _=l[u],f=assert(_.implementsNodes);for(let d=0,h=f.length;d<h;++d){let g=f[d],m=o.resolveTypeName(g.name,null,_.parent);if(m)if(m.kind==8){let T=m,S=_.interfacePrototypes;S||(_.interfacePrototypes=S=new Array),S.push(T)}else this.error(2422,g.range)}}for(let u=0,p=a.length;u<p;++u){let _=a[u],f=_.basePrototype;f&&this.processOverrides(_,f)}for(let u=0,p=l.length;u<p;++u){let _=l[u],f=_.basePrototype,d=_.interfacePrototypes;if(f&&this.processOverrides(_,f),d)for(let h=0,g=d.length;h<g;++h)this.processOverrides(_,d[h])}{let u=e.globalAliases;u||(u=new Map),u.has(P.abort)||u.set(P.abort,y.abort),u.has(P.trace)||u.set(P.trace,y.trace),u.has(P.seed)||u.set(P.seed,y.seed),u.has(P.Math)||u.set(P.Math,P.NativeMath),u.has(P.Mathf)||u.set(P.Mathf,P.NativeMathf);for(let p=Map_keys(u),_=0,f=p.length;_<f;++_){let d=unchecked(p[_]),h=changetype(u.get(d));if(assert(h!=null),!h.length){this.elementsByName.delete(d);continue}let g=h.charCodeAt(0);if(g>=48&&g<=57)this.registerConstantInteger(d,c.i32,i64_new(parseInt(h,10)));else{let m=this.elementsByName;m.has(h)?m.set(d,assert(m.get(h))):this.error(111,null,h)}}}for(let u=Map_values(this.filesByName),p=0,_=u.length;p<_;++p){let f=unchecked(u[p]);f.source.sourceKind==1&&this.markModuleExports(f)}this.enforceStreamServiceExclusion()}enforceStreamServiceExclusion(){if(this.options.targetMode!="cold")for(let e=0,t=this.sources.length;e<t;++e){let n=this.sources[e];if(n.sourceKind!=1&&n.sourceKind!=0)continue;let s=!1,a=null,l=n.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind==52){let _=p;if(Ue(41,_.decorators)&&(s=!0),!a){let d=Ue(17,_.decorators);d&&(a=d)}let f=_.members;for(let d=0,h=f.length;d<h;++d){let g=f[d];if(g.kind==59&&!a){let m=Ue(16,g.decorators);m&&(a=m)}}}else if(p.kind==56&&!a){let _=Ue(16,p.decorators);_&&(a=_)}}s&&a!=null&&this.error(9003,a.range)}}processOverrides(e,t){let n=e.instanceMembers;if(n){let s=Map_values(n),a=null;do{let l=t.instanceMembers;if(l)for(let p=0,_=s.length;p<_;++p){let f=s[p];if(l.has(f.name)){let d=assert(l.get(f.name));this.doProcessOverride(e,f,t,d)}}let o=t.interfacePrototypes;if(o)for(let p=0,_=o.length;p<_;++p){let f=o[p];f!=t&&this.processOverrides(e,f)}let u=t.basePrototype;if(!u||(a||(a=new Set),a.add(t),a.has(u)))break;t=u}while(!0)}}doProcessOverride(e,t,n,s){if(!t.isAny(524800))if(t.kind==4&&s.kind==4){let a=t,l=s,o=a.is(65536),u=l.is(65536);if(o!=u){this.errorRelated(242,a.identifierNode.range,l.identifierNode.range,a.name);return}a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),s.set(268435456);let p=l.unboundOverrides;p||(l.unboundOverrides=p=new Set),p.add(t);let _=l.instances;if(_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d)f[d].set(268435456)}else if(t.kind==10&&s.kind==10){let a=t,l=s;if(a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),l.parent.kind!=8){let p=a.isField;if(p!=l.isField){p?this.errorRelated(2610,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName):this.errorRelated(2611,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName);return}else if(p)return}l.set(268435456);let o=l.getterPrototype;if(o){o.set(268435456);let p=a.getterPrototype;if(p){let f=o.unboundOverrides;f||(o.unboundOverrides=f=new Set),f.add(p)}let _=o.instances;if(_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d)f[d].set(268435456)}let u=l.setterPrototype;if(u&&a.setterPrototype){u.set(268435456);let p=a.setterPrototype;if(p){let f=u.unboundOverrides;f||(u.unboundOverrides=f=new Set),f.add(p)}let _=u.instances;if(_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d)f[d].set(268435456)}}else this.errorRelated(2416,t.identifierNode.range,s.identifierNode.range,t.name,e.internalName,n.internalName)}lookup(e){let t=this.elementsByName;return t.has(e)?assert(t.get(e)):null}require(e,t){let n=this.lookup(e);if(!n)throw this.error(111,null,e),new Error(`Missing standard library component: ${e}`);if(n.kind!=t)throw this.error(111,null,e),new Error(`Invalid standard library component kind: ${e}`);return n}requireGlobal(e){return this.require(e,0)}requireClass(e){let t=this.require(e,6),n=this.resolver.resolveClass(t,null);if(!n)throw new Error(`Invalid standard library class: ${e}`);return n}requireFunction(e,t=null){let n=this.require(e,4),s=this.resolver.resolveFunction(n,t);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let t=e.exports;if(t)for(let s=Map_values(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.markModuleExports(n[s])}markModuleExport(e){switch(e.set(1048576),e.kind){case 6:{let n=e.instanceMembers;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}break}case 10:{let n=e,s=n.getterPrototype;s&&this.markModuleExport(s);let a=n.setterPrototype;a&&this.markModuleExport(a);break}case 11:case 5:case 7:assert(!1)}let t=e.members;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);this.markModuleExport(l)}}markModuleImport(e,t,n){n.set(2097152);let s=this.moduleImports,a;s.has(e)?a=assert(s.get(e)):(a=new Map,s.set(e,a)),a.set(t,n)}registerNativeType(e,t){let n=new nt(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);n.setType(t),this.nativeFile.add(e,n)}registerWrapperClass(e,t){let n=this.wrapperClasses;assert(!e.isInternalReference&&!n.has(e));let s=assert(this.lookup(t));assert(s.kind==6);let a=assert(this.resolver.resolveClass(s,null));a.wrappedType=e,n.set(e,a)}registerConstantInteger(e,t,n){assert(t.isIntegerInclReference);let s=new zr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(n,t),this.nativeFile.add(e,s)}registerConstantFloat(e,t,n){assert(t.isFloatValue);let s=new zr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(n,t),this.nativeFile.add(e,s)}ensureGlobal(e,t){let n=this.elementsByName;if(n.has(e)){let s=assert(n.get(e));if(s!=t){let a=Mp(s,t);if(!a)return gs(s.kind)?this.errorRelated(2300,t.identifierNode.range,s.declaration.name.range,e):this.error(2300,t.identifierNode.range,e),t;t=a}}return n.set(e,t),t}lookupForeignFile(e,t){let n=this.filesByName;return n.has(e)?assert(n.get(e)):n.has(t)?assert(n.get(t)):null}lookupForeign(e,t,n){do{let a=t.lookupExport(e);if(a)return a;if(n.has(t)){let l=assert(n.get(t));if(l.has(e)){let o=assert(l.get(e)),u=o.foreignPath;if(u){let p=this.lookupForeignFile(u,assert(o.foreignPathAlt));if(!p)return null;e=o.localIdentifier.text,t=p;continue}if(a=t.getMember(o.localIdentifier.text),a)return a}}break}while(!0);let s=t.exportsStar;if(s)for(let a=0,l=s.length;a<l;++a){let o=this.lookupForeign(e,s[a],n);if(o)return o}return null}checkDecorators(e,t){let n=0;if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s],o=it.fromNode(l.name),u=cr.fromKind(o);if(u)if(t&u)n&u?this.error(213,l.range):n|=u;else{let p=this.options.targetMode;p=="hot"&&(u==4194304||u==8388608)?this.error(9e3,l.range,l.name.range.toString()):p=="cold"&&(u==65536||u==131072||u==2097152||u==16777216||u==32768||u==16384)?this.error(9001,l.range,l.name.range.toString()):this.error(212,l.range,l.name.range.toString())}}return n}checkFeatureEnabled(e,t){return this.options.hasFeature(e)?!0:(this.error(103,t.range,mi(e)),!1)}checkTypeSupported(e,t){switch(e.kind){case 13:return this.checkFeatureEnabled(16,t);case 15:case 14:return e.is(512)?this.checkFeatureEnabled(256,t):this.checkFeatureEnabled(1024,t);case 16:case 17:case 18:case 19:case 20:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(1024,t);case 21:case 22:case 23:case 24:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(16384,t)}let n=e.getClass();if(n)do{let s=n.typeArguments;if(s){for(let a=0,l=s.length;a<l;++a)if(!this.checkTypeSupported(s[a],t))return!1}n=n.base}while(n);else{let s=e.getSignature();if(s){let a=s.thisType;if(a&&!this.checkTypeSupported(a,t))return!1;let l=s.parameterTypes;for(let u=0,p=l.length;u<p;++u)if(!this.checkTypeSupported(l[u],t))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,t))return!1}}return!0}initializeClass(e,t,n,s){let a=e.name.text,l=this.options.targetMode,o=270385;l!="cold"&&(o|=2195456),l=="cold"&&(o|=4194304);let u=new Ts(a,t,e,this.checkDecorators(e.decorators,o));if(!t.add(a,u))return null;u.hasDecorator(4194304)&&(this.daemonClass?this.error(9002,e.range):this.daemonClass=u);let p=e.implementsTypes;if(p){let f=p.length;f&&(u.hasDecorator(16)?this.error(208,ce.join(e.name.range,p[f-1].range)):s.push(u))}e.extendsType?n.push(u):!u.hasDecorator(16)&&u.internalName!=y.Object&&(u.implicitlyExtendsObject=!0);let _=e.members;for(let f=0,d=_.length;f<d;++f){let h=_[f];switch(h.kind){case 55:{this.initializeField(h,u);break}case 59:{let g=h;if(g.is(128)&&g.is(65536)&&this.error(241,g.name.range,g.name.text),h.isAny(6144))this.initializeProperty(g,u);else{let m=this.initializeMethod(g,u);m&&g.name.kind==27&&(u.constructorPrototype=m)}break}case 66:break;default:assert(!1)}}return u}initializeField(e,t){let n=e.name.text,s=e.decorators,a,l=2048;if(l|=524288,t.is(32768)&&(l|=128),e.is(32)){if(assert(t.kind!=8),l|=1024,e.is(64)&&(l|=64),a=new zr(n,t,this.checkDecorators(s,l),e),!t.add(n,a))return}else if(assert(!e.isAny(6272)),a=Oi.forField(n,t,e,this.checkDecorators(s,l)),!t.addInstance(n,a))return}initializeMethod(e,t){let n=e.name.text,s=e.is(32),a=this.options.targetMode,l=2112;l|=1048576,e.is(65536)||(l|=14,a!="cold"&&(l|=16924672),a=="cold"&&(l|=8388608)),t.is(32768)&&(l|=128),e.range.source.isLibrary&&(l|=512);let o=new tt(n,t,e,this.checkDecorators(e.decorators,l));if(o.hasDecorator(512)&&!x.has(o.internalName)&&this.error(100,e.range,`Builtin '${o.internalName}'`),o.hasDecorator(8388608)&&!t.hasDecorator(4194304)){let u=Ue(40,e.decorators);this.error(9004,u?u.range:e.range)}if(s){if(assert(e.name.kind!=27),!t.add(n,o))return null}else if(!t.addInstance(n,o))return null;return this.checkOperatorOverloads(e.decorators,o,t),o}checkOperatorOverloads(e,t,n){if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s];switch(l.decoratorKind){case 2:case 3:case 4:case 5:{let o=l.args,u=o?o.length:0;if(u==1){let p=l.args[0];if(p.isLiteralKind(2)){let _=p.value,f=we.fromDecorator(l.decoratorKind,_);if(f==0)this.error(224,p.range,_);else{let d=n.operatorOverloadPrototypes;d.has(f)?this.error(2393,p.range):(t.operatorKind=f,d.set(f,t))}}else this.error(1141,p.range)}else this.error(2554,l.range,"1",u.toString())}}}}ensureProperty(e,t){let n=e.name.text;if(e.is(32)){let s=t.members;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Oi(n,t,e);return t.add(n,a)?a:null}}else{let s=t.instanceMembers;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Oi(n,t,e);return t.addInstance(n,a)?a:null}}return this.error(2718,e.name.range,n),null}initializeProperty(e,t){let n=this.ensureProperty(e,t);if(!n)return;let s=e.name.text,a=e.is(2048);if(a){if(n.getterPrototype){this.error(2718,e.name.range,s);return}}else if(n.setterPrototype){this.error(2718,e.name.range,s);return}let l=new tt((a?Aa:va)+s,n.parent,e,this.checkDecorators(e.decorators,2112));a?n.getterPrototype=l:n.setterPrototype=l}initializeEnum(e,t){let n=e.name.text,s=new mo(n,t,e,this.checkDecorators(e.decorators,1089));if(!t.add(n,s))return null;let a=e.values;for(let l=0,o=a.length;l<o;++l)this.initializeEnumValue(a[l],s);return s}initializeEnumValue(e,t){let n=e.name.text,s=new yo(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeExports(e,t,n,s){let a=e.members;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeExport(a[l],t,e.internalPath,n);else{let l;s.has(t)?l=assert(s.get(t)):s.set(t,l=[]);let o=e.internalPath;l.push(new Pp(o,o.endsWith(qe)?o.substring(0,o.length-qe.length):o+qe,assert(e.path)))}}initializeExport(e,t,n,s){let a=e.localName.text,l=e.exportedName.text,o=t.lookupExport(l);if(o){this.error(2484,e.exportedName.range,l);return}if(n==null)if(o=t.getMember(a))t.ensureExport(l,o);else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new ho(e.localName,e.exportedName,null,null))}else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new ho(e.localName,e.exportedName,n,n.endsWith(qe)?n.substring(0,n.length-qe.length):n+qe))}}initializeExportDefault(e,t,n,s){let a=e.declaration,l=null;switch(a.kind){case 53:{l=this.initializeEnum(a,t);break}case 56:{l=this.initializeFunction(a,t);break}case 52:{l=this.initializeClass(a,t,n,s);break}case 58:{l=this.initializeInterface(a,t,n);break}case 60:{l=this.initializeNamespace(a,t,n,s);break}default:assert(!1)}if(l){let o=t.exports;if(!o)t.exports=o=new Map;else if(o.has("default")){let u=assert(o.get("default"));this.errorRelated(2300,a.name.range,u.declaration.name.range,"default");return}o.set("default",l)}}initializeImports(e,t,n,s){let a=e.declarations;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeImport(a[l],t,e.internalPath,n,s);else{let l=e.namespaceName;l&&n.push(new fo(t,l,null,e.internalPath,e.internalPath+qe))}}initializeImport(e,t,n,s,a){let l=n.endsWith(qe)?n.substring(0,n.length-qe.length):n+qe,o=this.lookupForeignFile(n,l);if(o){let u=this.lookupForeign(e.foreignName.text,o,a);if(u){t.add(e.name.text,u,e.name);return}}s.push(new fo(t,e.name,e.foreignName,n,l))}initializeFunction(e,t){let n=e.name.text,s=2048;s|=1048576,e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||t.kind!=6&&(s|=1,e.is(65536)||(s|=4096)),e.is(65536)||(s|=16384),e.range.source.isLibrary&&(s|=512);let a=new tt(n,t,e,this.checkDecorators(e.decorators,s));return a.hasDecorator(512)&&!x.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),a.hasDecorator(4096)&&(this.mainFunction?this.error(213,e.range):this.mainFunction=a),t.add(n,a)?a:null}initializeInterface(e,t,n){let s=e.name.text,a=new go(s,t,e,this.checkDecorators(e.decorators,1));if(!t.add(s,a))return null;e.extendsType&&n.push(a);let l=e.members;for(let o=0,u=l.length;o<u;++o){let p=l[o];switch(p.kind){case 55:{this.initializeFieldAsProperty(p,a);break}case 59:{let _=p;_.is(65536)&&this.error(241,_.name.range,_.name.text),p.isAny(6144)?this.initializeProperty(_,a):this.initializeMethod(_,a);break}default:assert(!1)}}return a}initializeFieldAsProperty(e,t){let n=e.initializer;n&&this.error(1246,n.range);let s=e.type;s||(s=z.createOmittedType(e.name.range.atEnd)),this.initializeProperty(z.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,z.createFunctionType([],s,null,!1,e.range),null,e.range),t),e.is(64)||this.initializeProperty(z.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,z.createFunctionType([z.createParameter(0,e.name,s,null,e.name.range)],z.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),t)}initializeNamespace(e,t,n,s){let a=e.name.text,l=new xs(a,t,e,this.checkDecorators(e.decorators,1));if(!t.add(a,l))return null;let o=assert(t.getMember(a)),u=e.members;for(let p=0,_=u.length;p<_;++p){let f=u[p];switch(f.kind){case 52:{this.initializeClass(f,l,n,s);break}case 53:{this.initializeEnum(f,l);break}case 56:{this.initializeFunction(f,l);break}case 58:{this.initializeInterface(f,l,n);break}case 60:{this.initializeNamespace(f,l,n,s);break}case 61:{this.initializeTypeDefinition(f,l);break}case 48:{this.initializeVariables(f,l);break}default:assert(!1)}}return l!=o&&Wt(l,o),o}initializeTypeDefinition(e,t){let n=e.name.text,s=new nt(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeVariables(e,t){let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.name.text,u=1025;l.is(32768)&&(u|=128),l.is(8)&&(u|=64),l.range.source.isLibrary&&(u|=512);let p=new zr(o,t,this.checkDecorators(l.decorators,u),l);p.hasDecorator(512)&&!mt.has(p.internalName)&&this.error(100,l.range,`Builtin '${p.internalName}'`),t.add(o,p)}}},vt=(m=>(m[m.Global=0]="Global",m[m.Local=1]="Local",m[m.Enum=2]="Enum",m[m.EnumValue=3]="EnumValue",m[m.FunctionPrototype=4]="FunctionPrototype",m[m.Function=5]="Function",m[m.ClassPrototype=6]="ClassPrototype",m[m.Class=7]="Class",m[m.InterfacePrototype=8]="InterfacePrototype",m[m.Interface=9]="Interface",m[m.PropertyPrototype=10]="PropertyPrototype",m[m.Property=11]="Property",m[m.Namespace=12]="Namespace",m[m.File=13]="File",m[m.TypeDefinition=14]="TypeDefinition",m[m.IndexSignature=15]="IndexSignature",m))(vt||{}),cr=(G=>(G[G.None=0]="None",G[G.Global=1]="Global",G[G.OperatorBinary=2]="OperatorBinary",G[G.OperatorPrefix=4]="OperatorPrefix",G[G.OperatorPostfix=8]="OperatorPostfix",G[G.Unmanaged=16]="Unmanaged",G[G.Final=32]="Final",G[G.Inline=64]="Inline",G[G.External=128]="External",G[G.ExternalJs=256]="ExternalJs",G[G.Builtin=512]="Builtin",G[G.Lazy=1024]="Lazy",G[G.Unsafe=2048]="Unsafe",G[G.Main=4096]="Main",G[G.Data=8192]="Data",G[G.Remote=16384]="Remote",G[G.Service=32768]="Service",G[G.Rest=65536]="Rest",G[G.Route=131072]="Route",G[G.Database=262144]="Database",G[G.Collection=524288]="Collection",G[G.DbFunction=1048576]="DbFunction",G[G.Stream=2097152]="Stream",G[G.Daemon=4194304]="Daemon",G[G.Scheduled=8388608]="Scheduled",G[G.StreamHook=16777216]="StreamHook",G))(cr||{});(i=>{function r(e){switch(e){case 1:return 1;case 2:case 3:return 2;case 4:return 4;case 5:return 8;case 6:return 16;case 7:return 32;case 8:return 64;case 9:return 128;case 10:return 256;case 11:return 512;case 12:return 1024;case 13:return 2048;case 14:return 4096;case 15:return 8192;case 16:return 16384;case 17:return 32768;case 18:return 65536;case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return 131072;case 31:return 262144;case 32:return 524288;case 33:case 34:case 35:case 36:case 38:return 1048576;case 41:return 2097152;case 39:return 4194304;case 40:return 8388608;case 42:case 43:case 44:case 45:return 16777216;default:return 0}}i.fromKind=r})(cr||={});var ys=class{constructor(i,e,t,n,s){this.kind=i;this.name=e;this.internalName=t;this.program=n;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=n,this.name=e,this.internalName=t,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let i=this;do if(i=i.parent,i.kind==13)return i;while(!0)}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}hasDecorator(i){return(this.decoratorFlags&i)==i}hasAnyDecorator(i){return(this.decoratorFlags&i)!=0}getMember(i){let e=this.members;return e&&e.has(i)?assert(e.get(i)):null}lookup(i,e=!1){return this.parent.lookup(i,e)}add(i,e,t=null){let n=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(i)){let l=assert(s.get(i));if(l.parent==this){let o=Mp(l,e);if(o)e=o;else{let u=t||e.identifierNode;return gs(l.kind)?this.program.errorRelated(2300,u.range,l.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(i,e);let a=this.program;return(e.kind!=4||!e.isBound)&&(a.elementsByName.set(e.internalName,e),a.elementsByDeclaration.set(n,e)),!0}get isPublic(){return!this.isAny(1536)}get isImplicitlyPublic(){return this.isPublic&&!this.is(256)}visibilityEquals(i){if(this.isPublic==i.isPublic)return!0;let e=1536;return(this.flags&e)==(i.flags&e)}visibilityNoLessThan(i){return this.isPublic?!0:this.is(512)?i.is(512):this.is(1024)?i.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let i=this.parent;switch(i.kind){case 7:case 9:return i}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},$g=new Set;function gs(r){return $g.has(r)}var ur=class extends ys{constructor(e,t,n,s,a,l){super(e,t,n,s,a);this.declaration=l;$g.add(e),this.declaration=l,this.flags=l.flags}get isDeclaredInLibrary(){return this.declaration.range.source.isLibrary}get identifierNode(){return this.declaration.name}get identifierAndSignatureRange(){let e=this.declaration,t=e.name;if(e.kind==56||e.kind==59){let n=e.signature;if(t.range.source==n.range.source)return ce.join(t.range,n.range)}return t.range}get decoratorNodes(){return this.declaration.decorators}},eb=new Set;function ro(r){return eb.has(r)}var jt=class extends ur{constructor(e,t,n,s,a,l){super(e,t,n,s,a,l);this.type=c.void;eb.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}},bs=class extends ys{constructor(e,t){super(13,t.normalizedPath,t.internalPath,e,null);this.source=t;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=t,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let n=this.program.makeNativeFunction(`start:${this.internalName}`,Xe.create(e,[],c.void),this);n.internalName=n.name,this.startFunction=n}add(e,t,n=null){return t.hasDecorator(1)&&(t=this.program.ensureGlobal(e,t)),super.add(e,t,n)?(t=assert(this.getMember(e)),t.is(2)&&!n&&this.ensureExport(t.name,t),!0):!1}getMember(e){let t=super.getMember(e);if(t)return t;let n=this.exportsStar;if(n){for(let s=0,a=n.length;s<a;++s)if(t=n[s].getMember(e))return t}return null}lookup(e,t=!1){let n=this.getMember(e);return n||this.program.lookup(e)}ensureExport(e,t){let n=this.exports;n||(this.exports=n=new Map),n.set(e,t),this.source.sourceKind==3&&this.program.ensureGlobal(e,t);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,t)}ensureExportStar(e){let t=this.exportsStar;if(!t)this.exportsStar=t=[];else if(t.includes(e))return;t.push(e)}lookupExport(e){let t=this.exports;if(t&&t.has(e))return assert(t.get(e));let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s){let l=n[s].lookupExport(e);if(l)return l}return null}asAliasNamespace(e,t,n){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=n;let a=new xs(e,t,s);return a.set(67108864),this.copyExportsToNamespace(a),this.aliasNamespaces.push(a),a}copyExportsToNamespace(e){let t=this.exports;if(t)for(let s=Map_keys(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(t.get(o));e.add(o,u)}let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)n[s].copyExportsToNamespace(e)}},nt=class extends jt{constructor(i,e,t,n=0){super(14,i,Ne(i,e,!1),e.program,e,t),this.decoratorFlags=n}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},xs=class extends ur{constructor(i,e,t,n=0){super(12,i,Ne(i,e,!1),e.program,e,t),this.decoratorFlags=n}lookup(i,e=!1){let t=this.getMember(i);return t||super.lookup(i,e)}},mo=class extends jt{constructor(e,t,n,s=0){super(2,e,Ne(e,t,!1),t.program,t,n);this.toStringFunctionName=null;this.decoratorFlags=s,this.setType(c.i32)}lookup(e,t=!1){let n=this.getMember(e);return n||super.lookup(e,t)}},Lp=(t=>(t[t.None=0]="None",t[t.Integer=1]="Integer",t[t.Float=2]="Float",t))(Lp||{}),Ur=class extends jt{constructor(e,t,n,s=n.program.makeNativeVariableDeclaration(t)){super(e,t,Ne(t,n,s.is(262144)),n.program,n,s);this.constantValueKind=0;this.constantIntegerValue=i64_zero;this.constantFloatValue=0;this.flags=s.flags}get typeNode(){return this.declaration.type}get initializerNode(){return this.declaration.initializer}setConstantIntegerValue(e,t){assert(t.isIntegerInclReference),this.type=t,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,t){assert(t.isFloatValue),this.type=t,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},yo=class extends Ur{constructor(e,t,n,s=0){super(3,e,t,n);this.isImmutable=!1;this.decoratorFlags=s,this.setType(c.i32)}get valueNode(){return this.declaration.initializer}},zr=class extends Ur{constructor(i,e,t,n=e.program.makeNativeVariableDeclaration(i)){super(0,i,e,n),this.decoratorFlags=t}},Bp=class{constructor(i,e,t=null){this.name=i;this.type=e;this.initializer=t}},Qe=class extends Ur{constructor(e,t,n,s,a=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,a);this.index=t;this.isCaptured=!1;this.envSlotIndex=-1;this.envOwner=null;this.wasAccessedAsLocal=!1;this.originalName=e,this.index=t,assert(n!=c.void),this.setType(n)}declaredByFlow(e){return this.parent==e.targetFunction}},tt=class r extends ur{constructor(e,t,n,s=0){super(4,e,Ne(e,t,n.is(262144)),t.program,t,n);this.operatorKind=0;this.instances=null;this.unboundOverrides=null;this.boundPrototypes=null;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get functionTypeNode(){return this.declaration.signature}get bodyNode(){return this.declaration.body}get arrowKind(){return this.declaration.arrowKind}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==59);let s=new r(this.name,e,n,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,t.set(e,s),s}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?assert(t.get(e)):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},St=class r extends jt{constructor(e,t,n,s,a=null){super(5,e,Ne(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.capturedLocals=null;this.envClass=null;this.envLocal=null;this.outerFunction=null;this.closureEnvLocal=null;this.needsCaptureRecompile=!1;this.nextBreakId=0;this.breakStack=null;this.prototype=t,this.typeArguments=n,this.signature=s,this.flags=t.flags|4194304,this.decoratorFlags=t.decoratorFlags,this.contextualTypeArguments=a,this.original=this;let l=t.program;this.type=s.type;let o=qt.createDefault(this);if(this.flow=o,!t.is(32768)){let u=0,p=s.thisType;if(p){let f=new Qe(P.this_,u++,p,this),d=this.flow.scopedLocals;d||(this.flow.scopedLocals=d=new Map),d.set(P.this_,f),this.localsByIndex[f.index]=f,o.setLocalFlag(f.index,8)}let _=s.parameterTypes;for(let f=0,d=_.length;f<d;++f){let h=_[f],g=this.getParameterName(f),m=new Qe(g,u++,h,this),T=this.flow.scopedLocals;T||(this.flow.scopedLocals=T=new Map),T.set(g,m),this.localsByIndex[m.index]=m,o.setLocalFlag(m.index,8)}}l.instancesByName.has(this.internalName)?(l.error(2393,t.declaration.name.range),this.set(16777216)):Np(l,this)}get needsEnvironment(){return this.capturedLocals!=null&&this.capturedLocals.size>0}getNonParameterLocalTypes(){let e=this.localsByIndex,t=this.signature,n=e.length,s=t.parameterTypes.length;t.thisType&&++s;let a=n-s,l=new Array(a);for(let o=0;o<a;++o)l[o]=e[s+o].type;return l}getParameterName(e){let t=this.declaration.signature.parameters;return t.length>e?t[e].name.text:tb(e)}newStub(e,t=this.signature.requiredParameters){let n=new r(this.original.name+wc+e,this.prototype,this.typeArguments,this.signature.clone(t),this.contextualTypeArguments);return n.original=this.original,n.set(this.flags&-8388609|134217728),n}addLocal(e,t=null,n=null){let s=this.localsByIndex,a=s.length,l=t??a.toString();n||(n=this.program.makeNativeVariableDeclaration(l));let o=new Qe(l,a,e,this,n);if(t){let u=this.flow,p=u.scopedLocals;if(p||(u.scopedLocals=p=new Map),p.has(t))throw new Error("duplicate local name");p.set(t,o)}return s[a]=o,o}lookup(e,t=!1){if(!t){let n=this.flow.scopedLocals;if(n&&n.has(e))return assert(n.get(e))}return super.lookup(e,t)}finalize(e,t){this.ref=t;let n=this.breakStack;assert(!n||!n.length),this.breakStack=null,this.addDebugInfo(e,t)}addDebugInfo(e,t){if(this.program.options.sourceMap){let n=this.debugLocations;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o)),p=u.source;e.setDebugLocation(t,o,p.debugInfoIndex,p.lineAt(u.start),p.columnAt()-1)}}if(this.program.options.debugInfo){let n=new Set,s=this.localsByIndex;for(let a=0,l=s.length;a<l;a++){let o=s[a].name;n.has(o)&&(o=`${o}|${a}`),n.add(o),e.setLocalName(t,a,o)}}}},Oi=class r extends ur{constructor(e,t,n){super(10,e,Ne(e,t,n.is(262144)),t.program,t,n);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,t,n,s){let a=fe.native.range,l=n.type;l||(l=z.createOmittedType(n.name.range.atEnd));let o=new Pr(n.name,n.decorators,n.flags|262144|2048,null,new wr([],l,null,!1,a),null,a),u=new Pr(n.name,n.decorators,n.flags|262144|4096,null,new wr([new Ri(0,n.name,l,null,a)],new ae(new ki(new xe("",!1,a),null,a),null,!1,a),null,!1,a),null,a),p=new r(e,t,o);return p.fieldDeclaration=n,p.decoratorFlags=s,p.getterPrototype=new tt(Aa+e,t,o,s),p.setterPrototype=new tt(va+e,t,u,s),p}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let t=this.getterPrototype;if(t){let s=t.declaration;if(s.kind==56)return s.signature.returnType}let n=this.setterPrototype;if(n){let s=n.declaration;if(s.kind==56){let a=s.signature.parameters;if(a.length)return a[0].type}}return null}get initializerNode(){let e=this.fieldDeclaration;return e?e.initializer:null}get parameterIndex(){let e=this.fieldDeclaration;return e?e.parameterIndex:-1}get thisType(){let e=this.parent;return assert(e.kind==7),e.type}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==59);let s=new r(this.name,e,n);s.flags=this.flags,s.fieldDeclaration=this.fieldDeclaration;let a=this.getterPrototype;a&&(s.getterPrototype=a.toBound(e));let l=this.setterPrototype;return l&&(s.setterPrototype=l.toBound(e)),t.set(e,s),s}},ls=class extends Ur{constructor(e,t){super(11,e.name,t,e.isField?assert(e.fieldDeclaration):z.createVariableDeclaration(e.identifierNode,null,e.flags&262144,null,null,e.identifierNode.range));this.getterInstance=null;this.setterInstance=null;this.memoryOffset=-1;this.prototype=e,this.flags=e.flags,this.decoratorFlags=e.decoratorFlags,this.is(262144)&&Np(this.program,this)}get isField(){return this.prototype.isField}checkVisibility(e){let t=this.getterInstance,n=this.setterInstance;t&&n&&!t.visibilityNoLessThan(n)&&e.errorRelated(2808,t.identifierNode.range,n.identifierNode.range,t.identifierNode.text)}},os=class extends jt{constructor(i){super(15,"[]",i.internalName+"[]",i.program,i,i.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(i){return this.parent.lookupOverload(1,i)}getSetterInstance(i){return this.parent.lookupOverload(2,i)}},Ts=class extends ur{constructor(e,t,n,s=0,a=!1){super(a?8:6,e,Ne(e,t,n.is(262144)),t.program,t,n);this.instanceMembers=null;this.basePrototype=null;this.interfacePrototypes=null;this.constructorPrototype=null;this.operatorOverloadPrototypes=new Map;this.instances=null;this.extenders=new Set;this.implicitlyExtendsObject=!1;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get extendsNode(){return this.declaration.extendsType}get implementsNodes(){return this.declaration.implementsTypes}get isBuiltinArray(){let e=this.program.arrayBufferViewInstance;return e&&this.extends(e.prototype)}extends(e){let t=this,n=new Set;do{if(n.has(t))break;if(n.add(t),t==e)return!0;t=t.basePrototype}while(t);return!1}addInstance(e,t){let n=t.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let a=assert(s.get(e)),l=Mp(a,t);if(!l)return gs(a.kind)?this.program.errorRelated(2300,t.identifierNode.range,a.declaration.name.range,t.identifierNode.text):this.program.error(2300,t.identifierNode.range,t.identifierNode.text),!1;t=l}return s.set(e,t),t.is(2)&&this.is(1048576)&&t.set(1048576),this.program.elementsByDeclaration.set(n,t),!0}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?t.get(e):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},lr=class extends jt{constructor(e,t,n=null,s=!1){super(s?9:7,e,Ne(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=0;this.constructorInstance=null;this.operatorOverloads=null;this.indexSignature=null;this._id=0;this.rttiFlags=0;this.wrappedType=null;this.extenders=null;this.implementers=null;this.didCheckFieldInitialization=!1;this.visitRef=0;this.prototype=t,this.flags=t.flags,this.decoratorFlags=t.decoratorFlags,this.typeArguments=n;let a=this.program,l=a.options.usizeType,o=new c(l.kind,l.flags&-129|256,l.size);if(o.classReference=this,this.setType(o),!this.hasDecorator(16)){let p=a.nextClassId++;this._id=p,a.managedClasses.set(p,this)}let u=t.typeParameterNodes;if(n){let p=n.length;if(!u||p!=u.length)throw new Error("type argument count mismatch");if(p){let _=this.contextualTypeArguments;_||(this.contextualTypeArguments=_=new Map);for(let f=0;f<p;++f)_.set(u[f].name.text,n[f])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");Np(a,this)}get id(){return this._id}get isBuiltinArray(){return this.prototype.isBuiltinArray}get isArrayLike(){if(this.isBuiltinArray)return!0;let e=this.getMember("length");return e?(e.kind==11&&e.getterInstance!=null||e.kind==10&&e.getterPrototype!=null)&&(this.lookupOverload(1)!=null||this.lookupOverload(3)!=null):!1}get isInterface(){return this.kind==9}static leastUpperBound(e,t){if(e==t)return e;let n=new Set;for(n.add(e),n.add(t);;){let s=e.base,a=t.base;if(!s&&!a)return null;if(s){if(n.has(s))return s;n.add(e=s)}if(a){if(n.has(a))return a;n.add(t=a)}}}setBase(e){assert(!this.base),this.base=e;let t=e.contextualTypeArguments;if(t){let a=this.contextualTypeArguments;for(let l=Map_keys(t),o=0,u=l.length;o<u;++o){let p=unchecked(l[o]),_=assert(t.get(p));a?a.has(p)||a.set(p,_):(this.contextualTypeArguments=a=new Map,a.set(p,_))}}e.propagateExtenderUp(this);let n=this.extenders;if(n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];e.propagateExtenderUp(u)}let s=e;do{let a=s.interfaces;if(a)for(let l=Set_values(a),o=0,u=l.length;o<u;++o){let p=l[o];this.propagateInterfaceDown(p)}s=s.base}while(s)}propagateExtenderUp(e){let t=this;do{let n=t.extenders;n||(t.extenders=n=new Set),n.add(e),t=t.base}while(t)}propagateInterfaceDown(e){let t=e,n=this.extenders;do{let s=t.implementers;if(s||(t.implementers=s=new Set),s.add(this),n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];s.add(u)}t=t.base}while(t)}addInterface(e){let t=this.interfaces;t||(this.interfaces=t=new Set),t.add(e),this.propagateInterfaceDown(e)}isAssignableTo(e){return e.isInterface?this.isInterface?this==e||this.extends(e):this.implements(e):this.isInterface?e==this.program.objectInstance:this==e||this.extends(e)}hasSubclassAssignableTo(e){return e.isInterface?this.isInterface?this.hasImplementerImplementing(e):this.hasExtenderImplementing(e):this.isInterface?this.hasImplementer(e):this.hasExtender(e)}lookupOverload(e,t=!1){if(t)switch(e){case 1:{let s=this.lookupOverload(3);if(s)return s;break}case 2:{let s=this.lookupOverload(4);if(s)return s;break}default:assert(!1)}let n=this;do{let s=n.operatorOverloads;if(s!=null&&s.has(e))return assert(s.get(e));n=n.base}while(n);return null}getMethod(e,t=null){let n=this.getMember(e);return n&&n.kind==4?this.program.resolver.resolveFunction(n,t):null}offsetof(e){let t=assert(this.getMember(e));assert(t.kind==10);let s=t.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let t=this.program,n=this.nextMemoryOffset+e,s=t.computeBlockSize(n,!0),a=new Uint8Array(t.blockOverhead+s),l=t.OBJECTInstance;return l.writeField("mmInfo",s,a,0),l.writeField("gcInfo",0,a,0),l.writeField("gcInfo2",0,a,0),l.writeField("rtId",this.id,a,0),l.writeField("rtSize",n,a,0),a}writeField(e,t,n,s=this.program.totalOverhead){let a=this.getMember(e);if(a&&a.kind==10){let o=a.instance;if(!o)return 0;assert(o.isField&&o.memoryOffset>=0);let u=s+o.memoryOffset,p=o.type.kind;switch(p){case 1:case 6:return assert(!i64_is(t)),de(i32(t),n,u),1;case 2:case 7:return assert(!i64_is(t)),rr(i32(t),n,u),2;case 3:case 8:return assert(!i64_is(t)),ge(i32(t),n,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(t)?xi(t,n,u):Sa(i32(t),n,u,p==10),8):(i64_is(t)?Cc(t,n,u,p==10):ge(i32(t),n,u),4);case 4:case 9:return i64_is(t)?xi(t,n,u):Sa(i32(t),n,u,p==9),8;case 11:return assert(!i64_is(t)),Sr(f32(t),n,u),4;case 12:return assert(!i64_is(t)),Ir(f64(t),n,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let t=this;do{if(t.prototype==e)return t.typeArguments;t=t.base}while(t);return null}getArrayValueType(){let e=this,t=this.program,n=t.arrayPrototype;if(this.extendsPrototype(n))return this.getTypeArgumentsTo(n)[0];let s=t.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let a=t.arrayBufferViewInstance;for(;e.base!=a;)e=assert(e.base);let l=e.prototype;switch(l.name.charCodeAt(0)){case 70:{if(l==t.float32ArrayPrototype)return c.f32;if(l==t.float64ArrayPrototype)return c.f64;break}case 73:{if(l==t.int8ArrayPrototype)return c.i8;if(l==t.int16ArrayPrototype)return c.i16;if(l==t.int32ArrayPrototype)return c.i32;if(l==t.int64ArrayPrototype)return c.i64;break}case 85:{if(l==t.uint8ArrayPrototype)return c.u8;if(l==t.uint8ClampedArrayPrototype)return c.u8;if(l==t.uint16ArrayPrototype)return c.u16;if(l==t.uint32ArrayPrototype)return c.u32;if(l==t.uint64ArrayPrototype)return c.u64;break}}return assert(!1),c.void}get isPointerfree(){let e=this.program,t=this.members;if(t){for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(l.kind==10){let u=l.instance;if(!u)continue;if(u.isField&&u.type.isManaged)return!1}}if(t.has(P.visit)){let n=this.prototype;if(n==e.arrayPrototype||n==e.staticArrayPrototype||n==e.setPrototype||n==e.mapPrototype){let s=assert(this.getTypeArgumentsTo(n));for(let a=0,l=s.length;a<l;++a)if(s[a].isManaged)return!1;return!0}return!1}}return!0}extends(e){return e.hasExtender(this)}hasExtender(e){let t=this.extenders;return t!=null&&t.has(e)}hasExtenderImplementing(e){let t=this.extenders;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}implements(e){return e.hasImplementer(this)}hasImplementer(e){let t=this.implementers;return t!=null&&t.has(e)}hasImplementerImplementing(e){let t=this.implementers;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}},go=class extends Ts{constructor(i,e,t,n){super(i,e,t,n,!0)}},us=class extends lr{constructor(i,e,t=null){super(i,e,t,!0)}};function Np(r,i){assert(!r.instancesByName.has(i.internalName)),r.instancesByName.set(i.internalName,i)}function Mp(r,i){if(assert(r.program==i.program),i.members)return null;let e=null;switch(r.kind){case 4:{switch(i.kind){case 12:{Wt(i,r),e=r;break}case 14:{r.shadowType||(r.shadowType=i,Wt(i,r),e=r);break}}break}case 6:case 2:{if(i.kind==12){Wt(i,r),e=r;break}break}case 12:{switch(i.kind){case 2:case 6:case 4:{Wt(r,i),e=i;break}case 12:{Wt(i,r),e=r;break}case 14:{r.shadowType||(r.shadowType=i,Wt(i,r),e=r);break}}break}case 0:{i.kind==14&&(r.shadowType||(r.shadowType=i,Wt(i,r),e=r));break}case 14:{switch(i.kind){case 0:case 4:case 12:{i.shadowType||(i.shadowType=r,Wt(r,i),e=i);break}}break}}if(e){let t=r.is(2)||r.hasDecorator(1),n=i.is(2)||i.hasDecorator(1);t!=n&&r.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function Wt(r,i){let e=r.members;if(e){let t=i.members;t||(i.members=t=new Map);for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));t.set(l,o)}}}function Ne(r,i,e,t=!1){switch(i.kind){case 13:return t?r:i.internalName+lt+r;case 5:return t?r:(assert(!e),i.internalName+Fc+r);case 10:case 11:i=i.parent;default:return Ne(i.name,i.parent,i.is(262144),t)+(e?Rc:Nn)+r}}var Cp=[];function tb(r){for(let i=Cp.length;i<=r;++i)Cp.push(`$${i}`);return Cp[r]}var sr=(G=>(G[G.Bool=0]="Bool",G[G.I8=1]="I8",G[G.I16=2]="I16",G[G.I32=3]="I32",G[G.I64=4]="I64",G[G.Isize=5]="Isize",G[G.U8=6]="U8",G[G.U16=7]="U16",G[G.U32=8]="U32",G[G.U64=9]="U64",G[G.Usize=10]="Usize",G[G.F32=11]="F32",G[G.F64=12]="F64",G[G.V128=13]="V128",G[G.Extern=14]="Extern",G[G.Func=15]="Func",G[G.Any=16]="Any",G[G.Eq=17]="Eq",G[G.Struct=18]="Struct",G[G.Array=19]="Array",G[G.I31=20]="I31",G[G.String=21]="String",G[G.StringviewWTF8=22]="StringviewWTF8",G[G.StringviewWTF16=23]="StringviewWTF16",G[G.StringviewIter=24]="StringviewIter",G[G.Void=25]="Void",G))(sr||{}),Et=(g=>(g[g.None=0]="None",g[g.Signed=1]="Signed",g[g.Unsigned=2]="Unsigned",g[g.Integer=4]="Integer",g[g.Float=8]="Float",g[g.Varying=16]="Varying",g[g.Short=32]="Short",g[g.Long=64]="Long",g[g.Value=128]="Value",g[g.Reference=256]="Reference",g[g.Nullable=512]="Nullable",g[g.Vector=1024]="Vector",g[g.External=2048]="External",g[g.Class=4096]="Class",g[g.Function=8192]="Function",g))(Et||{}),c=class r{constructor(i,e,t){this.classReference=null;this.signatureReference=null;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=i,this.flags=e,this.size=t,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==r.auto)return this;switch(this.kind){case 0:case 3:case 11:return r.i32;case 1:return r.i8;case 2:return r.i16;case 12:case 4:return r.i64;case 5:return this.size==64?r.isize64:r.isize32;case 6:return r.u8;case 7:return r.u16;case 8:return r.u32;case 9:return r.u64;case 10:return this.size==64?r.usize64:r.usize32;default:return r.i32}}get exceptVoid(){return this.kind==25?r.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return 31-clz(this.byteSize)}get isValue(){return this.is(128)}get isIntegerValue(){return this.is(132)}get isShortIntegerValue(){return this.is(164)}get isLongIntegerValue(){return this.is(196)}get isSignedIntegerValue(){return this.is(133)}get isUnsignedIntegerValue(){return this.is(134)}get isVaryingIntegerValue(){return this.is(148)}get isIntegerInclReference(){return this.is(4)}get isFloatValue(){return this.is(136)}get isNumericValue(){return this.isIntegerValue||this.isFloatValue}get isBooleanValue(){return this==r.bool}get isVectorValue(){return this.is(1152)}get isReference(){return this.is(256)}get isNullableReference(){return this.is(768)}get isInternalReference(){return this.is(260)}get isExternalReference(){return this.is(2304)}get isNullableExternalReference(){return this.is(2816)}getClass(){return this.isInternalReference?this.classReference:null}get isClass(){return this.getClass()!=null}getClassOrWrapper(i){let e=this.getClass();if(e)return e;{let t=this.getSignature();if(t){let n=t.type,s=assert(i.resolver.resolveClass(i.functionPrototype,[n]));return s.wrappedType=n,s}else{let n=i.wrapperClasses;if(n.has(this))return assert(n.get(this))}}return null}lookupOverload(i,e){let t=this.getClassOrWrapper(e);return t?t.lookupOverload(i):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let i=this.classReference;return i?!i.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let i=this.classReference;return i!=null&&i.hasDecorator(16)}get isMemory(){switch(this.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:return!0}return!1}get nonNullableType(){return assert(this._nonNullableType)}get nullableType(){return this.isReference?this.asNullable():null}computeSmallIntegerShift(i){return i.size-this.size}computeSmallIntegerMask(i){let e=this.size;return this.is(2)||(e-=1),-1>>>i.size-e}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}asNullable(){assert(this.isReference);let i=this._nullableType;return i||(assert(!this.isNullableReference),this._nullableType=i=new r(this.kind,this.flags|512,this.size),i.classReference=this.classReference,i.signatureReference=this.signatureReference,i._nonNullableType=this),i}toUnsigned(){switch(this.kind){case 1:return r.u8;case 2:return r.u16;case 3:return r.u32;case 4:return r.u64;case 5:return this.size==64?r.usize64:r.usize32}return this}equals(i){if(this.kind!=i.kind)return!1;if(this.isReference){let e=this.signatureReference,t=i.signatureReference;return this.classReference==i.classReference&&e==t&&this.isNullableReference==i.isNullableReference}return!0}isAssignableTo(i,e=!1){let t,n,s,a;if(this.isReference){if(i.isReference&&(!this.isNullableReference||i.isNullableReference)){if(t=this.getClass()){if(n=i.getClass())return t.isAssignableTo(n)}else if(s=this.getSignature()){if(a=i.getSignature())return s.isAssignableTo(a)}else if(this.isExternalReference&&(this.kind==i.kind||i.kind==16&&this.kind!=14))return!0}}else if(!i.isReference){if(this.isIntegerValue)if(i.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==i.isSignedIntegerValue)return this.size<=i.size}else{if(i.kind==11)return this.size<=23;if(i.kind==12)return this.size<=52}else if(this.isFloatValue){if(i.isFloatValue)return this.size<=i.size}else if(this.isVectorValue&&i.isVectorValue)return this.size==i.size}return!1}isStrictlyAssignableTo(i,e=!1){return this.isReference?this.isAssignableTo(i):i.isReference?!1:this.isIntegerValue?i.isIntegerValue&&i.size==this.size&&(!e||this.isSignedIntegerValue==i.isSignedIntegerValue):this.kind==i.kind}hasSubtypeAssignableTo(i){let e=this.getClass(),t=i.getClass();return!e||!t?!1:e.hasSubclassAssignableTo(t)}isChangeableTo(i){if(this.is(4)&&i.is(4)){let e=this.size;return e==i.size&&(e>=32||this.is(1)==i.is(1))}return this.kind==i.kind}canExtendOrImplement(i){let e=this.getClass(),t=i.getClass();if(!e||!t||this.isManaged!=i.isManaged)return!1;if(this.isInternalReference){if(!i.isInternalReference)return!1}else if(this.isExternalReference){if(!i.isExternalReference)return!1}else return!1;return!0}static commonType(i,e,t=r.auto,n=!1){if(i.isInternalReference){if(!e.isInternalReference)return null;if(t!=r.void&&i.isAssignableTo(t)&&e.isAssignableTo(t))return t;let s=i.getClass(),a=e.getClass();if(s&&a){let l=lr.leastUpperBound(s,a);if(l)return i.is(512)||e.is(512)?l.type.asNullable():l.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(i,n)?i:i.isAssignableTo(e,n)?e:null}kindToString(){switch(this.kind){case 0:return P.bool;case 1:return P.i8;case 2:return P.i16;case 3:return P.i32;case 4:return P.i64;case 5:return P.isize;case 6:return P.u8;case 7:return P.u16;case 8:return P.u32;case 9:return P.u64;case 10:return P.usize;case 11:return P.f32;case 12:return P.f64;case 13:return P.v128;case 15:return P.ref_func;case 14:return P.ref_extern;case 16:return P.ref_any;case 17:return P.ref_eq;case 18:return P.ref_struct;case 19:return P.ref_array;case 20:return P.ref_i31;case 21:return P.ref_string;case 22:return P.ref_stringview_wtf8;case 23:return P.ref_stringview_wtf16;case 24:return P.ref_stringview_iter;default:assert(!1);case 25:return P.void_}}toString(i=!1){let e=i?"|null":" | null";if(this.isReference){let t=this.getClass();if(t)return this.isNullableReference?t.internalName+e:t.internalName;{let n=this.getSignature();return n?this.isNullableReference?`(${n.toString(i)})${e}`:n.toString(i):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==r.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return N.I32;case 5:case 10:if(this.size!=64)return N.I32;case 4:case 9:return N.I64;case 11:return N.F32;case 12:return N.F64;case 13:return N.V128;case 15:return me(Te.Func,this.is(512));case 14:return me(Te.Extern,this.is(512));case 16:return me(Te.Any,this.is(512));case 17:return me(Te.Eq,this.is(512));case 18:return me(Te.Struct,this.is(512));case 19:return me(Te.Array,this.is(512));case 20:return me(Te.I31,this.is(512));case 21:return me(Te.String,this.is(512));case 25:return N.None}return assert(!1),ns(this)}static{this.i8=new r(1,165,8)}static{this.i16=new r(2,165,16)}static{this.i32=new r(3,133,32)}static{this.i64=new r(4,197,64)}static{this.isize32=new r(5,149,32)}static{this.isize64=new r(5,213,64)}static{this.u8=new r(6,166,8)}static{this.u16=new r(7,166,16)}static{this.u32=new r(8,134,32)}static{this.u64=new r(9,198,64)}static{this.usize32=new r(10,150,32)}static{this.usize64=new r(10,214,64)}static{this.bool=new r(0,166,1)}static{this.f32=new r(11,137,32)}static{this.f64=new r(12,201,64)}static{this.v128=new r(13,1152,128)}static{this.func=new r(15,2304,0)}static{this.extern=new r(14,2304,0)}static{this.any=new r(16,2304,0)}static{this.eq=new r(17,2304,0)}static{this.struct=new r(18,2304,0)}static{this.array=new r(19,2304,0)}static{this.i31=new r(20,2304,0)}static{this.string=new r(21,2304,0)}static{this.stringview_wtf8=new r(22,2304,0)}static{this.stringview_wtf16=new r(23,2304,0)}static{this.stringview_iter=new r(24,2304,0)}static{this.void=new r(25,0,0)}static{this.auto=new r(r.i32.kind,r.i32.flags,r.i32.size)}};function Vr(r){let i=r.length,e=new Array(i);for(let t=0;t<i;++t)unchecked(e[t]=r[t].toRef());return e}function io(r){let i=r.length;if(!i)return"";let e=new Array(i);for(let t=0;t<i;++t)unchecked(e[t]=r[t].toString(!0));return e.join(",")}var Xe=class r{constructor(i,e,t,n,s,a,l,o){this.program=i;this.parameterTypes=e;this.returnType=t;this.thisType=n;this.requiredParameters=s;this.hasRest=a;this.id=l;this.type=o}static create(i,e=[],t=c.void,n=null,s=e?e.length:0,a=!1){let l=i.options.usizeType,o=new c(l.kind,l.flags&-129|256,l.size),u=i.uniqueSignatures,p=i.nextSignatureId,_=new r(i,e,t,n,s,a,p,o),f=_.toString();if(u.has(f)){let d=assert(u.get(f));return assert(_.equals(d)),d}return i.nextSignatureId=p+1,o.signatureReference=_,u.set(f,_),_}get paramRefs(){let i=this.thisType,e=this.parameterTypes,t=e.length;if(!t)return i?i.toRef():N.None;if(i){let n=new Array(1+t);unchecked(n[0]=i.toRef());for(let s=0;s<t;++s)unchecked(n[s+1]=e[s].toRef());return Ze(n)}return Ze(Vr(e))}get resultRefs(){return this.returnType.toRef()}equals(i){let e=this.thisType,t=i.thisType;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;if(this.hasRest!=i.hasRest||!this.returnType.equals(i.returnType))return!1;let n=this.parameterTypes,s=i.parameterTypes,a=n.length;if(a!=s.length)return!1;for(let l=0;l<a;++l){let o=unchecked(n[l]),u=unchecked(s[l]);if(!o.equals(u))return!1}return!0}isAssignableTo(i,e=!1){let t=this.thisType,n=i.thisType;if(t&&n){if(!(e?t.canExtendOrImplement(n):n.isAssignableTo(t)))return!1}else if(t||n)return!1;if(this.hasRest!=i.hasRest)return!1;let s=this.returnType,a=i.returnType;if(!(s==a||s.isAssignableTo(a)))return!1;let l=this.parameterTypes,o=i.parameterTypes,u=l.length;if(u!=o.length)return!1;for(let p=0;p<u;++p){let _=unchecked(l[p]),f=unchecked(o[p]);if(_!=f)return!1}return!0}get hasManagedOperands(){let i=this.thisType;if(i&&i.isManaged)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isManaged)return!0;return!1}getManagedOperandIndices(){let i=new Array,e=0,t=this.thisType;t&&(t.isManaged&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isManaged&&i.push(e),++e;return i}get hasVectorValueOperands(){let i=this.thisType;if(i&&i.isVectorValue)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let i=new Array,e=0,t=this.thisType;t&&(t.isVectorValue&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isVectorValue&&i.push(e),++e;return i}toString(i=!1){let e=new Array;e.push(i?"%28":"(");let t=0,n=this.thisType;n&&(e.push(i?"this:":"this: "),e.push(n.toString(i)),t=1);let s=this.parameterTypes,a=s.length;if(a){let l=this.requiredParameters,o=this.hasRest?a-1:-1;for(let u=0;u<a;++u,++t)t&&e.push(i?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(i)),u>=l&&u!=o&&e.push("?")}return e.push(i?"%29=>":") => "),e.push(this.returnType.toString(i)),e.join("")}clone(i=this.requiredParameters,e=this.hasRest){let t=this.parameterTypes,n=t.length,s=new Array(n);for(let a=0;a<n;++a)unchecked(s[a]=t[a]);return r.create(this.program,s,this.returnType,this.thisType,i,e)}};var y;(b=>(b.start="~start",b.started="~started",b.argumentsLength="~argumentsLength",b.setArgumentsLength="~setArgumentsLength",b.abort="~lib/builtins/abort",b.trace="~lib/builtins/trace",b.seed="~lib/builtins/seed",b.isBoolean="~lib/builtins/isBoolean",b.isInteger="~lib/builtins/isInteger",b.isSigned="~lib/builtins/isSigned",b.isFloat="~lib/builtins/isFloat",b.isVector="~lib/builtins/isVector",b.isReference="~lib/builtins/isReference",b.isString="~lib/builtins/isString",b.isArray="~lib/builtins/isArray",b.isArrayLike="~lib/builtins/isArrayLike",b.isFunction="~lib/builtins/isFunction",b.isNullable="~lib/builtins/isNullable",b.isDefined="~lib/builtins/isDefined",b.isConstant="~lib/builtins/isConstant",b.isManaged="~lib/builtins/isManaged",b.isVoid="~lib/builtins/isVoid",b.add="~lib/builtins/add",b.sub="~lib/builtins/sub",b.mul="~lib/builtins/mul",b.div="~lib/builtins/div",b.clz="~lib/builtins/clz",b.ctz="~lib/builtins/ctz",b.popcnt="~lib/builtins/popcnt",b.rotl="~lib/builtins/rotl",b.rotr="~lib/builtins/rotr",b.abs="~lib/builtins/abs",b.max="~lib/builtins/max",b.min="~lib/builtins/min",b.ceil="~lib/builtins/ceil",b.floor="~lib/builtins/floor",b.copysign="~lib/builtins/copysign",b.nearest="~lib/builtins/nearest",b.reinterpret="~lib/builtins/reinterpret",b.sqrt="~lib/builtins/sqrt",b.trunc="~lib/builtins/trunc",b.eq="~lib/builtins/eq",b.ne="~lib/builtins/ne",b.rem="~lib/builtins/rem",b.load="~lib/builtins/load",b.store="~lib/builtins/store",b.atomic_load="~lib/builtins/atomic.load",b.atomic_store="~lib/builtins/atomic.store",b.atomic_add="~lib/builtins/atomic.add",b.atomic_sub="~lib/builtins/atomic.sub",b.atomic_and="~lib/builtins/atomic.and",b.atomic_or="~lib/builtins/atomic.or",b.atomic_xor="~lib/builtins/atomic.xor",b.atomic_xchg="~lib/builtins/atomic.xchg",b.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",b.atomic_wait="~lib/builtins/atomic.wait",b.atomic_notify="~lib/builtins/atomic.notify",b.atomic_fence="~lib/builtins/atomic.fence",b.sizeof="~lib/builtins/sizeof",b.alignof="~lib/builtins/alignof",b.offsetof="~lib/builtins/offsetof",b.nameof="~lib/builtins/nameof",b.lengthof="~lib/builtins/lengthof",b.select="~lib/builtins/select",b.unreachable="~lib/builtins/unreachable",b.changetype="~lib/builtins/changetype",b.assert="~lib/builtins/assert",b.call_indirect="~lib/builtins/call_indirect",b.unchecked="~lib/builtins/unchecked",b.inline_always="~lib/builtins/inline.always",b.instantiate="~lib/builtins/instantiate",b.idof="~lib/builtins/idof",b.i8="~lib/builtins/i8",b.i16="~lib/builtins/i16",b.i32="~lib/builtins/i32",b.i64="~lib/builtins/i64",b.isize="~lib/builtins/isize",b.u8="~lib/builtins/u8",b.u16="~lib/builtins/u16",b.u32="~lib/builtins/u32",b.u64="~lib/builtins/u64",b.usize="~lib/builtins/usize",b.bool="~lib/builtins/bool",b.f32="~lib/builtins/f32",b.f64="~lib/builtins/f64",b.v128="~lib/builtins/v128",b.i32_clz="~lib/builtins/i32.clz",b.i64_clz="~lib/builtins/i64.clz",b.i32_ctz="~lib/builtins/i32.ctz",b.i64_ctz="~lib/builtins/i64.ctz",b.i32_popcnt="~lib/builtins/i32.popcnt",b.i64_popcnt="~lib/builtins/i64.popcnt",b.i32_rotl="~lib/builtins/i32.rotl",b.i64_rotl="~lib/builtins/i64.rotl",b.i32_rotr="~lib/builtins/i32.rotr",b.i64_rotr="~lib/builtins/i64.rotr",b.f32_abs="~lib/builtins/f32.abs",b.f64_abs="~lib/builtins/f64.abs",b.f32_max="~lib/builtins/f32.max",b.f64_max="~lib/builtins/f64.max",b.f32_min="~lib/builtins/f32.min",b.f64_min="~lib/builtins/f64.min",b.f32_ceil="~lib/builtins/f32.ceil",b.f64_ceil="~lib/builtins/f64.ceil",b.f32_floor="~lib/builtins/f32.floor",b.f64_floor="~lib/builtins/f64.floor",b.f32_copysign="~lib/builtins/f32.copysign",b.f64_copysign="~lib/builtins/f64.copysign",b.f32_nearest="~lib/builtins/f32.nearest",b.f64_nearest="~lib/builtins/f64.nearest",b.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",b.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",b.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",b.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",b.f32_sqrt="~lib/builtins/f32.sqrt",b.f64_sqrt="~lib/builtins/f64.sqrt",b.f32_trunc="~lib/builtins/f32.trunc",b.f64_trunc="~lib/builtins/f64.trunc",b.i32_add="~lib/builtins/i32.add",b.i64_add="~lib/builtins/i64.add",b.f32_add="~lib/builtins/f32.add",b.f64_add="~lib/builtins/f64.add",b.i32_sub="~lib/builtins/i32.sub",b.i64_sub="~lib/builtins/i64.sub",b.f32_sub="~lib/builtins/f32.sub",b.f64_sub="~lib/builtins/f64.sub",b.i32_mul="~lib/builtins/i32.mul",b.i64_mul="~lib/builtins/i64.mul",b.f32_mul="~lib/builtins/f32.mul",b.f64_mul="~lib/builtins/f64.mul",b.i32_div_s="~lib/builtins/i32.div_s",b.i32_div_u="~lib/builtins/i32.div_u",b.i64_div_s="~lib/builtins/i64.div_s",b.i64_div_u="~lib/builtins/i64.div_u",b.f32_div="~lib/builtins/f32.div",b.f64_div="~lib/builtins/f64.div",b.i32_eq="~lib/builtins/i32.eq",b.i64_eq="~lib/builtins/i64.eq",b.f32_eq="~lib/builtins/f32.eq",b.f64_eq="~lib/builtins/f64.eq",b.i32_ne="~lib/builtins/i32.ne",b.i64_ne="~lib/builtins/i64.ne",b.f32_ne="~lib/builtins/f32.ne",b.f64_ne="~lib/builtins/f64.ne",b.i32_rem_s="~lib/builtins/i32.rem_s",b.i32_rem_u="~lib/builtins/i32.rem_u",b.i64_rem_s="~lib/builtins/i64.rem_s",b.i64_rem_u="~lib/builtins/i64.rem_u",b.i32_load8_s="~lib/builtins/i32.load8_s",b.i32_load8_u="~lib/builtins/i32.load8_u",b.i32_load16_s="~lib/builtins/i32.load16_s",b.i32_load16_u="~lib/builtins/i32.load16_u",b.i32_load="~lib/builtins/i32.load",b.i64_load8_s="~lib/builtins/i64.load8_s",b.i64_load8_u="~lib/builtins/i64.load8_u",b.i64_load16_s="~lib/builtins/i64.load16_s",b.i64_load16_u="~lib/builtins/i64.load16_u",b.i64_load32_s="~lib/builtins/i64.load32_s",b.i64_load32_u="~lib/builtins/i64.load32_u",b.i64_load="~lib/builtins/i64.load",b.f32_load="~lib/builtins/f32.load",b.f64_load="~lib/builtins/f64.load",b.i32_store8="~lib/builtins/i32.store8",b.i32_store16="~lib/builtins/i32.store16",b.i32_store="~lib/builtins/i32.store",b.i64_store8="~lib/builtins/i64.store8",b.i64_store16="~lib/builtins/i64.store16",b.i64_store32="~lib/builtins/i64.store32",b.i64_store="~lib/builtins/i64.store",b.f32_store="~lib/builtins/f32.store",b.f64_store="~lib/builtins/f64.store",b.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",b.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",b.i32_atomic_load="~lib/builtins/i32.atomic.load",b.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",b.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",b.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",b.i64_atomic_load="~lib/builtins/i64.atomic.load",b.i32_atomic_store8="~lib/builtins/i32.atomic.store8",b.i32_atomic_store16="~lib/builtins/i32.atomic.store16",b.i32_atomic_store="~lib/builtins/i32.atomic.store",b.i64_atomic_store8="~lib/builtins/i64.atomic.store8",b.i64_atomic_store16="~lib/builtins/i64.atomic.store16",b.i64_atomic_store32="~lib/builtins/i64.atomic.store32",b.i64_atomic_store="~lib/builtins/i64.atomic.store",b.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",b.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",b.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",b.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",b.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",b.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",b.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",b.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",b.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",b.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",b.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",b.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",b.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",b.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",b.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",b.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",b.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",b.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",b.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",b.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",b.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",b.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",b.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",b.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",b.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",b.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",b.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",b.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",b.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",b.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",b.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",b.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",b.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",b.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",b.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",b.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",b.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",b.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",b.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",b.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",b.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",b.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",b.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",b.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",b.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",b.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",b.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",b.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",b.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",b.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",b.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",b.v128_splat="~lib/builtins/v128.splat",b.v128_extract_lane="~lib/builtins/v128.extract_lane",b.v128_replace_lane="~lib/builtins/v128.replace_lane",b.v128_shuffle="~lib/builtins/v128.shuffle",b.v128_swizzle="~lib/builtins/v128.swizzle",b.v128_load_splat="~lib/builtins/v128.load_splat",b.v128_load_ext="~lib/builtins/v128.load_ext",b.v128_load_zero="~lib/builtins/v128.load_zero",b.v128_load_lane="~lib/builtins/v128.load_lane",b.v128_store_lane="~lib/builtins/v128.store_lane",b.v128_load="~lib/builtins/v128.load",b.v128_load8x8_s="~lib/builtins/v128.load8x8_s",b.v128_load8x8_u="~lib/builtins/v128.load8x8_u",b.v128_load16x4_s="~lib/builtins/v128.load16x4_s",b.v128_load16x4_u="~lib/builtins/v128.load16x4_u",b.v128_load32x2_s="~lib/builtins/v128.load32x2_s",b.v128_load32x2_u="~lib/builtins/v128.load32x2_u",b.v128_load8_splat="~lib/builtins/v128.load8_splat",b.v128_load16_splat="~lib/builtins/v128.load16_splat",b.v128_load32_splat="~lib/builtins/v128.load32_splat",b.v128_load64_splat="~lib/builtins/v128.load64_splat",b.v128_load32_zero="~lib/builtins/v128.load32_zero",b.v128_load64_zero="~lib/builtins/v128.load64_zero",b.v128_load8_lane="~lib/builtins/v128.load8_lane",b.v128_load16_lane="~lib/builtins/v128.load16_lane",b.v128_load32_lane="~lib/builtins/v128.load32_lane",b.v128_load64_lane="~lib/builtins/v128.load64_lane",b.v128_store8_lane="~lib/builtins/v128.store8_lane",b.v128_store16_lane="~lib/builtins/v128.store16_lane",b.v128_store32_lane="~lib/builtins/v128.store32_lane",b.v128_store64_lane="~lib/builtins/v128.store64_lane",b.v128_store="~lib/builtins/v128.store",b.v128_add="~lib/builtins/v128.add",b.v128_sub="~lib/builtins/v128.sub",b.v128_mul="~lib/builtins/v128.mul",b.v128_div="~lib/builtins/v128.div",b.v128_neg="~lib/builtins/v128.neg",b.v128_add_sat="~lib/builtins/v128.add_sat",b.v128_sub_sat="~lib/builtins/v128.sub_sat",b.v128_shl="~lib/builtins/v128.shl",b.v128_shr="~lib/builtins/v128.shr",b.v128_and="~lib/builtins/v128.and",b.v128_or="~lib/builtins/v128.or",b.v128_xor="~lib/builtins/v128.xor",b.v128_andnot="~lib/builtins/v128.andnot",b.v128_not="~lib/builtins/v128.not",b.v128_bitselect="~lib/builtins/v128.bitselect",b.v128_any_true="~lib/builtins/v128.any_true",b.v128_all_true="~lib/builtins/v128.all_true",b.v128_bitmask="~lib/builtins/v128.bitmask",b.v128_popcnt="~lib/builtins/v128.popcnt",b.v128_min="~lib/builtins/v128.min",b.v128_max="~lib/builtins/v128.max",b.v128_pmin="~lib/builtins/v128.pmin",b.v128_pmax="~lib/builtins/v128.pmax",b.v128_dot="~lib/builtins/v128.dot",b.v128_avgr="~lib/builtins/v128.avgr",b.v128_abs="~lib/builtins/v128.abs",b.v128_sqrt="~lib/builtins/v128.sqrt",b.v128_ceil="~lib/builtins/v128.ceil",b.v128_floor="~lib/builtins/v128.floor",b.v128_trunc="~lib/builtins/v128.trunc",b.v128_nearest="~lib/builtins/v128.nearest",b.v128_eq="~lib/builtins/v128.eq",b.v128_ne="~lib/builtins/v128.ne",b.v128_lt="~lib/builtins/v128.lt",b.v128_le="~lib/builtins/v128.le",b.v128_gt="~lib/builtins/v128.gt",b.v128_ge="~lib/builtins/v128.ge",b.v128_convert="~lib/builtins/v128.convert",b.v128_convert_low="~lib/builtins/v128.convert_low",b.v128_trunc_sat="~lib/builtins/v128.trunc_sat",b.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",b.v128_narrow="~lib/builtins/v128.narrow",b.v128_extend_low="~lib/builtins/v128.extend_low",b.v128_extend_high="~lib/builtins/v128.extend_high",b.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",b.v128_demote_zero="~lib/builtins/v128.demote_zero",b.v128_promote_low="~lib/builtins/v128.promote_low",b.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",b.v128_extmul_low="~lib/builtins/v128.extmul_low",b.v128_extmul_high="~lib/builtins/v128.extmul_high",b.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",b.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",b.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",b.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",b.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",b.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",b.v128_relaxed_min="~lib/builtins/v128.relaxed_min",b.v128_relaxed_max="~lib/builtins/v128.relaxed_max",b.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",b.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",b.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",b.i8x16="~lib/builtins/i8x16",b.i16x8="~lib/builtins/i16x8",b.i32x4="~lib/builtins/i32x4",b.i64x2="~lib/builtins/i64x2",b.f32x4="~lib/builtins/f32x4",b.f64x2="~lib/builtins/f64x2",b.i8x16_splat="~lib/builtins/i8x16.splat",b.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",b.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",b.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",b.i8x16_add="~lib/builtins/i8x16.add",b.i8x16_sub="~lib/builtins/i8x16.sub",b.i8x16_mul="~lib/builtins/i8x16.mul",b.i8x16_min_s="~lib/builtins/i8x16.min_s",b.i8x16_min_u="~lib/builtins/i8x16.min_u",b.i8x16_max_s="~lib/builtins/i8x16.max_s",b.i8x16_max_u="~lib/builtins/i8x16.max_u",b.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",b.i8x16_abs="~lib/builtins/i8x16.abs",b.i8x16_neg="~lib/builtins/i8x16.neg",b.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",b.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",b.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",b.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",b.i8x16_shl="~lib/builtins/i8x16.shl",b.i8x16_shr_s="~lib/builtins/i8x16.shr_s",b.i8x16_shr_u="~lib/builtins/i8x16.shr_u",b.i8x16_all_true="~lib/builtins/i8x16.all_true",b.i8x16_bitmask="~lib/builtins/i8x16.bitmask",b.i8x16_popcnt="~lib/builtins/i8x16.popcnt",b.i8x16_eq="~lib/builtins/i8x16.eq",b.i8x16_ne="~lib/builtins/i8x16.ne",b.i8x16_lt_s="~lib/builtins/i8x16.lt_s",b.i8x16_lt_u="~lib/builtins/i8x16.lt_u",b.i8x16_le_s="~lib/builtins/i8x16.le_s",b.i8x16_le_u="~lib/builtins/i8x16.le_u",b.i8x16_gt_s="~lib/builtins/i8x16.gt_s",b.i8x16_gt_u="~lib/builtins/i8x16.gt_u",b.i8x16_ge_s="~lib/builtins/i8x16.ge_s",b.i8x16_ge_u="~lib/builtins/i8x16.ge_u",b.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",b.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",b.i8x16_shuffle="~lib/builtins/i8x16.shuffle",b.i8x16_swizzle="~lib/builtins/i8x16.swizzle",b.i16x8_splat="~lib/builtins/i16x8.splat",b.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",b.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",b.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",b.i16x8_add="~lib/builtins/i16x8.add",b.i16x8_sub="~lib/builtins/i16x8.sub",b.i16x8_mul="~lib/builtins/i16x8.mul",b.i16x8_min_s="~lib/builtins/i16x8.min_s",b.i16x8_min_u="~lib/builtins/i16x8.min_u",b.i16x8_max_s="~lib/builtins/i16x8.max_s",b.i16x8_max_u="~lib/builtins/i16x8.max_u",b.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",b.i16x8_abs="~lib/builtins/i16x8.abs",b.i16x8_neg="~lib/builtins/i16x8.neg",b.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",b.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",b.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",b.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",b.i16x8_shl="~lib/builtins/i16x8.shl",b.i16x8_shr_s="~lib/builtins/i16x8.shr_s",b.i16x8_shr_u="~lib/builtins/i16x8.shr_u",b.i16x8_all_true="~lib/builtins/i16x8.all_true",b.i16x8_bitmask="~lib/builtins/i16x8.bitmask",b.i16x8_eq="~lib/builtins/i16x8.eq",b.i16x8_ne="~lib/builtins/i16x8.ne",b.i16x8_lt_s="~lib/builtins/i16x8.lt_s",b.i16x8_lt_u="~lib/builtins/i16x8.lt_u",b.i16x8_le_s="~lib/builtins/i16x8.le_s",b.i16x8_le_u="~lib/builtins/i16x8.le_u",b.i16x8_gt_s="~lib/builtins/i16x8.gt_s",b.i16x8_gt_u="~lib/builtins/i16x8.gt_u",b.i16x8_ge_s="~lib/builtins/i16x8.ge_s",b.i16x8_ge_u="~lib/builtins/i16x8.ge_u",b.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",b.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",b.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",b.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",b.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",b.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",b.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",b.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",b.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",b.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",b.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",b.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",b.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",b.i16x8_shuffle="~lib/builtins/i16x8.shuffle",b.i32x4_splat="~lib/builtins/i32x4.splat",b.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",b.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",b.i32x4_add="~lib/builtins/i32x4.add",b.i32x4_sub="~lib/builtins/i32x4.sub",b.i32x4_mul="~lib/builtins/i32x4.mul",b.i32x4_min_s="~lib/builtins/i32x4.min_s",b.i32x4_min_u="~lib/builtins/i32x4.min_u",b.i32x4_max_s="~lib/builtins/i32x4.max_s",b.i32x4_max_u="~lib/builtins/i32x4.max_u",b.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",b.i32x4_abs="~lib/builtins/i32x4.abs",b.i32x4_neg="~lib/builtins/i32x4.neg",b.i32x4_shl="~lib/builtins/i32x4.shl",b.i32x4_shr_s="~lib/builtins/i32x4.shr_s",b.i32x4_shr_u="~lib/builtins/i32x4.shr_u",b.i32x4_all_true="~lib/builtins/i32x4.all_true",b.i32x4_bitmask="~lib/builtins/i32x4.bitmask",b.i32x4_eq="~lib/builtins/i32x4.eq",b.i32x4_ne="~lib/builtins/i32x4.ne",b.i32x4_lt_s="~lib/builtins/i32x4.lt_s",b.i32x4_lt_u="~lib/builtins/i32x4.lt_u",b.i32x4_le_s="~lib/builtins/i32x4.le_s",b.i32x4_le_u="~lib/builtins/i32x4.le_u",b.i32x4_gt_s="~lib/builtins/i32x4.gt_s",b.i32x4_gt_u="~lib/builtins/i32x4.gt_u",b.i32x4_ge_s="~lib/builtins/i32x4.ge_s",b.i32x4_ge_u="~lib/builtins/i32x4.ge_u",b.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",b.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",b.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",b.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",b.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",b.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",b.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",b.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",b.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",b.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",b.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",b.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",b.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",b.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",b.i32x4_shuffle="~lib/builtins/i32x4.shuffle",b.i64x2_splat="~lib/builtins/i64x2.splat",b.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",b.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",b.i64x2_add="~lib/builtins/i64x2.add",b.i64x2_sub="~lib/builtins/i64x2.sub",b.i64x2_mul="~lib/builtins/i64x2.mul",b.i64x2_abs="~lib/builtins/i64x2.abs",b.i64x2_neg="~lib/builtins/i64x2.neg",b.i64x2_shl="~lib/builtins/i64x2.shl",b.i64x2_shr_s="~lib/builtins/i64x2.shr_s",b.i64x2_shr_u="~lib/builtins/i64x2.shr_u",b.i64x2_all_true="~lib/builtins/i64x2.all_true",b.i64x2_bitmask="~lib/builtins/i64x2.bitmask",b.i64x2_eq="~lib/builtins/i64x2.eq",b.i64x2_ne="~lib/builtins/i64x2.ne",b.i64x2_lt_s="~lib/builtins/i64x2.lt_s",b.i64x2_lt_u="~lib/builtins/i64x2.lt_u",b.i64x2_le_s="~lib/builtins/i64x2.le_s",b.i64x2_le_u="~lib/builtins/i64x2.le_u",b.i64x2_gt_s="~lib/builtins/i64x2.gt_s",b.i64x2_gt_u="~lib/builtins/i64x2.gt_u",b.i64x2_ge_s="~lib/builtins/i64x2.ge_s",b.i64x2_ge_u="~lib/builtins/i64x2.ge_u",b.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",b.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",b.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",b.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",b.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",b.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",b.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",b.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",b.i64x2_shuffle="~lib/builtins/i64x2.shuffle",b.f32x4_splat="~lib/builtins/f32x4.splat",b.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",b.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",b.f32x4_add="~lib/builtins/f32x4.add",b.f32x4_sub="~lib/builtins/f32x4.sub",b.f32x4_mul="~lib/builtins/f32x4.mul",b.f32x4_div="~lib/builtins/f32x4.div",b.f32x4_neg="~lib/builtins/f32x4.neg",b.f32x4_min="~lib/builtins/f32x4.min",b.f32x4_max="~lib/builtins/f32x4.max",b.f32x4_pmin="~lib/builtins/f32x4.pmin",b.f32x4_pmax="~lib/builtins/f32x4.pmax",b.f32x4_abs="~lib/builtins/f32x4.abs",b.f32x4_sqrt="~lib/builtins/f32x4.sqrt",b.f32x4_ceil="~lib/builtins/f32x4.ceil",b.f32x4_floor="~lib/builtins/f32x4.floor",b.f32x4_trunc="~lib/builtins/f32x4.trunc",b.f32x4_nearest="~lib/builtins/f32x4.nearest",b.f32x4_eq="~lib/builtins/f32x4.eq",b.f32x4_ne="~lib/builtins/f32x4.ne",b.f32x4_lt="~lib/builtins/f32x4.lt",b.f32x4_le="~lib/builtins/f32x4.le",b.f32x4_gt="~lib/builtins/f32x4.gt",b.f32x4_ge="~lib/builtins/f32x4.ge",b.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",b.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",b.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",b.f32x4_shuffle="~lib/builtins/f32x4.shuffle",b.f64x2_splat="~lib/builtins/f64x2.splat",b.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",b.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",b.f64x2_add="~lib/builtins/f64x2.add",b.f64x2_sub="~lib/builtins/f64x2.sub",b.f64x2_mul="~lib/builtins/f64x2.mul",b.f64x2_div="~lib/builtins/f64x2.div",b.f64x2_neg="~lib/builtins/f64x2.neg",b.f64x2_min="~lib/builtins/f64x2.min",b.f64x2_max="~lib/builtins/f64x2.max",b.f64x2_pmin="~lib/builtins/f64x2.pmin",b.f64x2_pmax="~lib/builtins/f64x2.pmax",b.f64x2_abs="~lib/builtins/f64x2.abs",b.f64x2_sqrt="~lib/builtins/f64x2.sqrt",b.f64x2_ceil="~lib/builtins/f64x2.ceil",b.f64x2_floor="~lib/builtins/f64x2.floor",b.f64x2_trunc="~lib/builtins/f64x2.trunc",b.f64x2_nearest="~lib/builtins/f64x2.nearest",b.f64x2_eq="~lib/builtins/f64x2.eq",b.f64x2_ne="~lib/builtins/f64x2.ne",b.f64x2_lt="~lib/builtins/f64x2.lt",b.f64x2_le="~lib/builtins/f64x2.le",b.f64x2_gt="~lib/builtins/f64x2.gt",b.f64x2_ge="~lib/builtins/f64x2.ge",b.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",b.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",b.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",b.f64x2_shuffle="~lib/builtins/f64x2.shuffle",b.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",b.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",b.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",b.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",b.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",b.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",b.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",b.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",b.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",b.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",b.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",b.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",b.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",b.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",b.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",b.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",b.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",b.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",b.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",b.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",b.i31_new="~lib/builtins/i31.new",b.i31_get="~lib/builtins/i31.get",b.data_end="~lib/memory/__data_end",b.stack_pointer="~lib/memory/__stack_pointer",b.heap_base="~lib/memory/__heap_base",b.rtti_base="~lib/rt/__rtti_base",b.visit_globals="~lib/rt/__visit_globals",b.visit_members="~lib/rt/__visit_members",b.tostack="~lib/rt/__tostack",b.NaN="~lib/number/NaN",b.Infinity="~lib/number/Infinity",b.isNaN="~lib/number/isNaN",b.isFinite="~lib/number/isFinite",b.ERROR="~lib/diagnostics/ERROR",b.WARNING="~lib/diagnostics/WARNING",b.INFO="~lib/diagnostics/INFO",b.Function="~lib/function/Function",b.Function_call="~lib/function/Function#call",b.memory_size="~lib/memory/memory.size",b.memory_grow="~lib/memory/memory.grow",b.memory_copy="~lib/memory/memory.copy",b.memory_fill="~lib/memory/memory.fill",b.memory_data="~lib/memory/memory.data",b.Int8Array="~lib/typedarray/Int8Array",b.Uint8Array="~lib/typedarray/Uint8Array",b.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",b.Int16Array="~lib/typedarray/Int16Array",b.Uint16Array="~lib/typedarray/Uint16Array",b.Int32Array="~lib/typedarray/Int32Array",b.Uint32Array="~lib/typedarray/Uint32Array",b.Int64Array="~lib/typedarray/Int64Array",b.Uint64Array="~lib/typedarray/Uint64Array",b.Float32Array="~lib/typedarray/Float32Array",b.Float64Array="~lib/typedarray/Float64Array",b.String_raw="~lib/string/String.raw",b.String_eq="~lib/string/String.__eq",b.String_ne="~lib/string/String.__ne",b.String_not="~lib/string/String.__not",b.Object="~lib/object/Object"))(y||={});var so=class{constructor(i,e,t,n,s){this.resolver=i;this.node=e;this.ctxElement=t;this.ctxTypes=n;this.reportMode=s}},As=class{constructor(i,e,t=e.type,n=e.identifierNode){this.compiler=i;this.element=e;this.contextualType=t;this.reportNode=n}},bo=class{constructor(i,e,t,n,s,a,l,o){this.compiler=i;this.prototype=e;this.typeArguments=t;this.operands=n;this.thisOperand=s;this.contextualType=a;this.reportNode=l;this.contextIsExact=o}},ar=new Map,x=new Map,Ht=new Map,mt=new Map;function o6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);if(!l)return null;switch(l.kind){case 1:case 2:case 3:return c.i32;case 5:if(!i.program.options.isWasm64)return c.i32;case 4:return c.i64;case 6:case 7:case 8:case 0:return c.u32;case 10:if(!i.program.options.isWasm64)return c.u32;case 9:return c.u64;case 11:return c.f32;case 12:return c.f64;case 13:return c.v128;case 25:return c.void;default:assert(!1)}return null}ar.set(P.native,o6);function u6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);if(!l)return null;let o=l.classReference;if(!o)return s==0&&i.error(2329,a.range,l.toString()),null;let u=o.lookupOverload(1);if(u){let p=u.signature.parameterTypes;return u.is(32)?(assert(p.length==2),p[1]):(assert(p.length==1),p[0])}return s==0&&i.error(2329,a.range,l.toString()),null}ar.set(P.indexof,u6);function c6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(i.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&i.error(2329,a.range,l.toString()),null}ar.set(P.valueof,c6);function p6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getSignature();return o?o.returnType:(s==0&&i.error(2757,a.range,l.toString()),null)}ar.set(P.returnof,p6);function _6(r){let i=r.resolver,e=r.node,t=r.ctxElement,n=r.ctxTypes,s=r.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}ar.set(P.nonnull,_6);var Wi=0;function f6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isBooleanValue?1:0)):e.unreachable()}x.set(y.isBoolean,f6);function d6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isIntegerValue?1:0)):e.unreachable()}x.set(y.isInteger,d6);function h6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isSignedIntegerValue?1:0)):e.unreachable()}x.set(y.isSigned,h6);function m6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isFloatValue?1:0)):e.unreachable()}x.set(y.isFloat,m6);function y6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isVectorValue?1:0)):e.unreachable()}x.set(y.isVector,y6);function g6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isReference?1:0)):e.unreachable()}x.set(y.isReference,g6);function b6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.bool,!t)return e.unreachable();let n=t.getClass();return Ce(r,e.i32(n&&n.isAssignableTo(i.program.stringInstance)?1:0))}x.set(y.isString,b6);function x6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.bool,!t)return e.unreachable();let n=t.getClass();return Ce(r,e.i32(n&&n.extendsPrototype(i.program.arrayPrototype)?1:0))}x.set(y.isArray,x6);function T6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.bool,!t)return e.unreachable();let n=t.getClass();return Ce(r,e.i32(n&&n.isArrayLike?1:0))}x.set(y.isArrayLike,T6);function A6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isFunction?1:0)):e.unreachable()}x.set(y.isFunction,A6);function v6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isNullableReference?1:0)):e.unreachable()}x.set(y.isNullable,v6);function E6(r){let i=r.compiler,e=i.module;if(i.currentType=c.bool,I(r)|j(r,1))return e.unreachable();let t=i.resolver.lookupExpression(r.operands[0],i.currentFlow,c.auto,1);return e.i32(t?1:0)}x.set(y.isDefined,E6);function S6(r){let i=r.compiler,e=i.module;if(i.currentType=c.bool,I(r)|j(r,1))return e.unreachable();let t=i.compileExpression(r.operands[0],c.auto);return i.currentType=c.bool,Yl(t,e.ref)?e.block(null,[e.maybeDrop(t),e.i32(0)],le(t)):e.i32(e.isConstExpression(t)?1:0)}x.set(y.isConstant,S6);function I6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.isManaged?1:0)):e.unreachable()}x.set(y.isManaged,I6);function k6(r){let i=r.compiler,e=i.module,t=De(r);return i.currentType=c.bool,t?Ce(r,e.i32(t.kind==25?1:0)):e.unreachable()}x.set(y.isVoid,k6);function R6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.i32,!t)return e.unreachable();let n=t.signatureReference;return n?Ce(r,e.i32(n.parameterTypes.length)):(i.error(2757,r.reportNode.range,t.toString()),e.unreachable())}x.set(y.lengthof,R6);function F6(r){let i=r.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(r)|j(r,0))return e.unreachable();let t=r.typeArguments[0],n=t.byteSize;return n?xo(i,i64_new(n),r.contextualType):(i.error(203,r.reportNode.typeArgumentsRange,"sizeof",t.toString()),e.unreachable())}x.set(y.sizeof,F6);function w6(r){let i=r.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(r)|j(r,0))return e.unreachable();let t=r.typeArguments[0],n=t.byteSize;return zt(n)?xo(i,i64_new(ctz(n)),r.contextualType):(i.error(203,r.reportNode.typeArgumentsRange,"alignof",t.toString()),e.unreachable())}x.set(y.alignof,w6);function C6(r){let i=r.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(r)|ke(r,0,1))return e.unreachable();let t=r.operands,n=r.contextualType,s=r.typeArguments[0],a=s.getClassOrWrapper(i.program);if(!a)return i.error(203,r.reportNode.typeArgumentsRange,"offsetof",s.toString()),i.options.isWasm64?n.isIntegerValue&&n.size<=32&&(i.currentType=c.u32):n.isIntegerValue&&n.size==64&&(i.currentType=c.u64),e.unreachable();if(t.length){let l=t[0];if(!l.isLiteralKind(2))return i.error(1141,t[0].range),e.unreachable();let o=l.value,u=a.getMember(o);if(u&&u.kind==10){let p=u.instance;if(p&&p.isField)return assert(p.memoryOffset>=0),xo(i,i64_new(p.memoryOffset),n)}return i.error(2460,l.range,a.internalName,o),e.unreachable()}return xo(i,i64_new(a.nextMemoryOffset),n)}x.set(y.offsetof,C6);function P6(r){let i=r.compiler,e=i.module,t=De(r);if(!t)return i.currentType=i.program.stringInstance.type,e.unreachable();let n;if(t.isInternalReference){let s=t.getClass();s?n=s.name:(assert(t.getSignature()),n="Function")}else n=t.toString();return Ce(r,i.ensureStaticString(n))}x.set(y.nameof,P6);function B6(r){let i=r.compiler,e=i.module,t=De(r);if(i.currentType=c.u32,!t)return e.unreachable();let n=t.getSignature();if(n)return Ce(r,e.i32(n.id));let s=t.getClassOrWrapper(i.program);return s&&!s.hasDecorator(16)?Ce(r,e.i32(s.id)):(i.error(203,r.reportNode.typeArgumentsRange,"idof",t.toString()),e.unreachable())}x.set(y.idof,B6);function L6(r){let i=r.element;if(i.is(1048576)){let e=r.compiler.module;e.addGlobal(i.internalName,N.F64,!1,e.f64(NaN))}}Ht.set(y.NaN,L6);function N6(r){let i=r.compiler,e=i.module;return r.contextualType==c.f32?(i.currentType=c.f32,e.f32(NaN)):(i.currentType=c.f64,e.f64(NaN))}mt.set(y.NaN,N6);function M6(r){let i=r.element;if(i.is(1048576)){let e=r.compiler.module;e.addGlobal(i.internalName,N.F64,!1,e.f64(1/0))}}Ht.set(y.Infinity,M6);function D6(r){let i=r.compiler,e=i.module;return r.contextualType==c.f32?(i.currentType=c.f32,e.f32(1/0)):(i.currentType=c.f64,e.f64(1/0))}mt.set(y.Infinity,D6);function Dp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.typeArguments,n=t?i.compileExpression(r.operands[0],t[0],5):i.compileExpression(r.operands[0],c.i32,4),s=i.currentType;if(s.isValue)switch(s.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(0,n);case 5:case 10:return e.unary(142,n);case 4:case 9:return e.unary(1,n)}return i.error(203,r.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}x.set(y.clz,Dp);function Gp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.i32,4),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(2,s);case 5:case 10:return e.unary(143,s);case 4:case 9:return e.unary(3,s)}return i.error(203,r.reportNode.typeArgumentsRange,"ctz",a.toString()),e.unreachable()}x.set(y.ctz,Gp);function zp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.i32,4),a=i.currentType;if(a.isValue)switch(i.currentType.kind){case 0:return s;case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(4,s);case 4:case 9:return e.unary(5,s);case 5:case 10:return e.unary(144,s)}return i.error(203,r.reportNode.typeArgumentsRange,"popcnt",a.toString()),e.unreachable()}x.set(y.popcnt,zp);function Up(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let p=o.getTempLocal(a);return o.setLocalFlag(p.index,2),e.binary(8,e.binary(10,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(p.index,l,!1),e.i32(a.size-1))),e.binary(12,e.local_get(u.index,N.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(p.index,N.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(13,s,l);case 4:case 9:return e.binary(38,s,l);case 5:case 10:return e.binary(230,s,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"rotl",a.toString()),e.unreachable()}x.set(y.rotl,Up);function Vp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let p=o.getTempLocal(a);return o.setLocalFlag(p.index,2),e.binary(8,e.binary(12,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(p.index,l,!1),e.i32(a.size-1))),e.binary(10,e.local_get(u.index,N.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(p.index,N.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(14,s,l);case 4:case 9:return e.binary(39,s,l);case 5:case 10:return e.binary(231,s,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"rotr",a.toString()),e.unreachable()}x.set(y.rotr,Vp);function Op(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],5):i.compileExpression(t[0],c.auto,4),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 6:case 7:case 8:case 9:case 10:return s;case 1:case 2:case 3:{let l=i.currentFlow,o=l.getTempLocal(c.i32),u=l.getTempLocal(c.i32);return e.binary(9,e.binary(0,e.local_tee(u.index,e.binary(11,e.local_tee(o.index,s,!1),e.i32(31)),!1),e.local_get(o.index,N.I32)),e.local_get(u.index,N.I32))}case 5:{let l=i.options,o=i.currentFlow,u=o.getTempLocal(l.usizeType),p=o.getTempLocal(l.usizeType);return e.binary(226,e.binary(217,e.local_tee(p.index,e.binary(228,e.local_tee(u.index,s,!1),i.options.isWasm64?e.i64(63):e.i32(31)),!1),e.local_get(u.index,l.sizeTypeRef)),e.local_get(p.index,l.sizeTypeRef))}case 4:{let l=i.currentFlow,o=l.getTempLocal(c.i64),u=l.getTempLocal(c.i64);return e.binary(34,e.binary(25,e.local_tee(u.index,e.binary(36,e.local_tee(o.index,s,!1),e.i64(63)),!1),e.local_get(o.index,N.I64)),e.local_get(u.index,N.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return i.error(203,r.reportNode.typeArgumentsRange,"abs",a.toString()),e.unreachable()}x.set(y.abs,Op);function qp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(t[0],c.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=21;break}case 0:case 6:case 7:case 8:{u=22;break}case 4:{u=46;break}case 9:{u=47;break}case 5:{u=238;break}case 10:{u=239;break}case 11:return e.binary(56,a,o);case 12:return e.binary(69,a,o)}if(u!=-1){let p=i.currentFlow,_=l.toRef(),f=p.getTempLocal(l);p.setLocalFlag(f.index,2);let d=p.getTempLocal(l);return p.setLocalFlag(d.index,2),e.select(e.local_tee(f.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(f.index,_),e.local_get(d.index,_)))}}return i.error(203,r.reportNode.typeArgumentsRange,"max",l.toString()),e.unreachable()}x.set(y.max,qp);function Wp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(t[0],c.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=17;break}case 0:case 6:case 7:case 8:{u=18;break}case 4:{u=42;break}case 9:{u=43;break}case 5:{u=234;break}case 10:{u=235;break}case 11:return e.binary(55,a,o);case 12:return e.binary(68,a,o)}if(u!=-1){let p=i.currentFlow,_=l.toRef(),f=p.getTempLocal(l);p.setLocalFlag(f.index,2);let d=p.getTempLocal(l);return p.setLocalFlag(d.index,2),e.select(e.local_tee(f.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(f.index,_),e.local_get(d.index,_)))}}return i.error(203,r.reportNode.typeArgumentsRange,"min",l.toString()),e.unreachable()}x.set(y.min,Wp);function jp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(10,s);case 12:return e.unary(11,s)}return i.error(203,r.reportNode.typeArgumentsRange,"ceil",a.toString()),e.unreachable()}x.set(y.ceil,jp);function Kp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(12,s);case 12:return e.unary(13,s)}return i.error(203,r.reportNode.typeArgumentsRange,"floor",a.toString()),e.unreachable()}x.set(y.floor,Kp);function Hp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.f64,0),a=i.currentType;if(a.isValue){let l=i.compileExpression(t[1],a,1);switch(a.kind){case 11:return e.binary(54,s,l);case 12:return e.binary(67,s,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"copysign",a.toString()),e.unreachable()}x.set(y.copysign,Hp);function Qp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(16,s);case 12:return e.unary(17,s)}return i.error(203,r.reportNode.typeArgumentsRange,"nearest",a.toString()),e.unreachable()}x.set(y.nearest,Qp);function vs(r){let i=r.compiler,e=i.module;if(J(r,!0)|j(r,1))return e.unreachable();let t=r.operands,s=r.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let a=i.compileExpression(t[0],c.f32,1);return i.currentType=s,e.unary(33,a)}case 4:case 9:{let a=i.compileExpression(t[0],c.f64,1);return i.currentType=s,e.unary(34,a)}case 5:case 10:{let a=i.options.isWasm64,l=i.compileExpression(t[0],a?c.f64:c.f32,1);return i.currentType=s,e.unary(a?34:33,l)}case 11:{let a=i.compileExpression(t[0],c.i32,1);return i.currentType=c.f32,e.unary(45,a)}case 12:{let a=i.compileExpression(t[0],c.i64,1);return i.currentType=c.f64,e.unary(46,a)}}return i.error(203,r.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}x.set(y.reinterpret,vs);function Xp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.f64,0),a=i.currentType;if(a.isValue)switch(a.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return i.error(203,r.reportNode.typeArgumentsRange,"sqrt",a.toString()),e.unreachable()}x.set(y.sqrt,Xp);function Jp(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,1))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(14,s);case 12:return e.unary(15,s)}return i.error(203,r.reportNode.typeArgumentsRange,"trunc",a.toString()),e.unreachable()}x.set(y.trunc,Jp);function G6(r){let i=r.compiler,e=i.module;if(ue(r)|j(r,1))return i.currentType=c.bool,e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto),a=i.currentType;if(i.currentType=c.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(0));case 11:{if(re(s)==8)return e.binary(58,s,e.local_get(Tt(s),N.F32));let o=i.currentFlow.getTempLocal(c.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,N.F32))}case 12:{if(re(s)==8)return e.binary(71,s,e.local_get(Tt(s),N.F64));let o=i.currentFlow.getTempLocal(c.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,N.F64))}}return i.error(203,r.reportNode.typeArgumentsRange,"isNaN",a.toString()),e.unreachable()}x.set(y.isNaN,G6);function z6(r){let i=r.compiler,e=i.module;if(ue(r)|j(r,1))return i.currentType=c.bool,e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto),a=i.currentType;if(i.currentType=c.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(1));case 11:{if(re(s)==8)return e.binary(57,e.binary(51,s,e.local_get(Tt(s),N.F32)),e.f32(0));let o=i.currentFlow.getTempLocal(c.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,N.F32)),e.f32(0))}case 12:{if(re(s)==8)return e.binary(70,e.binary(64,s,e.local_get(Tt(s),N.F64)),e.f64(0));let o=i.currentFlow.getTempLocal(c.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,N.F64)),e.f64(0))}}return i.error(203,r.reportNode.typeArgumentsRange,"isFinite",a.toString()),e.unreachable()}x.set(y.isFinite,z6);function U6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;i.runtimeFeatures|=4,e.getGlobal(t.internalName)||e.addGlobal(t.internalName,n.toRef(),!0,i.makeZero(n))}Ht.set(y.heap_base,U6);function V6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;return i.runtimeFeatures|=4,i.currentType=n,e.global_get(t.internalName,n.toRef())}mt.set(y.heap_base,V6);function O6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;i.runtimeFeatures|=1,e.getGlobal(t.internalName)||e.addGlobal(t.internalName,n.toRef(),!0,i.makeZero(n))}Ht.set(y.data_end,O6);function q6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;return i.runtimeFeatures|=1,i.currentType=n,e.global_get(t.internalName,n.toRef())}mt.set(y.data_end,q6);function W6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;i.runtimeFeatures|=2,e.getGlobal(t.internalName)||e.addGlobal(t.internalName,n.toRef(),!0,i.makeZero(n))}Ht.set(y.stack_pointer,W6);function j6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;return i.runtimeFeatures|=2,i.currentType=n,e.global_get(t.internalName,n.toRef())}mt.set(y.stack_pointer,j6);function K6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;i.runtimeFeatures|=8,e.getGlobal(t.internalName)||e.addGlobal(t.internalName,n.toRef(),!0,i.makeZero(n))}Ht.set(y.rtti_base,K6);function H6(r){let i=r.compiler,e=i.module,t=r.element,n=t.type;return i.runtimeFeatures|=8,i.currentType=n,e.global_get(t.internalName,n.toRef())}mt.set(y.rtti_base,H6);function Me(r){let i=r.compiler,e=i.module;if(J(r,!0)|ke(r,1,3))return e.unreachable();let t=r.operands,n=r.typeArguments,s=r.contextualType,a=n[0],l=s!=c.auto&&a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!l.isMemory)return i.error(203,r.reportNode.typeArgumentsRange,"load",l.toString()),i.currentType=c.void,e.unreachable();let o=i.compileExpression(t[0],i.options.usizeType,1),u=t.length,p=0,_=a.byteSize;return u>=2&&(p=st(t[1],i),p<0||u==3&&(_=Kt(t[2],_,i),_<0))?(i.currentType=l,e.unreachable()):(i.currentType=l,e.load(a.byteSize,a.isSignedIntegerValue,o,l.toRef(),p,_))}x.set(y.load,Me);function yt(r){let i=r.compiler,e=i.module;if(i.currentType=c.void,J(r)|ke(r,2,4))return e.unreachable();let t=r.operands,n=t.length,s=r.typeArguments,a=r.contextualType,l=s[0],o=i.compileExpression(t[0],i.options.usizeType,1),u=r.contextIsExact?i.compileExpression(t[1],a,1):i.compileExpression(t[1],l,l.isIntegerValue?0:1),p=i.currentType;if(!p.isMemory)return i.error(203,r.reportNode.typeArgumentsRange,"store",p.toString()),i.currentType=c.void,e.unreachable();l.isIntegerValue&&(!p.isIntegerValue||p.size<l.size)&&(u=i.convertExpression(u,p,l,!1,t[1]),p=l);let _=0,f=l.byteSize;if(n>=3){if(_=st(t[2],i),_<0)return i.currentType=c.void,e.unreachable();if(n==4&&(f=Kt(t[3],f,i),f<0))return i.currentType=c.void,e.unreachable()}return i.currentType=c.void,e.store(l.byteSize,o,u,p.toRef(),_,f)}x.set(y.store,yt);function Es(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isIntegerValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isIntegerValue)return i.makeRem(a,o,l,r.reportNode)}return i.error(203,r.reportNode.typeArgumentsRange,"rem",l.toString()),e.unreachable()}x.set(y.rem,Es);function Ss(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.makeAdd(a,o,l)}return i.error(203,r.reportNode.typeArgumentsRange,"add",l.toString()),e.unreachable()}x.set(y.add,Ss);function Is(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.makeSub(a,o,l)}return i.error(203,r.reportNode.typeArgumentsRange,"sub",l.toString()),e.unreachable()}x.set(y.sub,Is);function ks(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.makeMul(a,o,l)}return i.error(203,r.reportNode.typeArgumentsRange,"mul",l.toString()),e.unreachable()}x.set(y.mul,ks);function Or(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.makeDiv(a,o,l)}return i.error(203,r.reportNode.typeArgumentsRange,"div",l.toString()),e.unreachable()}x.set(y.div,Or);function Rs(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.currentType=c.i32,i.makeEq(a,o,l,r.reportNode)}return i.error(203,r.reportNode.typeArgumentsRange,"eq",l.toString()),e.unreachable()}x.set(y.eq,Rs);function Fs(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=t[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(t[0],c.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(t[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(t[1],l,1),l.isNumericValue)return i.currentType=c.i32,i.makeNe(a,o,l,r.reportNode)}return i.error(203,r.reportNode.typeArgumentsRange,"ne",l.toString()),e.unreachable()}x.set(y.ne,Fs);function pr(r){let i=r.compiler,e=i.module;if(X(r,32)|J(r,!0)|ke(r,1,2))return e.unreachable();let t=r.operands,n=r.typeArguments,s=r.contextualType,a=n[0],l=a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!a.isIntegerValue)return i.error(203,r.reportNode.typeArgumentsRange,"atomic.load",a.toString()),i.currentType=l,e.unreachable();let o=i.compileExpression(t[0],i.options.usizeType,1),u=t.length==2?st(t[1],i):0;return u<0?(i.currentType=l,e.unreachable()):(i.currentType=l,e.atomic_load(a.byteSize,o,l.toRef(),u))}x.set(y.atomic_load,pr);function _r(r){let i=r.compiler,e=i.module;if(X(r,32)|J(r)|ke(r,2,3))return e.unreachable();let t=r.operands,n=r.typeArguments,s=r.contextualType,a=n[0];if(!a.isIntegerValue)return i.error(203,r.reportNode.typeArgumentsRange,"atomic.store",a.toString()),i.currentType=c.void,e.unreachable();let l=i.compileExpression(t[0],i.options.usizeType,1),o=r.contextIsExact?i.compileExpression(t[1],s,1):i.compileExpression(t[1],a,a.isIntegerValue?0:1),u=i.currentType;a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,t[1]),u=a);let p=t.length==3?st(t[2],i):0;return p<0?(i.currentType=c.void,e.unreachable()):(i.currentType=c.void,e.atomic_store(a.byteSize,l,o,u.toRef(),p))}x.set(y.atomic_store,_r);function ji(r,i,e){let t=r.compiler,n=t.module;if(X(r,32)|J(r,!0)|ke(r,2,3))return n.unreachable();let s=r.operands,a=r.typeArguments,l=r.contextualType,o=a[0];if(!o.isIntegerValue||o.size<8)return t.error(203,r.reportNode.typeArgumentsRange,e,o.toString()),n.unreachable();let u=t.compileExpression(s[0],t.options.usizeType,1),p=r.contextIsExact?t.compileExpression(s[1],l,1):t.compileExpression(s[1],o,o.isIntegerValue?0:1),_=t.currentType;o.isIntegerValue&&(!_.isIntegerValue||_.size<o.size)&&(p=t.convertExpression(p,_,o,!1,s[1]),_=o);let f=s.length==3?st(s[2],t):0;return f<0?(t.currentType=_,n.unreachable()):(t.currentType=_,n.atomic_rmw(i,o.byteSize,f,u,p,_.toRef()))}function fr(r){return ji(r,0,"atomic.add")}x.set(y.atomic_add,fr);function dr(r){return ji(r,1,"atomic.sub")}x.set(y.atomic_sub,dr);function hr(r){return ji(r,2,"atomic.and")}x.set(y.atomic_and,hr);function mr(r){return ji(r,3,"atomic.or")}x.set(y.atomic_or,mr);function yr(r){return ji(r,4,"atomic.xor")}x.set(y.atomic_xor,yr);function gr(r){return ji(r,5,"atomic.xchg")}x.set(y.atomic_xchg,gr);function br(r){let i=r.compiler,e=i.module;if(X(r,32)|J(r,!0)|ke(r,3,4))return e.unreachable();let t=r.operands,n=r.typeArguments,s=r.contextualType,a=n[0];if(!a.isIntegerValue||a.size<8)return i.error(203,r.reportNode.typeArgumentsRange,"atomic.cmpxchg",a.toString()),e.unreachable();let l=i.compileExpression(t[0],i.options.usizeType,1),o=r.contextIsExact?i.compileExpression(t[1],s,1):i.compileExpression(t[1],a,a.isIntegerValue?0:1),u=i.currentType,p=i.compileExpression(t[2],u,1);a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,t[1]),p=i.convertExpression(p,u,a,!1,t[2]),u=a);let _=t.length==4?st(t[3],i):0;return _<0?(i.currentType=u,e.unreachable()):(i.currentType=u,e.atomic_cmpxchg(a.byteSize,_,l,o,p,u.toRef()))}x.set(y.atomic_cmpxchg,br);function Zp(r){let i=r.compiler,e=i.module;if(X(r,32)|J(r)|ke(r,2,3))return i.currentType=c.i32,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=i.compileExpression(t[1],s,1),o=t.length==3?i.compileExpression(t[2],c.i64,1):e.i64(-1,-1);switch(i.currentType=c.i32,s.kind){case 3:case 4:case 5:case 8:case 9:case 10:return e.atomic_wait(a,l,o,s.toRef())}return i.error(203,r.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}x.set(y.atomic_wait,Zp);function Q6(r){let i=r.compiler,e=i.module;if(X(r,32)|I(r)|ke(r,1,2))return i.currentType=c.i32,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],i.options.usizeType,1),s=t.length==2?i.compileExpression(t[1],c.i32,1):e.i32(-1);return i.currentType=c.i32,e.atomic_notify(n,s)}x.set(y.atomic_notify,Q6);function X6(r){let i=r.compiler,e=i.module;return i.currentType=c.void,X(r,32)|I(r)|j(r,0)?e.unreachable():e.atomic_fence()}x.set(y.atomic_fence,X6);function J6(r){let i=r.compiler,e=i.module;if(ue(r,!0)|j(r,3))return e.unreachable();let t=r.operands,n=r.typeArguments,s=n?i.compileExpression(t[0],n[0],1):i.compileExpression(t[0],c.auto),a=i.currentType;if(!a.isAny(384))return i.error(203,r.reportNode.typeArgumentsRange,"select",a.toString()),e.unreachable();let l=i.compileExpression(t[1],a,1),o=i.makeIsTrueish(i.compileExpression(t[2],c.bool),i.currentType,t[2]);return i.currentType=a,e.select(s,l,o)}x.set(y.select,J6);function Z6(r){return I(r),j(r,0),r.compiler.module.unreachable()}x.set(y.unreachable,Z6);function Y6(r){let i=r.compiler,e=i.module;return i.currentType=c.i32,I(r)|j(r,0)?e.unreachable():e.memory_size()}x.set(y.memory_size,Y6);function $6(r){let i=r.compiler,e=i.module;return i.currentType=c.i32,I(r)|j(r,1)?e.unreachable():e.memory_grow(i.compileExpression(r.operands[0],c.i32,1))}x.set(y.memory_grow,$6);function eT(r){let i=r.compiler,e=i.module;if(i.currentType=c.void,I(r)|j(r,3))return e.unreachable();let t=r.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(r.prototype,null);return i.currentType=c.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,t,r.reportNode)}let n=i.options.usizeType,s=i.compileExpression(t[0],n,1),a=i.compileExpression(t[1],n,1),l=i.compileExpression(t[2],n,1);return i.currentType=c.void,e.memory_copy(s,a,l)}x.set(y.memory_copy,eT);function tT(r){let i=r.compiler,e=i.module;if(i.currentType=c.void,I(r)|j(r,3))return e.unreachable();let t=r.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(r.prototype,null);return i.currentType=c.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,t,r.reportNode)}let n=i.options.usizeType,s=i.compileExpression(t[0],n,1),a=i.compileExpression(t[1],c.u8,1),l=i.compileExpression(t[2],n,1);return i.currentType=c.void,e.memory_fill(s,a,l)}x.set(y.memory_fill,tT);function rT(r){let i=r.compiler,e=i.module;if(i.currentType=c.i32,ue(r)|ke(r,1,2))return e.unreachable();let t=r.typeArguments,n=r.operands,s=n.length,a=i.options.usizeType,l;if(t&&t.length>0){let o=t[0];if(!o.isValue)return i.error(203,r.reportNode.typeArgumentsRange,"memory.data",o.toString()),i.currentType=a,e.unreachable();let u=n[0];if(u.kind!=17||u.literalKind!=5)return i.error(227,n[0].range),i.currentType=a,e.unreachable();let p=u.elementExpressions,_=p.length,f=new Array(_),d=!0;for(let m=0;m<_;++m){let T=p[m];if(T.kind!=20){let S=i.compileExpression(T,o,1),E=e.runExpression(S,1);E?S=E:d=!1,f[m]=S}else f[m]=i.makeZero(o)}if(!d)return i.error(220,u.range),i.currentType=a,e.unreachable();let h=o.byteSize;if(s==2&&(h=Kt(n[1],h,i),h<0))return i.currentType=a,e.unreachable();let g=new Uint8Array(_*o.byteSize);assert(i.writeStaticBuffer(g,0,o,f)==g.byteLength),l=i.addAlignedMemorySegment(g,h).offset}else{let o=i.compileExpression(n[0],c.i32,1),u=e.runExpression(o,1);if(!u)return i.error(220,n[0].range),i.currentType=a,e.unreachable();let p=ne(u);if(p<1)return i.error(222,n[0].range,"1",i32.MAX_VALUE.toString()),i.currentType=a,e.unreachable();let _=16;if(s==2&&(_=Kt(n[1],_,i),_<0))return i.currentType=a,e.unreachable();l=i.addAlignedMemorySegment(new Uint8Array(p),_).offset}return i.currentType=a,a==c.usize32?(assert(!i64_high(l)),e.i32(i64_low(l))):e.i64(i64_low(l),i64_high(l))}x.set(y.memory_data,rT);function iT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.i32,1);return i.currentType=c.i31,e.i31_new(n)}x.set(y.i31_new,iT);function nT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.i31.asNullable(),1);return r.contextualType.is(2)?(i.currentType=c.u32,e.i31_get(n,!1)):(i.currentType=c.i32,e.i31_get(n,!0))}x.set(y.i31_get,nT);function sT(r){let i=r.compiler,e=i.module;if(J(r,!0)|j(r,1))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.auto),l=i.currentType;return i.currentType=s,l.isChangeableTo(s)?a:(i.error(202,r.reportNode.range,l.toString(),s.toString()),e.unreachable())}x.set(y.changetype,sT);function aT(r){let i=r.compiler,e=i.module,t=r.typeArguments;if(ue(r,!0)|ke(r,1,2))return t&&(assert(t.length),i.currentType=t[0].nonNullableType),e.unreachable();let n=r.operands,s=r.contextualType,a=t?i.compileExpression(n[0],t[0],5):i.compileExpression(n[0],c.bool,4),l=i.currentType;if(i.currentType=l.nonNullableType,i.options.noAssert)return a;let o=e.runExpression(a,0);if(o)switch(le(o)){case N.I32:{if(ne(o))return a;break}case N.I64:{if(Ie(o)|Le(o))return a;break}case N.F32:{if(Ee(o))return a;break}case N.F64:{if(Se(o))return a;break}}let u=i.makeAbort(n.length==2?n[1]:null,r.reportNode);if(i.currentType=l.nonNullableType,s==c.void)switch(i.currentType=c.void,l.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return e.if(e.unary(20,a),u);case 4:case 9:return e.if(e.unary(21,a),u);case 5:case 10:return e.if(e.unary(145,a),u);case 11:return e.if(e.binary(57,a,e.f32(0)),u);case 12:return e.if(e.binary(70,a,e.f64(0)),u);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return e.if(e.ref_is_null(a),u)}else{i.currentType=l.nonNullableType;let p=i.currentFlow;switch(i.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let _=p.getTempLocal(l);return p.setLocalFlag(_.index,2),e.if(e.local_tee(_.index,a,!1),e.local_get(_.index,N.I32),u)}case 4:case 9:{let _=p.getTempLocal(c.i64);return e.if(e.unary(21,e.local_tee(_.index,a,!1)),u,e.local_get(_.index,N.I64))}case 5:case 10:{let _=p.getTempLocal(i.options.usizeType);return e.if(e.unary(145,e.local_tee(_.index,a,l.isManaged)),u,e.local_get(_.index,i.options.sizeTypeRef))}case 11:{let _=p.getTempLocal(c.f32);return e.if(e.binary(57,e.local_tee(_.index,a,!1),e.f32(0)),u,e.local_get(_.index,N.F32))}case 12:{let _=p.getTempLocal(c.f64);return e.if(e.binary(70,e.local_tee(_.index,a,!1),e.f64(0)),u,e.local_get(_.index,N.F64))}case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:{let _=p.getTempLocal(l);return e.if(e.ref_is_null(e.local_tee(_.index,a,!1)),u,e.local_get(_.index,l.toRef()))}}}return i.error(203,r.reportNode.typeArgumentsRange,"assert",i.currentType.toString()),u}x.set(y.assert,aT);function lT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return e.unreachable();let t=i.currentFlow,n=i.options.uncheckedBehavior===1,s=t.is(32768);n?assert(!s):t.set(32768);let a=i.compileExpression(r.operands[0],r.contextualType);return s||t.unset(32768),a}x.set(y.unchecked,lT);function oT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return e.unreachable();let t=i.currentFlow,n=t.is(131072);n||t.set(131072);let s=i.compileExpression(r.operands[0],r.contextualType);return n||t.unset(131072),s}x.set(y.inline_always,oT);function uT(r){let i=r.compiler,e=i.module;if(ue(r,!0)|ke(r,1,i32.MAX_VALUE))return e.unreachable();let t=r.operands,n=r.typeArguments,s;n?(assert(n.length),s=n[0]):s=r.contextualType;let a=i.compileExpression(t[0],c.u32,1),l=t.length-1,o=new Array(l),u=new Array(l);for(let p=0;p<l;++p)o[p]=i.compileExpression(t[1+p],c.auto),i.currentType.isManaged&&(o[p]=e.tostack(o[p])),u[p]=i.currentType.toRef();return i.currentType=s,e.call_indirect(null,a,o,Ze(u),s.toRef())}x.set(y.call_indirect,uT);function cT(r){let i=r.compiler,e=i.module;if(J(r,!0))return e.unreachable();let t=r.operands,a=r.typeArguments[0].getClass();if(!a)return i.error(2351,r.reportNode.expression.range),e.unreachable();i.currentType=a.type;let l=i.ensureConstructor(a,r.reportNode);return i.checkFieldInitialization(a,r.reportNode),i.compileInstantiate(l,t,0,r.reportNode)}x.set(y.instantiate,cT);function Yp(r,i){let e=r.compiler,t=e.module;I(r);let n=r.operands,s=r.reportNode;return e.emitDiagnostic(102,i,s.range,null,n.length?n[0].range.toString():s.range.toString()),i==3?t.unreachable():t.nop()}function pT(r){return Yp(r,3)}x.set(y.ERROR,pT);function _T(r){return Yp(r,2)}x.set(y.WARNING,_T);function fT(r){return Yp(r,1)}x.set(y.INFO,fT);function dT(r){let i=r.compiler,e=r.prototype.parent;assert(e.kind==7);let t=e;assert(t.prototype==i.program.functionPrototype);let n=assert(t.typeArguments);assert(n.length==1);let s=n[0],a=assert(s.getSignature()),l=a.returnType;if(I(r)|ke(r,1+a.requiredParameters,1+a.parameterTypes.length))return i.currentType=l,i.module.unreachable();let o=i.compileExpression(assert(r.thisOperand),s,1),u=assert(r.operands.shift()),p=a.thisType,_=0;if(p)_=i.compileExpression(u,p,1);else if(u.kind!=19)return i.error(2332,u.range),i.module.unreachable();return i.compileCallIndirect(a,o,r.operands,r.reportNode,_,r.contextualType==c.void)}x.set(y.Function_call,dT);function hT(r){let i=r.compiler,e=i.module;return i.currentType=r.compiler.program.stringInstance.type,i.error(100,r.reportNode.range,"String.raw"),e.unreachable()}x.set(y.String_raw,hT);function rt(r,i){let e=r.compiler;return I(r)|j(r,1)?(e.currentType=i,e.module.unreachable()):e.compileExpression(r.operands[0],i,2)}function mT(r){return rt(r,c.i8)}x.set(y.i8,mT);function yT(r){return rt(r,c.i16)}x.set(y.i16,yT);function gT(r){return rt(r,c.i32)}x.set(y.i32,gT);function bT(r){return rt(r,c.i64)}x.set(y.i64,bT);function xT(r){return rt(r,r.compiler.options.isizeType)}x.set(y.isize,xT);function TT(r){return rt(r,c.u8)}x.set(y.u8,TT);function AT(r){return rt(r,c.u16)}x.set(y.u16,AT);function vT(r){return rt(r,c.u32)}x.set(y.u32,vT);function ET(r){return rt(r,c.u64)}x.set(y.u64,ET);function ST(r){return rt(r,r.compiler.options.usizeType)}x.set(y.usize,ST);function IT(r){return rt(r,c.bool)}x.set(y.bool,IT);function kT(r){return rt(r,c.f32)}x.set(y.f32,kT);function RT(r){return rt(r,c.f64)}x.set(y.f64,RT);function FT(r){return rb(r)}x.set(y.v128,FT);function rb(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,16))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(16),a=0;for(let l=0;l<16;++l){let o=i.compileExpression(t[l],c.i8,1),u=e.runExpression(o,1);u?de(ne(u),n,l):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==16;o?l=e.unary(60,s[0]):l=e.v128(n);for(let u=i32(o);u<16;u++){let p=s[u];p&&(l=e.simd_replace(0,l,u,p))}return l}}x.set(y.i8x16,rb);function wT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,8))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(8),a=0;for(let l=0;l<8;++l){let o=i.compileExpression(t[l],c.i16,1),u=e.runExpression(o,1);u?rr(ne(u),n,l<<1):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==8;o?l=e.unary(61,s[0]):l=e.v128(n);for(let u=i32(o);u<8;u++){let p=s[u];p&&(l=e.simd_replace(1,l,u,p))}return l}}x.set(y.i16x8,wT);function CT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,4))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(t[l],c.i32,1),u=e.runExpression(o,1);u?ge(ne(u),n,l<<2):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(62,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let p=s[u];p&&(l=e.simd_replace(2,l,u,p))}return l}}x.set(y.i32x4,CT);function PT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(t[l],c.i64,1),u=e.runExpression(o,1);if(u){let p=l<<3;ge(Ie(u),n,p+0),ge(Le(u),n,p+4)}else s[l]=o,a++}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(63,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let p=s[u];p&&(l=e.simd_replace(3,l,u,p))}return l}}x.set(y.i64x2,PT);function BT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,4))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(t[l],c.f32,1),u=e.runExpression(o,1);u?Sr(Ee(u),n,l<<2):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(64,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let p=s[u];p&&(l=e.simd_replace(5,l,u,p))}return l}}x.set(y.f32x4,BT);function LT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(t[l],c.f64,1),u=e.runExpression(o,1);u?Ir(Se(u),n,l<<3):(s[l]=o,a++)}if(i.currentType=c.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(65,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let p=s[u];p&&(l=e.simd_replace(6,l,u,p))}return l}}x.set(y.f64x2,LT);function qr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],s,1);if(i.currentType=c.v128,s.isValue)switch(s.kind){case 1:case 6:return e.unary(60,a);case 2:case 7:return e.unary(61,a);case 3:case 8:return e.unary(62,a);case 4:case 9:return e.unary(63,a);case 5:case 10:return e.unary(i.options.isWasm64?63:62,a);case 11:return e.unary(64,a);case 12:return e.unary(65,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}x.set(y.v128_splat,qr);function Qt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|j(r,2))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.u8,1);i.currentType=s;let o=0,u=e.runExpression(l,1);if(u?o=ne(u):i.error(220,t[1].range),s.isValue){let p=16/assert(s.byteSize)-1;switch((o<0||o>p)&&(i.error(222,t[1].range,"Lane index","0",p.toString()),o=0),s.kind){case 1:return e.simd_extract(0,a,o);case 6:return e.simd_extract(1,a,o);case 2:return e.simd_extract(2,a,o);case 7:return e.simd_extract(3,a,o);case 3:case 8:return e.simd_extract(4,a,o);case 4:case 9:return e.simd_extract(5,a,o);case 5:case 10:return e.simd_extract(i.options.isWasm64?5:4,a,o);case 11:return e.simd_extract(7,a,o);case 12:return e.simd_extract(8,a,o)}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}x.set(y.v128_extract_lane,Qt);function Wr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.u8,1),o=i.compileExpression(t[2],s,1);i.currentType=c.v128;let u=0,p=e.runExpression(l,1);if(p?u=ne(p):i.error(220,t[1].range),s.isValue){let _=16/assert(s.byteSize)-1;switch((u<0||u>_)&&(i.error(222,t[1].range,"Lane index","0",_.toString()),u=0),s.kind){case 1:case 6:return e.simd_replace(0,a,u,o);case 2:case 7:return e.simd_replace(1,a,u,o);case 3:case 8:return e.simd_replace(2,a,u,o);case 4:case 9:return e.simd_replace(3,a,u,o);case 5:case 10:return e.simd_replace(i.options.isWasm64?3:2,a,u,o);case 11:return e.simd_replace(5,a,u,o);case 12:return e.simd_replace(6,a,u,o)}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}x.set(y.v128_replace_lane,Wr);function jr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0];if(s.isValue){let a=s.byteSize,l=16/a;if(assert(Number.isInteger(l)&&zt(l)),j(r,2+l))return i.currentType=c.v128,e.unreachable();let o=i.compileExpression(t[0],c.v128,1),u=i.compileExpression(t[1],c.v128,1);switch(s.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{let p=new Uint8Array(16),_=(l<<1)-1;for(let f=0;f<l;++f){let d=t[2+f],h=i.compileExpression(d,c.u8,1),g=e.runExpression(h,1),m=0;switch(g?(m=ne(g),(m<0||m>_)&&(i.error(222,d.range,"Lane index","0",_.toString()),m=0)):i.error(220,d.range),a){case 1:{de(m,p,f);break}case 2:{let T=f<<1,S=m<<1;de(S,p,T),de(S+1,p,T+1);break}case 4:{let T=f<<2,S=m<<2;de(S,p,T),de(S+1,p,T+1),de(S+2,p,T+2),de(S+3,p,T+3);break}case 8:{let T=f<<3,S=m<<3;de(S,p,T),de(S+1,p,T+1),de(S+2,p,T+2),de(S+3,p,T+3),de(S+4,p,T+4),de(S+5,p,T+5),de(S+6,p,T+6),de(S+7,p,T+7);break}default:assert(!1)}}return i.currentType=c.v128,e.simd_shuffle(o,u,p)}}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),i.currentType=c.v128,e.unreachable()}x.set(y.v128_shuffle,jr);function ib(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.v128,1),s=i.compileExpression(t[1],c.v128,1);return e.binary(209,n,s)}x.set(y.v128_swizzle,ib);function ws(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,1,3))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=st(t[1],i),o<0)return i.currentType=c.v128,e.unreachable();if(l==3&&(u=Kt(t[2],u,i),u<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.v128,s.isValue)switch(s.kind){case 1:case 6:return e.simd_load(0,a,o,u);case 2:case 7:return e.simd_load(1,a,o,u);case 3:case 8:case 11:return e.simd_load(2,a,o,u);case 5:case 10:if(!i.options.isWasm64)return e.simd_load(2,a,o,u);case 4:case 9:case 12:return e.simd_load(3,a,o,u)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}x.set(y.v128_load_splat,ws);function Kr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,1,3))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=st(t[1],i),o<0)return i.currentType=c.v128,e.unreachable();if(l==3&&(u=Kt(t[2],u,i),u<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.v128,s.isValue)switch(s.kind){case 1:return e.simd_load(4,a,o,u);case 6:return e.simd_load(5,a,o,u);case 2:return e.simd_load(6,a,o,u);case 7:return e.simd_load(7,a,o,u);case 5:if(i.options.isWasm64)break;case 3:return e.simd_load(8,a,o,u);case 10:if(i.options.isWasm64)break;case 8:return e.simd_load(9,a,o,u)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}x.set(y.v128_load_ext,Kr);function $p(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,1,3))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=st(t[1],i),o<0)return i.currentType=c.v128,e.unreachable();if(l==3&&(u=Kt(t[2],u,i),u<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.v128,s.isValue)switch(s.kind){case 3:case 8:case 11:return e.simd_load(10,a,o,u);case 4:case 9:case 12:return e.simd_load(11,a,o,u);case 5:case 10:return e.simd_load(i.options.isWasm64?11:10,a,o,u)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}x.set(y.v128_load_zero,$p);function Cs(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,3,5))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.u8,1),u=0,p=e.runExpression(o,1);p?u=ne(p):i.error(220,t[2].range);let _=t.length,f=0,d=s.byteSize;if(_>=4){if(f=st(t[3],i),f<0)return i.currentType=c.v128,e.unreachable();if(_==5&&(d=Kt(t[4],d,i),d<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.v128,s.isValue){let h=16/assert(s.byteSize)-1;switch((u<0||u>h)&&(i.error(222,t[1].range,"Lane index","0",h.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,a,f,d,u,l);case 2:case 7:return e.simd_loadstorelane(1,a,f,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(2,a,f,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(3,a,f,d,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?3:2,a,f,d,u,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}x.set(y.v128_load_lane,Cs);function Ps(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r,!0)|ke(r,3,5))return e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],i.options.usizeType,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.u8,1),u=0,p=e.runExpression(o,1);p?u=ne(p):i.error(220,t[2].range);let _=t.length,f=0,d=s.byteSize;if(_>=4){if(f=st(t[3],i),f<0)return i.currentType=c.v128,e.unreachable();if(_==5&&(d=Kt(t[4],d,i),d<0))return i.currentType=c.v128,e.unreachable()}if(i.currentType=c.void,s.isValue){let h=16/assert(s.byteSize)-1;switch((u<0||u>h)&&(i.error(222,t[1].range,"Lane index","0",h.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,a,f,d,u,l);case 2:case 7:return e.simd_loadstorelane(5,a,f,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(6,a,f,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(7,a,f,d,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?7:6,a,f,d,u,l)}}return i.error(203,r.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}x.set(y.v128_store_lane,Ps);function Hr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(134,a,l);case 2:case 7:return e.binary(145,a,l);case 3:case 8:return e.binary(162,a,l);case 4:case 9:return e.binary(174,a,l);case 5:case 10:return e.binary(i.options.isWasm64?174:162,a,l);case 11:return e.binary(189,a,l);case 12:return e.binary(197,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}x.set(y.v128_add,Hr);function Qr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(137,a,l);case 2:case 7:return e.binary(148,a,l);case 3:case 8:return e.binary(163,a,l);case 4:case 9:return e.binary(175,a,l);case 5:case 10:return e.binary(i.options.isWasm64?175:163,a,l);case 11:return e.binary(190,a,l);case 12:return e.binary(198,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}x.set(y.v128_sub,Qr);function Ki(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 2:case 7:return e.binary(151,a,l);case 3:case 8:return e.binary(164,a,l);case 4:case 9:return e.binary(176,a,l);case 5:case 10:return e.binary(i.options.isWasm64?176:164,a,l);case 11:return e.binary(191,a,l);case 12:return e.binary(199,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}x.set(y.v128_mul,Ki);function e_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(192,a,l);case 12:return e.binary(200,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}x.set(y.v128_div,e_);function Bs(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(135,a,l);case 6:return e.binary(136,a,l);case 2:return e.binary(146,a,l);case 7:return e.binary(147,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}x.set(y.v128_add_sat,Bs);function Ls(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(138,a,l);case 6:return e.binary(139,a,l);case 2:return e.binary(149,a,l);case 7:return e.binary(150,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}x.set(y.v128_sub_sat,Ls);function Xt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(140,a,l);case 6:return e.binary(141,a,l);case 2:return e.binary(152,a,l);case 7:return e.binary(153,a,l);case 5:if(i.options.isWasm64)break;case 3:return e.binary(165,a,l);case 10:if(i.options.isWasm64)break;case 8:return e.binary(166,a,l);case 11:return e.binary(193,a,l);case 12:return e.binary(201,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}x.set(y.v128_min,Xt);function Jt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(142,a,l);case 6:return e.binary(143,a,l);case 2:return e.binary(154,a,l);case 7:return e.binary(155,a,l);case 5:if(i.options.isWasm64)break;case 3:return e.binary(167,a,l);case 10:if(i.options.isWasm64)break;case 8:return e.binary(168,a,l);case 11:return e.binary(194,a,l);case 12:return e.binary(202,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}x.set(y.v128_max,Jt);function t_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(195,a,l);case 12:return e.binary(203,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}x.set(y.v128_pmin,t_);function r_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(196,a,l);case 12:return e.binary(204,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}x.set(y.v128_pmax,r_);function nb(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);return s.isValue&&s.kind===2?e.binary(169,a,l):(i.error(203,r.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}x.set(y.v128_dot,nb);function i_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 6:return e.binary(144,a,l);case 7:return e.binary(156,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}x.set(y.v128_avgr,i_);function Xr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(76,a,l);case 2:case 7:return e.binary(86,a,l);case 3:case 8:return e.binary(96,a,l);case 4:case 9:return e.binary(106,a,l);case 5:case 10:return e.binary(i.options.isWasm64?106:96,a,l);case 11:return e.binary(118,a,l);case 12:return e.binary(124,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}x.set(y.v128_eq,Xr);function Jr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(77,a,l);case 2:case 7:return e.binary(87,a,l);case 3:case 8:return e.binary(97,a,l);case 4:case 9:return e.binary(107,a,l);case 5:case 10:return e.binary(i.options.isWasm64?107:97,a,l);case 11:return e.binary(119,a,l);case 12:return e.binary(125,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}x.set(y.v128_ne,Jr);function kt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(78,a,l);case 6:return e.binary(79,a,l);case 2:return e.binary(88,a,l);case 7:return e.binary(89,a,l);case 3:return e.binary(98,a,l);case 8:return e.binary(99,a,l);case 4:return e.binary(108,a,l);case 5:return e.binary(i.options.isWasm64?108:98,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(99,a,l)}case 11:return e.binary(120,a,l);case 12:return e.binary(126,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}x.set(y.v128_lt,kt);function Rt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(82,a,l);case 6:return e.binary(83,a,l);case 2:return e.binary(92,a,l);case 7:return e.binary(93,a,l);case 3:return e.binary(102,a,l);case 8:return e.binary(103,a,l);case 4:return e.binary(110,a,l);case 5:return e.binary(i.options.isWasm64?110:102,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(103,a,l)}case 11:return e.binary(122,a,l);case 12:return e.binary(128,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}x.set(y.v128_le,Rt);function Ft(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(80,a,l);case 6:return e.binary(81,a,l);case 2:return e.binary(90,a,l);case 7:return e.binary(91,a,l);case 3:return e.binary(100,a,l);case 8:return e.binary(101,a,l);case 4:return e.binary(109,a,l);case 5:return e.binary(i.options.isWasm64?109:100,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(101,a,l)}case 11:return e.binary(121,a,l);case 12:return e.binary(127,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}x.set(y.v128_gt,Ft);function wt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(84,a,l);case 6:return e.binary(85,a,l);case 2:return e.binary(94,a,l);case 7:return e.binary(95,a,l);case 3:return e.binary(104,a,l);case 8:return e.binary(105,a,l);case 4:return e.binary(111,a,l);case 5:return e.binary(i.options.isWasm64?111:104,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(105,a,l)}case 11:return e.binary(123,a,l);case 12:return e.binary(129,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}x.set(y.v128_ge,wt);function Ns(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 2:return e.binary(205,a,l);case 7:return e.binary(206,a,l);case 3:return e.binary(207,a,l);case 8:return e.binary(208,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}x.set(y.v128_narrow,Ns);function Zr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.unary(69,a);case 2:case 7:return e.unary(74,a);case 3:case 8:return e.unary(78,a);case 4:case 9:return e.unary(82,a);case 5:case 10:return e.unary(i.options.isWasm64?82:78,a);case 11:return e.unary(93,a);case 12:return e.unary(100,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}x.set(y.v128_neg,Zr);function Yr(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(68,a);case 2:return e.unary(73,a);case 3:return e.unary(77,a);case 4:return e.unary(81,a);case 5:return e.unary(i.options.isWasm64?81:77,a);case 6:case 7:case 8:case 9:case 10:return a;case 11:return e.unary(92,a);case 12:return e.unary(99,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}x.set(y.v128_abs,Yr);function n_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(94,a);case 12:return e.unary(101,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}x.set(y.v128_sqrt,n_);function s_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(95,a);case 12:return e.unary(102,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}x.set(y.v128_ceil,s_);function a_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(96,a);case 12:return e.unary(103,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}x.set(y.v128_floor,a_);function l_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(97,a);case 12:return e.unary(104,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}x.set(y.v128_trunc,l_);function o_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(98,a);case 12:return e.unary(105,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}x.set(y.v128_nearest,o_);function u_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(112,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(113,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}x.set(y.v128_convert,u_);function c_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(126,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(127,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}x.set(y.v128_convert_low,c_);function p_(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(110,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(111,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}x.set(y.v128_trunc_sat,p_);function __(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(128,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(129,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}x.set(y.v128_trunc_sat_zero,__);function $r(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(114,a);case 6:return e.unary(116,a);case 2:return e.unary(118,a);case 7:return e.unary(120,a);case 5:if(i.options.isWasm64)break;case 3:return e.unary(122,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(124,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}x.set(y.v128_extend_low,$r);function ei(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(115,a);case 6:return e.unary(117,a);case 2:return e.unary(119,a);case 7:return e.unary(121,a);case 5:if(i.options.isWasm64)break;case 3:return e.unary(123,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(125,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}x.set(y.v128_extend_high,ei);function Ms(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1),a=i.compileExpression(t[1],c.i32,1);if(i.currentType=c.v128,n.isValue)switch(n.kind){case 1:case 6:return e.simd_shift(0,s,a);case 2:case 7:return e.simd_shift(3,s,a);case 3:case 8:return e.simd_shift(6,s,a);case 4:case 9:return e.simd_shift(9,s,a);case 5:case 10:return e.simd_shift(i.options.isWasm64?9:6,s,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.shl",n.toString()),e.unreachable()}x.set(y.v128_shl,Ms);function Zt(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1),a=i.compileExpression(t[1],c.i32,1);if(i.currentType=c.v128,n.isValue)switch(n.kind){case 1:return e.simd_shift(1,s,a);case 6:return e.simd_shift(2,s,a);case 2:return e.simd_shift(4,s,a);case 7:return e.simd_shift(5,s,a);case 3:return e.simd_shift(7,s,a);case 8:return e.simd_shift(8,s,a);case 4:return e.simd_shift(10,s,a);case 9:return e.simd_shift(11,s,a);case 5:return e.simd_shift(i.options.isWasm64?10:7,s,a);case 10:return e.simd_shift(i.options.isWasm64?11:8,s,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.shr",n.toString()),e.unreachable()}x.set(y.v128_shr,Zt);function To(r,i){let e=r.compiler,t=e.module;if(X(r,16)|I(r)|j(r,2))return e.currentType=c.v128,t.unreachable();let n=r.operands,s=e.compileExpression(n[0],c.v128,1),a=e.compileExpression(n[1],c.v128,1);return t.binary(i,s,a)}function NT(r){return To(r,130)}x.set(y.v128_and,NT);function MT(r){return To(r,131)}x.set(y.v128_or,MT);function DT(r){return To(r,132)}x.set(y.v128_xor,DT);function GT(r){return To(r,133)}x.set(y.v128_andnot,GT);function zT(r,i){let e=r.compiler,t=e.module;if(X(r,16)|I(r)|j(r,1))return e.currentType=c.v128,t.unreachable();let n=r.operands,s=e.compileExpression(n[0],c.v128,1);return t.unary(i,s)}function UT(r){return zT(r,66)}x.set(y.v128_not,UT);function VT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.v128,1),s=i.compileExpression(t[1],c.v128,1),a=i.compileExpression(t[2],c.v128,1);return e.simd_ternary(0,n,s,a)}x.set(y.v128_bitselect,VT);function OT(r){let i=r.compiler,e=i.module;if(X(r,16)|I(r)|j(r,1))return i.currentType=c.bool,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.v128,1);return i.currentType=c.bool,e.unary(67,n)}x.set(y.v128_any_true,OT);function Ds(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.bool,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1);if(i.currentType=c.bool,n.isValue)switch(n.kind){case 1:case 6:return e.unary(70,s);case 2:case 7:return e.unary(75,s);case 3:case 8:return e.unary(79,s);case 4:case 9:return e.unary(83,s);case 5:case 10:return e.unary(i.options.isWasm64?83:79,s)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.all_true",n.toString()),e.unreachable()}x.set(y.v128_all_true,Ds);function Gs(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.i32,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1);if(i.currentType=c.i32,n.isValue)switch(n.kind){case 1:case 6:return e.unary(71,s);case 2:case 7:return e.unary(76,s);case 3:case 8:return e.unary(80,s);case 4:case 9:return e.unary(84,s);case 5:case 10:return e.unary(i.options.isWasm64?84:80,s)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.bitmask",n.toString()),e.unreachable()}x.set(y.v128_bitmask,Gs);function sb(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1);if(i.currentType=c.v128,n.isValue)switch(n.kind){case 1:case 6:return e.unary(72,s)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.popcnt",n.toString()),e.unreachable()}x.set(y.v128_popcnt,sb);function zs(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments[0],s=i.compileExpression(t[0],c.v128,1);if(i.currentType=c.v128,n.isValue)switch(n.kind){case 1:return e.unary(106,s);case 6:return e.unary(107,s);case 2:return e.unary(108,s);case 7:return e.unary(109,s)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extadd_pairwise",n.toString()),e.unreachable()}x.set(y.v128_extadd_pairwise,zs);function ab(r){let i=r.compiler,e=i.module;if(X(r,16)|ue(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments,s=n?n[0]:c.f64,a=i.compileExpression(t[0],c.v128,1);return i.currentType=c.v128,s.isValue&&s.kind===12?e.unary(130,a):(i.error(203,r.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}x.set(y.v128_demote_zero,ab);function lb(r){let i=r.compiler,e=i.module;if(X(r,16)|ue(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=r.typeArguments,s=n?n[0]:c.f32,a=i.compileExpression(t[0],c.v128,1);return i.currentType=c.v128,s.isValue&&s.kind===11?e.unary(131,a):(i.error(203,r.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}x.set(y.v128_promote_low,lb);function ob(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);return s.isValue&&s.kind===2?e.binary(157,a,l):(i.error(203,r.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}x.set(y.v128_q15mulr_sat,ob);function ti(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(158,a,l);case 6:return e.binary(160,a,l);case 2:return e.binary(170,a,l);case 7:return e.binary(172,a,l);case 3:return e.binary(177,a,l);case 8:return e.binary(179,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}x.set(y.v128_extmul_low,ti);function ri(r){let i=r.compiler,e=i.module;if(X(r,16)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(159,a,l);case 6:return e.binary(161,a,l);case 2:return e.binary(171,a,l);case 7:return e.binary(173,a,l);case 3:return e.binary(178,a,l);case 8:return e.binary(180,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}x.set(y.v128_extmul_high,ri);function ub(r){let i=r.compiler,e=i.module;if(X(r,4096)|I(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.v128,1),s=i.compileExpression(t[1],c.v128,1);return e.binary(210,n,s)}x.set(y.v128_relaxed_swizzle,ub);function f_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(132,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(133,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}x.set(y.v128_relaxed_trunc,f_);function d_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,1))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(134,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(135,a)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}x.set(y.v128_relaxed_trunc_zero,d_);function h_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(1,a,l,o);case 12:return e.simd_ternary(3,a,l,o)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}x.set(y.v128_relaxed_madd,h_);function m_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(2,a,l,o);case 12:return e.simd_ternary(4,a,l,o)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}x.set(y.v128_relaxed_nmadd,m_);function Us(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,3))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.simd_ternary(5,a,l,o);case 2:case 7:return e.simd_ternary(6,a,l,o);case 3:case 8:return e.simd_ternary(7,a,l,o);case 4:case 9:return e.simd_ternary(8,a,l,o);case 5:case 10:return e.simd_ternary(i.options.isWasm64?8:7,a,l,o)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}x.set(y.v128_relaxed_laneselect,Us);function y_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(211,a,l);case 12:return e.binary(213,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}x.set(y.v128_relaxed_min,y_);function g_(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(212,a,l);case 12:return e.binary(214,a,l)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}x.set(y.v128_relaxed_max,g_);function cb(r){let i=r.compiler,e=i.module;if(X(r,4096)|J(r)|j(r,2))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);return s.isValue&&s.kind===2?e.binary(215,a,l):(i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}x.set(y.v128_relaxed_q15mulr,cb);function pb(r){let i=r.compiler,e=i.module;if(X(r,4096)|j(r,2)|J(r))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1);return s.kind===2?e.binary(216,a,l):(i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}x.set(y.v128_relaxed_dot,pb);function _b(r){let i=r.compiler,e=i.module;if(X(r,4096)|j(r,3)|J(r))return i.currentType=c.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],a=i.compileExpression(t[0],c.v128,1),l=i.compileExpression(t[1],c.v128,1),o=i.compileExpression(t[2],c.v128,1);switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.simd_ternary(9,a,l,o)}return i.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}x.set(y.v128_relaxed_dot_add,_b);function qT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,1))return i.currentType=c.void,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],c.u32,1);return i.runtimeFeatures|=16,i.currentType=c.void,e.call(y.visit_globals,[n],N.None)}x.set(y.visit_globals,qT);function WT(r){let i=r.compiler,e=i.module;if(I(r)|j(r,2))return i.currentType=c.void,e.unreachable();let t=r.operands,n=i.compileExpression(t[0],i.options.usizeType,1),s=i.compileExpression(t[1],c.u32,1);return i.runtimeFeatures|=32,i.currentType=c.void,e.call(y.visit_members,[n,s],N.None)}x.set(y.visit_members,WT);function jT(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Dp(r)}x.set(y.i32_clz,jT);function KT(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Dp(r)}x.set(y.i64_clz,KT);function HT(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Gp(r)}x.set(y.i32_ctz,HT);function QT(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Gp(r)}x.set(y.i64_ctz,QT);function XT(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,zp(r)}x.set(y.i32_popcnt,XT);function JT(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,zp(r)}x.set(y.i64_popcnt,JT);function ZT(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Up(r)}x.set(y.i32_rotl,ZT);function YT(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Up(r)}x.set(y.i64_rotl,YT);function $T(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Vp(r)}x.set(y.i32_rotr,$T);function eA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Vp(r)}x.set(y.i64_rotr,eA);function tA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Op(r)}x.set(y.f32_abs,tA);function rA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Op(r)}x.set(y.f64_abs,rA);function iA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,qp(r)}x.set(y.f32_max,iA);function nA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,qp(r)}x.set(y.f64_max,nA);function sA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Wp(r)}x.set(y.f32_min,sA);function aA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Wp(r)}x.set(y.f64_min,aA);function lA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,jp(r)}x.set(y.f32_ceil,lA);function oA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,jp(r)}x.set(y.f64_ceil,oA);function uA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Kp(r)}x.set(y.f32_floor,uA);function cA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Kp(r)}x.set(y.f64_floor,cA);function pA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Hp(r)}x.set(y.f32_copysign,pA);function _A(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Hp(r)}x.set(y.f64_copysign,_A);function fA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Qp(r)}x.set(y.f32_nearest,fA);function dA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Qp(r)}x.set(y.f64_nearest,dA);function hA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.f32,vs(r)}x.set(y.i32_reinterpret_f32,hA);function mA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.f64,vs(r)}x.set(y.i64_reinterpret_f64,mA);function yA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.i32,vs(r)}x.set(y.f32_reinterpret_i32,yA);function gA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.i64,vs(r)}x.set(y.f64_reinterpret_i64,gA);function bA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Xp(r)}x.set(y.f32_sqrt,bA);function xA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Xp(r)}x.set(y.f64_sqrt,xA);function TA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Jp(r)}x.set(y.f32_trunc,TA);function AA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Jp(r)}x.set(y.f64_trunc,AA);function vA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Es(r)}x.set(y.i32_rem_s,vA);function EA(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.u32,Es(r)}x.set(y.i32_rem_u,EA);function SA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Es(r)}x.set(y.i64_rem_s,SA);function IA(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.u64,Es(r)}x.set(y.i64_rem_u,IA);function kA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Ss(r)}x.set(y.i32_add,kA);function RA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Ss(r)}x.set(y.i64_add,RA);function FA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Ss(r)}x.set(y.f32_add,FA);function wA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Ss(r)}x.set(y.f64_add,wA);function CA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Is(r)}x.set(y.i32_sub,CA);function PA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Is(r)}x.set(y.i64_sub,PA);function BA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Is(r)}x.set(y.f32_sub,BA);function LA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Is(r)}x.set(y.f64_sub,LA);function NA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,ks(r)}x.set(y.i32_mul,NA);function MA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,ks(r)}x.set(y.i64_mul,MA);function DA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,ks(r)}x.set(y.f32_mul,DA);function GA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,ks(r)}x.set(y.f64_mul,GA);function zA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Or(r)}x.set(y.i32_div_s,zA);function UA(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.u32,Or(r)}x.set(y.i32_div_u,UA);function VA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Or(r)}x.set(y.i64_div_s,VA);function OA(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.u64,Or(r)}x.set(y.i64_div_u,OA);function qA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Or(r)}x.set(y.f32_div,qA);function WA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Or(r)}x.set(y.f64_div,WA);function jA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Rs(r)}x.set(y.i32_eq,jA);function KA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Rs(r)}x.set(y.i64_eq,KA);function HA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.i32,Rs(r)}x.set(y.f32_eq,HA);function QA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.i32,Rs(r)}x.set(y.f64_eq,QA);function XA(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Fs(r)}x.set(y.i32_ne,XA);function JA(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Fs(r)}x.set(y.i64_ne,JA);function ZA(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.i32,Fs(r)}x.set(y.f32_ne,ZA);function YA(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.i32,Fs(r)}x.set(y.f64_ne,YA);function $A(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Me(r)}x.set(y.i32_load8_s,$A);function ev(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,Me(r)}x.set(y.i32_load8_u,ev);function tv(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Me(r)}x.set(y.i32_load16_s,tv);function rv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,Me(r)}x.set(y.i32_load16_u,rv);function iv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Me(r)}x.set(y.i32_load,iv);function nv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i64,Me(r)}x.set(y.i64_load8_s,nv);function sv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,Me(r)}x.set(y.i64_load8_u,sv);function av(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i64,Me(r)}x.set(y.i64_load16_s,av);function lv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,Me(r)}x.set(y.i64_load16_u,lv);function ov(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i64,Me(r)}x.set(y.i64_load32_s,ov);function uv(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,Me(r)}x.set(y.i64_load32_u,uv);function cv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Me(r)}x.set(y.i64_load,cv);function pv(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Me(r)}x.set(y.f32_load,pv);function _v(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Me(r)}x.set(y.f64_load,_v);function fv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,r.contextIsExact=!0,yt(r)}x.set(y.i32_store8,fv);function dv(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,r.contextIsExact=!0,yt(r)}x.set(y.i32_store16,dv);function hv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,yt(r)}x.set(y.i32_store,hv);function mv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i64,r.contextIsExact=!0,yt(r)}x.set(y.i64_store8,mv);function yv(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i64,r.contextIsExact=!0,yt(r)}x.set(y.i64_store16,yv);function gv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i64,r.contextIsExact=!0,yt(r)}x.set(y.i64_store32,gv);function bv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,yt(r)}x.set(y.i64_store,bv);function xv(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,r.contextIsExact=!0,yt(r)}x.set(y.f32_store,xv);function Tv(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,r.contextIsExact=!0,yt(r)}x.set(y.f64_store,Tv);function Av(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,pr(r)}x.set(y.i32_atomic_load8_u,Av);function vv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,pr(r)}x.set(y.i32_atomic_load16_u,vv);function Ev(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,pr(r)}x.set(y.i32_atomic_load,Ev);function Sv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,pr(r)}x.set(y.i64_atomic_load8_u,Sv);function Iv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,pr(r)}x.set(y.i64_atomic_load16_u,Iv);function kv(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,pr(r)}x.set(y.i64_atomic_load32_u,kv);function Rv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,pr(r)}x.set(y.i64_atomic_load,Rv);function Fv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,r.contextIsExact=!0,_r(r)}x.set(y.i32_atomic_store8,Fv);function wv(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,r.contextIsExact=!0,_r(r)}x.set(y.i32_atomic_store16,wv);function Cv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,_r(r)}x.set(y.i32_atomic_store,Cv);function Pv(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i64,r.contextIsExact=!0,_r(r)}x.set(y.i64_atomic_store8,Pv);function Bv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,_r(r)}x.set(y.i64_atomic_store16,Bv);function Lv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i64,r.contextIsExact=!0,_r(r)}x.set(y.i64_atomic_store32,Lv);function Nv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,_r(r)}x.set(y.i64_atomic_store,Nv);function Mv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,fr(r)}x.set(y.i32_atomic_rmw8_add_u,Mv);function Dv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,fr(r)}x.set(y.i32_atomic_rmw16_add_u,Dv);function Gv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,fr(r)}x.set(y.i32_atomic_rmw_add,Gv);function zv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,fr(r)}x.set(y.i64_atomic_rmw8_add_u,zv);function Uv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,fr(r)}x.set(y.i64_atomic_rmw16_add_u,Uv);function Vv(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,fr(r)}x.set(y.i64_atomic_rmw32_add_u,Vv);function Ov(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,fr(r)}x.set(y.i64_atomic_rmw_add,Ov);function qv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,dr(r)}x.set(y.i32_atomic_rmw8_sub_u,qv);function Wv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,dr(r)}x.set(y.i32_atomic_rmw16_sub_u,Wv);function jv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,dr(r)}x.set(y.i32_atomic_rmw_sub,jv);function Kv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,dr(r)}x.set(y.i64_atomic_rmw8_sub_u,Kv);function Hv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,dr(r)}x.set(y.i64_atomic_rmw16_sub_u,Hv);function Qv(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,dr(r)}x.set(y.i64_atomic_rmw32_sub_u,Qv);function Xv(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,dr(r)}x.set(y.i64_atomic_rmw_sub,Xv);function Jv(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,hr(r)}x.set(y.i32_atomic_rmw8_and_u,Jv);function Zv(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,hr(r)}x.set(y.i32_atomic_rmw16_and_u,Zv);function Yv(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,hr(r)}x.set(y.i32_atomic_rmw_and,Yv);function $v(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,hr(r)}x.set(y.i64_atomic_rmw8_and_u,$v);function eE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,hr(r)}x.set(y.i64_atomic_rmw16_and_u,eE);function tE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,hr(r)}x.set(y.i64_atomic_rmw32_and_u,tE);function rE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,hr(r)}x.set(y.i64_atomic_rmw_and,rE);function iE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,mr(r)}x.set(y.i32_atomic_rmw8_or_u,iE);function nE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,mr(r)}x.set(y.i32_atomic_rmw16_or_u,nE);function sE(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,mr(r)}x.set(y.i32_atomic_rmw_or,sE);function aE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,mr(r)}x.set(y.i64_atomic_rmw8_or_u,aE);function lE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,mr(r)}x.set(y.i64_atomic_rmw16_or_u,lE);function oE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,mr(r)}x.set(y.i64_atomic_rmw32_or_u,oE);function uE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,mr(r)}x.set(y.i64_atomic_rmw_or,uE);function cE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,yr(r)}x.set(y.i32_atomic_rmw8_xor_u,cE);function pE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,yr(r)}x.set(y.i32_atomic_rmw16_xor_u,pE);function _E(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,yr(r)}x.set(y.i32_atomic_rmw_xor,_E);function fE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,yr(r)}x.set(y.i64_atomic_rmw8_xor_u,fE);function dE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,yr(r)}x.set(y.i64_atomic_rmw16_xor_u,dE);function hE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,yr(r)}x.set(y.i64_atomic_rmw32_xor_u,hE);function mE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,yr(r)}x.set(y.i64_atomic_rmw_xor,mE);function yE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,gr(r)}x.set(y.i32_atomic_rmw8_xchg_u,yE);function gE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,gr(r)}x.set(y.i32_atomic_rmw16_xchg_u,gE);function bE(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,gr(r)}x.set(y.i32_atomic_rmw_xchg,bE);function xE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,gr(r)}x.set(y.i64_atomic_rmw8_xchg_u,xE);function TE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,gr(r)}x.set(y.i64_atomic_rmw16_xchg_u,TE);function AE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,gr(r)}x.set(y.i64_atomic_rmw32_xchg_u,AE);function vE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,gr(r)}x.set(y.i64_atomic_rmw_xchg,vE);function EE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,r.contextIsExact=!0,br(r)}x.set(y.i32_atomic_rmw8_cmpxchg_u,EE);function SE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,r.contextIsExact=!0,br(r)}x.set(y.i32_atomic_rmw16_cmpxchg_u,SE);function IE(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,r.contextIsExact=!0,br(r)}x.set(y.i32_atomic_rmw_cmpxchg,IE);function kE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i64,r.contextIsExact=!0,br(r)}x.set(y.i64_atomic_rmw8_cmpxchg_u,kE);function RE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i64,r.contextIsExact=!0,br(r)}x.set(y.i64_atomic_rmw16_cmpxchg_u,RE);function FE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.i64,r.contextIsExact=!0,br(r)}x.set(y.i64_atomic_rmw32_cmpxchg_u,FE);function wE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,r.contextIsExact=!0,br(r)}x.set(y.i64_atomic_rmw_cmpxchg,wE);function CE(r){return I(r),r.typeArguments=[c.i32],Zp(r)}x.set(y.memory_atomic_wait32,CE);function PE(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Zp(r)}x.set(y.memory_atomic_wait64,PE);function BE(r){return I(r),r.typeArguments=[c.v128],r.contextualType=c.v128,Me(r)}x.set(y.v128_load,BE);function LE(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load8x8_s,LE);function NE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load8x8_u,NE);function ME(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load16x4_s,ME);function DE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load16x4_u,DE);function GE(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load32x2_s,GE);function zE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Kr(r)}x.set(y.v128_load32x2_u,zE);function UE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ws(r)}x.set(y.v128_load8_splat,UE);function VE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,ws(r)}x.set(y.v128_load16_splat,VE);function OE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,ws(r)}x.set(y.v128_load32_splat,OE);function qE(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,ws(r)}x.set(y.v128_load64_splat,qE);function WE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,$p(r)}x.set(y.v128_load32_zero,WE);function jE(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,$p(r)}x.set(y.v128_load64_zero,jE);function KE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Cs(r)}x.set(y.v128_load8_lane,KE);function HE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Cs(r)}x.set(y.v128_load16_lane,HE);function QE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Cs(r)}x.set(y.v128_load32_lane,QE);function XE(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,Cs(r)}x.set(y.v128_load64_lane,XE);function JE(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Ps(r)}x.set(y.v128_store8_lane,JE);function ZE(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ps(r)}x.set(y.v128_store16_lane,ZE);function YE(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Ps(r)}x.set(y.v128_store32_lane,YE);function $E(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,Ps(r)}x.set(y.v128_store64_lane,$E);function e0(r){return I(r),r.typeArguments=[c.v128],r.contextualType=c.v128,r.contextIsExact=!0,yt(r)}x.set(y.v128_store,e0);function t0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,qr(r)}x.set(y.i8x16_splat,t0);function r0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Qt(r)}x.set(y.i8x16_extract_lane_s,r0);function i0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,Qt(r)}x.set(y.i8x16_extract_lane_u,i0);function n0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Wr(r)}x.set(y.i8x16_replace_lane,n0);function s0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Hr(r)}x.set(y.i8x16_add,s0);function a0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Qr(r)}x.set(y.i8x16_sub,a0);function l0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Xt(r)}x.set(y.i8x16_min_s,l0);function o0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Xt(r)}x.set(y.i8x16_min_u,o0);function u0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Jt(r)}x.set(y.i8x16_max_s,u0);function c0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Jt(r)}x.set(y.i8x16_max_u,c0);function p0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,i_(r)}x.set(y.i8x16_avgr_u,p0);function _0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Yr(r)}x.set(y.i8x16_abs,_0);function f0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Zr(r)}x.set(y.i8x16_neg,f0);function d0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Bs(r)}x.set(y.i8x16_add_sat_s,d0);function h0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Bs(r)}x.set(y.i8x16_add_sat_u,h0);function m0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Ls(r)}x.set(y.i8x16_sub_sat_s,m0);function y0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Ls(r)}x.set(y.i8x16_sub_sat_u,y0);function g0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Ms(r)}x.set(y.i8x16_shl,g0);function b0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Zt(r)}x.set(y.i8x16_shr_s,b0);function x0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Zt(r)}x.set(y.i8x16_shr_u,x0);function T0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Ds(r)}x.set(y.i8x16_all_true,T0);function A0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Gs(r)}x.set(y.i8x16_bitmask,A0);function v0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,sb(r)}x.set(y.i8x16_popcnt,v0);function E0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Xr(r)}x.set(y.i8x16_eq,E0);function S0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Jr(r)}x.set(y.i8x16_ne,S0);function I0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,kt(r)}x.set(y.i8x16_lt_s,I0);function k0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,kt(r)}x.set(y.i8x16_lt_u,k0);function R0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Rt(r)}x.set(y.i8x16_le_s,R0);function F0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Rt(r)}x.set(y.i8x16_le_u,F0);function w0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Ft(r)}x.set(y.i8x16_gt_s,w0);function C0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Ft(r)}x.set(y.i8x16_gt_u,C0);function P0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,wt(r)}x.set(y.i8x16_ge_s,P0);function B0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,wt(r)}x.set(y.i8x16_ge_u,B0);function L0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ns(r)}x.set(y.i8x16_narrow_i16x8_s,L0);function N0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ns(r)}x.set(y.i8x16_narrow_i16x8_u,N0);function M0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,jr(r)}x.set(y.i8x16_shuffle,M0);function D0(r){return I(r),r.typeArguments=null,r.contextualType=c.v128,ib(r)}x.set(y.i8x16_swizzle,D0);function G0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,qr(r)}x.set(y.i16x8_splat,G0);function z0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Qt(r)}x.set(y.i16x8_extract_lane_s,z0);function U0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,Qt(r)}x.set(y.i16x8_extract_lane_u,U0);function V0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Wr(r)}x.set(y.i16x8_replace_lane,V0);function O0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Hr(r)}x.set(y.i16x8_add,O0);function q0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Qr(r)}x.set(y.i16x8_sub,q0);function W0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ki(r)}x.set(y.i16x8_mul,W0);function j0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Xt(r)}x.set(y.i16x8_min_s,j0);function K0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Xt(r)}x.set(y.i16x8_min_u,K0);function H0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Jt(r)}x.set(y.i16x8_max_s,H0);function Q0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Jt(r)}x.set(y.i16x8_max_u,Q0);function X0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,i_(r)}x.set(y.i16x8_avgr_u,X0);function J0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Yr(r)}x.set(y.i16x8_abs,J0);function Z0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Zr(r)}x.set(y.i16x8_neg,Z0);function Y0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Bs(r)}x.set(y.i16x8_add_sat_s,Y0);function $0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Bs(r)}x.set(y.i16x8_add_sat_u,$0);function e4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ls(r)}x.set(y.i16x8_sub_sat_s,e4);function t4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ls(r)}x.set(y.i16x8_sub_sat_u,t4);function r4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ms(r)}x.set(y.i16x8_shl,r4);function i4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Zt(r)}x.set(y.i16x8_shr_s,i4);function n4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Zt(r)}x.set(y.i16x8_shr_u,n4);function s4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Ds(r)}x.set(y.i16x8_all_true,s4);function a4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Gs(r)}x.set(y.i16x8_bitmask,a4);function l4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Xr(r)}x.set(y.i16x8_eq,l4);function o4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Jr(r)}x.set(y.i16x8_ne,o4);function u4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,kt(r)}x.set(y.i16x8_lt_s,u4);function c4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,kt(r)}x.set(y.i16x8_lt_u,c4);function p4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Rt(r)}x.set(y.i16x8_le_s,p4);function _4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Rt(r)}x.set(y.i16x8_le_u,_4);function f4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ft(r)}x.set(y.i16x8_gt_s,f4);function d4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ft(r)}x.set(y.i16x8_gt_u,d4);function h4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,wt(r)}x.set(y.i16x8_ge_s,h4);function m4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,wt(r)}x.set(y.i16x8_ge_u,m4);function y4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ns(r)}x.set(y.i16x8_narrow_i32x4_s,y4);function g4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Ns(r)}x.set(y.i16x8_narrow_i32x4_u,g4);function b4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,$r(r)}x.set(y.i16x8_extend_low_i8x16_s,b4);function x4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,$r(r)}x.set(y.i16x8_extend_low_i8x16_u,x4);function T4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,ei(r)}x.set(y.i16x8_extend_high_i8x16_s,T4);function A4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ei(r)}x.set(y.i16x8_extend_high_i8x16_u,A4);function v4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,zs(r)}x.set(y.i16x8_extadd_pairwise_i8x16_s,v4);function E4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,zs(r)}x.set(y.i16x8_extadd_pairwise_i8x16_u,E4);function S4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,ob(r)}x.set(y.i16x8_q15mulr_sat_s,S4);function I4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,ti(r)}x.set(y.i16x8_extmul_low_i8x16_s,I4);function k4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ti(r)}x.set(y.i16x8_extmul_low_i8x16_u,k4);function R4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,ri(r)}x.set(y.i16x8_extmul_high_i8x16_s,R4);function F4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ri(r)}x.set(y.i16x8_extmul_high_i8x16_u,F4);function w4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,jr(r)}x.set(y.i16x8_shuffle,w4);function C4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,qr(r)}x.set(y.i32x4_splat,C4);function P4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Qt(r)}x.set(y.i32x4_extract_lane,P4);function B4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Wr(r)}x.set(y.i32x4_replace_lane,B4);function L4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Hr(r)}x.set(y.i32x4_add,L4);function N4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Qr(r)}x.set(y.i32x4_sub,N4);function M4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ki(r)}x.set(y.i32x4_mul,M4);function D4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Xt(r)}x.set(y.i32x4_min_s,D4);function G4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Xt(r)}x.set(y.i32x4_min_u,G4);function z4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Jt(r)}x.set(y.i32x4_max_s,z4);function U4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Jt(r)}x.set(y.i32x4_max_u,U4);function V4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,nb(r)}x.set(y.i32x4_dot_i16x8_s,V4);function O4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Yr(r)}x.set(y.i32x4_abs,O4);function q4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Zr(r)}x.set(y.i32x4_neg,q4);function W4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ms(r)}x.set(y.i32x4_shl,W4);function j4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Zt(r)}x.set(y.i32x4_shr_s,j4);function K4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Zt(r)}x.set(y.i32x4_shr_u,K4);function H4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Ds(r)}x.set(y.i32x4_all_true,H4);function Q4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Gs(r)}x.set(y.i32x4_bitmask,Q4);function X4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Xr(r)}x.set(y.i32x4_eq,X4);function J4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Jr(r)}x.set(y.i32x4_ne,J4);function Z4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,kt(r)}x.set(y.i32x4_lt_s,Z4);function Y4(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,kt(r)}x.set(y.i32x4_lt_u,Y4);function $4(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Rt(r)}x.set(y.i32x4_le_s,$4);function eS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Rt(r)}x.set(y.i32x4_le_u,eS);function tS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ft(r)}x.set(y.i32x4_gt_s,tS);function rS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Ft(r)}x.set(y.i32x4_gt_u,rS);function iS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,wt(r)}x.set(y.i32x4_ge_s,iS);function nS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,wt(r)}x.set(y.i32x4_ge_u,nS);function sS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,p_(r)}x.set(y.i32x4_trunc_sat_f32x4_s,sS);function aS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,p_(r)}x.set(y.i32x4_trunc_sat_f32x4_u,aS);function lS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,__(r)}x.set(y.i32x4_trunc_sat_f64x2_s_zero,lS);function oS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,__(r)}x.set(y.i32x4_trunc_sat_f64x2_u_zero,oS);function uS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,$r(r)}x.set(y.i32x4_extend_low_i16x8_s,uS);function cS(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,$r(r)}x.set(y.i32x4_extend_low_i16x8_u,cS);function pS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,ei(r)}x.set(y.i32x4_extend_high_i16x8_s,pS);function _S(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,ei(r)}x.set(y.i32x4_extend_high_i16x8_u,_S);function fS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,zs(r)}x.set(y.i32x4_extadd_pairwise_i16x8_s,fS);function dS(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,zs(r)}x.set(y.i32x4_extadd_pairwise_i16x8_u,dS);function hS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,ti(r)}x.set(y.i32x4_extmul_low_i16x8_s,hS);function mS(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,ti(r)}x.set(y.i32x4_extmul_low_i16x8_u,mS);function yS(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,ri(r)}x.set(y.i32x4_extmul_high_i16x8_s,yS);function gS(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,ri(r)}x.set(y.i32x4_extmul_high_i16x8_u,gS);function bS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,jr(r)}x.set(y.i32x4_shuffle,bS);function xS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,qr(r)}x.set(y.i64x2_splat,xS);function TS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i64,Qt(r)}x.set(y.i64x2_extract_lane,TS);function AS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Wr(r)}x.set(y.i64x2_replace_lane,AS);function vS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Hr(r)}x.set(y.i64x2_add,vS);function ES(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Qr(r)}x.set(y.i64x2_sub,ES);function SS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Ki(r)}x.set(y.i64x2_mul,SS);function IS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Yr(r)}x.set(y.i64x2_abs,IS);function kS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Zr(r)}x.set(y.i64x2_neg,kS);function RS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Ms(r)}x.set(y.i64x2_shl,RS);function FS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Zt(r)}x.set(y.i64x2_shr_s,FS);function wS(r){return I(r),r.typeArguments=[c.u64],r.contextualType=c.v128,Zt(r)}x.set(y.i64x2_shr_u,wS);function CS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Ds(r)}x.set(y.i64x2_all_true,CS);function PS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.i32,Gs(r)}x.set(y.i64x2_bitmask,PS);function BS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Xr(r)}x.set(y.i64x2_eq,BS);function LS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Jr(r)}x.set(y.i64x2_ne,LS);function NS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,kt(r)}x.set(y.i64x2_lt_s,NS);function MS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Rt(r)}x.set(y.i64x2_le_s,MS);function DS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Ft(r)}x.set(y.i64x2_gt_s,DS);function GS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,wt(r)}x.set(y.i64x2_ge_s,GS);function zS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,$r(r)}x.set(y.i64x2_extend_low_i32x4_s,zS);function US(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,$r(r)}x.set(y.i64x2_extend_low_i32x4_u,US);function VS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,ei(r)}x.set(y.i64x2_extend_high_i32x4_s,VS);function OS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,ei(r)}x.set(y.i64x2_extend_high_i32x4_u,OS);function qS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,ti(r)}x.set(y.i64x2_extmul_low_i32x4_s,qS);function WS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,ti(r)}x.set(y.i64x2_extmul_low_i32x4_u,WS);function jS(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,ri(r)}x.set(y.i64x2_extmul_high_i32x4_s,jS);function KS(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,ri(r)}x.set(y.i64x2_extmul_high_i32x4_u,KS);function HS(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,jr(r)}x.set(y.i64x2_shuffle,HS);function QS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,qr(r)}x.set(y.f32x4_splat,QS);function XS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.f32,Qt(r)}x.set(y.f32x4_extract_lane,XS);function JS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Wr(r)}x.set(y.f32x4_replace_lane,JS);function ZS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Hr(r)}x.set(y.f32x4_add,ZS);function YS(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Qr(r)}x.set(y.f32x4_sub,YS);function $S(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Ki(r)}x.set(y.f32x4_mul,$S);function e3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,e_(r)}x.set(y.f32x4_div,e3);function t3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Zr(r)}x.set(y.f32x4_neg,t3);function r3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Xt(r)}x.set(y.f32x4_min,r3);function i3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Jt(r)}x.set(y.f32x4_max,i3);function n3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,t_(r)}x.set(y.f32x4_pmin,n3);function s3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,r_(r)}x.set(y.f32x4_pmax,s3);function a3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Yr(r)}x.set(y.f32x4_abs,a3);function l3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,n_(r)}x.set(y.f32x4_sqrt,l3);function o3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,s_(r)}x.set(y.f32x4_ceil,o3);function u3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,a_(r)}x.set(y.f32x4_floor,u3);function c3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,l_(r)}x.set(y.f32x4_trunc,c3);function p3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,o_(r)}x.set(y.f32x4_nearest,p3);function _3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Xr(r)}x.set(y.f32x4_eq,_3);function f3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Jr(r)}x.set(y.f32x4_ne,f3);function d3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,kt(r)}x.set(y.f32x4_lt,d3);function h3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Rt(r)}x.set(y.f32x4_le,h3);function m3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,Ft(r)}x.set(y.f32x4_gt,m3);function y3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,wt(r)}x.set(y.f32x4_ge,y3);function g3(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,u_(r)}x.set(y.f32x4_convert_i32x4_s,g3);function b3(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,u_(r)}x.set(y.f32x4_convert_i32x4_u,b3);function x3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,ab(r)}x.set(y.f32x4_demote_f64x2_zero,x3);function T3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,jr(r)}x.set(y.f32x4_shuffle,T3);function A3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,qr(r)}x.set(y.f64x2_splat,A3);function v3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.f64,Qt(r)}x.set(y.f64x2_extract_lane,v3);function E3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Wr(r)}x.set(y.f64x2_replace_lane,E3);function S3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Hr(r)}x.set(y.f64x2_add,S3);function I3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Qr(r)}x.set(y.f64x2_sub,I3);function k3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Ki(r)}x.set(y.f64x2_mul,k3);function R3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,e_(r)}x.set(y.f64x2_div,R3);function F3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Zr(r)}x.set(y.f64x2_neg,F3);function w3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Xt(r)}x.set(y.f64x2_min,w3);function C3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Jt(r)}x.set(y.f64x2_max,C3);function P3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,t_(r)}x.set(y.f64x2_pmin,P3);function B3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,r_(r)}x.set(y.f64x2_pmax,B3);function L3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Yr(r)}x.set(y.f64x2_abs,L3);function N3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,n_(r)}x.set(y.f64x2_sqrt,N3);function M3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,s_(r)}x.set(y.f64x2_ceil,M3);function D3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,a_(r)}x.set(y.f64x2_floor,D3);function G3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,l_(r)}x.set(y.f64x2_trunc,G3);function z3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,o_(r)}x.set(y.f64x2_nearest,z3);function U3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Xr(r)}x.set(y.f64x2_eq,U3);function V3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Jr(r)}x.set(y.f64x2_ne,V3);function O3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,kt(r)}x.set(y.f64x2_lt,O3);function q3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Rt(r)}x.set(y.f64x2_le,q3);function W3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,Ft(r)}x.set(y.f64x2_gt,W3);function j3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,wt(r)}x.set(y.f64x2_ge,j3);function K3(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,c_(r)}x.set(y.f64x2_convert_low_i32x4_s,K3);function H3(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,c_(r)}x.set(y.f64x2_convert_low_i32x4_u,H3);function Q3(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,lb(r)}x.set(y.f64x2_promote_low_f32x4,Q3);function X3(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,jr(r)}x.set(y.f64x2_shuffle,X3);function J3(r){return I(r),r.typeArguments=null,r.contextualType=c.v128,ub(r)}x.set(y.i8x16_relaxed_swizzle,J3);function Z3(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,f_(r)}x.set(y.i32x4_relaxed_trunc_f32x4_s,Z3);function Y3(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,f_(r)}x.set(y.i32x4_relaxed_trunc_f32x4_u,Y3);function $3(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,d_(r)}x.set(y.i32x4_relaxed_trunc_f64x2_s_zero,$3);function eI(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,d_(r)}x.set(y.i32x4_relaxed_trunc_f64x2_u_zero,eI);function tI(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,h_(r)}x.set(y.f32x4_relaxed_madd,tI);function rI(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,m_(r)}x.set(y.f32x4_relaxed_nmadd,rI);function iI(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,h_(r)}x.set(y.f64x2_relaxed_madd,iI);function nI(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,m_(r)}x.set(y.f64x2_relaxed_nmadd,nI);function sI(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Us(r)}x.set(y.i8x16_relaxed_laneselect,sI);function aI(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Us(r)}x.set(y.i16x8_relaxed_laneselect,aI);function lI(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Us(r)}x.set(y.i32x4_relaxed_laneselect,lI);function oI(r){return I(r),r.typeArguments=[c.i64],r.contextualType=c.v128,Us(r)}x.set(y.i64x2_relaxed_laneselect,oI);function uI(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,y_(r)}x.set(y.f32x4_relaxed_min,uI);function cI(r){return I(r),r.typeArguments=[c.f32],r.contextualType=c.v128,g_(r)}x.set(y.f32x4_relaxed_max,cI);function pI(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,y_(r)}x.set(y.f64x2_relaxed_min,pI);function _I(r){return I(r),r.typeArguments=[c.f64],r.contextualType=c.v128,g_(r)}x.set(y.f64x2_relaxed_max,_I);function fI(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,cb(r)}x.set(y.i16x8_relaxed_q15mulr_s,fI);function dI(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,pb(r)}x.set(y.i16x8_relaxed_dot_i8x16_i7x16_s,dI);function hI(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,_b(r)}x.set(y.i32x4_relaxed_dot_i8x16_i7x16_add_s,hI);function fb(r){let i=r.module,e=new Array,t=r.options.sizeTypeRef,n=assert(r.program.visitInstance);r.compileFunction(n,!0);for(let s=Map_values(r.program.elementsByName),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=0)continue;let u=o,_=u.type.getClass();if(_&&!_.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let f=u.constantIntegerValue;(i64_low(f)||i64_high(f))&&e.push(i.call(n.internalName,[r.options.isWasm64?i.i64(i64_low(f),i64_high(f)):i.i32(i64_low(f)),i.local_get(0,N.I32)],N.None))}else e.push(i.if(i.local_tee(1,i.global_get(u.internalName,t),!1),i.call(n.internalName,[i.local_get(1,t),i.local_get(0,N.I32)],N.None)))}i.addFunction(y.visit_globals,N.I32,N.None,[t],e.length?i.block(null,e):i.nop())}function db(r,i){if(assert(i.type.isManaged),i.visitRef)return;let e=r.program,t=r.module,n=e.options.usizeType,s=n.toRef(),a=n.byteSize,l=assert(e.visitInstance),o=new Array,u=i.base;u&&o.push(t.call(`${u.internalName}~visit`,[t.local_get(0,s),t.local_get(1,N.I32)],N.None));let p=!1;if(i.isDeclaredInLibrary){let f=i.getMember("__visit");if(f){assert(f.kind==4);let d=e.resolver.resolveFunction(f,null);if(!d||!r.compileFunction(d))o.push(t.unreachable());else{let h=d.signature,g=assert(h.thisType);assert(h.parameterTypes.length==1&&h.parameterTypes[0]==c.u32&&h.returnType==c.void&&i.type.isStrictlyAssignableTo(g)),o.push(t.call(d.internalName,[t.local_get(0,s),t.local_get(1,N.I32)],N.None))}p=!0}}let _=!1;if(!p){let f=i.members;if(f)for(let d=Map_values(f),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]);if(m.kind!=10)continue;let T=m.instance;if(!T)continue;let S=T.type;if(!T.isField||T.getBoundClassOrInterface()!=i||!S.isManaged)continue;let E=T.memoryOffset;assert(E>=0),_=!0,o.push(t.call(l.internalName,[t.load(a,!1,t.local_get(0,s),s,E),t.local_get(1,N.I32)],N.None))}}i.visitRef=t.addFunction(`${i.internalName}~visit`,Ze([s,N.I32]),N.None,_?[s]:null,t.flatten(o,N.None)),u&&u.type.isManaged&&db(r,u)}function hb(r){let i=r.program,e=r.module,n=i.options.usizeType.toRef(),s=i.managedClasses,a=assert(i.visitInstance);r.compileFunction(a,!0);let l=new Array,o=new Array,u=0;for(let _=Map_keys(s),f=0,d=_.length;f<d;++f){let h=_[f];assert(h==u++);let g=assert(s.get(h));l[f]=g.internalName,g.isPointerfree?o[f]=e.return():(o[f]=e.block(null,[e.call(`${g.internalName}~visit`,[e.local_get(0,n),e.local_get(1,N.I32)],N.None),e.return()],N.None),db(r,g))}let p=e.block(l[0],[e.switch(l,"invalid",e.load(4,!1,n==N.I64?e.binary(26,e.local_get(0,n),e.i64(8)):e.binary(1,e.local_get(0,n),e.i32(8)),N.I32,0))],N.None);for(let _=0,f=l.length-1;_<f;++_)p=e.block(l[_+1],[p,o[_]],N.None);p=e.block("invalid",[p,o[l.length-1]],N.None),e.addFunction(y.visit_members,Ze([n,N.I32]),N.None,null,e.flatten([p,e.unreachable()]))}function qi(r){let i=64*(1<<r.alignLog2);return r.is(1)&&(i|=2048),r.is(8)&&(i|=4096),r.is(512)&&(i|=8192),r.isManaged&&(i|=16384),i/64}function mb(r){let i=r.program,e=r.module,t=i.managedClasses,n=t.size,s=4+4*n,a=new Uint8Array(s);ge(n,a,0);let l=4,o=i.arrayBufferViewInstance,u=o.prototype,p=i.arrayPrototype,_=i.setPrototype,f=i.mapPrototype,d=i.staticArrayPrototype,h=0;for(let T=Map_keys(t),S=0,E=T.length;S<E;++S){let F=unchecked(T[S]),k=assert(t.get(F));assert(F==h++);let R=0;if(k.isPointerfree&&(R|=32),k!=o&&k.extendsPrototype(u)){let C=k.getArrayValueType();R|=1,R|=64*qi(C)}else if(k.extendsPrototype(p)){let C=k.getArrayValueType();R|=2,R|=64*qi(C)}else if(k.extendsPrototype(_)){let C=assert(k.getTypeArgumentsTo(_));assert(C.length==1),R|=8,R|=64*qi(C[0])}else if(k.extendsPrototype(f)){let C=assert(k.getTypeArgumentsTo(f));assert(C.length==2),R|=16,R|=32768*qi(C[0]),R|=64*qi(C[1])}else if(k.extendsPrototype(d)){let C=k.getArrayValueType();R|=4,R|=64*qi(C)}ge(R,a,l),l+=4,k.rttiFlags=R}assert(l==s);let g=i.options.usizeType,m=r.addAlignedMemorySegment(a);if(g.size==8){let T=m.offset;e.addGlobal(y.rtti_base,N.I64,!1,e.i64(i64_low(T),i64_high(T)))}else e.addGlobal(y.rtti_base,N.I32,!1,e.i32(i64_low(m.offset)))}function De(r){let i=r.compiler,e=r.operands,t=r.typeArguments;if(Wi=0,e.length==0)return!t||t.length!=1?(i.error(2558,r.reportNode.typeArgumentsRange,"1",t?t.length.toString():"0"),null):t[0];if(e.length==1){if(t&&t.length>0){if(t.length>1)return i.error(2558,r.reportNode.typeArgumentsRange,"1",t.length.toString()),null;Wi=i.compileExpression(e[0],t[0],1)}else Wi=i.compileExpression(e[0],c.auto);return i.currentType}return t&&t.length>1&&i.error(2558,r.reportNode.typeArgumentsRange,"1",t.length.toString()),i.error(2554,r.reportNode.argumentsRange,"1",e.length.toString()),null}function Ce(r,i){let e=r.compiler.module;return Wi&&Yl(Wi,e.ref)&&(i=e.block(null,[e.maybeDrop(Wi),i],le(i))),i}function st(r,i){let e=i.module,t;if(i.options.isWasm64){let n=i.compileExpression(r,c.usize64,1),s=e.runExpression(n,1);s?(assert(Le(s)==0),t=Ie(s)):(i.error(220,r.range),t=-1)}else{let n=i.compileExpression(r,c.usize32,1),s=e.runExpression(n,1);s?t=ne(s):(i.error(220,r.range),t=-1)}return t}function Kt(r,i,e){let t=st(r,e);return t<0?t:t<1||i>16?(e.error(222,r.range,"Alignment","1",i.toString()),-1):zt(t)?t:(e.error(223,r.range,"Alignment"),-1)}function X(r,i){let e=r.compiler;return e.options.hasFeature(i)?0:(e.error(103,r.reportNode.range,mi(i)),1)}function J(r,i=!1){let e=r.compiler,t=r.typeArguments;if(t){let n=t.length;if(n==1)return 0;assert(n),i&&(e.currentType=t[0]),e.error(2558,r.reportNode.typeArgumentsRange,"1",n.toString())}else e.error(2558,r.reportNode.range,"1","0");return 1}function ue(r,i=!1){let e=r.typeArguments;if(e){let t=r.compiler,n=e.length;return n==1?0:(assert(n),i&&(t.currentType=e[0]),t.error(2558,r.reportNode.typeArgumentsRange,"1",n.toString()),1)}return 0}function I(r){if(r.typeArguments){let e=r.prototype;return e.program.error(2315,r.reportNode.typeArgumentsRange,e.internalName),1}return 0}function j(r,i){let e=r.operands;return e.length!=i?(r.compiler.error(2554,r.reportNode.range,i.toString(),e.length.toString()),1):0}function ke(r,i,e){let n=r.operands.length;return n<i?(r.compiler.error(2555,r.reportNode.range,i.toString(),n.toString()),1):n>e?(r.compiler.error(2554,r.reportNode.range,e.toString(),n.toString()),1):0}function xo(r,i,e){let t=r.module;if(e!=c.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(i))return r.currentType=c.i32,t.i32(i64_low(i));break}case 8:{if(i64_is_u32(i))return r.currentType=c.u32,t.i32(i64_low(i));break}case 4:case 9:return r.currentType=e,t.i64(i64_low(i),i64_high(i))}return r.options.isWasm64?(r.currentType=c.usize64,t.i64(i64_low(i),i64_high(i))):(r.currentType=c.usize32,assert(!i64_high(i)),t.i32(i64_low(i)))}var T_=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let i=this._currentExpression;if(!i)throw new Error("not walking expressions");return i}get parentExpressionOrNull(){let i=this.stack,e=i.length;return e?i[e-1]:0}visitBlock(i){}visitIf(i){}visitLoop(i){}visitBreak(i){}visitSwitch(i){}visitCallPre(i){}visitCall(i){}visitCallIndirectPre(i){}visitCallIndirect(i){}visitLocalGet(i){}visitLocalSet(i){}visitGlobalGet(i){}visitGlobalSet(i){}visitLoad(i){}visitStore(i){}visitConst(i){}visitUnary(i){}visitBinary(i){}visitSelect(i){}visitDrop(i){}visitReturn(i){}visitMemorySize(i){}visitMemoryGrow(i){}visitNop(i){}visitUnreachable(i){}visitAtomicRMW(i){}visitAtomicCmpxchg(i){}visitAtomicWait(i){}visitAtomicNotify(i){}visitAtomicFence(i){}visitSIMDExtract(i){}visitSIMDReplace(i){}visitSIMDShuffle(i){}visitSIMDTernary(i){}visitSIMDShift(i){}visitSIMDLoad(i){}visitSIMDLoadStoreLane(i){}visitMemoryInit(i){}visitDataDrop(i){}visitMemoryCopy(i){}visitMemoryFill(i){}visitPop(i){}visitRefNull(i){}visitRefIsNull(i){}visitRefFunc(i){}visitRefEq(i){}visitTry(i){}visitThrow(i){}visitRethrow(i){}visitTupleMake(i){}visitTupleExtract(i){}visitRefI31(i){}visitI31Get(i){}visitCallRef(i){}visitRefTest(i){}visitRefCast(i){}visitBrOn(i){}visitStructNew(i){}visitStructGet(i){}visitStructSet(i){}visitArrayNew(i){}visitArrayNewFixed(i){}visitArrayGet(i){}visitArraySet(i){}visitArrayLen(i){}visitArrayCopy(i){}visitRefAs(i){}visitStringNew(i){}visitStringConst(i){}visitStringMeasure(i){}visitStringEncode(i){}visitStringConcat(i){}visitStringEq(i){}visitStringAs(i){}visitStringWTF8Advance(i){}visitStringWTF16Get(i){}visitStringIterNext(i){}visitStringIterMove(i){}visitStringSliceWTF(i){}visitStringSliceIter(i){}visitName(i){}visitLabel(i){}visitIndex(i){}visitTag(i){}visit(i){let e=this._currentExpression;switch(this._currentExpression=assert(i),Nt(i)){case 1:{this.stack.push(i);let t=Ys(i);t&&this.visitLabel(t);for(let n=0,s=cn(i);n<s;++n)this.visit(pn(i,n));assert(this.stack.pop()==i),this.visitBlock(i);break}case 2:{this.stack.push(i),this.visit(_n(i)),this.visit(fn(i));let t=dn(i);t&&this.visit(t),assert(this.stack.pop()==i),this.visitIf(i);break}case 3:{this.stack.push(i);let t=$s(i);t&&this.visitLabel(t),this.visit(hn(i)),assert(this.stack.pop()==i),this.visitLoop(i);break}case 4:{this.stack.push(i),this.visitLabel(ea(i));let t=mn(i);t&&this.visit(t);let n=Co(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitBreak(i);break}case 5:{this.stack.push(i);let t=Tf(i);t&&this.visitLabel(t);let n=bf(i);for(let a=0;a<n;++a)this.visitLabel(xf(i,a));this.visit(Po(i));let s=Bo(i);s&&this.visit(s),assert(this.stack.pop()==i),this.visitSwitch(i);break}case 6:{this.visitCallPre(i),this.stack.push(i),this.visitName(li(i));let t=$t(i);for(let n=0;n<t;++n)this.visit(er(i,n));assert(this.stack.pop()==i),this.visitCall(i);break}case 7:{this.visitCallIndirectPre(i),this.stack.push(i),this.visit(Lo(i));for(let t=0,n=yn(i);t<n;++t)this.visit(gn(i,t));assert(this.stack.pop()==i),this.visitCallIndirect(i);break}case 8:{this.stack.push(i),this.visitIndex(ia(i)),assert(this.stack.pop()==i),this.visitLocalGet(i);break}case 9:{this.stack.push(i),this.visitIndex(oi(i)),this.visit(Tr(i)),assert(this.stack.pop()==i),this.visitLocalSet(i);break}case 10:{this.stack.push(i),this.visitName(aa(i)),assert(this.stack.pop()==i),this.visitGlobalGet(i);break}case 11:{this.stack.push(i),this.visitName(Bf(i)),this.visit(No(i)),assert(this.stack.pop()==i),this.visitGlobalSet(i);break}case 12:{this.stack.push(i),this.visit(Tn(i)),assert(this.stack.pop()==i),this.visitLoad(i);break}case 13:{this.stack.push(i),this.visit(Ar(i)),this.visit(An(i)),assert(this.stack.pop()==i),this.visitStore(i);break}case 14:{this.visitConst(i);break}case 15:{this.stack.push(i),this.visit(vn(i)),assert(this.stack.pop()==i),this.visitUnary(i);break}case 16:{this.stack.push(i),this.visit(En(i)),this.visit(Sn(i)),assert(this.stack.pop()==i),this.visitBinary(i);break}case 17:{this.stack.push(i),this.visit(In(i)),this.visit(kn(i)),this.visit(Rn(i)),assert(this.stack.pop()==i),this.visitSelect(i);break}case 18:{this.stack.push(i),this.visit(Fn(i)),assert(this.stack.pop()==i),this.visitDrop(i);break}case 19:{let t=vr(i);t&&(this.stack.push(i),this.visit(t),assert(this.stack.pop()==i)),this.visitReturn(i);break}case 20:{this.visitMemorySize(i);break}case 21:{this.stack.push(i),this.visit(xn(i)),assert(this.stack.pop()==i),this.visitMemoryGrow(i);break}case 22:{this.visitNop(i);break}case 23:{this.visitUnreachable(i);break}case 24:{this.stack.push(i),this.visit(Do(i)),this.visit(Go(i)),assert(this.stack.pop()==i),this.visitAtomicRMW(i);break}case 25:{this.stack.push(i),this.visit(zo(i)),this.visit(Uo(i)),this.visit(Vo(i)),assert(this.stack.pop()==i),this.visitAtomicCmpxchg(i);break}case 26:{this.stack.push(i),this.visit(Oo(i)),this.visit(qo(i)),this.visit(Wo(i)),assert(this.stack.pop()==i),this.visitAtomicWait(i);break}case 27:{this.stack.push(i),this.visit(jo(i)),this.visit(Ko(i)),assert(this.stack.pop()==i),this.visitAtomicNotify(i);break}case 28:{this.visitAtomicFence(i);break}case 30:{this.stack.push(i),this.visit(Ho(i)),assert(this.stack.pop()==i),this.visitSIMDExtract(i);break}case 31:{this.stack.push(i),this.visit(Qo(i)),this.visit(Xo(i)),assert(this.stack.pop()==i),this.visitSIMDReplace(i);break}case 32:{this.stack.push(i),this.visit(Jo(i)),this.visit(Zo(i)),assert(this.stack.pop()==i),this.visitSIMDShuffle(i);break}case 33:{this.stack.push(i),this.visit(Yo(i)),this.visit($o(i)),this.visit(eu(i)),assert(this.stack.pop()==i),this.visitSIMDTernary(i);break}case 34:{this.stack.push(i),this.visit(tu(i)),this.visit(ru(i)),assert(this.stack.pop()==i),this.visitSIMDShift(i);break}case 35:{this.stack.push(i),this.visit(iu(i)),assert(this.stack.pop()==i),this.visitSIMDLoad(i);break}case 36:{this.stack.push(i),this.visit(nu(i)),this.visit(su(i)),assert(this.stack.pop()==i),this.visitSIMDLoadStoreLane(i);break}case 37:{this.stack.push(i),this.visit(au(i)),this.visit(lu(i)),this.visit(ou(i)),assert(this.stack.pop()==i),this.visitMemoryInit(i);break}case 38:{this.visitDataDrop(i);break}case 39:{this.stack.push(i),this.visit(uu(i)),this.visit(cu(i)),this.visit(pu(i)),assert(this.stack.pop()==i),this.visitMemoryCopy(i);break}case 40:{this.stack.push(i),this.visit(_u(i)),this.visit(fu(i)),this.visit(du(i)),assert(this.stack.pop()==i),this.visitMemoryFill(i);break}case 41:{this.visitPop(i);break}case 42:{this.visitRefNull(i);break}case 43:{this.stack.push(i),this.visit(hu(i)),assert(this.stack.pop()==i),this.visitRefIsNull(i);break}case 44:{this.stack.push(i),this.visitName(ph(i)),assert(this.stack.pop()==i),this.visitRefFunc(i);break}case 45:{this.stack.push(i),this.visit(gu(i)),this.visit(bu(i)),assert(this.stack.pop()==i),this.visitRefEq(i);break}case 54:{this.stack.push(i),this.visit(xu(i));let t=Tu(i);for(let n=0;n<t;++n)this.visit(Au(i,n));assert(this.stack.pop()==i),this.visitTry(i);break}case 56:{this.stack.push(i),this.visitTag(vh(i));let t=vu(i);for(let n=0;n<t;++n)this.visit(Eu(i,n));assert(this.stack.pop()==i),this.visitThrow(i);break}case 57:{this.visitRethrow(i);break}case 59:{let t=Su(i);if(t){this.stack.push(i);for(let n=0;n<t;++n)this.visit(Iu(i,n));assert(this.stack.pop()==i)}this.visitTupleMake(i);break}case 60:{this.stack.push(i),this.visit(ku(i)),assert(this.stack.pop()==i),this.visitTupleExtract(i);break}case 61:{this.stack.push(i),this.visit(Ru(i)),assert(this.stack.pop()==i),this.visitRefI31(i);break}case 62:{this.stack.push(i),this.visit(Fu(i)),assert(this.stack.pop()==i),this.visitI31Get(i);break}case 63:{this.stack.push(i);let t=wu(i);if(t)for(let n=0;n<t;++n)this.visit(Cu(i,n));this.visit(Pu(i)),assert(this.stack.pop()==i),this.visitCallRef(i);break}case 64:{this.stack.push(i),this.visit(Bu(i)),assert(this.stack.pop()==i),this.visitRefTest(i);break}case 65:{this.stack.push(i),this.visit(Lu(i)),assert(this.stack.pop()==i),this.visitRefCast(i);break}case 67:{this.stack.push(i),this.visitLabel(zh(i)),this.visit(Nu(i)),assert(this.stack.pop()==i),this.visitBrOn(i);break}case 68:{let t=Mu(i);if(t){this.stack.push(i);for(let n=0;n<t;++n)this.visit(Du(i,n));assert(this.stack.pop()==i)}this.visitStructNew(i);break}case 69:{this.stack.push(i),this.visit(Gu(i)),this.visitIndex(Oh(i)),assert(this.stack.pop()==i),this.visitStructGet(i);break}case 70:{this.stack.push(i),this.visit(zu(i)),this.visitIndex(Wh(i)),this.visit(Uu(i)),assert(this.stack.pop()==i),this.visitStructSet(i);break}case 73:{this.stack.push(i),this.visit(Ou(i));let t=Vu(i);t&&this.visit(t),assert(this.stack.pop()==i),this.visitArrayNew(i);break}case 76:{let t=qu(i);if(t){this.stack.push(i);for(let n=0;n<t;++n)this.visit(Wu(i,n));assert(this.stack.pop()==i)}this.visitArrayNewFixed(i);break}case 77:{this.stack.push(i),this.visit(ju(i)),this.visit(Ku(i)),assert(this.stack.pop()==i),this.visitArrayGet(i);break}case 78:{this.stack.push(i),this.visit(Hu(i)),this.visit(Qu(i)),this.visit(Xu(i)),assert(this.stack.pop()==i),this.visitArraySet(i);break}case 81:{this.stack.push(i),this.visit(Ju(i)),assert(this.stack.pop()==i),this.visitArrayLen(i);break}case 82:{this.stack.push(i),this.visit(Zu(i)),this.visit(Yu(i)),this.visit($u(i)),this.visit(ec(i)),this.visit(tc(i)),assert(this.stack.pop()==i),this.visitArrayCopy(i);break}case 88:{this.stack.push(i),this.visit(yu(i)),assert(this.stack.pop()==i),this.visitRefAs(i);break}case 89:{this.stack.push(i),this.visit(rc(i));let t=ic(i);t&&this.visit(t);let n=nc(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitStringNew(i);break}case 90:{this.stack.push(i),assert(this.stack.pop()==i),this.visitStringConst(i);break}case 91:{this.stack.push(i),this.visit(sc(i)),assert(this.stack.pop()==i),this.visitStringMeasure(i);break}case 92:{this.stack.push(i),this.visit(ac(i)),this.visit(lc(i));let t=oc(i);t&&this.visit(t),assert(this.stack.pop()==i),this.visitStringEncode(i);break}case 93:{this.stack.push(i),this.visit(uc(i)),this.visit(cc(i)),assert(this.stack.pop()==i),this.visitStringConcat(i);break}case 94:{this.stack.push(i),this.visit(_c(i)),this.visit(fc(i)),assert(this.stack.pop()==i),this.visitStringEq(i);break}case 96:{this.stack.push(i),this.visit(dc(i)),this.visit(hc(i)),assert(this.stack.pop()==i),this.visitStringWTF16Get(i);break}case 97:{this.stack.push(i),this.visit(mc(i)),this.visit(yc(i)),this.visit(gc(i)),assert(this.stack.pop()==i),this.visitStringSliceWTF(i);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},ii=class extends T_{constructor(e){super();this.module=e;this._currentFunction=0;this._currentGlobal=0}get currentFunction(){let e=this._currentFunction;if(!e)throw new Error("not walking a function");return e}get currentGlobal(){let e=this._currentGlobal;if(!e)throw new Error("not walking a global");return e}walkModule(){this.walkFunctions(),this.walkGlobals()}walkFunctions(){let e=this.module.ref;for(let t=0,n=_i(e);t<n;++t)this.walkFunction(Cn(e,t))}walkFunction(e){let t=Dt(e);t&&(this._currentFunction=e,this.visit(t),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let t=0,n=Um(e);t<n;++t)this.walkGlobal(Vm(e,t))}walkGlobal(e){this._currentGlobal=e;let t=ma(e);t&&this.visit(t),this._currentGlobal=0}replaceCurrent(e){let t=this.currentExpression,n=this.currentFunction;if(Dt(n)==t)Ln(n,e);else{let a=assert(this.parentExpressionOrNull);if(!mI(a,t,e))throw Error("failed to replace expression");af(a)}}};function mI(r,i,e){switch(Nt(r)){case 1:{let t=cn(r);for(let n=0;n<t;++n){let s=pn(r,n);if(s==i)return of(r,n,e),s}break}case 2:{let t=_n(r);if(t==i)return cf(r,e),t;let n=fn(r);if(n==i)return pf(r,e),n;let s=dn(r);if(s==i)return _f(r,e),s;break}case 3:{let t=hn(r);if(t==i)return df(r,e),t;break}case 4:{let t=mn(r);if(t==i)return mf(r,e),t;let n=Co(r);if(n==i)return yf(r,e),n;break}case 5:{let t=Po(r);if(t==i)return Af(r,e),t;let n=Bo(r);if(n==i)return vf(r,e),n;break}case 6:{let t=$t(r);for(let n=0;n<t;++n){let s=er(r,n);if(s==i)return ta(r,n,e),s}break}case 7:{let t=Lo(r);if(t==i)return kf(r,e),t;let n=yn(r);for(let s=0;s<n;++s){let a=gn(r,s);if(a==i)return ra(r,s,e),a}break}case 8:break;case 9:{let t=Tr(r);if(t==i)return sa(r,e),t;break}case 10:break;case 11:{let t=No(r);if(t==i)return Lf(r,e),t;break}case 12:{let t=Tn(r);if(t==i)return Of(r,e),t;break}case 13:{let t=Ar(r);if(t==i)return ua(r,e),t;let n=An(r);if(n==i)return jf(r,e),n;break}case 14:break;case 15:{let t=vn(r);if(t==i)return $f(r,e),t;break}case 16:{let t=En(r);if(t==i)return nd(r,e),t;let n=Sn(r);if(n==i)return sd(r,e),n;break}case 17:{let t=In(r);if(t==i)return ld(r,e),t;let n=kn(r);if(n==i)return od(r,e),n;let s=Rn(r);if(s==i)return ud(r,e),s;break}case 18:{let t=Fn(r);if(t==i)return cd(r,e),t;break}case 19:{let t=vr(r);if(t==i)return ca(r,e),t;break}case 20:break;case 21:{let t=xn(r);if(t==i)return Df(r,e),t;break}case 22:break;case 23:break;case 24:{let t=Do(r);if(t==i)return hd(r,e),t;let n=Go(r);if(n==i)return md(r,e),n;break}case 25:{let t=zo(r);if(t==i)return gd(r,e),t;let n=Uo(r);if(n==i)return bd(r,e),n;let s=Vo(r);if(s==i)return xd(r,e),s;break}case 26:{let t=Oo(r);if(t==i)return Ad(r,e),t;let n=qo(r);if(n==i)return vd(r,e),n;let s=Wo(r);if(s==i)return Ed(r,e),s;break}case 27:{let t=jo(r);if(t==i)return Id(r,e),t;let n=Ko(r);if(n==i)return kd(r,e),n;break}case 28:break;case 30:{let t=Ho(r);if(t==i)return wd(r,e),t;break}case 31:{let t=Qo(r);if(t==i)return Pd(r,e),t;let n=Xo(r);if(n==i)return Bd(r,e),n;break}case 32:{let t=Jo(r);if(t==i)return Nd(r,e),t;let n=Zo(r);if(n==i)return Md(r,e),n;break}case 33:{let t=Yo(r);if(t==i)return Gd(r,e),t;let n=$o(r);if(n==i)return zd(r,e),n;let s=eu(r);if(s==i)return Ud(r,e),s;break}case 34:{let t=tu(r);if(t==i)return Od(r,e),t;let n=ru(r);if(n==i)return qd(r,e),n;break}case 35:{let t=iu(r);if(t==i)return jd(r,e),t;break}case 36:{let t=nu(r);if(t==i)return Hd(r,e),t;if(su(r)==i)return Qd(r,e),t;break}case 37:{let t=au(r);if(t==i)return Xd(r,e),t;let n=lu(r);if(n==i)return Jd(r,e),n;let s=ou(r);if(s==i)return Zd(r,e),s;break}case 38:break;case 39:{let t=uu(r);if(t==i)return $d(r,e),t;let n=cu(r);if(n==i)return eh(r,e),n;let s=pu(r);if(s==i)return th(r,e),s;break}case 40:{let t=_u(r);if(t==i)return ih(r,e),t;let n=fu(r);if(n==i)return nh(r,e),n;let s=du(r);if(s==i)return sh(r,e),s;break}case 41:break;case 42:break;case 43:{let t=hu(r);if(t==i)return oh(r,e),t;break}case 44:break;case 45:{let t=gu(r);if(t==i)return fh(r,e),t;let n=bu(r);if(n==i)return dh(r,e),n;break}case 54:{let t=xu(r);if(t==i)return xh(r,e),t;let n=Tu(r);for(let s=0;s<n;++s){let a=Au(r,s);if(a==i)return Th(r,s,e),a}break}case 56:{let t=vu(r);for(let n=0;n<t;++n){let s=Eu(r,n);if(s==i)return Eh(r,n,e),s}break}case 57:break;case 59:{let t=Su(r);for(let n=0;n<t;++n){let s=Iu(r,n);if(s==i)return kh(r,n,e),s}break}case 60:{let t=ku(r);if(t==i)return Fh(r,e),t;break}case 61:{let t=Ru(r);if(t==i)return Ph(r,e),t;break}case 62:{let t=Fu(r);if(t==i)return Lh(r,e),t;break}case 63:{let t=wu(r);for(let s=0;s<t;++s){let a=Cu(r,s);if(a==i)return Nh(r,s,e),a}let n=Pu(r);if(n==i)return Mh(r,e),n;break}case 64:{let t=Bu(r);if(t==i)return Dh(r,e),t;break}case 65:{let t=Lu(r);if(t==i)return Gh(r,e),t;break}case 67:{let t=Nu(r);if(t==i)return Uh(r,e),t;break}case 68:{let t=Mu(r);for(let n=0;n<t;++n){let s=Du(r,n);if(s==i)return Vh(r,n,e),s}break}case 69:{let t=Gu(r);if(t==i)return qh(r,e),t;break}case 70:{let t=zu(r);if(t==i)return jh(r,e),t;let n=Uu(r);if(n==i)return Kh(r,e),n;break}case 73:{let t=Ou(r);if(t==i)return Qh(r,e),t;let n=Vu(r);if(n==i)return Hh(r,e),n;break}case 76:{let t=qu(r);for(let n=0;n<t;++n){let s=Wu(r,n);if(s==i)return Xh(r,n,e),s}break}case 77:{let t=ju(r);if(t==i)return Jh(r,e),t;let n=Ku(r);if(n==i)return Zh(r,e),n;break}case 78:{let t=Hu(r);if(t==i)return Yh(r,e),t;let n=Qu(r);if(n==i)return $h(r,e),n;let s=Xu(r);if(s==i)return em(r,e),s;break}case 81:{let t=Ju(r);if(t==i)return tm(r,e),t;break}case 82:{let t=Zu(r);if(t==i)return rm(r,e),t;let n=Yu(r);if(n==i)return im(r,e),n;let s=$u(r);if(s==i)return nm(r,e),s;let a=ec(r);if(a==i)return sm(r,e),a;let l=tc(r);if(l==i)return am(r,e),l;break}case 88:{let t=yu(r);if(t==i)return uh(r,e),t;break}case 89:{let t=rc(r);if(t==i)return lm(r,e),t;let n=ic(r);if(n==i)return om(r,e),n;let s=nc(r);if(s==i)return um(r,e),s;break}case 90:break;case 91:{let t=sc(r);if(t==i)return cm(r,e),t;break}case 92:{let t=ac(r);if(t==i)return pm(r,e),t;let n=lc(r);if(n==i)return _m(r,e),n;let s=oc(r);if(s==i)return fm(r,e),s;break}case 93:{let t=uc(r);if(t==i)return dm(r,e),t;let n=cc(r);if(n==i)return hm(r,e),n;break}case 94:{let t=_c(r);if(t==i)return mm(r,e),t;let n=fc(r);if(n==i)return ym(r,e),n;break}case 96:{let t=dc(r);if(t==i)return gm(r,e),t;let n=hc(r);if(n==i)return bm(r,e),n;break}case 97:{let t=mc(r);if(t==i)return xm(r,e),t;let n=yc(r);if(n==i)return Tm(r,e),n;let s=gc(r);if(s==i)return Am(r,e),s;break}default:throw new Error("unexpected expression id")}return 0}var Ao=class extends ii{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(fi(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let t=this.module,n=Ar(e),s=oa(e),a=la(e);ua(e,t.call("~onstore",[n,t.i32(s),t.i32(a),t.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",Ze([this.ptrType,N.I32,N.I32,N.I32]),this.ptrType)}};function yb(r,i){let e=!1;for(;Nt(i)==6&&r.readStringCached(li(i))==y.tostack;)assert($t(i)==1),i=er(i,0),e=!0;return e?i:0}function gb(r){return Nt(r)===14?!Ye(r):!0}var Vs=class extends ii{constructor(e){super(e.module);this.slotMaps=new Map;this.tempMaps=new Map;this.exportMap=new Map;this.hasStackCheckFunction=!1;this.callSlotOffset=0;this.callSlotStack=new Array;this.compiler=e}get options(){return this.compiler.options}get ptrType(){return this.options.sizeTypeRef}get ptrSize(){return this.ptrType==N.I64?8:4}get ptrBinaryAdd(){return this.ptrType==N.I64?25:0}get ptrBinarySub(){return this.ptrType==N.I64?26:1}ptrConst(e){return this.ptrType==N.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,t){let n;if(this.slotMaps.has(e)){if(n=changetype(this.slotMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.slotMaps.set(e,n);let s=n.size;return n.set(t,s),s}noteExport(e,t){t.length&&this.exportMap.set(e,t)}getSharedTemp(e,t){let n;if(this.tempMaps.has(e)){if(n=changetype(this.tempMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.tempMaps.set(e,n);let a=bc(e)+n.size;return n.set(t,a),a}makeStackOffset(e){assert(e!=0);let t=this.module,n=t.global_set(y.stack_pointer,t.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,t.global_get(y.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?n:t.block(null,[n,this.makeStackCheck()],N.None)}makeStackFill(e,t){assert(e>0);let n=this.module;if(this.options.hasFeature(8)&&e>16)t.push(n.memory_fill(n.global_get(y.stack_pointer,this.ptrType),n.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)t.push(n.store(8,n.global_get(y.stack_pointer,this.ptrType),n.i64(0),N.I64,e-s)),s-=8;s&&(assert(s==4),t.push(n.store(4,n.global_get(y.stack_pointer,this.ptrType),n.i32(0),N.I32,e-s)))}}makeStackCheck(){let e=this.module;return!this.hasStackCheckFunction&&!e.hasFunction("~stack_check")&&(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",N.None,N.None,null,e.if(e.binary(17,e.global_get(y.stack_pointer,this.ptrType),e.global_get(y.data_end,this.ptrType)),this.compiler.options.hasFeature(64)?e.unreachable():this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),fe.native)))),e.call("~stack_check",null,N.None)}updateCallOperands(e){let t=this.module,n=0;for(let s=0,a=e.length;s<a;++s){let l=e[s],o=yb(t,l);if(!o)continue;if(!gb(o)){e[s]=o;continue}let u=this.currentFunction,p=bc(u),_=this.noteSlot(u,p+this.callSlotOffset+n),f=this.getSharedTemp(u,this.ptrType),d=new Array;d.push(t.local_set(f,o,!1)),d.push(t.store(this.ptrSize,t.global_get(y.stack_pointer,this.ptrType),t.local_get(f,this.ptrType),this.ptrType,_*this.ptrSize)),d.push(t.local_get(f,this.ptrType)),e[s]=t.block(null,d,this.ptrType),++n}return n}visitCallPre(e){let t=$t(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=er(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)ta(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitCallIndirectPre(e){let t=yn(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=gn(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)ra(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitLocalSet(e){let t=this.module,n=Tr(e),s=yb(t,n);if(!s)return;if(!gb(s)){sa(e,s);return}let a=oi(e),l=this.noteSlot(this.currentFunction,a),o=new Array;o.push(t.store(this.ptrSize,t.global_get(y.stack_pointer,this.ptrType),t.local_tee(a,s,!1),this.ptrType,l*this.ptrSize)),na(e)?(o.push(t.local_get(a,this.ptrType)),this.replaceCurrent(t.flatten(o,this.ptrType))):this.replaceCurrent(t.flatten(o,N.None))}updateFunction(e){let t=fi(e),n=Pn(e),s=Bn(e),a=assert(Dt(e)),l=pa(e),o=new Array;for(let d=0;d<l;++d)o[d]=_a(e,d);let u=this.tempMaps;if(u.has(e)){let d=changetype(u.get(e));for(let h=Map_keys(d),g=0,m=h.length;g<m;++g)o.push(h[g])}let p=this.module.ref;wn(p,t);let _=he(o),f=ci(p,t,n,s,_,o.length,a);if(this.options.sourceMap||this.options.debugInfo){let d=this.compiler.program.searchFunctionByRef(f);d&&d.addDebugInfo(this.module,f)}ie(_)}updateExport(e,t){let n=this.module,s=n.ref;assert(Nm(e)==0);let a=Dm(e),l=n.readStringCached(a),o=Mm(e),u=pi(s,a),p=Pn(u),_=np(p),f=_.length,d=Bn(u),h=f,g=new Array,m=assert(t.length),T=m*this.ptrSize,S="export:"+l,E=n.allocStringCached(S);if(pi(s,E)==0){let F=new Array;F.push(this.makeStackOffset(-T));for(let C=0;C<m;++C)F.push(n.store(this.ptrSize,n.global_get(y.stack_pointer,this.ptrType),n.local_get(t[C],this.ptrType),this.ptrType,C*this.ptrSize));let k=new Array(f);for(let C=0;C<f;++C)k[C]=n.local_get(C,_[C]);if(d!=N.None){let C=h++;g.push(d),F.push(n.local_set(C,n.call(l,k,d),!1)),F.push(this.makeStackOffset(+T)),F.push(n.local_get(C,d))}else F.push(n.call(l,k,d)),F.push(this.makeStackOffset(+T));let R=he(g);ci(s,E,p,d,R,g.length,n.block(null,F,d)),ie(R)}ha(s,o),fa(s,E,o)}walkModule(){let e=this.module.ref,t=this.module,n=0,s=0,a=new Set;for(;;){let u=_i(e);if(u==n)break;for(let _=n;_<u;++_)this.walkFunction(Cn(e,_));let p=new vo(this);for(let _=Map_keys(this.slotMaps),f=0,d=_.length;f<d;++f){let h=_[f];if(a.has(h))continue;a.add(h);let m=changetype(this.slotMaps.get(h)).size*this.ptrSize;p.frameSize=m,p.walkFunction(h);let T=new Array;T.push(this.makeStackOffset(-m)),this.makeStackFill(m,T);let S=Dt(h),E=Mt(S);if(E==N.Unreachable)T.push(S);else if(E==N.None)T.push(S),T.push(this.makeStackOffset(+m));else{let F=this.getSharedTemp(h,E);T.push(t.local_set(F,S,!1)),T.push(this.makeStackOffset(+m)),T.push(t.local_get(F,E))}Ln(h,t.flatten(T,E))}if(n=u,s++,s>100)throw new Error("ShadowStackPass: too many iterations, possible infinite loop")}this.walkGlobals();let l=this.exportMap;for(let u=Map_keys(l),p=0,_=u.length;p<_;++p){let f=u[p],d=da(t.ref,t.allocStringCached(f)),h=changetype(l.get(f));this.updateExport(d,h)}let o=_i(e);for(;n<o;){for(let p=n;p<o;++p)this.walkFunction(Cn(e,p));let u=new vo(this);for(let p=Map_keys(this.slotMaps),_=0,f=p.length;_<f;++_){let d=p[_];if(a.has(d))continue;a.add(d);let g=changetype(this.slotMaps.get(d)).size*this.ptrSize;u.frameSize=g,u.walkFunction(d);let m=new Array;m.push(this.makeStackOffset(-g)),this.makeStackFill(g,m);let T=Dt(d),S=Mt(T);if(S==N.Unreachable)m.push(T);else if(S==N.None)m.push(T),m.push(this.makeStackOffset(+g));else{let E=this.getSharedTemp(d,S);m.push(t.local_set(E,T,!1)),m.push(this.makeStackOffset(+g)),m.push(t.local_get(E,S))}Ln(d,t.flatten(m,S))}n=o,o=_i(e)}for(let u=Map_keys(this.tempMaps),p=0,_=u.length;p<_;++p)this.updateFunction(u[p])}},vo=class extends ii{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let t=this.module,n=vr(e),s=new Array;if(n){let a=Mt(n);if(a==N.Unreachable)return;let l=this.parentPass.getSharedTemp(this.currentFunction,a);s.push(t.local_set(l,n,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),ca(e,t.local_get(l,a))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(t.flatten(s,N.Unreachable))}};var Hi=class{constructor(i,e=!1){this.seen=new Map;this.program=i,this.includePrivate=e}walk(){for(let i=Map_values(this.program.filesByName),e=0,t=i.length;e<t;++e){let n=unchecked(i[e]);n.source.sourceKind==1&&this.visitFile(n)}}visitFile(i){let e=i.exports;if(e)for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));this.visitElement(l,o)}let t=i.exportsStar;if(t)for(let n=0,s=t.length;n<s;++n){let a=unchecked(t[n]);this.visitFile(a)}}visitElement(i,e){if(e.is(512)&&!this.includePrivate)return;let t=this.seen;if(!e.is(262144)&&t.has(e)){this.visitAlias(i,e,assert(t.get(e)));return}switch(t.set(e,i),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(i,e);break}case 2:{e.is(8388608)&&this.visitEnum(i,e);break}case 3:break;case 4:{this.visitFunctionInstances(i,e);break}case 6:{this.visitClassInstances(i,e);break}case 8:{this.visitInterfaceInstances(i,e);break}case 10:{let n=e.instance;if(!n)break;e=n}case 11:{let n=e,s=n.getterInstance;s&&this.visitFunction(i,s);let a=n.setterInstance;a&&this.visitFunction(i,a);break}case 12:{bb(e)&&this.visitNamespace(i,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(i,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);l.is(8388608)&&this.visitFunction(i,l)}}visitClassInstances(i,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==7),l.is(8388608)&&this.visitClass(i,l)}}visitInterfaceInstances(i,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==9),l.is(8388608)&&this.visitInterface(i,l)}}};function bb(r){let i=r.members;if(i)for(let e=Map_values(i),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]);switch(s.kind){case 4:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}case 6:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}default:{if(s.is(8388608)||bb(s))return!0;break}}}return!1}function yI(r){return r=="rtrace"?"#rtrace":r}function gI(r){return r!="rtrace"}var Xi=class r extends Hi{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.needsLiftBuffer=!1;this.needsLowerBuffer=!1;this.needsLiftString=!1;this.needsLowerString=!1;this.needsLiftArray=!1;this.needsLowerArray=!1;this.needsLiftTypedArray=!1;this.needsLowerTypedArray=!1;this.needsLiftStaticArray=!1;this.needsLowerStaticArray=!1;this.needsLiftInternref=!1;this.needsLowerInternref=!1;this.needsRetain=!1;this.needsRelease=!1;this.needsNotNull=!1;this.needsSetU8=!1;this.needsSetU16=!1;this.needsSetU32=!1;this.needsSetU64=!1;this.needsSetF32=!1;this.needsSetF64=!1;this.needsGetI8=!1;this.needsGetU8=!1;this.needsGetI16=!1;this.needsGetU16=!1;this.needsGetI32=!1;this.needsGetU32=!1;this.needsGetI64=!1;this.needsGetU64=!1;this.needsGetF32=!1;this.needsGetF64=!1;this.deferredLifts=new Set;this.deferredLowers=new Set;this.deferredCode=new Array;this.exports=new Array;this.importMappings=new Map;this.esm=t}static build(e,t=!0){return new r(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type;this.exports.push(e),ni(s,1)||(W(n,this.indentLevel),n.push(e),n.push(`: {
50
50
  `),W(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(": "),n.push(s.toString()),n.push(`
51
51
  `),W(n,this.indentLevel),n.push(`valueOf() { return this.value; },
52
52
  `),W(n,this.indentLevel),n.push(`get value() {