toilscript 0.1.45 → 0.1.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.generated.d.ts +5 -3
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/importmap.json +2 -2
- package/dist/toilscript.generated.d.ts +5 -3
- package/dist/toilscript.js +20 -20
- package/dist/toilscript.js.map +3 -3
- package/dist/web.js +3 -3
- package/package.json +1 -1
package/dist/toilscript.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
var ko=Object.defineProperty;var C_=Object.getOwnPropertyDescriptor;var y2=Object.getOwnPropertyNames;var g2=Object.prototype.hasOwnProperty;var Ro=(r,i)=>{for(var e in i)ko(r,e,{get:i[e],enumerable:!0})},w_=(r,i,e,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of y2(i))!g2.call(r,n)&&n!==e&&ko(r,n,{get:()=>i[n],enumerable:!(t=C_(i,n))||t.enumerable});return r},Fo=(r,i,e)=>(w_(r,i,"default"),e&&w_(e,i,"default"));var P_=(r,i,e,t)=>{for(var n=t>1?void 0:t?C_(i,e):i,s=r.length-1,a;s>=0;s--)(a=r[s])&&(n=(t?a(i,e,n):a(n))||n);return t&&n&&ko(i,e,n),n};var R_={};Ro(R_,{ASTBuilder:()=>k_,ArrayLiteralExpression:()=>Cr,ArrowKind:()=>Pi,AssertionExpression:()=>Ua,AssertionKind:()=>wi,AtomicRMWOp:()=>Zc,BinaryExpression:()=>Va,BinaryModule:()=>Wl,BinaryOp:()=>Ni,BlockStatement:()=>pl,BrOnOp:()=>Ig,BreakStatement:()=>_l,CallExpression:()=>Oa,Class:()=>lr,ClassDeclaration:()=>On,ClassExpression:()=>qa,ClassPrototype:()=>Ts,CommaExpression:()=>Wa,CommentKind:()=>qc,CommentNode:()=>za,CommonFlags:()=>ze,CommonNames:()=>P,CompiledExpression:()=>ul,Compiler:()=>js,ConditionKind:()=>hp,ConstantValueKind:()=>Lp,Constraints:()=>b_,ConstructorExpression:()=>ja,ContinueStatement:()=>fl,DEFAULT_STACK_SIZE:()=>VI,DeclarationStatement:()=>je,DeclaredElement:()=>ur,DecoratorFlags:()=>cr,DecoratorKind:()=>it,DecoratorNode:()=>Ga,DiagnosticCategory:()=>Na,DiagnosticCode:()=>ot,DiagnosticEmitter:()=>Je,DiagnosticMessage:()=>La,DoStatement:()=>dl,Element:()=>ys,ElementAccessExpression:()=>Ka,ElementKind:()=>vt,EmptyStatement:()=>hl,Enum:()=>mo,EnumDeclaration:()=>ml,EnumValue:()=>yo,EnumValueDeclaration:()=>yl,ExportDefaultStatement:()=>Tl,ExportImportStatement:()=>gl,ExportMember:()=>bl,ExportNames:()=>qs,ExportStatement:()=>xl,Expression:()=>be,ExpressionId:()=>Nr,ExpressionRunnerFlags:()=>jl,ExpressionStatement:()=>Al,ExternalKind:()=>Jc,FEATURES_ALL:()=>lk,FEATURES_DEFAULT:()=>ok,FEATURE_BULK_MEMORY:()=>HI,FEATURE_CLOSURES:()=>ak,FEATURE_EXCEPTION_HANDLING:()=>JI,FEATURE_EXTENDED_CONST:()=>ik,FEATURE_GC:()=>ek,FEATURE_MEMORY64:()=>tk,FEATURE_MULTI_VALUE:()=>$I,FEATURE_MUTABLE_GLOBALS:()=>jI,FEATURE_NONTRAPPING_F2I:()=>KI,FEATURE_REFERENCE_TYPES:()=>YI,FEATURE_RELAXED_SIMD:()=>rk,FEATURE_SHARED_EVERYTHING:()=>sk,FEATURE_SIGN_EXTENSION:()=>WI,FEATURE_SIMD:()=>QI,FEATURE_STRINGREF:()=>nk,FEATURE_TAIL_CALLS:()=>ZI,FEATURE_THREADS:()=>XI,FalseExpression:()=>al,Feature:()=>Gt,FeatureFlags:()=>Xc,FieldDeclaration:()=>vl,FieldFlags:()=>dp,File:()=>bs,FloatLiteralExpression:()=>Ha,Flow:()=>qt,FlowFlags:()=>eo,ForOfStatement:()=>Sl,ForStatement:()=>El,Function:()=>St,FunctionDeclaration:()=>qn,FunctionExpression:()=>Qa,FunctionPrototype:()=>tt,FunctionTypeNode:()=>wr,GETTER_PREFIX:()=>Aa,Global:()=>zr,HeapTypeRef:()=>Te,INDEX_SUFFIX:()=>qe,INNER_DELIMITER:()=>Fc,INSTANCE_DELIMITER:()=>Rc,IdentifierExpression:()=>xe,IdentifierHandling:()=>jc,IfStatement:()=>Il,ImportDeclaration:()=>kl,ImportNames:()=>en,ImportStatement:()=>Wn,IndexSignature:()=>os,IndexSignatureNode:()=>cl,InstanceOfExpression:()=>Xa,IntegerLiteralExpression:()=>pt,Interface:()=>us,InterfaceDeclaration:()=>Rl,InterfacePrototype:()=>go,JSBuilder:()=>Xi,LIBRARY_PREFIX:()=>bt,LIBRARY_SUBST:()=>_g,LiteralExpression:()=>xt,LiteralKind:()=>ir,Local:()=>Qe,LocalFlags:()=>ss,MemoryOrder:()=>Ag,MemorySegment:()=>Li,MethodDeclaration:()=>Pr,Module:()=>Ot,ModuleDeclaration:()=>Nl,NamedTypeNode:()=>ae,Namespace:()=>xs,NamespaceDeclaration:()=>Fl,NewExpression:()=>Ja,Node:()=>z,NodeKind:()=>ft,NullExpression:()=>Za,ObjectLiteralExpression:()=>Pe,OmittedExpression:()=>Ya,OperatorKind:()=>we,Options:()=>Ws,PARENT_SUBST:()=>F2,PATH_DELIMITER:()=>lt,PackedType:()=>Hn,Parameter:()=>Bp,ParameterKind:()=>Br,ParameterNode:()=>Ri,ParenthesizedExpression:()=>$a,Parser:()=>hs,Precedence:()=>Zg,Program:()=>ms,Property:()=>ls,PropertyAccessExpression:()=>_t,PropertyPrototype:()=>Oi,Range:()=>ce,RefAsOp:()=>vg,RegexpLiteralExpression:()=>el,Relooper:()=>ql,ReportMode:()=>no,Resolver:()=>as,ReturnStatement:()=>wl,Runtime:()=>xa,RuntimeFeatures:()=>x_,SETTER_PREFIX:()=>va,SIMDExtractOp:()=>Yc,SIMDLoadOp:()=>tp,SIMDLoadStoreLaneOp:()=>rp,SIMDReplaceOp:()=>$c,SIMDShiftOp:()=>ep,SIMDTernaryOp:()=>ip,STATIC_DELIMITER:()=>Nn,STUB_DELIMITER:()=>wc,SideEffects:()=>fp,Signature:()=>Xe,Source:()=>fe,SourceKind:()=>Ci,State:()=>Vl,Statement:()=>pe,StringEncodeOp:()=>Fg,StringEqOp:()=>wg,StringLiteralExpression:()=>ye,StringMeasureOp:()=>Rg,StringNewOp:()=>kg,SuperExpression:()=>rl,SwitchBuilder:()=>Qn,SwitchCase:()=>Cl,SwitchStatement:()=>Pl,TSDBuilder:()=>tn,Target:()=>yi,TemplateLiteralExpression:()=>il,TernaryExpression:()=>tl,ThisExpression:()=>nl,ThrowStatement:()=>Bl,Token:()=>Bi,Tokenizer:()=>Lr,TrueExpression:()=>sl,TryStatement:()=>Ll,TupleTypeNode:()=>Ma,Type:()=>c,TypeBuilderErrorReason:()=>Qc,TypeDeclaration:()=>Ml,TypeDefinition:()=>nt,TypeFlags:()=>Et,TypeKind:()=>sr,TypeName:()=>ki,TypeNode:()=>Ii,TypeParameterNode:()=>Da,TypeRef:()=>N,TypedElement:()=>jt,Typeinfo:()=>gi,TypeinfoFlags:()=>Ta,UnaryExpression:()=>Vn,UnaryOp:()=>Xn,UnaryPostfixExpression:()=>ll,UnaryPrefixExpression:()=>ol,UncheckedBehavior:()=>to,VariableDeclaration:()=>Dl,VariableLikeDeclarationStatement:()=>Fi,VariableLikeElement:()=>Ur,VariableStatement:()=>Gl,VoidStatement:()=>zl,WhileStatement:()=>Ul,WideIntAddSubOp:()=>Eg,WideIntMulOp:()=>Sg,addGlobalAlias:()=>LI,allocPtrArray:()=>he,buildJS:()=>Mk,buildServerModule:()=>uR,buildTSD:()=>Nk,compile:()=>Lk,createType:()=>Ze,defaultFeatures:()=>Eo,diagnosticCategoryToColor:()=>gg,diagnosticCategoryToString:()=>Oc,diagnosticCodeToString:()=>Ea,ensureType:()=>ns,expandType:()=>np,featureToString:()=>mi,findDecorator:()=>Ue,formatDiagnostic:()=>bg,formatDiagnosticMessage:()=>bg,getBinaryLeft:()=>$e,getBinaryOp:()=>Mi,getBinaryRight:()=>Ve,getBinaryenModuleRef:()=>Dk,getBlockChildAt:()=>ts,getBlockChildCount:()=>es,getBlockName:()=>$n,getBreakCondition:()=>c1,getBreakName:()=>u1,getCallOperandAt:()=>He,getCallOperandCount:()=>At,getCallTarget:()=>is,getConstValueF32:()=>Ee,getConstValueF64:()=>Se,getConstValueI32:()=>ne,getConstValueI64High:()=>Le,getConstValueI64Low:()=>Ie,getConstValueInteger:()=>sp,getConstValueV128:()=>ap,getDefaultParameterName:()=>tb,getDependee:()=>Pk,getDiagnosticCategory:()=>bk,getDiagnosticCode:()=>gk,getDiagnosticMessage:()=>xk,getDiagnosticRange:()=>Tk,getDiagnosticRelatedRange:()=>Ak,getDropValue:()=>_1,getExpressionId:()=>re,getExpressionType:()=>le,getFunctionBody:()=>h1,getFunctionName:()=>pp,getFunctionParams:()=>m1,getFunctionResults:()=>y1,getFunctionVars:()=>g1,getGlobalGetName:()=>Zn,getGlobalInit:()=>T1,getGlobalName:()=>b1,getGlobalType:()=>x1,getIfCondition:()=>Zl,getIfFalse:()=>Di,getIfTrue:()=>rs,getLoadBytes:()=>lp,getLoadOffset:()=>t1,getLoadPtr:()=>r1,getLocalGetIndex:()=>Tt,getLocalSetIndex:()=>Ql,getLocalSetValue:()=>Xl,getLoopBody:()=>o1,getLoopName:()=>l1,getMemoryGrowDelta:()=>d1,getRangeEnd:()=>Ek,getRangeSource:()=>Sk,getRangeStart:()=>vk,getReturnValue:()=>f1,getSelectCondition:()=>p1,getSelectElse:()=>cp,getSelectThen:()=>up,getSideEffects:()=>Gi,getSource:()=>yk,getSourceNormalizedPath:()=>Ik,getStoreBytes:()=>i1,getStoreOffset:()=>n1,getStorePtr:()=>s1,getStoreValue:()=>a1,getTagName:()=>A1,getTagParams:()=>v1,getTagResults:()=>E1,getUnaryOp:()=>Yn,getUnaryValue:()=>Jl,initializeProgram:()=>Bk,isConstExpressionNaN:()=>Hl,isConstNaN:()=>e1,isConstNegZero:()=>Kl,isConstNonZero:()=>dt,isConstZero:()=>Ye,isDeclaredElement:()=>gs,isError:()=>Fk,isGlobalMutable:()=>_p,isIllegalVariableIdentifier:()=>Kc,isInfo:()=>kk,isLoadSigned:()=>op,isLocalTee:()=>Jn,isNullableType:()=>Cg,isTypeOmitted:()=>Be,isTypedElement:()=>ro,isWarning:()=>Rk,mangleInternalName:()=>Ne,mangleInternalPath:()=>jn,mustPreserveSideEffects:()=>Yl,newOptions:()=>bI,newProgram:()=>hk,nextDiagnostic:()=>mk,nextFile:()=>Ck,operatorTokenToString:()=>Fe,optimize:()=>zk,parse:()=>wk,readString:()=>Ke,removeGlobalAlias:()=>NI,runtimeFunctions:()=>Ji,runtimeGlobals:()=>Zi,setBasenameHint:()=>pk,setBindingsHint:()=>_k,setBundleVersion:()=>qI,setDebugInfo:()=>dk,setExportMemory:()=>vI,setExportRuntime:()=>UI,setExportStart:()=>MI,setExportTable:()=>FI,setFeature:()=>uk,setImportMemory:()=>EI,setImportTable:()=>RI,setInitialMemory:()=>SI,setLowMemoryLimit:()=>zI,setMaximumMemory:()=>II,setMemoryBase:()=>PI,setNoAssert:()=>AI,setNoUnsafe:()=>DI,setOptimizeLevelHints:()=>ck,setPedantic:()=>fk,setRuntime:()=>TI,setSharedMemory:()=>kI,setSourceMap:()=>wI,setStackSize:()=>OI,setTableBase:()=>BI,setTarget:()=>xI,setTargetMode:()=>GI,setUncheckedBehavior:()=>CI,tokenFromKeyword:()=>xg,tokenIsAlsoIdentifier:()=>Tg,typesToRefs:()=>Vr,typesToString:()=>io,util:()=>Vc,validate:()=>Gk});var $=typeof window<"u"&&window||typeof global<"u"&&global||self;if(typeof $.ASC_TARGET>"u"){let e=function(){Error.captureStackTrace?Error.captureStackTrace(this,e):this.stack=this.name+": "+this.message+`
|
|
8
8
|
`+new Error().stack},t=function(a){this.message=a||"assertion failed",Error.captureStackTrace?Error.captureStackTrace(this,t):this.stack=this.name+": "+this.message+`
|
|
9
|
-
`+new Error().stack},n=function(a,l){if(a==l){if(a!=0)return 0;a=1/a,l=1/l}else{let o=a!=a,u=l!=l;if(o|u)return o-u;a==null&&(a=String(a)),l==null&&(l=String(l))}return a>l?1:-1};b2=e,x2=t,T2=n,$.ASC_TARGET=0,$.ASC_RUNTIME=0,$.ASC_NO_ASSERT=!1,$.ASC_MEMORY_BASE=0,$.ASC_OPTIMIZE_LEVEL=3,$.ASC_SHRINK_LEVEL=0,$.ASC_FEATURE_MUTABLE_GLOBAL=!1,$.ASC_FEATURE_SIGN_EXTENSION=!1,$.ASC_FEATURE_BULK_MEMORY=!1,$.ASC_FEATURE_SIMD=!1,$.ASC_FEATURE_THREADS=!1;let r=new Float64Array(1),i=new Uint32Array(r.buffer);Object.defineProperties($.i8=function(l){return l<<24>>24},{MIN_VALUE:{value:-128},MAX_VALUE:{value:127},parse(a,l){return parseInt(a,l)<<24>>24}}),Object.defineProperties($.i16=function(l){return l<<16>>16},{MIN_VALUE:{value:-32768},MAX_VALUE:{value:32767},parse(a,l){return parseInt(a,l)<<16>>16}}),Object.defineProperties($.i32=$.isize=function(l){return l|0},{MIN_VALUE:{value:-2147483648},MAX_VALUE:{value:2147483647},parse(a,l){return parseInt(a,l)|0}}),Object.defineProperties($.u8=function(l){return l&255},{MIN_VALUE:{value:0},MAX_VALUE:{value:255},parse(a,l){return parseInt(a,l)&255}}),Object.defineProperties($.u16=function(l){return l&65535},{MIN_VALUE:{value:0},MAX_VALUE:{value:65535},parse(a,l){return parseInt(a,l)&65535}}),Object.defineProperties($.u32=$.usize=function(l){return l>>>0},{MIN_VALUE:{value:0},MAX_VALUE:{value:4294967295},parse(a,l){return parseInt(a,l)>>>0}}),Object.defineProperties($.bool=function(l){return!!l},{MIN_VALUE:{value:!1},MAX_VALUE:{value:!0},parse(a){return a.trim()==="true"}}),Object.defineProperties($.f32=function(l){return Math.fround(l)},{EPSILON:{value:11920928955078125e-23},MIN_VALUE:{value:1401298464324817e-60},MAX_VALUE:{value:34028234663852886e22},MIN_NORMAL_VALUE:{value:11754943508222875e-54},MIN_SAFE_INTEGER:{value:-16777215},MAX_SAFE_INTEGER:{value:16777215},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return Math.fround(parseFloat(a))}}),Object.defineProperties($.f64=function(l){return+l},{EPSILON:{value:2220446049250313e-31},MIN_VALUE:{value:5e-324},MAX_VALUE:{value:17976931348623157e292},MIN_NORMAL_VALUE:{value:22250738585072014e-324},MIN_SAFE_INTEGER:{value:-9007199254740991},MAX_SAFE_INTEGER:{value:9007199254740991},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return parseFloat(a)}}),$.clz=Math.clz32,$.ctz=function(l){return 32-Math.clz32(~l&l-1)},$.popcnt=function(l){return l-=l>>>1&1431655765,l=(l&858993459)+(l>>>2&858993459),(l+(l>>>4)&252645135)*16843009>>>24},$.rotl=function(l,o){return o&=31,l<<o|l>>>32-o},$.rotr=function(l,o){return o&=31,l>>>o|l<<32-o},$.abs=Math.abs,$.max=Math.max,$.min=Math.min,$.ceil=Math.ceil,$.floor=Math.floor,$.nearest=function(l){let u=Math.abs(l);return u<4503599627370496?(u+4503599627370496-4503599627370496)*Math.sign(l):l},$.select=function(l,o,u){return u?l:o},$.sqrt=Math.sqrt,$.trunc=Math.trunc,$.copysign=function(l,o){return o?Math.abs(l)*Math.sign(o):(r[0]=o,i[1]>>>31?-1:1)},$.bswap=function(l){let o=l>>8&16711935,u=(l&16711935)<<8;return l=o|u,o=l>>16&65535,u=(l&65535)<<16,o|u},e.prototype=Object.create(Error.prototype),e.prototype.name="UnreachableError",e.prototype.message="unreachable",$.unreachable=function(){throw new e},t.prototype=Object.create(Error.prototype),t.prototype.name="AssertionError",$.assert=function(l,o){if(l)return l;throw new t(o)},$.changetype=function(l){return l},String.fromCharCodes=function(l){let u=l.length;if(u<=8192)return String.fromCharCode.apply(String,l);let p=0,_="";for(;p<u;)_+=String.fromCharCode.apply(String,l.slice(p,Math.min(p+8192,u))),p+=8192;return _},String.fromCodePoints=function(l){let u=l.length;if(u<=8192)return String.fromCodePoint.apply(String,l);let p=0,_="";for(;p<u;)_+=String.fromCodePoint.apply(String,l.slice(p,Math.min(p+8192,u))),p+=8192;return _},String.prototype.at||Object.defineProperty(String.prototype,"at",{value:function(l){return this.charAt(l>=0?l:l+this.length)},configurable:!0}),String.prototype.replaceAll||Object.defineProperty(String.prototype,"replaceAll",{value:function(l,o){let u=this.split(l).join(o);return l.length||(u=o+u+o),u},configurable:!0});let s=Array.prototype.sort;Array.prototype.sort=function(l){return s.call(this,l||n)},[Array,Uint8ClampedArray,Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array].forEach(a=>{a.prototype.at||Object.defineProperty(a.prototype,"at",{value:function(o){return this[o>=0?o:o+this.length]},configurable:!0}),a.prototype.findLastIndex||Object.defineProperty(a.prototype,"findLastIndex",{value:function(o){for(let u=this.length-1;u>=0;--u)if(o(this[u],u,this))return u;return-1},configurable:!0}),a!=Array&&Object.defineProperty(a,"wrap",{value:function(o,u,p){return new a(o,u,p)},configurable:!0})}),$.isInteger=Number.isInteger,$.isFloat=function(l){return typeof l=="number"},$.isNullable=function(l){return!0},$.isReference=function(l){return typeof l=="object"||typeof l=="string"},$.isFunction=function(l){return typeof l=="function"},$.isString=function(l){return typeof l=="string"||l instanceof String},$.isArray=Array.isArray,$.isArrayLike=function(l){return l&&typeof l=="object"&&typeof l.length=="number"&&l.length>=0&&Math.trunc(l.length)===l.length},$.isDefined=function(l){return typeof l<"u"},$.isConstant=function(l){return!1},$.unchecked=function(l){return l},$.fmod=function(l,o){return l%o},$.fmodf=function(l,o){return Math.fround(l%o)},$.JSMath=Math,Object.defineProperties($.JSMath,{sincos_sin:{value:0,writable:!0},sincos_cos:{value:0,writable:!0},signbit:{value:function(l){return r[0]=l,!!(i[1]>>>31)}},sincos:{value:function(l){this.sincos_sin=Math.sin(l),this.sincos_cos=Math.cos(l)}},exp2:{value:function(l){return Math.pow(2,l)}}}),$.unmanaged=function(){},$.trace=function(a,l){l&&(a+=Array.prototype.slice.call(arguments,2,2+l)),console.error("trace: "+a)}}var b2,x2,T2;var on={};Ro(on,{default:()=>un});Fo(on,MN);import*as MN from"binaryen";import{default as un}from"binaryen";import A2 from"long";var{_BinaryenTypeCreate:B_,_BinaryenTypeArity:L_,_BinaryenTypeExpand:N_,_BinaryenTypeGetHeapType:Yt,_BinaryenTypeFromHeapType:me,_BinaryenTypeIsNullable:M_,_BinaryenTypeFuncref:D_,_BinaryenTypeExternref:G_,_BinaryenTypeAnyref:z_,_BinaryenTypeEqref:U_,_BinaryenTypeI31ref:V_,_BinaryenTypeStructref:O_,_BinaryenTypeArrayref:q_,_BinaryenTypeStringref:W_,_BinaryenTypeNullref:j_,_BinaryenTypeNullExternref:K_,_BinaryenTypeNullFuncref:H_,_BinaryenHeapTypeFunc:UN,_BinaryenHeapTypeExt:VN,_BinaryenHeapTypeAny:ON,_BinaryenHeapTypeEq:qN,_BinaryenHeapTypeI31:WN,_BinaryenHeapTypeStruct:jN,_BinaryenHeapTypeArray:KN,_BinaryenHeapTypeString:HN,_BinaryenHeapTypeNone:QN,_BinaryenHeapTypeNoext:XN,_BinaryenHeapTypeNofunc:JN,_BinaryenHeapTypeIsBasic:ZN,_BinaryenHeapTypeIsSignature:YN,_BinaryenHeapTypeIsStruct:$N,_BinaryenHeapTypeIsArray:eM,_BinaryenHeapTypeIsBottom:Q_,_BinaryenHeapTypeGetBottom:X_,_BinaryenHeapTypeIsSubType:J_,_BinaryenStructTypeGetNumFields:Z_,_BinaryenStructTypeGetFieldType:tM,_BinaryenStructTypeGetFieldPackedType:rM,_BinaryenStructTypeIsFieldMutable:iM,_BinaryenArrayTypeGetElementType:nM,_BinaryenArrayTypeGetElementPackedType:sM,_BinaryenArrayTypeIsElementMutable:aM,_BinaryenSignatureTypeGetParams:lM,_BinaryenSignatureTypeGetResults:oM,_BinaryenModuleCreate:Y_,_BinaryenModuleDispose:$_,_BinaryenSizeofLiteral:wo,_BinaryenLiteralInt32:ef,_BinaryenLiteralFloat32:tf,_BinaryenLiteralFloat64:rf,_BinaryenLiteralVec128:nf,_BinaryenLiteralFloat32Bits:uM,_BinaryenExpressionGetId:Nt,_BinaryenExpressionGetType:Mt,_BinaryenExpressionSetType:cM,_BinaryenExpressionPrint:pM,_BinaryenExpressionCopy:sf,_BinaryenExpressionFinalize:af,_BinaryenBlock:lf,_BinaryenBlockGetName:Ys,_BinaryenBlockSetName:_M,_BinaryenBlockGetNumChildren:cn,_BinaryenBlockGetChildAt:pn,_BinaryenBlockSetChildAt:of,_BinaryenBlockAppendChild:fM,_BinaryenBlockInsertChildAt:dM,_BinaryenBlockRemoveChildAt:hM,_BinaryenIf:uf,_BinaryenIfGetCondition:_n,_BinaryenIfSetCondition:cf,_BinaryenIfGetIfTrue:fn,_BinaryenIfSetIfTrue:pf,_BinaryenIfGetIfFalse:dn,_BinaryenIfSetIfFalse:_f,_BinaryenLoop:ff,_BinaryenLoopGetName:$s,_BinaryenLoopSetName:mM,_BinaryenLoopGetBody:hn,_BinaryenLoopSetBody:df,_BinaryenBreak:hf,_BinaryenBreakGetName:ea,_BinaryenBreakSetName:yM,_BinaryenBreakGetCondition:mn,_BinaryenBreakSetCondition:mf,_BinaryenBreakGetValue:Co,_BinaryenBreakSetValue:yf,_BinaryenSwitch:gf,_BinaryenSwitchGetNumNames:bf,_BinaryenSwitchGetNameAt:xf,_BinaryenSwitchSetNameAt:gM,_BinaryenSwitchAppendName:bM,_BinaryenSwitchInsertNameAt:xM,_BinaryenSwitchRemoveNameAt:TM,_BinaryenSwitchGetDefaultName:Tf,_BinaryenSwitchSetDefaultName:AM,_BinaryenSwitchGetCondition:Po,_BinaryenSwitchSetCondition:Af,_BinaryenSwitchGetValue:Bo,_BinaryenSwitchSetValue:vf,_BinaryenCall:Ef,_BinaryenCallGetTarget:li,_BinaryenCallSetTarget:vM,_BinaryenCallGetNumOperands:$t,_BinaryenCallGetOperandAt:er,_BinaryenCallSetOperandAt:ta,_BinaryenCallAppendOperand:EM,_BinaryenCallInsertOperandAt:SM,_BinaryenCallRemoveOperandAt:IM,_BinaryenCallIsReturn:kM,_BinaryenCallSetReturn:RM,_BinaryenReturnCall:Sf,_BinaryenCallIndirect:If,_BinaryenCallIndirectGetTable:FM,_BinaryenCallIndirectSetTable:wM,_BinaryenCallIndirectGetTarget:Lo,_BinaryenCallIndirectSetTarget:kf,_BinaryenCallIndirectGetNumOperands:yn,_BinaryenCallIndirectGetOperandAt:gn,_BinaryenCallIndirectSetOperandAt:ra,_BinaryenCallIndirectAppendOperand:CM,_BinaryenCallIndirectInsertOperandAt:PM,_BinaryenCallIndirectRemoveOperandAt:BM,_BinaryenCallIndirectIsReturn:LM,_BinaryenCallIndirectSetReturn:NM,_BinaryenReturnCallIndirect:Rf,_BinaryenLocalGet:Ff,_BinaryenLocalGetGetIndex:ia,_BinaryenLocalGetSetIndex:MM,_BinaryenLocalSet:bn,_BinaryenLocalSetIsTee:na,_BinaryenLocalSetGetIndex:oi,_BinaryenLocalSetSetIndex:DM,_BinaryenLocalSetGetValue:Tr,_BinaryenLocalSetSetValue:sa,_BinaryenLocalTee:wf,_BinaryenGlobalGet:Cf,_BinaryenGlobalGetGetName:aa,_BinaryenGlobalGetSetName:GM,_BinaryenGlobalSet:Pf,_BinaryenGlobalSetGetName:Bf,_BinaryenGlobalSetSetName:zM,_BinaryenGlobalSetGetValue:No,_BinaryenGlobalSetSetValue:Lf,_BinaryenMemorySize:Nf,_BinaryenMemoryGrow:Mf,_BinaryenMemoryGrowGetDelta:xn,_BinaryenMemoryGrowSetDelta:Df,_BinaryenLoad:Gf,_BinaryenLoadIsAtomic:UM,_BinaryenLoadSetAtomic:VM,_BinaryenLoadIsSigned:zf,_BinaryenLoadSetSigned:OM,_BinaryenLoadGetOffset:Uf,_BinaryenLoadSetOffset:qM,_BinaryenLoadGetBytes:Vf,_BinaryenLoadSetBytes:WM,_BinaryenLoadGetAlign:jM,_BinaryenLoadSetAlign:KM,_BinaryenLoadGetPtr:Tn,_BinaryenLoadSetPtr:Of,_BinaryenAtomicLoad:qf,_BinaryenStore:Wf,_BinaryenStoreIsAtomic:HM,_BinaryenStoreSetAtomic:QM,_BinaryenStoreGetBytes:la,_BinaryenStoreSetBytes:XM,_BinaryenStoreGetOffset:oa,_BinaryenStoreSetOffset:JM,_BinaryenStoreGetAlign:ZM,_BinaryenStoreSetAlign:YM,_BinaryenStoreGetPtr:Ar,_BinaryenStoreSetPtr:ua,_BinaryenStoreGetValue:An,_BinaryenStoreSetValue:jf,_BinaryenStoreGetValueType:$M,_BinaryenStoreSetValueType:e7,_BinaryenAtomicStore:Kf,_BinaryenConst:ui,_BinaryenConstGetValueI32:Hf,_BinaryenConstSetValueI32:t7,_BinaryenConstGetValueF32:Qf,_BinaryenConstSetValueF32:r7,_BinaryenConstGetValueF64:Xf,_BinaryenConstSetValueF64:i7,_BinaryenConstGetValueV128:Jf,_BinaryenConstSetValueV128:n7,_BinaryenUnary:Zf,_BinaryenUnaryGetOp:Yf,_BinaryenUnarySetOp:s7,_BinaryenUnaryGetValue:vn,_BinaryenUnarySetValue:$f,_BinaryenWideIntAddSub:ed,_BinaryenWideIntMul:td,_BinaryenBinary:rd,_BinaryenBinaryGetOp:id,_BinaryenBinarySetOp:a7,_BinaryenBinaryGetLeft:En,_BinaryenBinarySetLeft:nd,_BinaryenBinaryGetRight:Sn,_BinaryenBinarySetRight:sd,_BinaryenSelect:ad,_BinaryenSelectGetIfTrue:In,_BinaryenSelectSetIfTrue:ld,_BinaryenSelectGetIfFalse:kn,_BinaryenSelectSetIfFalse:od,_BinaryenSelectGetCondition:Rn,_BinaryenSelectSetCondition:ud,_BinaryenDrop:Mo,_BinaryenDropGetValue:Fn,_BinaryenDropSetValue:cd,_BinaryenReturn:pd,_BinaryenReturnGetValue:vr,_BinaryenReturnSetValue:ca,_BinaryenNop:_d,_BinaryenUnreachable:fd,_BinaryenAtomicRMW:dd,_BinaryenAtomicRMWGetOp:l7,_BinaryenAtomicRMWSetOp:o7,_BinaryenAtomicRMWGetBytes:u7,_BinaryenAtomicRMWSetBytes:c7,_BinaryenAtomicRMWGetOffset:p7,_BinaryenAtomicRMWSetOffset:_7,_BinaryenAtomicRMWGetPtr:Do,_BinaryenAtomicRMWSetPtr:hd,_BinaryenAtomicRMWGetValue:Go,_BinaryenAtomicRMWSetValue:md,_BinaryenAtomicCmpxchg:yd,_BinaryenAtomicCmpxchgGetBytes:f7,_BinaryenAtomicCmpxchgSetBytes:d7,_BinaryenAtomicCmpxchgGetOffset:h7,_BinaryenAtomicCmpxchgSetOffset:m7,_BinaryenAtomicCmpxchgGetPtr:zo,_BinaryenAtomicCmpxchgSetPtr:gd,_BinaryenAtomicCmpxchgGetExpected:Uo,_BinaryenAtomicCmpxchgSetExpected:bd,_BinaryenAtomicCmpxchgGetReplacement:Vo,_BinaryenAtomicCmpxchgSetReplacement:xd,_BinaryenAtomicWait:Td,_BinaryenAtomicWaitGetPtr:Oo,_BinaryenAtomicWaitSetPtr:Ad,_BinaryenAtomicWaitGetExpected:qo,_BinaryenAtomicWaitSetExpected:vd,_BinaryenAtomicWaitGetTimeout:Wo,_BinaryenAtomicWaitSetTimeout:Ed,_BinaryenAtomicWaitGetExpectedType:y7,_BinaryenAtomicWaitSetExpectedType:g7,_BinaryenAtomicNotify:Sd,_BinaryenAtomicNotifyGetPtr:jo,_BinaryenAtomicNotifySetPtr:Id,_BinaryenAtomicNotifyGetNotifyCount:Ko,_BinaryenAtomicNotifySetNotifyCount:kd,_BinaryenAtomicFence:Rd,_BinaryenAtomicFenceGetOrder:b7,_BinaryenAtomicFenceSetOrder:x7,_BinaryenSIMDExtract:Fd,_BinaryenSIMDExtractGetOp:T7,_BinaryenSIMDExtractSetOp:A7,_BinaryenSIMDExtractGetVec:Ho,_BinaryenSIMDExtractSetVec:wd,_BinaryenSIMDExtractGetIndex:v7,_BinaryenSIMDExtractSetIndex:E7,_BinaryenSIMDReplace:Cd,_BinaryenSIMDReplaceGetOp:S7,_BinaryenSIMDReplaceSetOp:I7,_BinaryenSIMDReplaceGetVec:Qo,_BinaryenSIMDReplaceSetVec:Pd,_BinaryenSIMDReplaceGetIndex:k7,_BinaryenSIMDReplaceSetIndex:R7,_BinaryenSIMDReplaceGetValue:Xo,_BinaryenSIMDReplaceSetValue:Bd,_BinaryenSIMDShuffle:Ld,_BinaryenSIMDShuffleGetLeft:Jo,_BinaryenSIMDShuffleSetLeft:Nd,_BinaryenSIMDShuffleGetRight:Zo,_BinaryenSIMDShuffleSetRight:Md,_BinaryenSIMDShuffleGetMask:F7,_BinaryenSIMDShuffleSetMask:w7,_BinaryenSIMDTernary:Dd,_BinaryenSIMDTernaryGetOp:C7,_BinaryenSIMDTernarySetOp:P7,_BinaryenSIMDTernaryGetA:Yo,_BinaryenSIMDTernarySetA:Gd,_BinaryenSIMDTernaryGetB:$o,_BinaryenSIMDTernarySetB:zd,_BinaryenSIMDTernaryGetC:eu,_BinaryenSIMDTernarySetC:Ud,_BinaryenSIMDShift:Vd,_BinaryenSIMDShiftGetOp:B7,_BinaryenSIMDShiftSetOp:L7,_BinaryenSIMDShiftGetVec:tu,_BinaryenSIMDShiftSetVec:Od,_BinaryenSIMDShiftGetShift:ru,_BinaryenSIMDShiftSetShift:qd,_BinaryenSIMDLoad:Wd,_BinaryenSIMDLoadGetOp:N7,_BinaryenSIMDLoadSetOp:M7,_BinaryenSIMDLoadGetOffset:D7,_BinaryenSIMDLoadSetOffset:G7,_BinaryenSIMDLoadGetAlign:z7,_BinaryenSIMDLoadSetAlign:U7,_BinaryenSIMDLoadGetPtr:iu,_BinaryenSIMDLoadSetPtr:jd,_BinaryenSIMDLoadStoreLane:Kd,_BinaryenSIMDLoadStoreLaneGetOp:V7,_BinaryenSIMDLoadStoreLaneSetOp:O7,_BinaryenSIMDLoadStoreLaneGetOffset:q7,_BinaryenSIMDLoadStoreLaneSetOffset:W7,_BinaryenSIMDLoadStoreLaneGetAlign:j7,_BinaryenSIMDLoadStoreLaneSetAlign:K7,_BinaryenSIMDLoadStoreLaneGetIndex:H7,_BinaryenSIMDLoadStoreLaneSetIndex:Q7,_BinaryenSIMDLoadStoreLaneGetPtr:nu,_BinaryenSIMDLoadStoreLaneSetPtr:Hd,_BinaryenSIMDLoadStoreLaneGetVec:su,_BinaryenSIMDLoadStoreLaneSetVec:Qd,_BinaryenSIMDLoadStoreLaneIsStore:X7,_BinaryenMemoryInit:J7,_BinaryenMemoryInitGetSegment:Z7,_BinaryenMemoryInitSetSegment:Y7,_BinaryenMemoryInitGetDest:au,_BinaryenMemoryInitSetDest:Xd,_BinaryenMemoryInitGetOffset:lu,_BinaryenMemoryInitSetOffset:Jd,_BinaryenMemoryInitGetSize:ou,_BinaryenMemoryInitSetSize:Zd,_BinaryenDataDrop:$7,_BinaryenDataDropGetSegment:eD,_BinaryenDataDropSetSegment:tD,_BinaryenMemoryCopy:Yd,_BinaryenMemoryCopyGetDest:uu,_BinaryenMemoryCopySetDest:$d,_BinaryenMemoryCopyGetSource:cu,_BinaryenMemoryCopySetSource:eh,_BinaryenMemoryCopyGetSize:pu,_BinaryenMemoryCopySetSize:th,_BinaryenMemoryFill:rh,_BinaryenMemoryFillGetDest:_u,_BinaryenMemoryFillSetDest:ih,_BinaryenMemoryFillGetValue:fu,_BinaryenMemoryFillSetValue:nh,_BinaryenMemoryFillGetSize:du,_BinaryenMemoryFillSetSize:sh,_BinaryenRefNull:ah,_BinaryenRefIsNull:lh,_BinaryenRefIsNullGetValue:hu,_BinaryenRefIsNullSetValue:oh,_BinaryenRefAs:mu,_BinaryenRefAsGetOp:rD,_BinaryenRefAsSetOp:iD,_BinaryenRefAsGetValue:yu,_BinaryenRefAsSetValue:uh,_BinaryenRefFunc:ch,_BinaryenRefFuncGetFunc:ph,_BinaryenRefFuncSetFunc:nD,_BinaryenRefEq:_h,_BinaryenRefEqGetLeft:gu,_BinaryenRefEqSetLeft:fh,_BinaryenRefEqGetRight:bu,_BinaryenRefEqSetRight:dh,_BinaryenTableGet:hh,_BinaryenTableGetGetTable:sD,_BinaryenTableGetSetTable:aD,_BinaryenTableGetGetIndex:lD,_BinaryenTableGetSetIndex:oD,_BinaryenTableSet:mh,_BinaryenTableSetGetTable:uD,_BinaryenTableSetSetTable:cD,_BinaryenTableSetGetIndex:pD,_BinaryenTableSetSetIndex:_D,_BinaryenTableSetGetValue:fD,_BinaryenTableSetSetValue:dD,_BinaryenTableSize:yh,_BinaryenTableSizeGetTable:hD,_BinaryenTableSizeSetTable:mD,_BinaryenTableGrow:gh,_BinaryenTableGrowGetTable:yD,_BinaryenTableGrowSetTable:gD,_BinaryenTableGrowGetValue:bD,_BinaryenTableGrowSetValue:xD,_BinaryenTableGrowGetDelta:TD,_BinaryenTableGrowSetDelta:AD,_BinaryenTry:bh,_BinaryenTryGetName:vD,_BinaryenTrySetName:ED,_BinaryenTryGetBody:xu,_BinaryenTrySetBody:xh,_BinaryenTryGetNumCatchTags:SD,_BinaryenTryGetNumCatchBodies:Tu,_BinaryenTryGetCatchTagAt:ID,_BinaryenTrySetCatchTagAt:kD,_BinaryenTryAppendCatchTag:RD,_BinaryenTryInsertCatchTagAt:FD,_BinaryenTryRemoveCatchTagAt:wD,_BinaryenTryGetCatchBodyAt:Au,_BinaryenTrySetCatchBodyAt:Th,_BinaryenTryAppendCatchBody:CD,_BinaryenTryInsertCatchBodyAt:PD,_BinaryenTryRemoveCatchBodyAt:BD,_BinaryenTryHasCatchAll:LD,_BinaryenTryGetDelegateTarget:ND,_BinaryenTrySetDelegateTarget:MD,_BinaryenTryIsDelegate:DD,_BinaryenThrow:Ah,_BinaryenThrowGetTag:vh,_BinaryenThrowSetTag:GD,_BinaryenThrowGetNumOperands:vu,_BinaryenThrowGetOperandAt:Eu,_BinaryenThrowSetOperandAt:Eh,_BinaryenThrowAppendOperand:zD,_BinaryenThrowInsertOperandAt:UD,_BinaryenThrowRemoveOperandAt:VD,_BinaryenRethrow:Sh,_BinaryenRethrowGetTarget:OD,_BinaryenRethrowSetDepth:qD,_BinaryenTupleMake:Ih,_BinaryenTupleMakeGetNumOperands:Su,_BinaryenTupleMakeGetOperandAt:Iu,_BinaryenTupleMakeSetOperandAt:kh,_BinaryenTupleMakeAppendOperand:WD,_BinaryenTupleMakeInsertOperandAt:jD,_BinaryenTupleMakeRemoveOperandAt:KD,_BinaryenTupleExtract:Rh,_BinaryenTupleExtractGetTuple:ku,_BinaryenTupleExtractSetTuple:Fh,_BinaryenTupleExtractGetIndex:HD,_BinaryenTupleExtractSetIndex:QD,_BinaryenPop:wh,_BinaryenRefI31:Ch,_BinaryenRefI31GetValue:Ru,_BinaryenRefI31SetValue:Ph,_BinaryenI31Get:Bh,_BinaryenI31GetGetI31:Fu,_BinaryenI31GetSetI31:Lh,_BinaryenI31GetIsSigned:XD,_BinaryenI31GetSetSigned:JD,_BinaryenCallRef:ZD,_BinaryenCallRefGetNumOperands:wu,_BinaryenCallRefGetOperandAt:Cu,_BinaryenCallRefSetOperandAt:Nh,_BinaryenCallRefAppendOperand:YD,_BinaryenCallRefInsertOperandAt:$D,_BinaryenCallRefRemoveOperandAt:eG,_BinaryenCallRefGetTarget:Pu,_BinaryenCallRefSetTarget:Mh,_BinaryenCallRefIsReturn:tG,_BinaryenCallRefSetReturn:rG,_BinaryenRefTest:iG,_BinaryenRefTestGetRef:Bu,_BinaryenRefTestSetRef:Dh,_BinaryenRefTestGetCastType:nG,_BinaryenRefTestSetCastType:sG,_BinaryenRefCast:aG,_BinaryenRefCastGetRef:Lu,_BinaryenRefCastSetRef:Gh,_BinaryenBrOn:lG,_BinaryenBrOnGetOp:oG,_BinaryenBrOnSetOp:uG,_BinaryenBrOnGetName:zh,_BinaryenBrOnSetName:cG,_BinaryenBrOnGetRef:Nu,_BinaryenBrOnSetRef:Uh,_BinaryenBrOnGetCastType:pG,_BinaryenBrOnSetCastType:_G,_BinaryenStructNew:fG,_BinaryenStructNewGetNumOperands:Mu,_BinaryenStructNewGetOperandAt:Du,_BinaryenStructNewSetOperandAt:Vh,_BinaryenStructNewAppendOperand:dG,_BinaryenStructNewInsertOperandAt:hG,_BinaryenStructNewRemoveOperandAt:mG,_BinaryenStructGet:yG,_BinaryenStructGetGetIndex:Oh,_BinaryenStructGetSetIndex:gG,_BinaryenStructGetGetRef:Gu,_BinaryenStructGetSetRef:qh,_BinaryenStructGetIsSigned:bG,_BinaryenStructGetSetSigned:xG,_BinaryenStructSet:TG,_BinaryenStructSetGetIndex:Wh,_BinaryenStructSetSetIndex:AG,_BinaryenStructSetGetRef:zu,_BinaryenStructSetSetRef:jh,_BinaryenStructSetGetValue:Uu,_BinaryenStructSetSetValue:Kh,_BinaryenArrayNew:vG,_BinaryenArrayNewGetInit:Vu,_BinaryenArrayNewSetInit:Hh,_BinaryenArrayNewGetSize:Ou,_BinaryenArrayNewSetSize:Qh,_BinaryenArrayNewFixed:EG,_BinaryenArrayNewFixedGetNumValues:qu,_BinaryenArrayNewFixedGetValueAt:Wu,_BinaryenArrayNewFixedSetValueAt:Xh,_BinaryenArrayNewFixedAppendValue:SG,_BinaryenArrayNewFixedInsertValueAt:IG,_BinaryenArrayNewFixedRemoveValueAt:kG,_BinaryenArrayNewData:RG,_BinaryenArrayNewDataGetSegment:FG,_BinaryenArrayNewDataSetSegment:wG,_BinaryenArrayNewDataGetOffset:CG,_BinaryenArrayNewDataSetOffset:PG,_BinaryenArrayNewDataGetSize:BG,_BinaryenArrayNewDataSetSize:LG,_BinaryenArrayNewElem:NG,_BinaryenArrayNewElemGetSegment:MG,_BinaryenArrayNewElemSetSegment:DG,_BinaryenArrayNewElemGetOffset:GG,_BinaryenArrayNewElemSetOffset:zG,_BinaryenArrayNewElemGetSize:UG,_BinaryenArrayNewElemSetSize:VG,_BinaryenArrayGet:OG,_BinaryenArrayGetGetRef:ju,_BinaryenArrayGetSetRef:Jh,_BinaryenArrayGetGetIndex:Ku,_BinaryenArrayGetSetIndex:Zh,_BinaryenArrayGetIsSigned:qG,_BinaryenArrayGetSetSigned:WG,_BinaryenArraySet:jG,_BinaryenArraySetGetRef:Hu,_BinaryenArraySetSetRef:Yh,_BinaryenArraySetGetIndex:Qu,_BinaryenArraySetSetIndex:$h,_BinaryenArraySetGetValue:Xu,_BinaryenArraySetSetValue:em,_BinaryenArrayLen:KG,_BinaryenArrayLenGetRef:Ju,_BinaryenArrayLenSetRef:tm,_BinaryenArrayFill:HG,_BinaryenArrayFillGetRef:QG,_BinaryenArrayFillSetRef:XG,_BinaryenArrayFillGetIndex:JG,_BinaryenArrayFillSetIndex:ZG,_BinaryenArrayFillGetValue:YG,_BinaryenArrayFillSetValue:$G,_BinaryenArrayFillGetSize:e9,_BinaryenArrayFillSetSize:t9,_BinaryenArrayCopy:r9,_BinaryenArrayCopyGetDestRef:Zu,_BinaryenArrayCopySetDestRef:rm,_BinaryenArrayCopyGetDestIndex:Yu,_BinaryenArrayCopySetDestIndex:im,_BinaryenArrayCopyGetSrcRef:$u,_BinaryenArrayCopySetSrcRef:nm,_BinaryenArrayCopyGetSrcIndex:ec,_BinaryenArrayCopySetSrcIndex:sm,_BinaryenArrayCopyGetLength:tc,_BinaryenArrayCopySetLength:am,_BinaryenArrayInitData:i9,_BinaryenArrayInitDataGetSegment:n9,_BinaryenArrayInitDataSetSegment:s9,_BinaryenArrayInitDataGetRef:a9,_BinaryenArrayInitDataSetRef:l9,_BinaryenArrayInitDataGetIndex:o9,_BinaryenArrayInitDataSetIndex:u9,_BinaryenArrayInitDataGetOffset:c9,_BinaryenArrayInitDataSetOffset:p9,_BinaryenArrayInitDataGetSize:_9,_BinaryenArrayInitDataSetSize:f9,_BinaryenArrayInitElem:d9,_BinaryenArrayInitElemGetSegment:h9,_BinaryenArrayInitElemSetSegment:m9,_BinaryenArrayInitElemGetRef:y9,_BinaryenArrayInitElemSetRef:g9,_BinaryenArrayInitElemGetIndex:b9,_BinaryenArrayInitElemSetIndex:x9,_BinaryenArrayInitElemGetOffset:T9,_BinaryenArrayInitElemSetOffset:A9,_BinaryenArrayInitElemGetSize:v9,_BinaryenArrayInitElemSetSize:E9,_BinaryenStringNew:S9,_BinaryenStringNewGetOp:I9,_BinaryenStringNewSetOp:k9,_BinaryenStringNewGetRef:rc,_BinaryenStringNewSetRef:lm,_BinaryenStringNewGetStart:ic,_BinaryenStringNewSetStart:om,_BinaryenStringNewGetEnd:nc,_BinaryenStringNewSetEnd:um,_BinaryenStringConst:R9,_BinaryenStringConstGetString:F9,_BinaryenStringConstSetString:w9,_BinaryenStringMeasure:C9,_BinaryenStringMeasureGetOp:P9,_BinaryenStringMeasureSetOp:B9,_BinaryenStringMeasureGetRef:sc,_BinaryenStringMeasureSetRef:cm,_BinaryenStringEncode:L9,_BinaryenStringEncodeGetOp:N9,_BinaryenStringEncodeSetOp:M9,_BinaryenStringEncodeGetStr:ac,_BinaryenStringEncodeSetStr:pm,_BinaryenStringEncodeGetArray:lc,_BinaryenStringEncodeSetArray:_m,_BinaryenStringEncodeGetStart:oc,_BinaryenStringEncodeSetStart:fm,_BinaryenStringConcat:D9,_BinaryenStringConcatGetLeft:uc,_BinaryenStringConcatSetLeft:dm,_BinaryenStringConcatGetRight:cc,_BinaryenStringConcatSetRight:hm,_BinaryenStringEq:pc,_BinaryenStringEqGetOp:G9,_BinaryenStringEqSetOp:z9,_BinaryenStringEqGetLeft:_c,_BinaryenStringEqSetLeft:mm,_BinaryenStringEqGetRight:fc,_BinaryenStringEqSetRight:ym,_BinaryenStringWTF16Get:U9,_BinaryenStringWTF16GetGetRef:dc,_BinaryenStringWTF16GetSetRef:gm,_BinaryenStringWTF16GetGetPos:hc,_BinaryenStringWTF16GetSetPos:bm,_BinaryenStringSliceWTF:V9,_BinaryenStringSliceWTFGetRef:mc,_BinaryenStringSliceWTFSetRef:xm,_BinaryenStringSliceWTFGetStart:yc,_BinaryenStringSliceWTFSetStart:Tm,_BinaryenStringSliceWTFGetEnd:gc,_BinaryenStringSliceWTFSetEnd:Am,_BinaryenAddFunction:ci,_BinaryenGetFunction:pi,_BinaryenRemoveFunction:wn,_BinaryenGetNumFunctions:_i,_BinaryenGetFunctionByIndex:Cn,_BinaryenFunctionGetName:fi,_BinaryenFunctionGetParams:Pn,_BinaryenFunctionGetResults:Bn,_BinaryenFunctionGetNumVars:pa,_BinaryenFunctionGetVar:_a,_BinaryenFunctionAddVar:O9,_BinaryenFunctionGetNumLocals:bc,_BinaryenFunctionHasLocalName:q9,_BinaryenFunctionGetLocalName:W9,_BinaryenFunctionSetLocalName:vm,_BinaryenFunctionGetBody:Dt,_BinaryenFunctionSetBody:Ln,_BinaryenFunctionGetType:j9,_BinaryenFunctionSetType:K9,_BinaryenFunctionOptimize:H9,_BinaryenFunctionRunPasses:Em,_BinaryenFunctionSetDebugLocation:Sm,_BinaryenAddFunctionImport:Im,_BinaryenAddTableImport:km,_BinaryenAddMemoryImport:Rm,_BinaryenAddGlobalImport:Fm,_BinaryenAddTagImport:wm,_BinaryenAddFunctionExport:fa,_BinaryenAddTableExport:Cm,_BinaryenAddMemoryExport:Pm,_BinaryenAddGlobalExport:Bm,_BinaryenAddTagExport:Lm,_BinaryenGetExport:da,_BinaryenRemoveExport:ha,_BinaryenGetNumExports:Q9,_BinaryenGetExportByIndex:X9,_BinaryenExportGetKind:Nm,_BinaryenExportGetName:Mm,_BinaryenExportGetValue:Dm,_BinaryenAddGlobal:Gm,_BinaryenGetGlobal:xc,_BinaryenRemoveGlobal:zm,_BinaryenGetNumGlobals:Um,_BinaryenGetGlobalByIndex:Vm,_BinaryenGlobalGetName:Om,_BinaryenGlobalGetType:qm,_BinaryenGlobalIsMutable:Wm,_BinaryenGlobalGetInitExpr:ma,_BinaryenAddTag:jm,_BinaryenGetTag:Km,_BinaryenRemoveTag:Hm,_BinaryenTagGetName:Qm,_BinaryenTagGetParams:Xm,_BinaryenTagGetResults:Jm,_BinaryenAddTable:Tc,_BinaryenRemoveTable:J9,_BinaryenGetNumTables:Z9,_BinaryenGetTable:Ac,_BinaryenGetTableByIndex:Y9,_BinaryenTableGetName:$9,_BinaryenTableSetName:ez,_BinaryenTableGetInitial:tz,_BinaryenTableSetInitial:Zm,_BinaryenTableHasMax:rz,_BinaryenTableGetMax:iz,_BinaryenTableSetMax:Ym,_BinaryenTableGetType:nz,_BinaryenTableSetType:sz,_BinaryenAddActiveElementSegment:$m,_BinaryenAddPassiveElementSegment:az,_BinaryenRemoveElementSegment:lz,_BinaryenGetNumElementSegments:oz,_BinaryenGetElementSegment:uz,_BinaryenGetElementSegmentByIndex:cz,_BinaryenSetMemory:ey,_BinaryenGetNumMemorySegments:pz,_BinaryenGetMemorySegmentByteOffset:_z,_BinaryenGetMemorySegmentByteLength:fz,_BinaryenCopyMemorySegmentData:dz,_BinaryenAddDataSegment:hz,_BinaryenSetStart:ty,_BinaryenGetStart:mz,_BinaryenModuleParse:yz,_BinaryenModulePrint:gz,_BinaryenModulePrintAsmjs:bz,_BinaryenModuleValidate:ry,_BinaryenModuleOptimize:xz,_BinaryenModuleRunPasses:iy,_BinaryenSizeofAllocateAndWriteResult:ny,_BinaryenModuleAllocateAndWrite:sy,_BinaryenModuleAllocateAndWriteText:ay,_BinaryenModuleAllocateAndWriteStackIR:ly,_BinaryenModuleRead:oy,_BinaryenModuleReadWithFeatures:Tz,_BinaryenModuleInterpret:uy,_BinaryenModuleAddDebugInfoFileName:cy,_BinaryenModuleGetDebugInfoFileName:py,_BinaryenModuleGetFeatures:_y,_BinaryenModuleSetFeatures:fy,_BinaryenAddCustomSection:dy,_BinaryenExpressionGetSideEffects:hy,_RelooperCreate:my,_RelooperAddBlock:yy,_RelooperAddBranch:gy,_RelooperAddBlockWithSwitch:by,_RelooperAddBranchForSwitch:xy,_RelooperRenderAndDispose:Ty,_ExpressionRunnerCreate:Ay,_ExpressionRunnerSetLocalValue:Az,_ExpressionRunnerSetGlobalValue:vz,_ExpressionRunnerRunAndDispose:vy,_TypeBuilderCreate:Ey,_TypeBuilderGrow:vc,_TypeBuilderGetSize:ya,_TypeBuilderSetSignatureType:Sy,_TypeBuilderSetStructType:Iy,_TypeBuilderSetArrayType:Ez,_TypeBuilderGetTempHeapType:Ec,_TypeBuilderGetTempTupleType:Sc,_TypeBuilderGetTempRefType:di,_TypeBuilderSetSubType:ky,_TypeBuilderSetOpen:Sz,_TypeBuilderCreateRecGroup:Iz,_TypeBuilderBuildAndDispose:Ry,_BinaryenModuleSetTypeName:Fy,_BinaryenModuleSetFieldName:wy,_BinaryenGetOptimizeLevel:Cy,_BinaryenSetOptimizeLevel:Py,_BinaryenGetShrinkLevel:By,_BinaryenSetShrinkLevel:Ly,_BinaryenGetDebugInfo:Ny,_BinaryenSetDebugInfo:My,_BinaryenGetTrapsNeverHappen:Dy,_BinaryenSetTrapsNeverHappen:Gy,_BinaryenGetClosedWorld:zy,_BinaryenSetClosedWorld:Uy,_BinaryenGetLowMemoryUnused:Vy,_BinaryenSetLowMemoryUnused:Oy,_BinaryenGetZeroFilledMemory:qy,_BinaryenSetZeroFilledMemory:Wy,_BinaryenGetFastMath:jy,_BinaryenSetFastMath:Ky,_BinaryenGetGenerateStackIR:Hy,_BinaryenSetGenerateStackIR:Qy,_BinaryenGetOptimizeStackIR:Xy,_BinaryenSetOptimizeStackIR:Jy,_BinaryenGetPassArgument:Zy,_BinaryenSetPassArgument:Yy,_BinaryenClearPassArguments:$y,_BinaryenHasPassToSkip:kz,_BinaryenAddPassToSkip:Rz,_BinaryenClearPassesToSkip:Fz,_BinaryenGetAlwaysInlineMaxSize:eg,_BinaryenSetAlwaysInlineMaxSize:tg,_BinaryenGetFlexibleInlineMaxSize:rg,_BinaryenSetFlexibleInlineMaxSize:ig,_BinaryenGetOneCallerInlineMaxSize:ng,_BinaryenSetOneCallerInlineMaxSize:sg,_BinaryenGetAllowInliningFunctionsWithLoops:ag,_BinaryenSetAllowInliningFunctionsWithLoops:lg,_malloc:gt,_free:ie,__i32_store8:Ge,__i32_store16:wz,__i32_store:ga,__f32_store:Cz,__f64_store:Pz,__i32_load8_s:Bz,__i32_load8_u:Er,__i32_load16_s:Lz,__i32_load16_u:Nz,__i32_load:tr,__f32_load:Mz,__f64_load:Dz}=un;function v2(r){return BigInt(r.high|0)<<32n|BigInt(r.low>>>0)}function E2(r){return A2.fromBits(Number(r&0xFFFFFFFFn)|0,Number(r>>32n)|0)}function og(r,i){return un._BinaryenLiteralInt64(r,v2(i))}function Ic(r){return E2(un._BinaryenConstGetValueI64(r))}var ug="data:application/wasm;base64,AGFzbQEAAAABBwFgAnx8AXwDAgEABQMBAAEGDQF8AUQAAAAAAAAAAAsHCwEHZjY0X3BvdwAADAKCAQr2DAHzDAMFfgN/CXwCfCABmUQAAAAAAAAAQGUEQCAAIACiIAFEAAAAAAAAAEBhDQEaIACfmUQAAAAAAADwfyAARAAAAAAAAPD/YhsgAUQAAAAAAADgP2ENARpEAAAAAAAA8D8gAKMgAUQAAAAAAADwv2ENARogACABRAAAAAAAAPA/YQ0BGkQAAAAAAADwPyABRAAAAAAAAAAAYQ0BGgsCfCABvSIFQjSIIQQgAL0iAkI0iCIDQgF9Qv4PWgR/QQEFIARC/w+DQr4HfUKAAVoLBEAgBUIBhiIGQgF9Qv////////9vWgRARAAAAAAAAPA/IAZQDQIaRAAAAAAAAPh/IAJCgICAgICAgPg/UQ0CGiAAIAGgIAZCgICAgICAgHBWIAJCAYYiAkKAgICAgICAcFZyDQIaRAAAAAAAAPh/IAJCgICAgICAgPD/AFENAhpEAAAAAAAAAAAgBUI/iFAgAkKAgICAgICA8P8AVEYNAhogASABogwCCyACQgGGQgF9Qv////////9vWgRARAAAAAAAAPA/IAAgAKIiAJogACACQj+IpwR/An9BACAFQjSIQv8PgyICQv8HVA0AGkECIAJCswhWDQAaQQAgBUIBQrMIIAJ9hiICQgF9g0IAUg0AGkEBIAIgBYNCAFINABpBAgtBAUYFQQALGyIAoyAAIAVCAFMbDAILIAJCAFMEQAJ/QQAgBUI0iEL/D4MiBkL/B1QNABpBAiAGQrMIVg0AGkEAIAVCAUKzCCAGfYYiBkIBfYNCAFINABpBASAFIAaDQgBSDQAaQQILIgdFBEAgACAAoSIAIACjDAMLIANC/w+DIQNBgIAQQQAgB0EBRhshCCACQv///////////wCDIQILIARC/w+DIgZCvgd9QoABWgRARAAAAAAAAPA/IAJCgICAgICAgPg/UQ0CGkQAAAAAAADwPyAGQr4HVA0CGkQAAAAAAADwf0QAAAAAAAAAACAEQoAQVCACQoCAgICAgID4P1ZGGwwCCyADUARAIABEAAAAAAAAMEOivUL///////////8Ag0KAgICAgICAoAN9IQILCyACIAJCgICAgNCqpfM/fSICQoCAgICAgIB4g30iA0KAgICACHxCgICAgHCDvyIKIAJCLYhC/wCDp0EFdEGACGoiBysDACILokQAAAAAAADwv6AhDSACQjSHuSIARAA4+v5CLuY/oiAHKwMQoCIOIA0gA78gCqEgC6IiD6AiCqAhCyAKIApEAAAAAAAA4L+iIhCiIQwgCyANIA1EAAAAAAAA4L+iIhGiIhKgIg0gDSAARDBnx5NX8y49oiAHKwMYoCAOIAuhIAqgoCAPIBAgEaCioCALIA2hIBKgoCAKIAyiIApEBgAAAAAA4D+iRGBVVVVVVeW/oCAMIApEeqQpVVVV5b+iRE5VWZmZmek/oCAMIApEwz8miysA8D+iROlFSJtbSfK/oKKgoqCioCIAoCIKoSAAoCQAAnwgBUKAgIBAg78iACAKvUKAgIBAg78iC6IiDL0iAkI0iKdB/w9xIgdByQdrIglBP08EQEQAAAAAAADwv0QAAAAAAADwPyAIGyAJQYCAgIB4Tw0BGkQAAAAAAAAAgEQAAAAAAAAAACAIG0QAAAAAAADw/0QAAAAAAADwfyAIGyACQgBTGyAHQYkITw0BGkEAIQcLIAxE/oIrZUcVZ0CiRAAAAAAAADhDoCINvSICQv8Ag0IBhqdBA3RBgChqIgkpAwggAiAIrXxCLYZ8IQMgDCANRAAAAAAAADjDoCIMRAAA+v5CLna/oqAgDEQ6O568mvcMvaKgIAEgAKEgC6IgASAKIAuhIwCgoqCgIgAgAKIhASAJKwMAIACgIAEgAEQ8VFVVVVXFP6JEvf3/////3z+goqAgASABoiAARBfQpGcREYE/okSRKxfPVVWlP6CioCEAIAdFBEACfCACQoCAgIAIg1AEQCADQoCAgICAgICIP32/IgEgASAAoqBEAAAAAAAAAH+iDAELIANCgICAgICAgPA/fCICvyIBIACiIQAgASAAoCIKmUQAAAAAAADwP2MEfCACQoCAgICAgICAgH+Dv0QAAAAAAADwPyAKpiILIAqgIgwgCyAMoSAKoCABIAqhIACgoKAgC6EiACAARAAAAAAAAAAAYRsFIAoLRAAAAAAAABAAogsMAQsgA78iASABIACioAsLCwsLxSyCAQBBhQgLA6D2PwBBkQgLF8i58oIs1r+AVjcoJLT6PAAAAAAAgPY/AEGxCAsXCFi/vdHVvyD34NgIpRy9AAAAAABg9j8AQdEICxdYRRd3dtW/bVC21aRiI70AAAAAAED2PwBB8QgLF/gth60a1b/VZ7Ce5ITmvAAAAAAAIPY/AEGRCQsXeHeVX77Uv+A+KZNpGwS9AAAAAAAA9j8AQbEJCxdgHMKLYdS/zIRMSC/YEz0AAAAAAOD1PwBB0QkLF6iGhjAE1L86C4Lt80LcPAAAAAAAwPU/AEHxCQsXSGlVTKbTv2CUUYbGsSA9AAAAAACg9T8AQZEKCxeAmJrdR9O/koDF1E1ZJT0AAAAAAID1PwBBsQoLFyDhuuLo0r/YK7eZHnsmPQAAAAAAYPU/AEHRCgsXiN4TWonSvz+wz7YUyhU9AAAAAABg9T8AQfEKCxeI3hNaidK/P7DPthTKFT0AAAAAAED1PwBBkQsLF3jP+0Ep0r922lMoJFoWvQAAAAAAIPU/AEGxCwsXmGnBmMjRvwRU52i8rx+9AAAAAAAA9T8AQdELCxeoq6tcZ9G/8KiCM8YfHz0AAAAAAOD0PwBB8QsLF0iu+YsF0b9mWgX9xKgmvQAAAAAAwPQ/AEGRDAsXkHPiJKPQvw4D9H7uawy9AAAAAACg9D8AQbEMCxfQtJQlQNC/fy30nrg28LwAAAAAAKD0PwBB0QwLF9C0lCVA0L9/LfSeuDbwvAAAAAAAgPQ/AEHxDAsXQF5tGLnPv4c8masqVw09AAAAAABg9D8AQZENCxdg3Mut8M6/JK+GnLcmKz0AAAAAAED0PwBBsQ0LF/Aqbgcnzr8Q/z9UTy8XvQAAAAAAIPQ/AEHRDQsXwE9rIVzNvxtoyruRuiE9AAAAAAAA9D8AQfENCxegmsf3j8y/NISfaE95Jz0AAAAAAAD0PwBBkQ4LF6Cax/ePzL80hJ9oT3knPQAAAAAA4PM/AEGxDgsXkC10hsLLv4+3izGwThk9AAAAAADA8z8AQdEOCxfAgE7J88q/ZpDNP2NOujwAAAAAAKDzPwBB8Q4LF7DiH7wjyr/qwUbcZIwlvQAAAAAAoPM/AEGRDwsXsOIfvCPKv+rBRtxkjCW9AAAAAACA8z8AQbEPCxdQ9JxaUsm/49TBBNnRKr0AAAAAAGDzPwBB0Q8LF9AgZaB/yL8J+tt/v70rPQAAAAAAQPM/AEHxDwsX4BACiavHv1hKU3KQ2ys9AAAAAABA8z8AQZEQCxfgEAKJq8e/WEpTcpDbKz0AAAAAACDzPwBBsRALF9AZ5w/Wxr9m4rKjauQQvQAAAAAAAPM/AEHREAsXkKdwMP/FvzlQEJ9Dnh69AAAAAAAA8z8AQfEQCxeQp3Aw/8W/OVAQn0OeHr0AAAAAAODyPwBBkRELF7Ch4+Umxb+PWweQi94gvQAAAAAAwPI/AEGxEQsXgMtsK03Evzx4NWHBDBc9AAAAAADA8j8AQdERCxeAy2wrTcS/PHg1YcEMFz0AAAAAAKDyPwBB8RELF5AeIPxxw786VCdNhnjxPAAAAAAAgPI/AEGREgsX8B/4UpXCvwjEcRcwjSS9AAAAAABg8j8AQbESCxdgL9Uqt8G/lqMRGKSALr0AAAAAAGDyPwBB0RILF2Av1Sq3wb+WoxEYpIAuvQAAAAAAQPI/AEHxEgsXkNB8ftfAv/Rb6IiWaQo9AAAAAABA8j8AQZETCxeQ0Hx+18C/9FvoiJZpCj0AAAAAACDyPwBBsRMLF+DbMZHsv7/yM6NcVHUlvQAAAAAAAPI/AEHSEwsWK24HJ76/PADwKiw0Kj0AAAAAAADyPwBB8hMLFituBye+vzwA8CosNCo9AAAAAADg8T8AQZEUCxfAW49UXry/Br5fWFcMHb0AAAAAAMDxPwBBsRQLF+BKOm2Sur/IqlvoNTklPQAAAAAAwPE/AEHRFAsX4Eo6bZK6v8iqW+g1OSU9AAAAAACg8T8AQfEUCxegMdZFw7i/aFYvTSl8Ez0AAAAAAKDxPwBBkRULF6Ax1kXDuL9oVi9NKXwTPQAAAAAAgPE/AEGxFQsXYOWK0vC2v9pzM8k3lya9AAAAAABg8T8AQdEVCxcgBj8HG7W/V17GYVsCHz0AAAAAAGDxPwBB8RULFyAGPwcbtb9XXsZhWwIfPQAAAAAAQPE/AEGRFgsX4BuW10Gzv98T+czaXiw9AAAAAABA8T8AQbEWCxfgG5bXQbO/3xP5zNpeLD0AAAAAACDxPwBB0RYLF4Cj7jZlsb8Jo492XnwUPQAAAAAAAPE/AEHxFgsXgBHAMAqvv5GONoOeWS09AAAAAAAA8T8AQZEXCxeAEcAwCq+/kY42g55ZLT0AAAAAAODwPwBBsRcLF4AZcd1Cq79McNbleoIcPQAAAAAA4PA/AEHRFwsXgBlx3UKrv0xw1uV6ghw9AAAAAADA8D8AQfEXCxfAMvZYdKe/7qHyNEb8LL0AAAAAAMDwPwBBkRgLF8Ay9lh0p7/uofI0RvwsvQAAAAAAoPA/AEGxGAsXwP65h56jv6r+JvW3AvU8AAAAAACg8D8AQdEYCxfA/rmHnqO/qv4m9bcC9TwAAAAAAIDwPwBB8hgLFngOm4Kfv+QJfnwmgCm9AAAAAACA8D8AQZIZCxZ4DpuCn7/kCX58JoApvQAAAAAAYPA/AEGxGQsXgNUHG7mXvzmm+pNUjSi9AAAAAABA8D8AQdIZCxb8sKjAj7+cptP2fB7fvAAAAAAAQPA/AEHyGQsW/LCowI+/nKbT9nwe37wAAAAAACDwPwBBkhoLFhBrKuB/v+RA2g0/4hm9AAAAAAAg8D8AQbIaCxYQayrgf7/kQNoNP+IZvQAAAAAAAPA/AEHmGgsC8D8AQYUbCwPA7z8AQZIbCxaJdRUQgD/oK52Za8cQvQAAAAAAgO8/AEGxGwsXgJNYViCQP9L34gZb3CO9AAAAAABA7z8AQdIbCxbJKCVJmD80DFoyuqAqvQAAAAAAAO8/AEHxGwsXQOeJXUGgP1PX8VzAEQE9AAAAAADA7j8AQZIcCxYu1K5mpD8o/b11cxYsvQAAAAAAgO4/AEGxHAsXwJ8UqpSoP30mWtCVeRm9AAAAAABA7j8AQdEcCxfA3c1zy6w/ByjYR/JoGr0AAAAAACDuPwBB8RwLF8AGwDHqrj97O8lPPhEOvQAAAAAA4O0/AEGRHQsXYEbRO5exP5ueDVZdMiW9AAAAAACg7T8AQbEdCxfg0af1vbM/107bpV7ILD0AAAAAAGDtPwBB0R0LF6CXTVrptT8eHV08BmksvQAAAAAAQO0/AEHxHQsXwOoK0wC3PzLtnamNHuw8AAAAAAAA7T8AQZEeCxdAWV1eM7k/2ke9OlwRIz0AAAAAAMDsPwBBsR4LF2Ctjchquz/laPcrgJATvQAAAAAAoOw/AEHRHgsXQLwBWIi8P9OsWsbRRiY9AAAAAABg7D8AQfEeCxcgCoM5x74/4EXmr2jALb0AAAAAAEDsPwBBkR8LF+DbOZHovz/9CqFP1jQlvQAAAAAAAOw/AEGxHwsX4CeCjhfBP/IHLc547yE9AAAAAADg6z8AQdEfCxfwI34rqsE/NJk4RI6nLD0AAAAAAKDrPwBB8R8LF4CGDGHRwj+htIHLbJ0DPQAAAAAAgOs/AEGRIAsXkBWw/GXDP4lySyOoL8Y8AAAAAABA6z8AQbEgCxewM4M9kcQ/eLb9VHmDJT0AAAAAACDrPwBB0SALF7Ch5OUnxT/HfWnl6DMmPQAAAAAA4Oo/AEHxIAsXEIy+TlfGP3guPCyLzxk9AAAAAADA6j8AQZEhCxdwdYsS8MY/4SGc5Y0RJb0AAAAAAKDqPwBBsSELF1BEhY2Jxz8FQ5FwEGYcvQAAAAAAYOo/AEHSIQsWOeuvvsg/0SzpqlQ9B70AAAAAAEDqPwBB8iELFvfcWlrJP2//oFgo8gc9AAAAAAAA6j8AQZEiCxfgijztk8o/aSFWUENyKL0AAAAAAODpPwBBsSILF9BbV9gxyz+q4axOjTUMvQAAAAAAwOk/AEHRIgsX4Ds4h9DLP7YSVFnESy29AAAAAACg6T8AQfEiCxcQ8Mb7b8w/0iuWxXLs8bwAAAAAAGDpPwBBkSMLF5DUsD2xzT81sBX3Kv8qvQAAAAAAQOk/AEGxIwsXEOf/DlPOPzD0QWAnEsI8AAAAAAAg6T8AQdIjCxbd5K31zj8RjrtlFSHKvAAAAAAAAOk/AEHxIwsXsLNsHJnPPzDfDMrsyxs9AAAAAADA6D8AQZEkCxdYTWA4cdA/kU7tFtuc+DwAAAAAAKDoPwBBsSQLF2BhZy3E0D/p6jwWixgnPQAAAAAAgOg/AEHRJAsX6CeCjhfRPxzwpWMOISy9AAAAAABg6D8AQfEkCxf4rMtca9E/gRal982aKz0AAAAAAEDoPwBBkSULF2haY5m/0T+3vUdR7aYsPQAAAAAAIOg/AEGxJQsXuA5tRRTSP+q6Rrrehwo9AAAAAADg5z8AQdElCxeQ3HzwvtI/9ARQSvqcKj0AAAAAAMDnPwBB8SULF2DT4fEU0z+4PCHTeuIovQAAAAAAoOc/AEGRJgsXEL52Z2vTP8h38bDNbhE9AAAAAACA5z8AQbEmCxcwM3dSwtM/XL0GtlQ7GD0AAAAAAGDnPwBB0SYLF+jVI7QZ1D+d4JDsNuQIPQAAAAAAQOc/AEHxJgsXyHHCjXHUP3XWZwnOJy+9AAAAAAAg5z8AQZEnCxcwF57gydQ/pNgKG4kgLr0AAAAAAADnPwBBsScLF6A4B64i1T9Zx2SBcL4uPQAAAAAA4OY/AEHRJwsX0MhT93vVP+9AXe7trR89AAAAAADA5j8AQfEnCw9gWd+91dU/3GWkCCoLCr0AQY4oC/IP8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/";var{f64_pow:cg}=(await WebAssembly.instantiateStreaming(fetch(ug))).instance.exports;var ba=new Float64Array(1),pg=new Float32Array(ba.buffer),hi=new Int32Array(ba.buffer);globalThis.f32_as_i32=function(i){return pg[0]=i,hi[0]};globalThis.i32_as_f32=function(i){return hi[0]=i,pg[0]};globalThis.f64_as_i64=function(i){return ba[0]=i,i64_new(hi[0],hi[1])};globalThis.i64_as_f64=function(i){return hi[0]=i64_low(i),hi[1]=i64_high(i),ba[0]};globalThis.f64_pow=cg;import Ae from"long";globalThis.i64_zero=Ae.ZERO;globalThis.i64_one=Ae.ONE;globalThis.i64_neg_one=Ae.fromInt(-1);globalThis.i64_minimum=Ae.MIN_VALUE;globalThis.i64_maximum=Ae.MAX_VALUE;globalThis.i64_is=function(i){return Ae.isLong(i)};globalThis.i64_new=function(i,e){return Ae.fromBits(i,e)};globalThis.i64_low=function(i){return i.low};globalThis.i64_high=function(i){return i.high};globalThis.i64_not=function(i){return i.not()};globalThis.i64_neg=function(i){return i.neg()};globalThis.i64_clz=function(i){return i.clz()};globalThis.i64_ctz=function(i){return i.ctz()};globalThis.i64_add=function(i,e){return i.add(e)};globalThis.i64_sub=function(i,e){return i.sub(e)};globalThis.i64_mul=function(i,e){return i.mul(e)};globalThis.i64_pow=function(i,e){let t=e.low,n=e.high;if(n<=0){if(n<0)return i.eq(globalThis.i64_neg_one)?t&1?i:Ae.ONE:i.eq(Ae.ONE)?i:Ae.ZERO;if(t==0)return Ae.ONE;if(t==1)return i;if(t==2)return i.mul(i)}let s=Ae.ONE;for(;t|n;)t&1&&(s=s.mul(i)),e=e.shru(1),i=i.mul(i),t=e.low,n=e.high;return s};globalThis.i64_div=function(i,e){return i.div(e)};globalThis.i64_div_u=function(i,e){return i.toUnsigned().div(e.toUnsigned()).toSigned()};globalThis.i64_rem=function(i,e){return i.mod(e)};globalThis.i64_rem_u=function(i,e){return i.toUnsigned().mod(e.toUnsigned()).toSigned()};globalThis.i64_and=function(i,e){return i.and(e)};globalThis.i64_or=function(i,e){return i.or(e)};globalThis.i64_xor=function(i,e){return i.xor(e)};globalThis.i64_shl=function(i,e){return i.shl(e)};globalThis.i64_shr=function(i,e){return i.shr(e)};globalThis.i64_shr_u=function(i,e){return i.shru(e)};globalThis.i64_eq=function(i,e){return i.eq(e)};globalThis.i64_ne=function(i,e){return i.ne(e)};globalThis.i64_ge=function(i,e){return i.ge(e)};globalThis.i64_ge_u=function(i,e){return i.toUnsigned().ge(e.toUnsigned())};globalThis.i64_gt=function(i,e){return i.gt(e)};globalThis.i64_gt_u=function(i,e){return i.toUnsigned().gt(e.toUnsigned())};globalThis.i64_le=function(i,e){return i.le(e)};globalThis.i64_le_u=function(i,e){return i.toUnsigned().le(e.toUnsigned())};globalThis.i64_lt=function(i,e){return i.lt(e)};globalThis.i64_lt_u=function(i,e){return i.toUnsigned().lt(e.toUnsigned())};globalThis.i64_align=function(i,e){assert(e&&(e&e-1)==0);let t=Ae.fromInt(e-1);return i.add(t).and(t.not())};globalThis.i64_signbit=function(i){return!!(i.high>>>31)};globalThis.i64_is_i8=function(i){return i.high===0&&i.low>=0&&i.low<=i8.MAX_VALUE||i.high===-1&&i.low>=i8.MIN_VALUE&&i.low<0};globalThis.i64_is_i16=function(i){return i.high===0&&i.low>=0&&i.low<=i16.MAX_VALUE||i.high===-1&&i.low>=i16.MIN_VALUE&&i.low<0};globalThis.i64_is_i32=function(i){return i.high===0&&i.low>=0||i.high===-1&&i.low<0};globalThis.i64_is_u8=function(i){return i.high===0&&i.low>>>0<=u8.MAX_VALUE};globalThis.i64_is_u16=function(i){return i.high===0&&i.low>>>0<=u16.MAX_VALUE};globalThis.i64_is_u32=function(i){return i.high===0};globalThis.i64_is_bool=function(i){return(i.high|i.low&-2)===0};var S2=Ae.fromNumber(f32.MIN_SAFE_INTEGER),I2=Ae.fromNumber(f32.MAX_SAFE_INTEGER);globalThis.i64_is_f32=function(i){return i.gte(S2)&&i.lte(I2)};var k2=Ae.fromNumber(f64.MIN_SAFE_INTEGER),R2=Ae.fromNumber(f64.MAX_SAFE_INTEGER);globalThis.i64_is_f64=function(i){return i.gte(k2)&&i.lte(R2)};globalThis.i64_to_f32=function(i){return globalThis.Math.fround(i.toNumber())};globalThis.i64_to_f64=function(i){return i.toNumber()};globalThis.i64_to_string=function(i,e){return e?i.toUnsigned().toString():i.toString()};globalThis.i64_clone=function(i){return Ae.fromBits(i.low,i.high,i.unsigned)};globalThis.Map_keys=function(i){return Array.from(i.keys())};globalThis.Map_values=function(i){return Array.from(i.values())};globalThis.Set_values=function(i){return Array.from(i.values())};var Gt=(v=>(v[v.None=0]="None",v[v.SignExtension=1]="SignExtension",v[v.MutableGlobals=2]="MutableGlobals",v[v.NontrappingF2I=4]="NontrappingF2I",v[v.BulkMemory=8]="BulkMemory",v[v.Simd=16]="Simd",v[v.Threads=32]="Threads",v[v.ExceptionHandling=64]="ExceptionHandling",v[v.TailCalls=128]="TailCalls",v[v.ReferenceTypes=256]="ReferenceTypes",v[v.MultiValue=512]="MultiValue",v[v.GC=1024]="GC",v[v.Memory64=2048]="Memory64",v[v.RelaxedSimd=4096]="RelaxedSimd",v[v.ExtendedConst=8192]="ExtendedConst",v[v.Strings=16384]="Strings",v[v.SharedEverything=32768]="SharedEverything",v[v.Closures=65536]="Closures",v[v.All=131071]="All",v))(Gt||{});function mi(r){switch(r){case 1:return"sign-extension";case 2:return"mutable-globals";case 4:return"nontrapping-f2i";case 8:return"bulk-memory";case 16:return"simd";case 32:return"threads";case 64:return"exception-handling";case 128:return"tail-calls";case 256:return"reference-types";case 512:return"multi-value";case 1024:return"gc";case 2048:return"memory64";case 4096:return"relaxed-simd";case 8192:return"extended-const";case 16384:return"stringref";case 32768:return"shared-everything";case 65536:return"closures"}return assert(!1),""}var yi=(t=>(t[t.Js=0]="Js",t[t.Wasm32=1]="Wasm32",t[t.Wasm64=2]="Wasm64",t))(yi||{});var xa=(n=>(n[n.Stub=0]="Stub",n[n.Minimal=1]="Minimal",n[n.Incremental=2]="Incremental",n[n.Memory=3]="Memory",n))(xa||{});var gi=class{constructor(){this.flags=0}};gi=P_([unmanaged],gi);var Ta=(U=>(U[U.NONE=0]="NONE",U[U.ARRAYBUFFERVIEW=1]="ARRAYBUFFERVIEW",U[U.ARRAY=2]="ARRAY",U[U.STATICARRAY=4]="STATICARRAY",U[U.SET=8]="SET",U[U.MAP=16]="MAP",U[U.POINTERFREE=32]="POINTERFREE",U[U.VALUE_ALIGN_0=64]="VALUE_ALIGN_0",U[U.VALUE_ALIGN_1=128]="VALUE_ALIGN_1",U[U.VALUE_ALIGN_2=256]="VALUE_ALIGN_2",U[U.VALUE_ALIGN_3=512]="VALUE_ALIGN_3",U[U.VALUE_ALIGN_4=1024]="VALUE_ALIGN_4",U[U.VALUE_SIGNED=2048]="VALUE_SIGNED",U[U.VALUE_FLOAT=4096]="VALUE_FLOAT",U[U.VALUE_NULLABLE=8192]="VALUE_NULLABLE",U[U.VALUE_MANAGED=16384]="VALUE_MANAGED",U[U.KEY_ALIGN_0=32768]="KEY_ALIGN_0",U[U.KEY_ALIGN_1=65536]="KEY_ALIGN_1",U[U.KEY_ALIGN_2=131072]="KEY_ALIGN_2",U[U.KEY_ALIGN_3=262144]="KEY_ALIGN_3",U[U.KEY_ALIGN_4=524288]="KEY_ALIGN_4",U[U.KEY_SIGNED=1048576]="KEY_SIGNED",U[U.KEY_FLOAT=2097152]="KEY_FLOAT",U[U.KEY_NULLABLE=4194304]="KEY_NULLABLE",U[U.KEY_MANAGED=8388608]="KEY_MANAGED",U))(Ta||{});var ze=(H=>(H[H.None=0]="None",H[H.Import=1]="Import",H[H.Export=2]="Export",H[H.Declare=4]="Declare",H[H.Const=8]="Const",H[H.Let=16]="Let",H[H.Static=32]="Static",H[H.Readonly=64]="Readonly",H[H.Abstract=128]="Abstract",H[H.Public=256]="Public",H[H.Private=512]="Private",H[H.Protected=1024]="Protected",H[H.Get=2048]="Get",H[H.Set=4096]="Set",H[H.Override=8192]="Override",H[H.DefinitelyAssigned=16384]="DefinitelyAssigned",H[H.Ambient=32768]="Ambient",H[H.Generic=65536]="Generic",H[H.GenericContext=131072]="GenericContext",H[H.Instance=262144]="Instance",H[H.Constructor=524288]="Constructor",H[H.ModuleExport=1048576]="ModuleExport",H[H.ModuleImport=2097152]="ModuleImport",H[H.Resolved=4194304]="Resolved",H[H.Compiled=8388608]="Compiled",H[H.Errored=16777216]="Errored",H[H.Inlined=33554432]="Inlined",H[H.Scoped=67108864]="Scoped",H[H.Stub=134217728]="Stub",H[H.Overridden=268435456]="Overridden",H[H.Closure=536870912]="Closure",H[H.Quoted=1073741824]="Quoted",H[H.InternallyNullable=-2147483648]="InternallyNullable",H))(ze||{}),lt="/",F2="..",Aa="get:",va="set:",Rc="#",Nn=".",Fc="~",_g="~lib",bt=_g+lt,qe=lt+"index",wc="@",P;(V=>(V.Empty="",V.i8="i8",V.i16="i16",V.i32="i32",V.i64="i64",V.isize="isize",V.u8="u8",V.u16="u16",V.u32="u32",V.u64="u64",V.usize="usize",V.bool="bool",V.f32="f32",V.f64="f64",V.v128="v128",V.ref_func="ref_func",V.ref_extern="ref_extern",V.ref_any="ref_any",V.ref_eq="ref_eq",V.ref_struct="ref_struct",V.ref_array="ref_array",V.ref_i31="ref_i31",V.ref_string="ref_string",V.ref_stringview_wtf8="ref_stringview_wtf8",V.ref_stringview_wtf16="ref_stringview_wtf16",V.ref_stringview_iter="ref_stringview_iter",V.i8x16="i8x16",V.u8x16="u8x16",V.i16x8="i16x8",V.u16x8="u16x8",V.i32x4="i32x4",V.u32x4="u32x4",V.i64x2="i64x2",V.u64x2="u64x2",V.f32x4="f32x4",V.f64x2="f64x2",V.void_="void",V.number="number",V.boolean="boolean",V.string="string",V.native="native",V.indexof="indexof",V.valueof="valueof",V.returnof="returnof",V.nonnull="nonnull",V.null_="null",V.true_="true",V.false_="false",V.this_="this",V.super_="super",V.constructor="constructor",V.ASC_TARGET="ASC_TARGET",V.ASC_RUNTIME="ASC_RUNTIME",V.ASC_NO_ASSERT="ASC_NO_ASSERT",V.ASC_MEMORY_BASE="ASC_MEMORY_BASE",V.ASC_TABLE_BASE="ASC_TABLE_BASE",V.ASC_OPTIMIZE_LEVEL="ASC_OPTIMIZE_LEVEL",V.ASC_SHRINK_LEVEL="ASC_SHRINK_LEVEL",V.ASC_LOW_MEMORY_LIMIT="ASC_LOW_MEMORY_LIMIT",V.ASC_EXPORT_RUNTIME="ASC_EXPORT_RUNTIME",V.ASC_FEATURE_SIGN_EXTENSION="ASC_FEATURE_SIGN_EXTENSION",V.ASC_FEATURE_MUTABLE_GLOBALS="ASC_FEATURE_MUTABLE_GLOBALS",V.ASC_FEATURE_NONTRAPPING_F2I="ASC_FEATURE_NONTRAPPING_F2I",V.ASC_FEATURE_BULK_MEMORY="ASC_FEATURE_BULK_MEMORY",V.ASC_FEATURE_SIMD="ASC_FEATURE_SIMD",V.ASC_FEATURE_THREADS="ASC_FEATURE_THREADS",V.ASC_FEATURE_EXCEPTION_HANDLING="ASC_FEATURE_EXCEPTION_HANDLING",V.ASC_FEATURE_TAIL_CALLS="ASC_FEATURE_TAIL_CALLS",V.ASC_FEATURE_REFERENCE_TYPES="ASC_FEATURE_REFERENCE_TYPES",V.ASC_FEATURE_MULTI_VALUE="ASC_FEATURE_MULTI_VALUE",V.ASC_FEATURE_GC="ASC_FEATURE_GC",V.ASC_FEATURE_MEMORY64="ASC_FEATURE_MEMORY64",V.ASC_FEATURE_RELAXED_SIMD="ASC_FEATURE_RELAXED_SIMD",V.ASC_FEATURE_EXTENDED_CONST="ASC_FEATURE_EXTENDED_CONST",V.ASC_FEATURE_STRINGREF="ASC_FEATURE_STRINGREF",V.ASC_FEATURE_SHARED_EVERYTHING="ASC_FEATURE_SHARED_EVERYTHING",V.ASC_FEATURE_CLOSURES="ASC_FEATURE_CLOSURES",V.ASC_VERSION_MAJOR="ASC_VERSION_MAJOR",V.ASC_VERSION_MINOR="ASC_VERSION_MINOR",V.ASC_VERSION_PATCH="ASC_VERSION_PATCH",V.EnumToString="__enum_to_string",V.I8="I8",V.I16="I16",V.I32="I32",V.I64="I64",V.Isize="Isize",V.U8="U8",V.U16="U16",V.U32="U32",V.U64="U64",V.Usize="Usize",V.Bool="Bool",V.F32="F32",V.F64="F64",V.V128="V128",V.RefFunc="RefFunc",V.RefExtern="RefExtern",V.RefAny="RefAny",V.RefEq="RefEq",V.RefStruct="RefStruct",V.RefArray="RefArray",V.RefI31="RefI31",V.RefString="RefString",V.String="String",V.RegExp="RegExp",V.Object="Object",V.Array="Array",V.StaticArray="StaticArray",V.Set="Set",V.Map="Map",V.Function="Function",V.ArrayBufferView="ArrayBufferView",V.ArrayBuffer="ArrayBuffer",V.Math="Math",V.Mathf="Mathf",V.NativeMath="NativeMath",V.NativeMathf="NativeMathf",V.Int8Array="Int8Array",V.Int16Array="Int16Array",V.Int32Array="Int32Array",V.Int64Array="Int64Array",V.Uint8Array="Uint8Array",V.Uint8ClampedArray="Uint8ClampedArray",V.Uint16Array="Uint16Array",V.Uint32Array="Uint32Array",V.Uint64Array="Uint64Array",V.Float32Array="Float32Array",V.Float64Array="Float64Array",V.TemplateStringsArray="TemplateStringsArray",V.Error="Error",V.abort="abort",V.trace="trace",V.seed="seed",V.pow="pow",V.ipow32="ipow32",V.ipow64="ipow64",V.mod="mod",V.alloc="__alloc",V.realloc="__realloc",V.free="__free",V.new_="__new",V.renew="__renew",V.link="__link",V.collect="__collect",V.visit="__visit",V.newBuffer="__newBuffer",V.newArray="__newArray",V.BLOCK="~lib/rt/common/BLOCK",V.OBJECT="~lib/rt/common/OBJECT",V.DefaultMemory="0",V.DefaultTable="0"))(P||={});var ot=(E=>(E[E.Not_implemented_0=100]="Not_implemented_0",E[E.Operation_is_unsafe=101]="Operation_is_unsafe",E[E.User_defined_0=102]="User_defined_0",E[E.Feature_0_is_not_enabled=103]="Feature_0_is_not_enabled",E[E.Low_memory_limit_exceeded_by_static_data_0_1=104]="Low_memory_limit_exceeded_by_static_data_0_1",E[E.Module_requires_at_least_0_pages_of_initial_memory=105]="Module_requires_at_least_0_pages_of_initial_memory",E[E.Module_requires_at_least_0_pages_of_maximum_memory=106]="Module_requires_at_least_0_pages_of_maximum_memory",E[E.Shared_memory_requires_maximum_memory_to_be_defined=107]="Shared_memory_requires_maximum_memory_to_be_defined",E[E.Shared_memory_requires_feature_threads_to_be_enabled=108]="Shared_memory_requires_feature_threads_to_be_enabled",E[E.Transform_0_1=109]="Transform_0_1",E[E.Start_function_name_0_is_invalid_or_conflicts_with_another_export=110]="Start_function_name_0_is_invalid_or_conflicts_with_another_export",E[E.Element_0_not_found=111]="Element_0_not_found",E[E.Exchange_of_0_values_is_not_supported_by_all_embeddings=112]="Exchange_of_0_values_is_not_supported_by_all_embeddings",E[E.Conversion_from_type_0_to_1_requires_an_explicit_cast=200]="Conversion_from_type_0_to_1_requires_an_explicit_cast",E[E.Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit=201]="Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit",E[E.Type_0_cannot_be_changed_to_type_1=202]="Type_0_cannot_be_changed_to_type_1",E[E.Operation_0_cannot_be_applied_to_type_1=203]="Operation_0_cannot_be_applied_to_type_1",E[E.Type_0_cannot_be_nullable=204]="Type_0_cannot_be_nullable",E[E.Mutable_value_cannot_be_inlined=206]="Mutable_value_cannot_be_inlined",E[E.Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa=207]="Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa",E[E.Unmanaged_classes_cannot_implement_interfaces=208]="Unmanaged_classes_cannot_implement_interfaces",E[E.Invalid_regular_expression_flags=209]="Invalid_regular_expression_flags",E[E.Expression_is_never_null=210]="Expression_is_never_null",E[E.Class_0_is_final_and_cannot_be_extended=211]="Class_0_is_final_and_cannot_be_extended",E[E.Decorator_0_is_not_valid_here=212]="Decorator_0_is_not_valid_here",E[E.Duplicate_decorator=213]="Duplicate_decorator",E[E.Type_0_is_illegal_in_this_context=214]="Type_0_is_illegal_in_this_context",E[E.Optional_parameter_must_have_an_initializer=215]="Optional_parameter_must_have_an_initializer",E[E.Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal=216]="Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal",E[E.Function_0_cannot_be_inlined_into_itself=217]="Function_0_cannot_be_inlined_into_itself",E[E.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set=218]="Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set",E[E.Optional_properties_are_not_supported=219]="Optional_properties_are_not_supported",E[E.Expression_must_be_a_compile_time_constant=220]="Expression_must_be_a_compile_time_constant",E[E.Type_0_is_not_a_function_index_or_function_reference=221]="Type_0_is_not_a_function_index_or_function_reference",E[E._0_must_be_a_value_between_1_and_2_inclusive=222]="_0_must_be_a_value_between_1_and_2_inclusive",E[E._0_must_be_a_power_of_two=223]="_0_must_be_a_power_of_two",E[E._0_is_not_a_valid_operator=224]="_0_is_not_a_valid_operator",E[E.Expression_cannot_be_represented_by_a_type=225]="Expression_cannot_be_represented_by_a_type",E[E.Expression_resolves_to_unusual_type_0=226]="Expression_resolves_to_unusual_type_0",E[E.Array_literal_expected=227]="Array_literal_expected",E[E.Function_0_is_virtual_and_will_not_be_inlined=228]="Function_0_is_virtual_and_will_not_be_inlined",E[E.Property_0_only_has_a_setter_and_is_missing_a_getter=229]="Property_0_only_has_a_setter_and_is_missing_a_getter",E[E._0_keyword_cannot_be_used_here=230]="_0_keyword_cannot_be_used_here",E[E.A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final=231]="A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final",E[E.Property_0_is_always_assigned_before_being_used=233]="Property_0_is_always_assigned_before_being_used",E[E.Expression_does_not_compile_to_a_value_at_runtime=234]="Expression_does_not_compile_to_a_value_at_runtime",E[E.Only_variables_functions_and_enums_become_WebAssembly_module_exports=235]="Only_variables_functions_and_enums_become_WebAssembly_module_exports",E[E.Literal_0_does_not_fit_into_i64_or_u64_types=236]="Literal_0_does_not_fit_into_i64_or_u64_types",E[E.Index_signature_accessors_in_type_0_differ_in_types=237]="Index_signature_accessors_in_type_0_differ_in_types",E[E.Initializer_definitive_assignment_or_nullable_type_expected=238]="Initializer_definitive_assignment_or_nullable_type_expected",E[E.Definitive_assignment_has_no_effect_on_local_variables=239]="Definitive_assignment_has_no_effect_on_local_variables",E[E.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2=240]="Ambiguous_operator_overload_0_conflicting_overloads_1_and_2",E[E.An_interface_or_abstract_method_0_cannot_have_type_parameters=241]="An_interface_or_abstract_method_0_cannot_have_type_parameters",E[E.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa=242]="Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa",E[E.Only_Error_or_its_subclasses_can_be_thrown_but_found_type_0=250]="Only_Error_or_its_subclasses_can_be_thrown_but_found_type_0",E[E.Importing_the_table_disables_some_indirect_call_optimizations=901]="Importing_the_table_disables_some_indirect_call_optimizations",E[E.Exporting_the_table_disables_some_indirect_call_optimizations=902]="Exporting_the_table_disables_some_indirect_call_optimizations",E[E.Expression_compiles_to_a_dynamic_check_at_runtime=903]="Expression_compiles_to_a_dynamic_check_at_runtime",E[E.Indexed_access_may_involve_bounds_checking=904]="Indexed_access_may_involve_bounds_checking",E[E.Explicitly_returning_constructor_drops_this_allocation=905]="Explicitly_returning_constructor_drops_this_allocation",E[E.Unnecessary_definite_assignment=906]="Unnecessary_definite_assignment",E[E._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead=907]="_NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead",E[E.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters=908]="Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters",E[E.Unterminated_string_literal=1002]="Unterminated_string_literal",E[E.Identifier_expected=1003]="Identifier_expected",E[E._0_expected=1005]="_0_expected",E[E.A_file_cannot_have_a_reference_to_itself=1006]="A_file_cannot_have_a_reference_to_itself",E[E.Trailing_comma_not_allowed=1009]="Trailing_comma_not_allowed",E[E.Unexpected_token=1012]="Unexpected_token",E[E.A_rest_parameter_must_be_last_in_a_parameter_list=1014]="A_rest_parameter_must_be_last_in_a_parameter_list",E[E.Parameter_cannot_have_question_mark_and_initializer=1015]="Parameter_cannot_have_question_mark_and_initializer",E[E.A_required_parameter_cannot_follow_an_optional_parameter=1016]="A_required_parameter_cannot_follow_an_optional_parameter",E[E._0_modifier_cannot_appear_on_class_elements_of_this_kind=1031]="_0_modifier_cannot_appear_on_class_elements_of_this_kind",E[E.Statements_are_not_allowed_in_ambient_contexts=1036]="Statements_are_not_allowed_in_ambient_contexts",E[E.Initializers_are_not_allowed_in_ambient_contexts=1039]="Initializers_are_not_allowed_in_ambient_contexts",E[E._0_modifier_cannot_be_used_here=1042]="_0_modifier_cannot_be_used_here",E[E.A_rest_parameter_cannot_be_optional=1047]="A_rest_parameter_cannot_be_optional",E[E.A_rest_parameter_cannot_have_an_initializer=1048]="A_rest_parameter_cannot_have_an_initializer",E[E.A_set_accessor_must_have_exactly_one_parameter=1049]="A_set_accessor_must_have_exactly_one_parameter",E[E.A_set_accessor_parameter_cannot_have_an_initializer=1052]="A_set_accessor_parameter_cannot_have_an_initializer",E[E.A_get_accessor_cannot_have_parameters=1054]="A_get_accessor_cannot_have_parameters",E[E.Enum_member_must_have_initializer=1061]="Enum_member_must_have_initializer",E[E.Type_parameters_cannot_appear_on_a_constructor_declaration=1092]="Type_parameters_cannot_appear_on_a_constructor_declaration",E[E.Type_annotation_cannot_appear_on_a_constructor_declaration=1093]="Type_annotation_cannot_appear_on_a_constructor_declaration",E[E.An_accessor_cannot_have_type_parameters=1094]="An_accessor_cannot_have_type_parameters",E[E.A_set_accessor_cannot_have_a_return_type_annotation=1095]="A_set_accessor_cannot_have_a_return_type_annotation",E[E.Type_parameter_list_cannot_be_empty=1098]="Type_parameter_list_cannot_be_empty",E[E.Type_argument_list_cannot_be_empty=1099]="Type_argument_list_cannot_be_empty",E[E.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement=1104]="A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement",E[E.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement=1105]="A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement",E[E.A_return_statement_can_only_be_used_within_a_function_body=1108]="A_return_statement_can_only_be_used_within_a_function_body",E[E.Expression_expected=1109]="Expression_expected",E[E.Type_expected=1110]="Type_expected",E[E.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement=1113]="A_default_clause_cannot_appear_more_than_once_in_a_switch_statement",E[E.Duplicate_label_0=1114]="Duplicate_label_0",E[E.An_export_assignment_cannot_have_modifiers=1120]="An_export_assignment_cannot_have_modifiers",E[E.Octal_literals_are_not_allowed_in_strict_mode=1121]="Octal_literals_are_not_allowed_in_strict_mode",E[E.Digit_expected=1124]="Digit_expected",E[E.Hexadecimal_digit_expected=1125]="Hexadecimal_digit_expected",E[E.Unexpected_end_of_text=1126]="Unexpected_end_of_text",E[E.Invalid_character=1127]="Invalid_character",E[E._case_or_default_expected=1130]="_case_or_default_expected",E[E._super_must_be_followed_by_an_argument_list_or_member_access=1034]="_super_must_be_followed_by_an_argument_list_or_member_access",E[E.A_declare_modifier_cannot_be_used_in_an_already_ambient_context=1038]="A_declare_modifier_cannot_be_used_in_an_already_ambient_context",E[E.Type_argument_expected=1140]="Type_argument_expected",E[E.String_literal_expected=1141]="String_literal_expected",E[E.Line_break_not_permitted_here=1142]="Line_break_not_permitted_here",E[E.Declaration_expected=1146]="Declaration_expected",E[E._const_declarations_must_be_initialized=1155]="_const_declarations_must_be_initialized",E[E.Unterminated_regular_expression_literal=1161]="Unterminated_regular_expression_literal",E[E.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions=1263]="Declarations_with_initializers_cannot_also_have_definite_assignment_assertions",E[E.Interface_declaration_cannot_have_implements_clause=1176]="Interface_declaration_cannot_have_implements_clause",E[E.Binary_digit_expected=1177]="Binary_digit_expected",E[E.Octal_digit_expected=1178]="Octal_digit_expected",E[E.An_implementation_cannot_be_declared_in_ambient_contexts=1183]="An_implementation_cannot_be_declared_in_ambient_contexts",E[E.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer=1190]="The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer",E[E.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive=1198]="An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive",E[E.Unterminated_Unicode_escape_sequence=1199]="Unterminated_Unicode_escape_sequence",E[E.Decorators_are_not_valid_here=1206]="Decorators_are_not_valid_here",E[E._abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration=1242]="_abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration",E[E.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract=1245]="Method_0_cannot_have_an_implementation_because_it_is_marked_abstract",E[E.An_interface_property_cannot_have_an_initializer=1246]="An_interface_property_cannot_have_an_initializer",E[E.A_definite_assignment_assertion_is_not_permitted_in_this_context=1255]="A_definite_assignment_assertion_is_not_permitted_in_this_context",E[E.A_class_may_only_extend_another_class=1311]="A_class_may_only_extend_another_class",E[E.A_parameter_property_cannot_be_declared_using_a_rest_parameter=1317]="A_parameter_property_cannot_be_declared_using_a_rest_parameter",E[E.A_default_export_can_only_be_used_in_a_module=1319]="A_default_export_can_only_be_used_in_a_module",E[E.An_expression_of_type_0_cannot_be_tested_for_truthiness=1345]="An_expression_of_type_0_cannot_be_tested_for_truthiness",E[E.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal=1351]="An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal",E[E.Duplicate_identifier_0=2300]="Duplicate_identifier_0",E[E.Cannot_find_name_0=2304]="Cannot_find_name_0",E[E.Module_0_has_no_exported_member_1=2305]="Module_0_has_no_exported_member_1",E[E.An_interface_can_only_extend_an_interface=2312]="An_interface_can_only_extend_an_interface",E[E.Generic_type_0_requires_1_type_argument_s=2314]="Generic_type_0_requires_1_type_argument_s",E[E.Type_0_is_not_generic=2315]="Type_0_is_not_generic",E[E.Type_0_is_not_assignable_to_type_1=2322]="Type_0_is_not_assignable_to_type_1",E[E.Property_0_is_private_in_type_1_but_not_in_type_2=2325]="Property_0_is_private_in_type_1_but_not_in_type_2",E[E.Index_signature_is_missing_in_type_0=2329]="Index_signature_is_missing_in_type_0",E[E._this_cannot_be_referenced_in_current_location=2332]="_this_cannot_be_referenced_in_current_location",E[E._this_cannot_be_referenced_in_constructor_arguments=2333]="_this_cannot_be_referenced_in_constructor_arguments",E[E._super_can_only_be_referenced_in_a_derived_class=2335]="_super_can_only_be_referenced_in_a_derived_class",E[E._super_cannot_be_referenced_in_constructor_arguments=2336]="_super_cannot_be_referenced_in_constructor_arguments",E[E.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors=2337]="Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors",E[E.Property_0_does_not_exist_on_type_1=2339]="Property_0_does_not_exist_on_type_1",E[E.Property_0_is_private_and_only_accessible_within_class_1=2341]="Property_0_is_private_and_only_accessible_within_class_1",E[E.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures=2349]="Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures",E[E.This_expression_is_not_constructable=2351]="This_expression_is_not_constructable",E[E.A_function_whose_declared_type_is_not_void_must_return_a_value=2355]="A_function_whose_declared_type_is_not_void_must_return_a_value",E[E.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access=2357]="The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access",E[E.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access=2364]="The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access",E[E.Operator_0_cannot_be_applied_to_types_1_and_2=2365]="Operator_0_cannot_be_applied_to_types_1_and_2",E[E.A_super_call_must_be_the_first_statement_in_the_constructor=2376]="A_super_call_must_be_the_first_statement_in_the_constructor",E[E.Constructors_for_derived_classes_must_contain_a_super_call=2377]="Constructors_for_derived_classes_must_contain_a_super_call",E[E._get_and_set_accessor_must_have_the_same_type=2380]="_get_and_set_accessor_must_have_the_same_type",E[E.Overload_signatures_must_all_be_public_private_or_protected=2385]="Overload_signatures_must_all_be_public_private_or_protected",E[E.Constructor_implementation_is_missing=2390]="Constructor_implementation_is_missing",E[E.Function_implementation_is_missing_or_not_immediately_following_the_declaration=2391]="Function_implementation_is_missing_or_not_immediately_following_the_declaration",E[E.Multiple_constructor_implementations_are_not_allowed=2392]="Multiple_constructor_implementations_are_not_allowed",E[E.Duplicate_function_implementation=2393]="Duplicate_function_implementation",E[E.This_overload_signature_is_not_compatible_with_its_implementation_signature=2394]="This_overload_signature_is_not_compatible_with_its_implementation_signature",E[E.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local=2395]="Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local",E[E.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2=2416]="Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2",E[E.A_class_can_only_implement_an_interface=2422]="A_class_can_only_implement_an_interface",E[E.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged=2434]="A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged",E[E.Types_have_separate_declarations_of_a_private_property_0=2442]="Types_have_separate_declarations_of_a_private_property_0",E[E.Property_0_is_protected_in_type_1_but_public_in_type_2=2444]="Property_0_is_protected_in_type_1_but_public_in_type_2",E[E.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses=2445]="Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses",E[E.Variable_0_used_before_its_declaration=2448]="Variable_0_used_before_its_declaration",E[E.Cannot_redeclare_block_scoped_variable_0=2451]="Cannot_redeclare_block_scoped_variable_0",E[E.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly=2453]="The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly",E[E.Variable_0_is_used_before_being_assigned=2454]="Variable_0_is_used_before_being_assigned",E[E.Type_alias_0_circularly_references_itself=2456]="Type_alias_0_circularly_references_itself",E[E.Type_0_has_no_property_1=2460]="Type_0_has_no_property_1",E[E.The_0_operator_cannot_be_applied_to_type_1=2469]="The_0_operator_cannot_be_applied_to_type_1",E[E.In_const_enum_declarations_member_initializer_must_be_constant_expression=2474]="In_const_enum_declarations_member_initializer_must_be_constant_expression",E[E.A_const_enum_member_can_only_be_accessed_using_a_string_literal=2476]="A_const_enum_member_can_only_be_accessed_using_a_string_literal",E[E.Export_declaration_conflicts_with_exported_declaration_of_0=2484]="Export_declaration_conflicts_with_exported_declaration_of_0",E[E._0_is_referenced_directly_or_indirectly_in_its_own_base_expression=2506]="_0_is_referenced_directly_or_indirectly_in_its_own_base_expression",E[E.Cannot_create_an_instance_of_an_abstract_class=2511]="Cannot_create_an_instance_of_an_abstract_class",E[E.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2=2515]="Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2",E[E.Object_is_possibly_null=2531]="Object_is_possibly_null",E[E.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property=2540]="Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property",E[E.The_target_of_an_assignment_must_be_a_variable_or_a_property_access=2541]="The_target_of_an_assignment_must_be_a_variable_or_a_property_access",E[E.Index_signature_in_type_0_only_permits_reading=2542]="Index_signature_in_type_0_only_permits_reading",E[E.Expected_0_arguments_but_got_1=2554]="Expected_0_arguments_but_got_1",E[E.Expected_at_least_0_arguments_but_got_1=2555]="Expected_at_least_0_arguments_but_got_1",E[E.Expected_0_type_arguments_but_got_1=2558]="Expected_0_type_arguments_but_got_1",E[E.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned=2564]="Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned",E[E.Property_0_is_used_before_being_assigned=2565]="Property_0_is_used_before_being_assigned",E[E._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property=2610]="_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property",E[E._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor=2611]="_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor",E[E.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums=2651]="A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums",E[E.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration=2673]="Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration",E[E.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration=2674]="Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration",E[E.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private=2675]="Cannot_extend_a_class_0_Class_constructor_is_marked_as_private",E[E.The_this_types_of_each_signature_are_incompatible=2685]="The_this_types_of_each_signature_are_incompatible",E[E.Namespace_0_has_no_exported_member_1=2694]="Namespace_0_has_no_exported_member_1",E[E.Namespace_can_only_have_declarations=2695]="Namespace_can_only_have_declarations",E[E.Required_type_parameters_may_not_follow_optional_type_parameters=2706]="Required_type_parameters_may_not_follow_optional_type_parameters",E[E.Duplicate_property_0=2718]="Duplicate_property_0",E[E.Property_0_is_missing_in_type_1_but_required_in_type_2=2741]="Property_0_is_missing_in_type_1_but_required_in_type_2",E[E.Type_0_has_no_call_signatures=2757]="Type_0_has_no_call_signatures",E[E.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter=2808]="Get_accessor_0_must_be_at_least_as_accessible_as_the_setter",E[E.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0=4117]="This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0",E[E.File_0_not_found=6054]="File_0_not_found",E[E.Numeric_separators_are_not_allowed_here=6188]="Numeric_separators_are_not_allowed_here",E[E.Multiple_consecutive_numeric_separators_are_not_permitted=6189]="Multiple_consecutive_numeric_separators_are_not_permitted",E[E.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without=6234]="This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without",E[E._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class=17009]="_super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class",E[E._super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class=17011]="_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class",E[E.Decorator_0_is_not_valid_in_the_hot_request_artifact=9e3]="Decorator_0_is_not_valid_in_the_hot_request_artifact",E[E.Decorator_0_is_not_valid_in_the_cold_daemon_artifact=9001]="Decorator_0_is_not_valid_in_the_cold_daemon_artifact",E[E.Only_one_daemon_class_is_allowed_per_project=9002]="Only_one_daemon_class_is_allowed_per_project",E[E.A_project_using_stream_cannot_declare_service_or_remote=9003]="A_project_using_stream_cannot_declare_service_or_remote",E[E.Scheduled_is_only_valid_inside_a_daemon_class=9004]="Scheduled_is_only_valid_inside_a_daemon_class",E[E.Stream_hook_0_is_only_valid_inside_a_stream_class=9005]="Stream_hook_0_is_only_valid_inside_a_stream_class",E[E.Duplicate_stream_hook_0=9006]="Duplicate_stream_hook_0",E[E.Stream_class_0_declares_no_lifecycle_hooks=9007]="Stream_class_0_declares_no_lifecycle_hooks",E[E.Daemon_class_0_declares_no_scheduled_tasks=9008]="Daemon_class_0_declares_no_scheduled_tasks",E[E.Decorator_0_does_not_accept_arguments=9009]="Decorator_0_does_not_accept_arguments",E[E.Scheduled_requires_a_single_string_schedule_argument=9010]="Scheduled_requires_a_single_string_schedule_argument",E[E.Scheduled_spec_0_is_not_a_valid_interval_or_cron_expression=9011]="Scheduled_spec_0_is_not_a_valid_interval_or_cron_expression",E[E.Scheduled_handler_0_must_take_no_arguments_and_return_void=9012]="Scheduled_handler_0_must_take_no_arguments_and_return_void",E[E.Stream_scope_must_be_a_StreamScope_enum_member=9013]="Stream_scope_must_be_a_StreamScope_enum_member",E[E.Stream_connect_handler_0_has_an_invalid_signature=9014]="Stream_connect_handler_0_has_an_invalid_signature",E[E.Stream_message_handler_0_has_an_invalid_signature=9015]="Stream_message_handler_0_has_an_invalid_signature",E))(ot||{});function Ea(r){switch(r){case 100:return"Not implemented: {0}";case 101:return"Operation is unsafe.";case 102:return"User-defined: {0}";case 103:return"Feature '{0}' is not enabled.";case 104:return"Low memory limit exceeded by static data: {0} > {1}";case 105:return"Module requires at least '{0}' pages of initial memory.";case 106:return"Module requires at least '{0}' pages of maximum memory.";case 107:return"Shared memory requires maximum memory to be defined.";case 108:return"Shared memory requires feature 'threads' to be enabled.";case 109:return"Transform '{0}': {1}";case 110:return"Start function name '{0}' is invalid or conflicts with another export.";case 111:return"Element '{0}' not found.";case 112:return"Exchange of '{0}' values is not supported by all embeddings";case 200:return"Conversion from type '{0}' to '{1}' requires an explicit cast.";case 201:return"Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.";case 202:return"Type '{0}' cannot be changed to type '{1}'.";case 203:return"Operation '{0}' cannot be applied to type '{1}'.";case 204:return"Type '{0}' cannot be nullable.";case 206:return"Mutable value cannot be inlined.";case 207:return"Unmanaged classes cannot extend managed classes and vice-versa.";case 208:return"Unmanaged classes cannot implement interfaces.";case 209:return"Invalid regular expression flags.";case 210:return"Expression is never 'null'.";case 211:return"Class '{0}' is final and cannot be extended.";case 212:return"Decorator '{0}' is not valid here.";case 213:return"Duplicate decorator.";case 214:return"Type '{0}' is illegal in this context.";case 215:return"Optional parameter must have an initializer.";case 216:return"Class '{0}' cannot declare a constructor when instantiated from an object literal.";case 217:return"Function '{0}' cannot be inlined into itself.";case 218:return"Cannot access method '{0}' without calling it as it requires 'this' to be set.";case 219:return"Optional properties are not supported.";case 220:return"Expression must be a compile-time constant.";case 221:return"Type '{0}' is not a function index or function reference.";case 222:return"'{0}' must be a value between '{1}' and '{2}' inclusive.";case 223:return"'{0}' must be a power of two.";case 224:return"'{0}' is not a valid operator.";case 225:return"Expression cannot be represented by a type.";case 226:return"Expression resolves to unusual type '{0}'.";case 227:return"Array literal expected.";case 228:return"Function '{0}' is virtual and will not be inlined.";case 229:return"Property '{0}' only has a setter and is missing a getter.";case 230:return"'{0}' keyword cannot be used here.";case 231:return"A class with a constructor explicitly returning something else than 'this' must be '@final'.";case 233:return"Property '{0}' is always assigned before being used.";case 234:return"Expression does not compile to a value at runtime.";case 235:return"Only variables, functions and enums become WebAssembly module exports.";case 236:return"Literal '{0}' does not fit into 'i64' or 'u64' types.";case 237:return"Index signature accessors in type '{0}' differ in types.";case 238:return"Initializer, definitive assignment or nullable type expected.";case 239:return"Definitive assignment has no effect on local variables.";case 240:return"Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').";case 241:return"An interface or abstract method '{0}' cannot have type parameters.";case 242:return"Cannot override generic method '{0}' with a non-generic method or vice versa.";case 250:return"Only Error or its subclasses can be thrown, but found type '{0}'.";case 901:return"Importing the table disables some indirect call optimizations.";case 902:return"Exporting the table disables some indirect call optimizations.";case 903:return"Expression compiles to a dynamic check at runtime.";case 904:return"Indexed access may involve bounds checking.";case 905:return"Explicitly returning constructor drops 'this' allocation.";case 906:return"Unnecessary definite assignment.";case 907:return"'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.";case 908:return"Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.";case 1002:return"Unterminated string literal.";case 1003:return"Identifier expected.";case 1005:return"'{0}' expected.";case 1006:return"A file cannot have a reference to itself.";case 1009:return"Trailing comma not allowed.";case 1012:return"Unexpected token.";case 1014:return"A rest parameter must be last in a parameter list.";case 1015:return"Parameter cannot have question mark and initializer.";case 1016:return"A required parameter cannot follow an optional parameter.";case 1031:return"'{0}' modifier cannot appear on class elements of this kind.";case 1036:return"Statements are not allowed in ambient contexts.";case 1039:return"Initializers are not allowed in ambient contexts.";case 1042:return"'{0}' modifier cannot be used here.";case 1047:return"A rest parameter cannot be optional.";case 1048:return"A rest parameter cannot have an initializer.";case 1049:return"A 'set' accessor must have exactly one parameter.";case 1052:return"A 'set' accessor parameter cannot have an initializer.";case 1054:return"A 'get' accessor cannot have parameters.";case 1061:return"Enum member must have initializer.";case 1092:return"Type parameters cannot appear on a constructor declaration.";case 1093:return"Type annotation cannot appear on a constructor declaration.";case 1094:return"An accessor cannot have type parameters.";case 1095:return"A 'set' accessor cannot have a return type annotation.";case 1098:return"Type parameter list cannot be empty.";case 1099:return"Type argument list cannot be empty.";case 1104:return"A 'continue' statement can only be used within an enclosing iteration statement.";case 1105:return"A 'break' statement can only be used within an enclosing iteration or switch statement.";case 1108:return"A 'return' statement can only be used within a function body.";case 1109:return"Expression expected.";case 1110:return"Type expected.";case 1113:return"A 'default' clause cannot appear more than once in a 'switch' statement.";case 1114:return"Duplicate label '{0}'.";case 1120:return"An export assignment cannot have modifiers.";case 1121:return"Octal literals are not allowed in strict mode.";case 1124:return"Digit expected.";case 1125:return"Hexadecimal digit expected.";case 1126:return"Unexpected end of text.";case 1127:return"Invalid character.";case 1130:return"'case' or 'default' expected.";case 1034:return"'super' must be followed by an argument list or member access.";case 1038:return"A 'declare' modifier cannot be used in an already ambient context.";case 1140:return"Type argument expected.";case 1141:return"String literal expected.";case 1142:return"Line break not permitted here.";case 1146:return"Declaration expected.";case 1155:return"'const' declarations must be initialized.";case 1161:return"Unterminated regular expression literal.";case 1263:return"Declarations with initializers cannot also have definite assignment assertions.";case 1176:return"Interface declaration cannot have 'implements' clause.";case 1177:return"Binary digit expected.";case 1178:return"Octal digit expected.";case 1183:return"An implementation cannot be declared in ambient contexts.";case 1190:return"The variable declaration of a 'for...of' statement cannot have an initializer.";case 1198:return"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.";case 1199:return"Unterminated Unicode escape sequence.";case 1206:return"Decorators are not valid here.";case 1242:return"'abstract' modifier can only appear on a class, method, or property declaration.";case 1245:return"Method '{0}' cannot have an implementation because it is marked abstract.";case 1246:return"An interface property cannot have an initializer.";case 1255:return"A definite assignment assertion '!' is not permitted in this context.";case 1311:return"A class may only extend another class.";case 1317:return"A parameter property cannot be declared using a rest parameter.";case 1319:return"A default export can only be used in a module.";case 1345:return"An expression of type '{0}' cannot be tested for truthiness.";case 1351:return"An identifier or keyword cannot immediately follow a numeric literal.";case 2300:return"Duplicate identifier '{0}'.";case 2304:return"Cannot find name '{0}'.";case 2305:return"Module '{0}' has no exported member '{1}'.";case 2312:return"An interface can only extend an interface.";case 2314:return"Generic type '{0}' requires {1} type argument(s).";case 2315:return"Type '{0}' is not generic.";case 2322:return"Type '{0}' is not assignable to type '{1}'.";case 2325:return"Property '{0}' is private in type '{1}' but not in type '{2}'.";case 2329:return"Index signature is missing in type '{0}'.";case 2332:return"'this' cannot be referenced in current location.";case 2333:return"'this' cannot be referenced in constructor arguments.";case 2335:return"'super' can only be referenced in a derived class.";case 2336:return"'super' cannot be referenced in constructor arguments.";case 2337:return"Super calls are not permitted outside constructors or in nested functions inside constructors.";case 2339:return"Property '{0}' does not exist on type '{1}'.";case 2341:return"Property '{0}' is private and only accessible within class '{1}'.";case 2349:return"Cannot invoke an expression whose type lacks a call signature. Type '{0}' has no compatible call signatures.";case 2351:return"This expression is not constructable.";case 2355:return"A function whose declared type is not 'void' must return a value.";case 2357:return"The operand of an increment or decrement operator must be a variable or a property access.";case 2364:return"The left-hand side of an assignment expression must be a variable or a property access.";case 2365:return"Operator '{0}' cannot be applied to types '{1}' and '{2}'.";case 2376:return"A 'super' call must be the first statement in the constructor.";case 2377:return"Constructors for derived classes must contain a 'super' call.";case 2380:return"'get' and 'set' accessor must have the same type.";case 2385:return"Overload signatures must all be public, private or protected.";case 2390:return"Constructor implementation is missing.";case 2391:return"Function implementation is missing or not immediately following the declaration.";case 2392:return"Multiple constructor implementations are not allowed.";case 2393:return"Duplicate function implementation.";case 2394:return"This overload signature is not compatible with its implementation signature.";case 2395:return"Individual declarations in merged declaration '{0}' must be all exported or all local.";case 2416:return"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.";case 2422:return"A class can only implement an interface.";case 2434:return"A namespace declaration cannot be located prior to a class or function with which it is merged.";case 2442:return"Types have separate declarations of a private property '{0}'.";case 2444:return"Property '{0}' is protected in type '{1}' but public in type '{2}'.";case 2445:return"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.";case 2448:return"Variable '{0}' used before its declaration.";case 2451:return"Cannot redeclare block-scoped variable '{0}'";case 2453:return"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.";case 2454:return"Variable '{0}' is used before being assigned.";case 2456:return"Type alias '{0}' circularly references itself.";case 2460:return"Type '{0}' has no property '{1}'.";case 2469:return"The '{0}' operator cannot be applied to type '{1}'.";case 2474:return"In 'const' enum declarations member initializer must be constant expression.";case 2476:return"A const enum member can only be accessed using a string literal.";case 2484:return"Export declaration conflicts with exported declaration of '{0}'.";case 2506:return"'{0}' is referenced directly or indirectly in its own base expression.";case 2511:return"Cannot create an instance of an abstract class.";case 2515:return"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from '{2}'.";case 2531:return"Object is possibly 'null'.";case 2540:return"Cannot assign to '{0}' because it is a constant or a read-only property.";case 2541:return"The target of an assignment must be a variable or a property access.";case 2542:return"Index signature in type '{0}' only permits reading.";case 2554:return"Expected {0} arguments, but got {1}.";case 2555:return"Expected at least {0} arguments, but got {1}.";case 2558:return"Expected {0} type arguments, but got {1}.";case 2564:return"Property '{0}' has no initializer and is not assigned in the constructor before 'this' is used or returned.";case 2565:return"Property '{0}' is used before being assigned.";case 2610:return"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.";case 2611:return"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.";case 2651:return"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.";case 2673:return"Constructor of class '{0}' is private and only accessible within the class declaration.";case 2674:return"Constructor of class '{0}' is protected and only accessible within the class declaration.";case 2675:return"Cannot extend a class '{0}'. Class constructor is marked as private.";case 2685:return"The 'this' types of each signature are incompatible.";case 2694:return"Namespace '{0}' has no exported member '{1}'.";case 2695:return"Namespace can only have declarations.";case 2706:return"Required type parameters may not follow optional type parameters.";case 2718:return"Duplicate property '{0}'.";case 2741:return"Property '{0}' is missing in type '{1}' but required in type '{2}'.";case 2757:return"Type '{0}' has no call signatures.";case 2808:return"Get accessor '{0}' must be at least as accessible as the setter.";case 4117:return"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.";case 6054:return"File '{0}' not found.";case 6188:return"Numeric separators are not allowed here.";case 6189:return"Multiple consecutive numeric separators are not permitted.";case 6234:return"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?";case 17009:return"'super' must be called before accessing 'this' in the constructor of a derived class.";case 17011:return"'super' must be called before accessing a property of 'super' in the constructor of a derived class.";case 9e3:return"Decorator '{0}' is not valid in the hot request artifact.";case 9001:return"Decorator '{0}' is not valid in the cold daemon artifact.";case 9002:return"Only one '@daemon' class is allowed per project.";case 9003:return"A project using '@stream' cannot declare '@service' or '@remote'.";case 9004:return"Scheduled is only valid inside a '@daemon' class.";case 9005:return"Stream hook '{0}' is only valid inside a '@stream' class.";case 9006:return"Duplicate stream hook '{0}'.";case 9007:return"Stream class '{0}' declares no lifecycle hooks.";case 9008:return"Daemon class '{0}' declares no scheduled tasks.";case 9009:return"Decorator '{0}' does not accept arguments.";case 9010:return"Scheduled requires a single string schedule argument.";case 9011:return"Scheduled spec '{0}' is not a valid interval or cron expression.";case 9012:return"Scheduled handler '{0}' must take no arguments and return void.";case 9013:return"Stream scope must be a StreamScope enum member.";case 9014:return"Stream connect handler '{0}' has an invalid signature.";case 9015:return"Stream message handler '{0}' has an invalid signature.";default:return""}}var Vc={};Ro(Vc,{BitSet:()=>Bc,COLOR_BLUE:()=>Z2,COLOR_CYAN:()=>Gc,COLOR_GRAY:()=>X2,COLOR_GREEN:()=>J2,COLOR_MAGENTA:()=>Dc,COLOR_RED:()=>Pa,COLOR_RESET:()=>Un,COLOR_WHITE:()=>Y2,COLOR_YELLOW:()=>Mc,CharCode:()=>ut,SURROGATE_HIGH:()=>Dn,SURROGATE_LOW:()=>Ti,accuratePow64:()=>Ia,cloneMap:()=>_e,colorize:()=>$2,combineSurrogates:()=>Gn,dirname:()=>mg,escapeString:()=>ve,indent:()=>W,isAlpha:()=>Nc,isAlphaOrDecimal:()=>dg,isColorsEnabled:()=>Si,isDecimal:()=>ct,isHexBase:()=>zn,isHexOrDecimal:()=>z2,isHighSurrogate:()=>Ai,isIdentifier:()=>We,isIdentifierPart:()=>Ei,isIdentifierStart:()=>vi,isLineBreak:()=>Ut,isLowSurrogate:()=>Ra,isOctal:()=>Fa,isPowerOf2:()=>zt,isSurrogate:()=>M2,isSurrogateHigh:()=>D2,isSurrogateLow:()=>G2,isWhiteSpace:()=>Mn,mergeMaps:()=>N2,normalizePath:()=>Fr,numCodeUnits:()=>kr,readF32:()=>P2,readF64:()=>B2,readI16:()=>C2,readI32:()=>bi,readI64:()=>fg,readI8:()=>w2,readV128:()=>L2,resolvePath:()=>wa,setColorsEnabled:()=>Ba,v128_ones:()=>Uc,v128_zero:()=>zc,writeF32:()=>Sr,writeF64:()=>Ir,writeI16:()=>rr,writeI32:()=>ge,writeI32AsI64:()=>Sa,writeI64:()=>xi,writeI64AsI32:()=>Cc,writeI8:()=>de,writeV128:()=>Pc});function w2(r,i){return r[i]}function de(r,i,e){i[e]=r}function C2(r,i){return i32(r[i])|i32(r[i+1])<<8}function rr(r,i,e){i[e]=r,i[e+1]=r>>>8}function bi(r,i){return i32(r[i])|i32(r[i+1])<<8|i32(r[i+2])<<16|i32(r[i+3])<<24}function ge(r,i,e){i[e]=r,i[e+1]=r>>>8,i[e+2]=r>>>16,i[e+3]=r>>>24}function Sa(r,i,e,t=!1){ge(r,i,e),ge(t||r>=0?0:-1,i,e+4)}function fg(r,i){let e=bi(r,i),t=bi(r,i+4);return i64_new(e,t)}function xi(r,i,e){ge(i64_low(r),i,e),ge(i64_high(r),i,e+4)}function Cc(r,i,e,t=!1){assert(t?i64_is_u32(r):i64_is_i32(r)),ge(i64_low(r),i,e)}function P2(r,i){return i32_as_f32(bi(r,i))}function Sr(r,i,e){ge(f32_as_i32(r),i,e)}function B2(r,i){return i64_as_f64(fg(r,i))}function Ir(r,i,e){let t=f64_as_i64(r);ge(i64_low(t),i,e),ge(i64_high(t),i,e+4)}function L2(r,i){return r.slice(i,i+16)}function Pc(r,i,e){assert(r.length==16),i.set(r,e)}function _e(r){if(ASC_TARGET){let i=new Map;if(r)for(let e=Map_keys(r),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]),a=assert(r.get(s));i.set(s,a)}return i}else return new Map(r)}function N2(r,i){if(ASC_TARGET){let e=new Map;for(let t=Map_keys(r),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(r.get(a));e.set(a,l)}for(let t=Map_keys(i),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(i.get(a));e.set(a,l)}return e}else{let e=new Map(r);return i.forEach((t,n)=>e.set(n,t)),e}}var Bc=class{constructor(){this.clear()}get size(){let i=0,e=this.words;for(let t=0,n=e.length;t<n;t++){let s=unchecked(e[t]);s&&(i+=popcnt(s))}return i}add(i){let e=i>>>5,t=this.words;return e>=t.length&&(this.words=new Uint32Array(e+16),this.words.set(t),t=this.words),unchecked(t[e]|=1<<i),this}delete(i){let e=i>>>5,t=this.words;e>=t.length||unchecked(t[e]&=~(1<<i))}has(i){let e=i>>>5,t=this.words;return e>=t.length?!1:(unchecked(t[i>>>5])&1<<i)!==0}clear(){this.words=new Uint32Array(16)}toArray(){let i=new Array(this.size);for(let e=0,t=0,n=this.words.length;e<n;++e){let s=unchecked(this.words[e]);for(;s;){let a=s&-s;unchecked(i[t++]=(e<<5)+popcnt(a-1)),s^=a}}return i}toString(){return`BitSet { ${this.toArray()} }`}};function zt(r){return r!=0&&(r&r-1)==0}function Ia(r,i){return ASC_TARGET?Math.pow(r,i):f64_pow(r,i)}var ut=(B=>(B[B.Null=0]="Null",B[B.LineFeed=10]="LineFeed",B[B.CarriageReturn=13]="CarriageReturn",B[B.LineSeparator=8232]="LineSeparator",B[B.ParagraphSeparator=8233]="ParagraphSeparator",B[B.NextLine=133]="NextLine",B[B.Space=32]="Space",B[B.NonBreakingSpace=160]="NonBreakingSpace",B[B.EnQuad=8192]="EnQuad",B[B.EmQuad=8193]="EmQuad",B[B.EnSpace=8194]="EnSpace",B[B.EmSpace=8195]="EmSpace",B[B.ThreePerEmSpace=8196]="ThreePerEmSpace",B[B.FourPerEmSpace=8197]="FourPerEmSpace",B[B.SixPerEmSpace=8198]="SixPerEmSpace",B[B.FigureSpace=8199]="FigureSpace",B[B.PunctuationSpace=8200]="PunctuationSpace",B[B.ThinSpace=8201]="ThinSpace",B[B.HairSpace=8202]="HairSpace",B[B.ZeroWidthSpace=8203]="ZeroWidthSpace",B[B.NarrowNoBreakSpace=8239]="NarrowNoBreakSpace",B[B.IdeographicSpace=12288]="IdeographicSpace",B[B.MathematicalSpace=8287]="MathematicalSpace",B[B.Ogham=5760]="Ogham",B[B._=95]="_",B[B._0=48]="_0",B[B._1=49]="_1",B[B._2=50]="_2",B[B._3=51]="_3",B[B._4=52]="_4",B[B._5=53]="_5",B[B._6=54]="_6",B[B._7=55]="_7",B[B._8=56]="_8",B[B._9=57]="_9",B[B.a=97]="a",B[B.b=98]="b",B[B.c=99]="c",B[B.d=100]="d",B[B.e=101]="e",B[B.f=102]="f",B[B.g=103]="g",B[B.h=104]="h",B[B.i=105]="i",B[B.j=106]="j",B[B.k=107]="k",B[B.l=108]="l",B[B.m=109]="m",B[B.n=110]="n",B[B.o=111]="o",B[B.p=112]="p",B[B.q=113]="q",B[B.r=114]="r",B[B.s=115]="s",B[B.t=116]="t",B[B.u=117]="u",B[B.v=118]="v",B[B.w=119]="w",B[B.x=120]="x",B[B.y=121]="y",B[B.z=122]="z",B[B.A=65]="A",B[B.B=66]="B",B[B.C=67]="C",B[B.D=68]="D",B[B.E=69]="E",B[B.F=70]="F",B[B.G=71]="G",B[B.H=72]="H",B[B.I=73]="I",B[B.J=74]="J",B[B.K=75]="K",B[B.L=76]="L",B[B.M=77]="M",B[B.N=78]="N",B[B.O=79]="O",B[B.P=80]="P",B[B.Q=81]="Q",B[B.R=82]="R",B[B.S=83]="S",B[B.T=84]="T",B[B.U=85]="U",B[B.V=86]="V",B[B.W=87]="W",B[B.X=88]="X",B[B.Y=89]="Y",B[B.Z=90]="Z",B[B.Ampersand=38]="Ampersand",B[B.Asterisk=42]="Asterisk",B[B.At=64]="At",B[B.Backslash=92]="Backslash",B[B.Backtick=96]="Backtick",B[B.Bar=124]="Bar",B[B.Caret=94]="Caret",B[B.CloseBrace=125]="CloseBrace",B[B.CloseBracket=93]="CloseBracket",B[B.CloseParen=41]="CloseParen",B[B.Colon=58]="Colon",B[B.Comma=44]="Comma",B[B.Dollar=36]="Dollar",B[B.Dot=46]="Dot",B[B.DoubleQuote=34]="DoubleQuote",B[B.Equals=61]="Equals",B[B.Exclamation=33]="Exclamation",B[B.GreaterThan=62]="GreaterThan",B[B.Hash=35]="Hash",B[B.LessThan=60]="LessThan",B[B.Minus=45]="Minus",B[B.OpenBrace=123]="OpenBrace",B[B.OpenBracket=91]="OpenBracket",B[B.OpenParen=40]="OpenParen",B[B.Percent=37]="Percent",B[B.Plus=43]="Plus",B[B.Question=63]="Question",B[B.Semicolon=59]="Semicolon",B[B.SingleQuote=39]="SingleQuote",B[B.Slash=47]="Slash",B[B.Tilde=126]="Tilde",B[B.Backspace=8]="Backspace",B[B.FormFeed=12]="FormFeed",B[B.ByteOrderMark=65279]="ByteOrderMark",B[B.Tab=9]="Tab",B[B.VerticalTab=11]="VerticalTab",B))(ut||{});function Ut(r){switch(r){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function Mn(r){switch(r){case 32:case 9:case 11:case 12:case 160:case 133:case 5760:case 8239:case 8287:case 12288:case 65279:return!0;default:return r>=8192&&r<=8203}}var Dn=55296,Ti=56320;function M2(r){return(r&63488)==Dn}function D2(r){return r<Ti}function G2(r){return r>=Ti}function Ai(r){return(r&64512)==Dn}function Ra(r){return(r&64512)==Ti}function Gn(r,i){return 65536+((r&1023)<<10)|i&1023}function kr(r){return 1+i32(r>65535)}function Nc(r){let i=r|32;return i>=97&&i<=122}function ct(r){return r>=48&&r<=57}function Fa(r){return r>=48&&r<=55}function zn(r){let i=r|32;return i>=97&&i<=102}function z2(r){return ct(r)||zn(r)}function dg(r){return Nc(r)||ct(r)}function vi(r){return Nc(r)||r==95||r==36||r>=V2&&r<=O2&&hg(r,U2)}function Ei(r){return dg(r)||r==95||r==36||r>=W2&&r<=j2&&hg(r,q2)}function We(r){let i=r.length;if(!i)return!1;let e=r.codePointAt(0);if(!vi(e))return!1;let t=kr(e);for(;t<i;){if(e=r.codePointAt(t),!Ei(e))return!1;t+=kr(e)}return!0}var U2=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2191,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3164,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3292,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7306,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42972,42993,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,68938,68965,68975,68997,69248,69289,69296,69297,69314,69319,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70528,70537,70539,70539,70542,70542,70544,70581,70583,70583,70609,70609,70611,70611,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72640,72672,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73136,73179,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,78944,82938,82944,83526,90368,90397,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93504,93548,93760,93823,93856,93880,93883,93907,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94194,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124368,124397,124400,124400,124608,124638,124640,124642,124644,124645,124647,124653,124656,124660,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041],V2=170,O2=210041,q2=[170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2191,2199,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3164,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3292,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6877,6880,6891,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7306,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42972,42993,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,68928,68965,68969,68973,68975,68997,69248,69289,69291,69292,69296,69297,69314,69319,69370,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70528,70537,70539,70539,70542,70542,70544,70581,70583,70592,70594,70594,70597,70597,70599,70602,70604,70611,70625,70626,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71376,71395,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72544,72551,72640,72672,72688,72697,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73136,73179,73184,73193,73440,73462,73472,73488,73490,73530,73534,73538,73552,73562,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,78944,82938,82944,83526,90368,90425,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93504,93548,93552,93561,93760,93823,93856,93880,93883,93907,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118e3,118009,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124368,124410,124608,124638,124640,124661,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041,917760,917999],W2=170,j2=917999;function hg(r,i){let e=0,t=i.length;for(;e+1<t;){let n=e+(t-e>>>1);n-=n&1;let s=i[n];if(s<=r&&r<=i[n+1])return!0;r<s?t=n:e=n+2}return!1}var Lc=" ",K2=" ",H2=" ",Q2=" ",ka=new Map;function W(r,i){if(i<=4)switch(i){case 1:r.push(Lc);break;case 2:r.push(K2);break;case 3:r.push(H2);break;case 4:r.push(Q2);break}else{let e;ka.size<=1024?ka.has(i)?e=assert(ka.get(i)):ka.set(i,e=Lc.repeat(i)):e=Lc.repeat(i),r.push(e)}}function ve(r,i){let e=new Array,t=0,n=0;for(let s=r.length;n<s;)switch(r.charCodeAt(n)){case 0:{n>t&&e.push(r.substring(t,t=n+1)),e.push("\\0"),t=++n;break}case 8:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\b");break}case 9:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\t");break}case 10:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\n");break}case 11:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\v");break}case 12:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\f");break}case 13:{n>t&&e.push(r.substring(t,n)),e.push("\\r"),t=++n;break}case 34:{i==34?(n>t&&e.push(r.substring(t,n)),e.push('\\"'),t=++n):++n;break}case 39:{i==39?(n>t&&e.push(r.substring(t,n)),e.push("\\'"),t=++n):++n;break}case 92:{n>t&&e.push(r.substring(t,n)),e.push("\\\\"),t=++n;break}case 96:{i==96?(n>t&&e.push(r.substring(t,n)),e.push("\\`"),t=++n):++n;break}default:{++n;break}}return n>t&&e.push(r.substring(t,n)),e.join("")}var Rr=47;function Fr(r){let i=0,e=r.length;for(;i+1<e&&r.charCodeAt(i)==46&&r.charCodeAt(i+1)==Rr;)i+=2;(i>0||e<r.length)&&(r=r.substring(i,e),e-=i,i=0);let t;for(;i+1<e;){if(t=!1,r.charCodeAt(i)==Rr&&r.charCodeAt(i+1)==46){if(t=i+2==e,t||i+2<e&&r.charCodeAt(i+2)==Rr){r=t?r.substring(0,i):r.substring(0,i)+r.substring(i+2),e-=2;continue}if(t=i+3==e,t&&r.charCodeAt(i+2)==46||i+3<e&&r.charCodeAt(i+2)==46&&r.charCodeAt(i+3)==Rr){let n=i;for(;--n>=0;)if(r.charCodeAt(n)==Rr){(i-n!=3||r.charCodeAt(n+1)!=46||r.charCodeAt(n+2)!=46)&&(r=t?r.substring(0,n):r.substring(0,n)+r.substring(i+3),e-=i+3-n,i=n-1);break}if(n<0&&i>0&&(i!=2||r.charCodeAt(0)!=46||r.charCodeAt(1)!=46)){r=r.substring(i+4),e=r.length;continue}}}i++}return e>0?r:"."}function wa(r,i){return r.startsWith("std/")?r:Fr(mg(i)+lt+r)}function mg(r){let i=r.length;if(i<=1){if(i==0)return".";if(r.charCodeAt(0)==Rr)return r}for(;--i>0;)if(r.charCodeAt(i)==Rr)return r.substring(0,i);return"."}var X2="\x1B[90m",Pa="\x1B[91m",J2="\x1B[92m",Mc="\x1B[93m",Z2="\x1B[94m",Dc="\x1B[95m",Gc="\x1B[96m",Y2="\x1B[97m",Un="\x1B[0m",Ca=!0;function Si(){return Ca}function Ba(r){let i=Ca;return Ca=r,i}function $2(r,i){return Ca?i+r+Un:r}var zc=new Uint8Array(16),Uc=new Uint8Array(16).fill(255);var Na=(n=>(n[n.Pedantic=0]="Pedantic",n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(Na||{}),ce=class r{constructor(i,e){this.start=i;this.end=e}static join(i,e){if(i.source!=e.source)throw new Error("source mismatch");let t=new r(i.start<e.start?i.start:e.start,i.end>e.end?i.end:e.end);return t.source=i.source,t}equals(i){return this.source==i.source&&this.start==i.start&&this.end==i.end}get atStart(){let i=new r(this.start,this.start);return i.source=this.source,i}get atEnd(){let i=new r(this.end,this.end);return i.source=this.source,i}toString(){return this.source.text.substring(this.start,this.end)}};function Oc(r){switch(r){case 0:return"PEDANTIC";case 1:return"INFO";case 2:return"WARNING";case 3:return"ERROR";default:return assert(!1),""}}function gg(r){switch(r){case 0:return Dc;case 1:return Gc;case 2:return Mc;case 3:return Pa;default:return assert(!1),""}}var La=class r{constructor(i,e,t){this.range=null;this.relatedRange=null;this.code=i,this.category=e,this.message=t}static create(i,e,t=null,n=null,s=null){let a=Ea(i);return t!=null&&(a=a.replace("{0}",t)),n!=null&&(a=a.replace("{1}",n)),s!=null&&(a=a.replace("{2}",s)),new r(i,e,a)}equals(i){if(this.code!=i.code)return!1;let e=this.range,t=i.range;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;let n=this.relatedRange,s=i.relatedRange;if(n){if(!s||!n.equals(s))return!1}else if(s)return!1;return this.message==i.message}withRange(i){return this.range=i,this}withRelatedRange(i){return this.relatedRange=i,this}toString(){let i=Oc(this.category),e=this.range,t=this.code,n=this.message;if(e){let s=e.source,a=s.normalizedPath,l=s.lineAt(e.start),o=s.columnAt(),u=e.end-e.start;return`${i} ${t}: "${n}" in ${a}(${l},${o}+${u})`}return`${i} ${t}: ${n}`}};function bg(r,i=!1,e=!1){let t=Ba(i),n=[];Si()&&n.push(gg(r.category)),n.push(Oc(r.category)),Si()&&n.push(Un),n.push(r.code<1e3?" AS":" TS"),n.push(r.code.toString()),n.push(": "),n.push(r.message);let s=r.range;if(s){let a=s.source,l=r.relatedRange,o=0;if(l&&(o=max(a.lineAt(s.start),l.source.lineAt(l.start))),e?(n.push(`
|
|
9
|
+
`+new Error().stack},n=function(a,l){if(a==l){if(a!=0)return 0;a=1/a,l=1/l}else{let o=a!=a,u=l!=l;if(o|u)return o-u;a==null&&(a=String(a)),l==null&&(l=String(l))}return a>l?1:-1};b2=e,x2=t,T2=n,$.ASC_TARGET=0,$.ASC_RUNTIME=0,$.ASC_NO_ASSERT=!1,$.ASC_MEMORY_BASE=0,$.ASC_OPTIMIZE_LEVEL=3,$.ASC_SHRINK_LEVEL=0,$.ASC_FEATURE_MUTABLE_GLOBAL=!1,$.ASC_FEATURE_SIGN_EXTENSION=!1,$.ASC_FEATURE_BULK_MEMORY=!1,$.ASC_FEATURE_SIMD=!1,$.ASC_FEATURE_THREADS=!1;let r=new Float64Array(1),i=new Uint32Array(r.buffer);Object.defineProperties($.i8=function(l){return l<<24>>24},{MIN_VALUE:{value:-128},MAX_VALUE:{value:127},parse(a,l){return parseInt(a,l)<<24>>24}}),Object.defineProperties($.i16=function(l){return l<<16>>16},{MIN_VALUE:{value:-32768},MAX_VALUE:{value:32767},parse(a,l){return parseInt(a,l)<<16>>16}}),Object.defineProperties($.i32=$.isize=function(l){return l|0},{MIN_VALUE:{value:-2147483648},MAX_VALUE:{value:2147483647},parse(a,l){return parseInt(a,l)|0}}),Object.defineProperties($.u8=function(l){return l&255},{MIN_VALUE:{value:0},MAX_VALUE:{value:255},parse(a,l){return parseInt(a,l)&255}}),Object.defineProperties($.u16=function(l){return l&65535},{MIN_VALUE:{value:0},MAX_VALUE:{value:65535},parse(a,l){return parseInt(a,l)&65535}}),Object.defineProperties($.u32=$.usize=function(l){return l>>>0},{MIN_VALUE:{value:0},MAX_VALUE:{value:4294967295},parse(a,l){return parseInt(a,l)>>>0}}),Object.defineProperties($.bool=function(l){return!!l},{MIN_VALUE:{value:!1},MAX_VALUE:{value:!0},parse(a){return a.trim()==="true"}}),Object.defineProperties($.f32=function(l){return Math.fround(l)},{EPSILON:{value:11920928955078125e-23},MIN_VALUE:{value:1401298464324817e-60},MAX_VALUE:{value:34028234663852886e22},MIN_NORMAL_VALUE:{value:11754943508222875e-54},MIN_SAFE_INTEGER:{value:-16777215},MAX_SAFE_INTEGER:{value:16777215},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return Math.fround(parseFloat(a))}}),Object.defineProperties($.f64=function(l){return+l},{EPSILON:{value:2220446049250313e-31},MIN_VALUE:{value:5e-324},MAX_VALUE:{value:17976931348623157e292},MIN_NORMAL_VALUE:{value:22250738585072014e-324},MIN_SAFE_INTEGER:{value:-9007199254740991},MAX_SAFE_INTEGER:{value:9007199254740991},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return parseFloat(a)}}),$.clz=Math.clz32,$.ctz=function(l){return 32-Math.clz32(~l&l-1)},$.popcnt=function(l){return l-=l>>>1&1431655765,l=(l&858993459)+(l>>>2&858993459),(l+(l>>>4)&252645135)*16843009>>>24},$.rotl=function(l,o){return o&=31,l<<o|l>>>32-o},$.rotr=function(l,o){return o&=31,l>>>o|l<<32-o},$.abs=Math.abs,$.max=Math.max,$.min=Math.min,$.ceil=Math.ceil,$.floor=Math.floor,$.nearest=function(l){let u=Math.abs(l);return u<4503599627370496?(u+4503599627370496-4503599627370496)*Math.sign(l):l},$.select=function(l,o,u){return u?l:o},$.sqrt=Math.sqrt,$.trunc=Math.trunc,$.copysign=function(l,o){return o?Math.abs(l)*Math.sign(o):(r[0]=o,i[1]>>>31?-1:1)},$.bswap=function(l){let o=l>>8&16711935,u=(l&16711935)<<8;return l=o|u,o=l>>16&65535,u=(l&65535)<<16,o|u},e.prototype=Object.create(Error.prototype),e.prototype.name="UnreachableError",e.prototype.message="unreachable",$.unreachable=function(){throw new e},t.prototype=Object.create(Error.prototype),t.prototype.name="AssertionError",$.assert=function(l,o){if(l)return l;throw new t(o)},$.changetype=function(l){return l},String.fromCharCodes=function(l){let u=l.length;if(u<=8192)return String.fromCharCode.apply(String,l);let p=0,_="";for(;p<u;)_+=String.fromCharCode.apply(String,l.slice(p,Math.min(p+8192,u))),p+=8192;return _},String.fromCodePoints=function(l){let u=l.length;if(u<=8192)return String.fromCodePoint.apply(String,l);let p=0,_="";for(;p<u;)_+=String.fromCodePoint.apply(String,l.slice(p,Math.min(p+8192,u))),p+=8192;return _},String.prototype.at||Object.defineProperty(String.prototype,"at",{value:function(l){return this.charAt(l>=0?l:l+this.length)},configurable:!0}),String.prototype.replaceAll||Object.defineProperty(String.prototype,"replaceAll",{value:function(l,o){let u=this.split(l).join(o);return l.length||(u=o+u+o),u},configurable:!0});let s=Array.prototype.sort;Array.prototype.sort=function(l){return s.call(this,l||n)},[Array,Uint8ClampedArray,Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array].forEach(a=>{a.prototype.at||Object.defineProperty(a.prototype,"at",{value:function(o){return this[o>=0?o:o+this.length]},configurable:!0}),a.prototype.findLastIndex||Object.defineProperty(a.prototype,"findLastIndex",{value:function(o){for(let u=this.length-1;u>=0;--u)if(o(this[u],u,this))return u;return-1},configurable:!0}),a!=Array&&Object.defineProperty(a,"wrap",{value:function(o,u,p){return new a(o,u,p)},configurable:!0})}),$.isInteger=Number.isInteger,$.isFloat=function(l){return typeof l=="number"},$.isNullable=function(l){return!0},$.isReference=function(l){return typeof l=="object"||typeof l=="string"},$.isFunction=function(l){return typeof l=="function"},$.isString=function(l){return typeof l=="string"||l instanceof String},$.isArray=Array.isArray,$.isArrayLike=function(l){return l&&typeof l=="object"&&typeof l.length=="number"&&l.length>=0&&Math.trunc(l.length)===l.length},$.isDefined=function(l){return typeof l<"u"},$.isConstant=function(l){return!1},$.unchecked=function(l){return l},$.fmod=function(l,o){return l%o},$.fmodf=function(l,o){return Math.fround(l%o)},$.JSMath=Math,Object.defineProperties($.JSMath,{sincos_sin:{value:0,writable:!0},sincos_cos:{value:0,writable:!0},signbit:{value:function(l){return r[0]=l,!!(i[1]>>>31)}},sincos:{value:function(l){this.sincos_sin=Math.sin(l),this.sincos_cos=Math.cos(l)}},exp2:{value:function(l){return Math.pow(2,l)}}}),$.unmanaged=function(){},$.trace=function(a,l){l&&(a+=Array.prototype.slice.call(arguments,2,2+l)),console.error("trace: "+a)}}var b2,x2,T2;var on={};Ro(on,{default:()=>un});Fo(on,MN);import*as MN from"binaryen";import{default as un}from"binaryen";import A2 from"long";var{_BinaryenTypeCreate:B_,_BinaryenTypeArity:L_,_BinaryenTypeExpand:N_,_BinaryenTypeGetHeapType:Yt,_BinaryenTypeFromHeapType:me,_BinaryenTypeIsNullable:M_,_BinaryenTypeFuncref:D_,_BinaryenTypeExternref:G_,_BinaryenTypeAnyref:z_,_BinaryenTypeEqref:U_,_BinaryenTypeI31ref:V_,_BinaryenTypeStructref:O_,_BinaryenTypeArrayref:q_,_BinaryenTypeStringref:W_,_BinaryenTypeNullref:j_,_BinaryenTypeNullExternref:K_,_BinaryenTypeNullFuncref:H_,_BinaryenHeapTypeFunc:UN,_BinaryenHeapTypeExt:VN,_BinaryenHeapTypeAny:ON,_BinaryenHeapTypeEq:qN,_BinaryenHeapTypeI31:WN,_BinaryenHeapTypeStruct:jN,_BinaryenHeapTypeArray:KN,_BinaryenHeapTypeString:HN,_BinaryenHeapTypeNone:QN,_BinaryenHeapTypeNoext:XN,_BinaryenHeapTypeNofunc:JN,_BinaryenHeapTypeIsBasic:ZN,_BinaryenHeapTypeIsSignature:YN,_BinaryenHeapTypeIsStruct:$N,_BinaryenHeapTypeIsArray:eM,_BinaryenHeapTypeIsBottom:Q_,_BinaryenHeapTypeGetBottom:X_,_BinaryenHeapTypeIsSubType:J_,_BinaryenStructTypeGetNumFields:Z_,_BinaryenStructTypeGetFieldType:tM,_BinaryenStructTypeGetFieldPackedType:rM,_BinaryenStructTypeIsFieldMutable:iM,_BinaryenArrayTypeGetElementType:nM,_BinaryenArrayTypeGetElementPackedType:sM,_BinaryenArrayTypeIsElementMutable:aM,_BinaryenSignatureTypeGetParams:lM,_BinaryenSignatureTypeGetResults:oM,_BinaryenModuleCreate:Y_,_BinaryenModuleDispose:$_,_BinaryenSizeofLiteral:wo,_BinaryenLiteralInt32:ef,_BinaryenLiteralFloat32:tf,_BinaryenLiteralFloat64:rf,_BinaryenLiteralVec128:nf,_BinaryenLiteralFloat32Bits:uM,_BinaryenExpressionGetId:Nt,_BinaryenExpressionGetType:Mt,_BinaryenExpressionSetType:cM,_BinaryenExpressionPrint:pM,_BinaryenExpressionCopy:sf,_BinaryenExpressionFinalize:af,_BinaryenBlock:lf,_BinaryenBlockGetName:Ys,_BinaryenBlockSetName:_M,_BinaryenBlockGetNumChildren:cn,_BinaryenBlockGetChildAt:pn,_BinaryenBlockSetChildAt:of,_BinaryenBlockAppendChild:fM,_BinaryenBlockInsertChildAt:dM,_BinaryenBlockRemoveChildAt:hM,_BinaryenIf:uf,_BinaryenIfGetCondition:_n,_BinaryenIfSetCondition:cf,_BinaryenIfGetIfTrue:fn,_BinaryenIfSetIfTrue:pf,_BinaryenIfGetIfFalse:dn,_BinaryenIfSetIfFalse:_f,_BinaryenLoop:ff,_BinaryenLoopGetName:$s,_BinaryenLoopSetName:mM,_BinaryenLoopGetBody:hn,_BinaryenLoopSetBody:df,_BinaryenBreak:hf,_BinaryenBreakGetName:ea,_BinaryenBreakSetName:yM,_BinaryenBreakGetCondition:mn,_BinaryenBreakSetCondition:mf,_BinaryenBreakGetValue:Co,_BinaryenBreakSetValue:yf,_BinaryenSwitch:gf,_BinaryenSwitchGetNumNames:bf,_BinaryenSwitchGetNameAt:xf,_BinaryenSwitchSetNameAt:gM,_BinaryenSwitchAppendName:bM,_BinaryenSwitchInsertNameAt:xM,_BinaryenSwitchRemoveNameAt:TM,_BinaryenSwitchGetDefaultName:Tf,_BinaryenSwitchSetDefaultName:AM,_BinaryenSwitchGetCondition:Po,_BinaryenSwitchSetCondition:Af,_BinaryenSwitchGetValue:Bo,_BinaryenSwitchSetValue:vf,_BinaryenCall:Ef,_BinaryenCallGetTarget:li,_BinaryenCallSetTarget:vM,_BinaryenCallGetNumOperands:$t,_BinaryenCallGetOperandAt:er,_BinaryenCallSetOperandAt:ta,_BinaryenCallAppendOperand:EM,_BinaryenCallInsertOperandAt:SM,_BinaryenCallRemoveOperandAt:IM,_BinaryenCallIsReturn:kM,_BinaryenCallSetReturn:RM,_BinaryenReturnCall:Sf,_BinaryenCallIndirect:If,_BinaryenCallIndirectGetTable:FM,_BinaryenCallIndirectSetTable:wM,_BinaryenCallIndirectGetTarget:Lo,_BinaryenCallIndirectSetTarget:kf,_BinaryenCallIndirectGetNumOperands:yn,_BinaryenCallIndirectGetOperandAt:gn,_BinaryenCallIndirectSetOperandAt:ra,_BinaryenCallIndirectAppendOperand:CM,_BinaryenCallIndirectInsertOperandAt:PM,_BinaryenCallIndirectRemoveOperandAt:BM,_BinaryenCallIndirectIsReturn:LM,_BinaryenCallIndirectSetReturn:NM,_BinaryenReturnCallIndirect:Rf,_BinaryenLocalGet:Ff,_BinaryenLocalGetGetIndex:ia,_BinaryenLocalGetSetIndex:MM,_BinaryenLocalSet:bn,_BinaryenLocalSetIsTee:na,_BinaryenLocalSetGetIndex:oi,_BinaryenLocalSetSetIndex:DM,_BinaryenLocalSetGetValue:Tr,_BinaryenLocalSetSetValue:sa,_BinaryenLocalTee:wf,_BinaryenGlobalGet:Cf,_BinaryenGlobalGetGetName:aa,_BinaryenGlobalGetSetName:GM,_BinaryenGlobalSet:Pf,_BinaryenGlobalSetGetName:Bf,_BinaryenGlobalSetSetName:zM,_BinaryenGlobalSetGetValue:No,_BinaryenGlobalSetSetValue:Lf,_BinaryenMemorySize:Nf,_BinaryenMemoryGrow:Mf,_BinaryenMemoryGrowGetDelta:xn,_BinaryenMemoryGrowSetDelta:Df,_BinaryenLoad:Gf,_BinaryenLoadIsAtomic:UM,_BinaryenLoadSetAtomic:VM,_BinaryenLoadIsSigned:zf,_BinaryenLoadSetSigned:OM,_BinaryenLoadGetOffset:Uf,_BinaryenLoadSetOffset:qM,_BinaryenLoadGetBytes:Vf,_BinaryenLoadSetBytes:WM,_BinaryenLoadGetAlign:jM,_BinaryenLoadSetAlign:KM,_BinaryenLoadGetPtr:Tn,_BinaryenLoadSetPtr:Of,_BinaryenAtomicLoad:qf,_BinaryenStore:Wf,_BinaryenStoreIsAtomic:HM,_BinaryenStoreSetAtomic:QM,_BinaryenStoreGetBytes:la,_BinaryenStoreSetBytes:XM,_BinaryenStoreGetOffset:oa,_BinaryenStoreSetOffset:JM,_BinaryenStoreGetAlign:ZM,_BinaryenStoreSetAlign:YM,_BinaryenStoreGetPtr:Ar,_BinaryenStoreSetPtr:ua,_BinaryenStoreGetValue:An,_BinaryenStoreSetValue:jf,_BinaryenStoreGetValueType:$M,_BinaryenStoreSetValueType:e7,_BinaryenAtomicStore:Kf,_BinaryenConst:ui,_BinaryenConstGetValueI32:Hf,_BinaryenConstSetValueI32:t7,_BinaryenConstGetValueF32:Qf,_BinaryenConstSetValueF32:r7,_BinaryenConstGetValueF64:Xf,_BinaryenConstSetValueF64:i7,_BinaryenConstGetValueV128:Jf,_BinaryenConstSetValueV128:n7,_BinaryenUnary:Zf,_BinaryenUnaryGetOp:Yf,_BinaryenUnarySetOp:s7,_BinaryenUnaryGetValue:vn,_BinaryenUnarySetValue:$f,_BinaryenWideIntAddSub:ed,_BinaryenWideIntMul:td,_BinaryenBinary:rd,_BinaryenBinaryGetOp:id,_BinaryenBinarySetOp:a7,_BinaryenBinaryGetLeft:En,_BinaryenBinarySetLeft:nd,_BinaryenBinaryGetRight:Sn,_BinaryenBinarySetRight:sd,_BinaryenSelect:ad,_BinaryenSelectGetIfTrue:In,_BinaryenSelectSetIfTrue:ld,_BinaryenSelectGetIfFalse:kn,_BinaryenSelectSetIfFalse:od,_BinaryenSelectGetCondition:Rn,_BinaryenSelectSetCondition:ud,_BinaryenDrop:Mo,_BinaryenDropGetValue:Fn,_BinaryenDropSetValue:cd,_BinaryenReturn:pd,_BinaryenReturnGetValue:vr,_BinaryenReturnSetValue:ca,_BinaryenNop:_d,_BinaryenUnreachable:fd,_BinaryenAtomicRMW:dd,_BinaryenAtomicRMWGetOp:l7,_BinaryenAtomicRMWSetOp:o7,_BinaryenAtomicRMWGetBytes:u7,_BinaryenAtomicRMWSetBytes:c7,_BinaryenAtomicRMWGetOffset:p7,_BinaryenAtomicRMWSetOffset:_7,_BinaryenAtomicRMWGetPtr:Do,_BinaryenAtomicRMWSetPtr:hd,_BinaryenAtomicRMWGetValue:Go,_BinaryenAtomicRMWSetValue:md,_BinaryenAtomicCmpxchg:yd,_BinaryenAtomicCmpxchgGetBytes:f7,_BinaryenAtomicCmpxchgSetBytes:d7,_BinaryenAtomicCmpxchgGetOffset:h7,_BinaryenAtomicCmpxchgSetOffset:m7,_BinaryenAtomicCmpxchgGetPtr:zo,_BinaryenAtomicCmpxchgSetPtr:gd,_BinaryenAtomicCmpxchgGetExpected:Uo,_BinaryenAtomicCmpxchgSetExpected:bd,_BinaryenAtomicCmpxchgGetReplacement:Vo,_BinaryenAtomicCmpxchgSetReplacement:xd,_BinaryenAtomicWait:Td,_BinaryenAtomicWaitGetPtr:Oo,_BinaryenAtomicWaitSetPtr:Ad,_BinaryenAtomicWaitGetExpected:qo,_BinaryenAtomicWaitSetExpected:vd,_BinaryenAtomicWaitGetTimeout:Wo,_BinaryenAtomicWaitSetTimeout:Ed,_BinaryenAtomicWaitGetExpectedType:y7,_BinaryenAtomicWaitSetExpectedType:g7,_BinaryenAtomicNotify:Sd,_BinaryenAtomicNotifyGetPtr:jo,_BinaryenAtomicNotifySetPtr:Id,_BinaryenAtomicNotifyGetNotifyCount:Ko,_BinaryenAtomicNotifySetNotifyCount:kd,_BinaryenAtomicFence:Rd,_BinaryenAtomicFenceGetOrder:b7,_BinaryenAtomicFenceSetOrder:x7,_BinaryenSIMDExtract:Fd,_BinaryenSIMDExtractGetOp:T7,_BinaryenSIMDExtractSetOp:A7,_BinaryenSIMDExtractGetVec:Ho,_BinaryenSIMDExtractSetVec:wd,_BinaryenSIMDExtractGetIndex:v7,_BinaryenSIMDExtractSetIndex:E7,_BinaryenSIMDReplace:Cd,_BinaryenSIMDReplaceGetOp:S7,_BinaryenSIMDReplaceSetOp:I7,_BinaryenSIMDReplaceGetVec:Qo,_BinaryenSIMDReplaceSetVec:Pd,_BinaryenSIMDReplaceGetIndex:k7,_BinaryenSIMDReplaceSetIndex:R7,_BinaryenSIMDReplaceGetValue:Xo,_BinaryenSIMDReplaceSetValue:Bd,_BinaryenSIMDShuffle:Ld,_BinaryenSIMDShuffleGetLeft:Jo,_BinaryenSIMDShuffleSetLeft:Nd,_BinaryenSIMDShuffleGetRight:Zo,_BinaryenSIMDShuffleSetRight:Md,_BinaryenSIMDShuffleGetMask:F7,_BinaryenSIMDShuffleSetMask:w7,_BinaryenSIMDTernary:Dd,_BinaryenSIMDTernaryGetOp:C7,_BinaryenSIMDTernarySetOp:P7,_BinaryenSIMDTernaryGetA:Yo,_BinaryenSIMDTernarySetA:Gd,_BinaryenSIMDTernaryGetB:$o,_BinaryenSIMDTernarySetB:zd,_BinaryenSIMDTernaryGetC:eu,_BinaryenSIMDTernarySetC:Ud,_BinaryenSIMDShift:Vd,_BinaryenSIMDShiftGetOp:B7,_BinaryenSIMDShiftSetOp:L7,_BinaryenSIMDShiftGetVec:tu,_BinaryenSIMDShiftSetVec:Od,_BinaryenSIMDShiftGetShift:ru,_BinaryenSIMDShiftSetShift:qd,_BinaryenSIMDLoad:Wd,_BinaryenSIMDLoadGetOp:N7,_BinaryenSIMDLoadSetOp:M7,_BinaryenSIMDLoadGetOffset:D7,_BinaryenSIMDLoadSetOffset:G7,_BinaryenSIMDLoadGetAlign:z7,_BinaryenSIMDLoadSetAlign:U7,_BinaryenSIMDLoadGetPtr:iu,_BinaryenSIMDLoadSetPtr:jd,_BinaryenSIMDLoadStoreLane:Kd,_BinaryenSIMDLoadStoreLaneGetOp:V7,_BinaryenSIMDLoadStoreLaneSetOp:O7,_BinaryenSIMDLoadStoreLaneGetOffset:q7,_BinaryenSIMDLoadStoreLaneSetOffset:W7,_BinaryenSIMDLoadStoreLaneGetAlign:j7,_BinaryenSIMDLoadStoreLaneSetAlign:K7,_BinaryenSIMDLoadStoreLaneGetIndex:H7,_BinaryenSIMDLoadStoreLaneSetIndex:Q7,_BinaryenSIMDLoadStoreLaneGetPtr:nu,_BinaryenSIMDLoadStoreLaneSetPtr:Hd,_BinaryenSIMDLoadStoreLaneGetVec:su,_BinaryenSIMDLoadStoreLaneSetVec:Qd,_BinaryenSIMDLoadStoreLaneIsStore:X7,_BinaryenMemoryInit:J7,_BinaryenMemoryInitGetSegment:Z7,_BinaryenMemoryInitSetSegment:Y7,_BinaryenMemoryInitGetDest:au,_BinaryenMemoryInitSetDest:Xd,_BinaryenMemoryInitGetOffset:lu,_BinaryenMemoryInitSetOffset:Jd,_BinaryenMemoryInitGetSize:ou,_BinaryenMemoryInitSetSize:Zd,_BinaryenDataDrop:$7,_BinaryenDataDropGetSegment:eD,_BinaryenDataDropSetSegment:tD,_BinaryenMemoryCopy:Yd,_BinaryenMemoryCopyGetDest:uu,_BinaryenMemoryCopySetDest:$d,_BinaryenMemoryCopyGetSource:cu,_BinaryenMemoryCopySetSource:eh,_BinaryenMemoryCopyGetSize:pu,_BinaryenMemoryCopySetSize:th,_BinaryenMemoryFill:rh,_BinaryenMemoryFillGetDest:_u,_BinaryenMemoryFillSetDest:ih,_BinaryenMemoryFillGetValue:fu,_BinaryenMemoryFillSetValue:nh,_BinaryenMemoryFillGetSize:du,_BinaryenMemoryFillSetSize:sh,_BinaryenRefNull:ah,_BinaryenRefIsNull:lh,_BinaryenRefIsNullGetValue:hu,_BinaryenRefIsNullSetValue:oh,_BinaryenRefAs:mu,_BinaryenRefAsGetOp:rD,_BinaryenRefAsSetOp:iD,_BinaryenRefAsGetValue:yu,_BinaryenRefAsSetValue:uh,_BinaryenRefFunc:ch,_BinaryenRefFuncGetFunc:ph,_BinaryenRefFuncSetFunc:nD,_BinaryenRefEq:_h,_BinaryenRefEqGetLeft:gu,_BinaryenRefEqSetLeft:fh,_BinaryenRefEqGetRight:bu,_BinaryenRefEqSetRight:dh,_BinaryenTableGet:hh,_BinaryenTableGetGetTable:sD,_BinaryenTableGetSetTable:aD,_BinaryenTableGetGetIndex:lD,_BinaryenTableGetSetIndex:oD,_BinaryenTableSet:mh,_BinaryenTableSetGetTable:uD,_BinaryenTableSetSetTable:cD,_BinaryenTableSetGetIndex:pD,_BinaryenTableSetSetIndex:_D,_BinaryenTableSetGetValue:fD,_BinaryenTableSetSetValue:dD,_BinaryenTableSize:yh,_BinaryenTableSizeGetTable:hD,_BinaryenTableSizeSetTable:mD,_BinaryenTableGrow:gh,_BinaryenTableGrowGetTable:yD,_BinaryenTableGrowSetTable:gD,_BinaryenTableGrowGetValue:bD,_BinaryenTableGrowSetValue:xD,_BinaryenTableGrowGetDelta:TD,_BinaryenTableGrowSetDelta:AD,_BinaryenTry:bh,_BinaryenTryGetName:vD,_BinaryenTrySetName:ED,_BinaryenTryGetBody:xu,_BinaryenTrySetBody:xh,_BinaryenTryGetNumCatchTags:SD,_BinaryenTryGetNumCatchBodies:Tu,_BinaryenTryGetCatchTagAt:ID,_BinaryenTrySetCatchTagAt:kD,_BinaryenTryAppendCatchTag:RD,_BinaryenTryInsertCatchTagAt:FD,_BinaryenTryRemoveCatchTagAt:wD,_BinaryenTryGetCatchBodyAt:Au,_BinaryenTrySetCatchBodyAt:Th,_BinaryenTryAppendCatchBody:CD,_BinaryenTryInsertCatchBodyAt:PD,_BinaryenTryRemoveCatchBodyAt:BD,_BinaryenTryHasCatchAll:LD,_BinaryenTryGetDelegateTarget:ND,_BinaryenTrySetDelegateTarget:MD,_BinaryenTryIsDelegate:DD,_BinaryenThrow:Ah,_BinaryenThrowGetTag:vh,_BinaryenThrowSetTag:GD,_BinaryenThrowGetNumOperands:vu,_BinaryenThrowGetOperandAt:Eu,_BinaryenThrowSetOperandAt:Eh,_BinaryenThrowAppendOperand:zD,_BinaryenThrowInsertOperandAt:UD,_BinaryenThrowRemoveOperandAt:VD,_BinaryenRethrow:Sh,_BinaryenRethrowGetTarget:OD,_BinaryenRethrowSetDepth:qD,_BinaryenTupleMake:Ih,_BinaryenTupleMakeGetNumOperands:Su,_BinaryenTupleMakeGetOperandAt:Iu,_BinaryenTupleMakeSetOperandAt:kh,_BinaryenTupleMakeAppendOperand:WD,_BinaryenTupleMakeInsertOperandAt:jD,_BinaryenTupleMakeRemoveOperandAt:KD,_BinaryenTupleExtract:Rh,_BinaryenTupleExtractGetTuple:ku,_BinaryenTupleExtractSetTuple:Fh,_BinaryenTupleExtractGetIndex:HD,_BinaryenTupleExtractSetIndex:QD,_BinaryenPop:wh,_BinaryenRefI31:Ch,_BinaryenRefI31GetValue:Ru,_BinaryenRefI31SetValue:Ph,_BinaryenI31Get:Bh,_BinaryenI31GetGetI31:Fu,_BinaryenI31GetSetI31:Lh,_BinaryenI31GetIsSigned:XD,_BinaryenI31GetSetSigned:JD,_BinaryenCallRef:ZD,_BinaryenCallRefGetNumOperands:wu,_BinaryenCallRefGetOperandAt:Cu,_BinaryenCallRefSetOperandAt:Nh,_BinaryenCallRefAppendOperand:YD,_BinaryenCallRefInsertOperandAt:$D,_BinaryenCallRefRemoveOperandAt:eG,_BinaryenCallRefGetTarget:Pu,_BinaryenCallRefSetTarget:Mh,_BinaryenCallRefIsReturn:tG,_BinaryenCallRefSetReturn:rG,_BinaryenRefTest:iG,_BinaryenRefTestGetRef:Bu,_BinaryenRefTestSetRef:Dh,_BinaryenRefTestGetCastType:nG,_BinaryenRefTestSetCastType:sG,_BinaryenRefCast:aG,_BinaryenRefCastGetRef:Lu,_BinaryenRefCastSetRef:Gh,_BinaryenBrOn:lG,_BinaryenBrOnGetOp:oG,_BinaryenBrOnSetOp:uG,_BinaryenBrOnGetName:zh,_BinaryenBrOnSetName:cG,_BinaryenBrOnGetRef:Nu,_BinaryenBrOnSetRef:Uh,_BinaryenBrOnGetCastType:pG,_BinaryenBrOnSetCastType:_G,_BinaryenStructNew:fG,_BinaryenStructNewGetNumOperands:Mu,_BinaryenStructNewGetOperandAt:Du,_BinaryenStructNewSetOperandAt:Vh,_BinaryenStructNewAppendOperand:dG,_BinaryenStructNewInsertOperandAt:hG,_BinaryenStructNewRemoveOperandAt:mG,_BinaryenStructGet:yG,_BinaryenStructGetGetIndex:Oh,_BinaryenStructGetSetIndex:gG,_BinaryenStructGetGetRef:Gu,_BinaryenStructGetSetRef:qh,_BinaryenStructGetIsSigned:bG,_BinaryenStructGetSetSigned:xG,_BinaryenStructSet:TG,_BinaryenStructSetGetIndex:Wh,_BinaryenStructSetSetIndex:AG,_BinaryenStructSetGetRef:zu,_BinaryenStructSetSetRef:jh,_BinaryenStructSetGetValue:Uu,_BinaryenStructSetSetValue:Kh,_BinaryenArrayNew:vG,_BinaryenArrayNewGetInit:Vu,_BinaryenArrayNewSetInit:Hh,_BinaryenArrayNewGetSize:Ou,_BinaryenArrayNewSetSize:Qh,_BinaryenArrayNewFixed:EG,_BinaryenArrayNewFixedGetNumValues:qu,_BinaryenArrayNewFixedGetValueAt:Wu,_BinaryenArrayNewFixedSetValueAt:Xh,_BinaryenArrayNewFixedAppendValue:SG,_BinaryenArrayNewFixedInsertValueAt:IG,_BinaryenArrayNewFixedRemoveValueAt:kG,_BinaryenArrayNewData:RG,_BinaryenArrayNewDataGetSegment:FG,_BinaryenArrayNewDataSetSegment:wG,_BinaryenArrayNewDataGetOffset:CG,_BinaryenArrayNewDataSetOffset:PG,_BinaryenArrayNewDataGetSize:BG,_BinaryenArrayNewDataSetSize:LG,_BinaryenArrayNewElem:NG,_BinaryenArrayNewElemGetSegment:MG,_BinaryenArrayNewElemSetSegment:DG,_BinaryenArrayNewElemGetOffset:GG,_BinaryenArrayNewElemSetOffset:zG,_BinaryenArrayNewElemGetSize:UG,_BinaryenArrayNewElemSetSize:VG,_BinaryenArrayGet:OG,_BinaryenArrayGetGetRef:ju,_BinaryenArrayGetSetRef:Jh,_BinaryenArrayGetGetIndex:Ku,_BinaryenArrayGetSetIndex:Zh,_BinaryenArrayGetIsSigned:qG,_BinaryenArrayGetSetSigned:WG,_BinaryenArraySet:jG,_BinaryenArraySetGetRef:Hu,_BinaryenArraySetSetRef:Yh,_BinaryenArraySetGetIndex:Qu,_BinaryenArraySetSetIndex:$h,_BinaryenArraySetGetValue:Xu,_BinaryenArraySetSetValue:em,_BinaryenArrayLen:KG,_BinaryenArrayLenGetRef:Ju,_BinaryenArrayLenSetRef:tm,_BinaryenArrayFill:HG,_BinaryenArrayFillGetRef:QG,_BinaryenArrayFillSetRef:XG,_BinaryenArrayFillGetIndex:JG,_BinaryenArrayFillSetIndex:ZG,_BinaryenArrayFillGetValue:YG,_BinaryenArrayFillSetValue:$G,_BinaryenArrayFillGetSize:e9,_BinaryenArrayFillSetSize:t9,_BinaryenArrayCopy:r9,_BinaryenArrayCopyGetDestRef:Zu,_BinaryenArrayCopySetDestRef:rm,_BinaryenArrayCopyGetDestIndex:Yu,_BinaryenArrayCopySetDestIndex:im,_BinaryenArrayCopyGetSrcRef:$u,_BinaryenArrayCopySetSrcRef:nm,_BinaryenArrayCopyGetSrcIndex:ec,_BinaryenArrayCopySetSrcIndex:sm,_BinaryenArrayCopyGetLength:tc,_BinaryenArrayCopySetLength:am,_BinaryenArrayInitData:i9,_BinaryenArrayInitDataGetSegment:n9,_BinaryenArrayInitDataSetSegment:s9,_BinaryenArrayInitDataGetRef:a9,_BinaryenArrayInitDataSetRef:l9,_BinaryenArrayInitDataGetIndex:o9,_BinaryenArrayInitDataSetIndex:u9,_BinaryenArrayInitDataGetOffset:c9,_BinaryenArrayInitDataSetOffset:p9,_BinaryenArrayInitDataGetSize:_9,_BinaryenArrayInitDataSetSize:f9,_BinaryenArrayInitElem:d9,_BinaryenArrayInitElemGetSegment:h9,_BinaryenArrayInitElemSetSegment:m9,_BinaryenArrayInitElemGetRef:y9,_BinaryenArrayInitElemSetRef:g9,_BinaryenArrayInitElemGetIndex:b9,_BinaryenArrayInitElemSetIndex:x9,_BinaryenArrayInitElemGetOffset:T9,_BinaryenArrayInitElemSetOffset:A9,_BinaryenArrayInitElemGetSize:v9,_BinaryenArrayInitElemSetSize:E9,_BinaryenStringNew:S9,_BinaryenStringNewGetOp:I9,_BinaryenStringNewSetOp:k9,_BinaryenStringNewGetRef:rc,_BinaryenStringNewSetRef:lm,_BinaryenStringNewGetStart:ic,_BinaryenStringNewSetStart:om,_BinaryenStringNewGetEnd:nc,_BinaryenStringNewSetEnd:um,_BinaryenStringConst:R9,_BinaryenStringConstGetString:F9,_BinaryenStringConstSetString:w9,_BinaryenStringMeasure:C9,_BinaryenStringMeasureGetOp:P9,_BinaryenStringMeasureSetOp:B9,_BinaryenStringMeasureGetRef:sc,_BinaryenStringMeasureSetRef:cm,_BinaryenStringEncode:L9,_BinaryenStringEncodeGetOp:N9,_BinaryenStringEncodeSetOp:M9,_BinaryenStringEncodeGetStr:ac,_BinaryenStringEncodeSetStr:pm,_BinaryenStringEncodeGetArray:lc,_BinaryenStringEncodeSetArray:_m,_BinaryenStringEncodeGetStart:oc,_BinaryenStringEncodeSetStart:fm,_BinaryenStringConcat:D9,_BinaryenStringConcatGetLeft:uc,_BinaryenStringConcatSetLeft:dm,_BinaryenStringConcatGetRight:cc,_BinaryenStringConcatSetRight:hm,_BinaryenStringEq:pc,_BinaryenStringEqGetOp:G9,_BinaryenStringEqSetOp:z9,_BinaryenStringEqGetLeft:_c,_BinaryenStringEqSetLeft:mm,_BinaryenStringEqGetRight:fc,_BinaryenStringEqSetRight:ym,_BinaryenStringWTF16Get:U9,_BinaryenStringWTF16GetGetRef:dc,_BinaryenStringWTF16GetSetRef:gm,_BinaryenStringWTF16GetGetPos:hc,_BinaryenStringWTF16GetSetPos:bm,_BinaryenStringSliceWTF:V9,_BinaryenStringSliceWTFGetRef:mc,_BinaryenStringSliceWTFSetRef:xm,_BinaryenStringSliceWTFGetStart:yc,_BinaryenStringSliceWTFSetStart:Tm,_BinaryenStringSliceWTFGetEnd:gc,_BinaryenStringSliceWTFSetEnd:Am,_BinaryenAddFunction:ci,_BinaryenGetFunction:pi,_BinaryenRemoveFunction:wn,_BinaryenGetNumFunctions:_i,_BinaryenGetFunctionByIndex:Cn,_BinaryenFunctionGetName:fi,_BinaryenFunctionGetParams:Pn,_BinaryenFunctionGetResults:Bn,_BinaryenFunctionGetNumVars:pa,_BinaryenFunctionGetVar:_a,_BinaryenFunctionAddVar:O9,_BinaryenFunctionGetNumLocals:bc,_BinaryenFunctionHasLocalName:q9,_BinaryenFunctionGetLocalName:W9,_BinaryenFunctionSetLocalName:vm,_BinaryenFunctionGetBody:Dt,_BinaryenFunctionSetBody:Ln,_BinaryenFunctionGetType:j9,_BinaryenFunctionSetType:K9,_BinaryenFunctionOptimize:H9,_BinaryenFunctionRunPasses:Em,_BinaryenFunctionSetDebugLocation:Sm,_BinaryenAddFunctionImport:Im,_BinaryenAddTableImport:km,_BinaryenAddMemoryImport:Rm,_BinaryenAddGlobalImport:Fm,_BinaryenAddTagImport:wm,_BinaryenAddFunctionExport:fa,_BinaryenAddTableExport:Cm,_BinaryenAddMemoryExport:Pm,_BinaryenAddGlobalExport:Bm,_BinaryenAddTagExport:Lm,_BinaryenGetExport:da,_BinaryenRemoveExport:ha,_BinaryenGetNumExports:Q9,_BinaryenGetExportByIndex:X9,_BinaryenExportGetKind:Nm,_BinaryenExportGetName:Mm,_BinaryenExportGetValue:Dm,_BinaryenAddGlobal:Gm,_BinaryenGetGlobal:xc,_BinaryenRemoveGlobal:zm,_BinaryenGetNumGlobals:Um,_BinaryenGetGlobalByIndex:Vm,_BinaryenGlobalGetName:Om,_BinaryenGlobalGetType:qm,_BinaryenGlobalIsMutable:Wm,_BinaryenGlobalGetInitExpr:ma,_BinaryenAddTag:jm,_BinaryenGetTag:Km,_BinaryenRemoveTag:Hm,_BinaryenTagGetName:Qm,_BinaryenTagGetParams:Xm,_BinaryenTagGetResults:Jm,_BinaryenAddTable:Tc,_BinaryenRemoveTable:J9,_BinaryenGetNumTables:Z9,_BinaryenGetTable:Ac,_BinaryenGetTableByIndex:Y9,_BinaryenTableGetName:$9,_BinaryenTableSetName:ez,_BinaryenTableGetInitial:tz,_BinaryenTableSetInitial:Zm,_BinaryenTableHasMax:rz,_BinaryenTableGetMax:iz,_BinaryenTableSetMax:Ym,_BinaryenTableGetType:nz,_BinaryenTableSetType:sz,_BinaryenAddActiveElementSegment:$m,_BinaryenAddPassiveElementSegment:az,_BinaryenRemoveElementSegment:lz,_BinaryenGetNumElementSegments:oz,_BinaryenGetElementSegment:uz,_BinaryenGetElementSegmentByIndex:cz,_BinaryenSetMemory:ey,_BinaryenGetNumMemorySegments:pz,_BinaryenGetMemorySegmentByteOffset:_z,_BinaryenGetMemorySegmentByteLength:fz,_BinaryenCopyMemorySegmentData:dz,_BinaryenAddDataSegment:hz,_BinaryenSetStart:ty,_BinaryenGetStart:mz,_BinaryenModuleParse:yz,_BinaryenModulePrint:gz,_BinaryenModulePrintAsmjs:bz,_BinaryenModuleValidate:ry,_BinaryenModuleOptimize:xz,_BinaryenModuleRunPasses:iy,_BinaryenSizeofAllocateAndWriteResult:ny,_BinaryenModuleAllocateAndWrite:sy,_BinaryenModuleAllocateAndWriteText:ay,_BinaryenModuleAllocateAndWriteStackIR:ly,_BinaryenModuleRead:oy,_BinaryenModuleReadWithFeatures:Tz,_BinaryenModuleInterpret:uy,_BinaryenModuleAddDebugInfoFileName:cy,_BinaryenModuleGetDebugInfoFileName:py,_BinaryenModuleGetFeatures:_y,_BinaryenModuleSetFeatures:fy,_BinaryenAddCustomSection:dy,_BinaryenExpressionGetSideEffects:hy,_RelooperCreate:my,_RelooperAddBlock:yy,_RelooperAddBranch:gy,_RelooperAddBlockWithSwitch:by,_RelooperAddBranchForSwitch:xy,_RelooperRenderAndDispose:Ty,_ExpressionRunnerCreate:Ay,_ExpressionRunnerSetLocalValue:Az,_ExpressionRunnerSetGlobalValue:vz,_ExpressionRunnerRunAndDispose:vy,_TypeBuilderCreate:Ey,_TypeBuilderGrow:vc,_TypeBuilderGetSize:ya,_TypeBuilderSetSignatureType:Sy,_TypeBuilderSetStructType:Iy,_TypeBuilderSetArrayType:Ez,_TypeBuilderGetTempHeapType:Ec,_TypeBuilderGetTempTupleType:Sc,_TypeBuilderGetTempRefType:di,_TypeBuilderSetSubType:ky,_TypeBuilderSetOpen:Sz,_TypeBuilderCreateRecGroup:Iz,_TypeBuilderBuildAndDispose:Ry,_BinaryenModuleSetTypeName:Fy,_BinaryenModuleSetFieldName:wy,_BinaryenGetOptimizeLevel:Cy,_BinaryenSetOptimizeLevel:Py,_BinaryenGetShrinkLevel:By,_BinaryenSetShrinkLevel:Ly,_BinaryenGetDebugInfo:Ny,_BinaryenSetDebugInfo:My,_BinaryenGetTrapsNeverHappen:Dy,_BinaryenSetTrapsNeverHappen:Gy,_BinaryenGetClosedWorld:zy,_BinaryenSetClosedWorld:Uy,_BinaryenGetLowMemoryUnused:Vy,_BinaryenSetLowMemoryUnused:Oy,_BinaryenGetZeroFilledMemory:qy,_BinaryenSetZeroFilledMemory:Wy,_BinaryenGetFastMath:jy,_BinaryenSetFastMath:Ky,_BinaryenGetGenerateStackIR:Hy,_BinaryenSetGenerateStackIR:Qy,_BinaryenGetOptimizeStackIR:Xy,_BinaryenSetOptimizeStackIR:Jy,_BinaryenGetPassArgument:Zy,_BinaryenSetPassArgument:Yy,_BinaryenClearPassArguments:$y,_BinaryenHasPassToSkip:kz,_BinaryenAddPassToSkip:Rz,_BinaryenClearPassesToSkip:Fz,_BinaryenGetAlwaysInlineMaxSize:eg,_BinaryenSetAlwaysInlineMaxSize:tg,_BinaryenGetFlexibleInlineMaxSize:rg,_BinaryenSetFlexibleInlineMaxSize:ig,_BinaryenGetOneCallerInlineMaxSize:ng,_BinaryenSetOneCallerInlineMaxSize:sg,_BinaryenGetAllowInliningFunctionsWithLoops:ag,_BinaryenSetAllowInliningFunctionsWithLoops:lg,_malloc:gt,_free:ie,__i32_store8:Ge,__i32_store16:wz,__i32_store:ga,__f32_store:Cz,__f64_store:Pz,__i32_load8_s:Bz,__i32_load8_u:Er,__i32_load16_s:Lz,__i32_load16_u:Nz,__i32_load:tr,__f32_load:Mz,__f64_load:Dz}=un;function v2(r){return BigInt(r.high|0)<<32n|BigInt(r.low>>>0)}function E2(r){return A2.fromBits(Number(r&0xFFFFFFFFn)|0,Number(r>>32n)|0)}function og(r,i){return un._BinaryenLiteralInt64(r,v2(i))}function Ic(r){return E2(un._BinaryenConstGetValueI64(r))}var ug="data:application/wasm;base64,AGFzbQEAAAABBwFgAnx8AXwDAgEABQMBAAEGDQF8AUQAAAAAAAAAAAsHCwEHZjY0X3BvdwAADAKCAQr2DAHzDAMFfgN/CXwCfCABmUQAAAAAAAAAQGUEQCAAIACiIAFEAAAAAAAAAEBhDQEaIACfmUQAAAAAAADwfyAARAAAAAAAAPD/YhsgAUQAAAAAAADgP2ENARpEAAAAAAAA8D8gAKMgAUQAAAAAAADwv2ENARogACABRAAAAAAAAPA/YQ0BGkQAAAAAAADwPyABRAAAAAAAAAAAYQ0BGgsCfCABvSIFQjSIIQQgAL0iAkI0iCIDQgF9Qv4PWgR/QQEFIARC/w+DQr4HfUKAAVoLBEAgBUIBhiIGQgF9Qv////////9vWgRARAAAAAAAAPA/IAZQDQIaRAAAAAAAAPh/IAJCgICAgICAgPg/UQ0CGiAAIAGgIAZCgICAgICAgHBWIAJCAYYiAkKAgICAgICAcFZyDQIaRAAAAAAAAPh/IAJCgICAgICAgPD/AFENAhpEAAAAAAAAAAAgBUI/iFAgAkKAgICAgICA8P8AVEYNAhogASABogwCCyACQgGGQgF9Qv////////9vWgRARAAAAAAAAPA/IAAgAKIiAJogACACQj+IpwR/An9BACAFQjSIQv8PgyICQv8HVA0AGkECIAJCswhWDQAaQQAgBUIBQrMIIAJ9hiICQgF9g0IAUg0AGkEBIAIgBYNCAFINABpBAgtBAUYFQQALGyIAoyAAIAVCAFMbDAILIAJCAFMEQAJ/QQAgBUI0iEL/D4MiBkL/B1QNABpBAiAGQrMIVg0AGkEAIAVCAUKzCCAGfYYiBkIBfYNCAFINABpBASAFIAaDQgBSDQAaQQILIgdFBEAgACAAoSIAIACjDAMLIANC/w+DIQNBgIAQQQAgB0EBRhshCCACQv///////////wCDIQILIARC/w+DIgZCvgd9QoABWgRARAAAAAAAAPA/IAJCgICAgICAgPg/UQ0CGkQAAAAAAADwPyAGQr4HVA0CGkQAAAAAAADwf0QAAAAAAAAAACAEQoAQVCACQoCAgICAgID4P1ZGGwwCCyADUARAIABEAAAAAAAAMEOivUL///////////8Ag0KAgICAgICAoAN9IQILCyACIAJCgICAgNCqpfM/fSICQoCAgICAgIB4g30iA0KAgICACHxCgICAgHCDvyIKIAJCLYhC/wCDp0EFdEGACGoiBysDACILokQAAAAAAADwv6AhDSACQjSHuSIARAA4+v5CLuY/oiAHKwMQoCIOIA0gA78gCqEgC6IiD6AiCqAhCyAKIApEAAAAAAAA4L+iIhCiIQwgCyANIA1EAAAAAAAA4L+iIhGiIhKgIg0gDSAARDBnx5NX8y49oiAHKwMYoCAOIAuhIAqgoCAPIBAgEaCioCALIA2hIBKgoCAKIAyiIApEBgAAAAAA4D+iRGBVVVVVVeW/oCAMIApEeqQpVVVV5b+iRE5VWZmZmek/oCAMIApEwz8miysA8D+iROlFSJtbSfK/oKKgoqCioCIAoCIKoSAAoCQAAnwgBUKAgIBAg78iACAKvUKAgIBAg78iC6IiDL0iAkI0iKdB/w9xIgdByQdrIglBP08EQEQAAAAAAADwv0QAAAAAAADwPyAIGyAJQYCAgIB4Tw0BGkQAAAAAAAAAgEQAAAAAAAAAACAIG0QAAAAAAADw/0QAAAAAAADwfyAIGyACQgBTGyAHQYkITw0BGkEAIQcLIAxE/oIrZUcVZ0CiRAAAAAAAADhDoCINvSICQv8Ag0IBhqdBA3RBgChqIgkpAwggAiAIrXxCLYZ8IQMgDCANRAAAAAAAADjDoCIMRAAA+v5CLna/oqAgDEQ6O568mvcMvaKgIAEgAKEgC6IgASAKIAuhIwCgoqCgIgAgAKIhASAJKwMAIACgIAEgAEQ8VFVVVVXFP6JEvf3/////3z+goqAgASABoiAARBfQpGcREYE/okSRKxfPVVWlP6CioCEAIAdFBEACfCACQoCAgIAIg1AEQCADQoCAgICAgICIP32/IgEgASAAoqBEAAAAAAAAAH+iDAELIANCgICAgICAgPA/fCICvyIBIACiIQAgASAAoCIKmUQAAAAAAADwP2MEfCACQoCAgICAgICAgH+Dv0QAAAAAAADwPyAKpiILIAqgIgwgCyAMoSAKoCABIAqhIACgoKAgC6EiACAARAAAAAAAAAAAYRsFIAoLRAAAAAAAABAAogsMAQsgA78iASABIACioAsLCwsLxSyCAQBBhQgLA6D2PwBBkQgLF8i58oIs1r+AVjcoJLT6PAAAAAAAgPY/AEGxCAsXCFi/vdHVvyD34NgIpRy9AAAAAABg9j8AQdEICxdYRRd3dtW/bVC21aRiI70AAAAAAED2PwBB8QgLF/gth60a1b/VZ7Ce5ITmvAAAAAAAIPY/AEGRCQsXeHeVX77Uv+A+KZNpGwS9AAAAAAAA9j8AQbEJCxdgHMKLYdS/zIRMSC/YEz0AAAAAAOD1PwBB0QkLF6iGhjAE1L86C4Lt80LcPAAAAAAAwPU/AEHxCQsXSGlVTKbTv2CUUYbGsSA9AAAAAACg9T8AQZEKCxeAmJrdR9O/koDF1E1ZJT0AAAAAAID1PwBBsQoLFyDhuuLo0r/YK7eZHnsmPQAAAAAAYPU/AEHRCgsXiN4TWonSvz+wz7YUyhU9AAAAAABg9T8AQfEKCxeI3hNaidK/P7DPthTKFT0AAAAAAED1PwBBkQsLF3jP+0Ep0r922lMoJFoWvQAAAAAAIPU/AEGxCwsXmGnBmMjRvwRU52i8rx+9AAAAAAAA9T8AQdELCxeoq6tcZ9G/8KiCM8YfHz0AAAAAAOD0PwBB8QsLF0iu+YsF0b9mWgX9xKgmvQAAAAAAwPQ/AEGRDAsXkHPiJKPQvw4D9H7uawy9AAAAAACg9D8AQbEMCxfQtJQlQNC/fy30nrg28LwAAAAAAKD0PwBB0QwLF9C0lCVA0L9/LfSeuDbwvAAAAAAAgPQ/AEHxDAsXQF5tGLnPv4c8masqVw09AAAAAABg9D8AQZENCxdg3Mut8M6/JK+GnLcmKz0AAAAAAED0PwBBsQ0LF/Aqbgcnzr8Q/z9UTy8XvQAAAAAAIPQ/AEHRDQsXwE9rIVzNvxtoyruRuiE9AAAAAAAA9D8AQfENCxegmsf3j8y/NISfaE95Jz0AAAAAAAD0PwBBkQ4LF6Cax/ePzL80hJ9oT3knPQAAAAAA4PM/AEGxDgsXkC10hsLLv4+3izGwThk9AAAAAADA8z8AQdEOCxfAgE7J88q/ZpDNP2NOujwAAAAAAKDzPwBB8Q4LF7DiH7wjyr/qwUbcZIwlvQAAAAAAoPM/AEGRDwsXsOIfvCPKv+rBRtxkjCW9AAAAAACA8z8AQbEPCxdQ9JxaUsm/49TBBNnRKr0AAAAAAGDzPwBB0Q8LF9AgZaB/yL8J+tt/v70rPQAAAAAAQPM/AEHxDwsX4BACiavHv1hKU3KQ2ys9AAAAAABA8z8AQZEQCxfgEAKJq8e/WEpTcpDbKz0AAAAAACDzPwBBsRALF9AZ5w/Wxr9m4rKjauQQvQAAAAAAAPM/AEHREAsXkKdwMP/FvzlQEJ9Dnh69AAAAAAAA8z8AQfEQCxeQp3Aw/8W/OVAQn0OeHr0AAAAAAODyPwBBkRELF7Ch4+Umxb+PWweQi94gvQAAAAAAwPI/AEGxEQsXgMtsK03Evzx4NWHBDBc9AAAAAADA8j8AQdERCxeAy2wrTcS/PHg1YcEMFz0AAAAAAKDyPwBB8RELF5AeIPxxw786VCdNhnjxPAAAAAAAgPI/AEGREgsX8B/4UpXCvwjEcRcwjSS9AAAAAABg8j8AQbESCxdgL9Uqt8G/lqMRGKSALr0AAAAAAGDyPwBB0RILF2Av1Sq3wb+WoxEYpIAuvQAAAAAAQPI/AEHxEgsXkNB8ftfAv/Rb6IiWaQo9AAAAAABA8j8AQZETCxeQ0Hx+18C/9FvoiJZpCj0AAAAAACDyPwBBsRMLF+DbMZHsv7/yM6NcVHUlvQAAAAAAAPI/AEHSEwsWK24HJ76/PADwKiw0Kj0AAAAAAADyPwBB8hMLFituBye+vzwA8CosNCo9AAAAAADg8T8AQZEUCxfAW49UXry/Br5fWFcMHb0AAAAAAMDxPwBBsRQLF+BKOm2Sur/IqlvoNTklPQAAAAAAwPE/AEHRFAsX4Eo6bZK6v8iqW+g1OSU9AAAAAACg8T8AQfEUCxegMdZFw7i/aFYvTSl8Ez0AAAAAAKDxPwBBkRULF6Ax1kXDuL9oVi9NKXwTPQAAAAAAgPE/AEGxFQsXYOWK0vC2v9pzM8k3lya9AAAAAABg8T8AQdEVCxcgBj8HG7W/V17GYVsCHz0AAAAAAGDxPwBB8RULFyAGPwcbtb9XXsZhWwIfPQAAAAAAQPE/AEGRFgsX4BuW10Gzv98T+czaXiw9AAAAAABA8T8AQbEWCxfgG5bXQbO/3xP5zNpeLD0AAAAAACDxPwBB0RYLF4Cj7jZlsb8Jo492XnwUPQAAAAAAAPE/AEHxFgsXgBHAMAqvv5GONoOeWS09AAAAAAAA8T8AQZEXCxeAEcAwCq+/kY42g55ZLT0AAAAAAODwPwBBsRcLF4AZcd1Cq79McNbleoIcPQAAAAAA4PA/AEHRFwsXgBlx3UKrv0xw1uV6ghw9AAAAAADA8D8AQfEXCxfAMvZYdKe/7qHyNEb8LL0AAAAAAMDwPwBBkRgLF8Ay9lh0p7/uofI0RvwsvQAAAAAAoPA/AEGxGAsXwP65h56jv6r+JvW3AvU8AAAAAACg8D8AQdEYCxfA/rmHnqO/qv4m9bcC9TwAAAAAAIDwPwBB8hgLFngOm4Kfv+QJfnwmgCm9AAAAAACA8D8AQZIZCxZ4DpuCn7/kCX58JoApvQAAAAAAYPA/AEGxGQsXgNUHG7mXvzmm+pNUjSi9AAAAAABA8D8AQdIZCxb8sKjAj7+cptP2fB7fvAAAAAAAQPA/AEHyGQsW/LCowI+/nKbT9nwe37wAAAAAACDwPwBBkhoLFhBrKuB/v+RA2g0/4hm9AAAAAAAg8D8AQbIaCxYQayrgf7/kQNoNP+IZvQAAAAAAAPA/AEHmGgsC8D8AQYUbCwPA7z8AQZIbCxaJdRUQgD/oK52Za8cQvQAAAAAAgO8/AEGxGwsXgJNYViCQP9L34gZb3CO9AAAAAABA7z8AQdIbCxbJKCVJmD80DFoyuqAqvQAAAAAAAO8/AEHxGwsXQOeJXUGgP1PX8VzAEQE9AAAAAADA7j8AQZIcCxYu1K5mpD8o/b11cxYsvQAAAAAAgO4/AEGxHAsXwJ8UqpSoP30mWtCVeRm9AAAAAABA7j8AQdEcCxfA3c1zy6w/ByjYR/JoGr0AAAAAACDuPwBB8RwLF8AGwDHqrj97O8lPPhEOvQAAAAAA4O0/AEGRHQsXYEbRO5exP5ueDVZdMiW9AAAAAACg7T8AQbEdCxfg0af1vbM/107bpV7ILD0AAAAAAGDtPwBB0R0LF6CXTVrptT8eHV08BmksvQAAAAAAQO0/AEHxHQsXwOoK0wC3PzLtnamNHuw8AAAAAAAA7T8AQZEeCxdAWV1eM7k/2ke9OlwRIz0AAAAAAMDsPwBBsR4LF2Ctjchquz/laPcrgJATvQAAAAAAoOw/AEHRHgsXQLwBWIi8P9OsWsbRRiY9AAAAAABg7D8AQfEeCxcgCoM5x74/4EXmr2jALb0AAAAAAEDsPwBBkR8LF+DbOZHovz/9CqFP1jQlvQAAAAAAAOw/AEGxHwsX4CeCjhfBP/IHLc547yE9AAAAAADg6z8AQdEfCxfwI34rqsE/NJk4RI6nLD0AAAAAAKDrPwBB8R8LF4CGDGHRwj+htIHLbJ0DPQAAAAAAgOs/AEGRIAsXkBWw/GXDP4lySyOoL8Y8AAAAAABA6z8AQbEgCxewM4M9kcQ/eLb9VHmDJT0AAAAAACDrPwBB0SALF7Ch5OUnxT/HfWnl6DMmPQAAAAAA4Oo/AEHxIAsXEIy+TlfGP3guPCyLzxk9AAAAAADA6j8AQZEhCxdwdYsS8MY/4SGc5Y0RJb0AAAAAAKDqPwBBsSELF1BEhY2Jxz8FQ5FwEGYcvQAAAAAAYOo/AEHSIQsWOeuvvsg/0SzpqlQ9B70AAAAAAEDqPwBB8iELFvfcWlrJP2//oFgo8gc9AAAAAAAA6j8AQZEiCxfgijztk8o/aSFWUENyKL0AAAAAAODpPwBBsSILF9BbV9gxyz+q4axOjTUMvQAAAAAAwOk/AEHRIgsX4Ds4h9DLP7YSVFnESy29AAAAAACg6T8AQfEiCxcQ8Mb7b8w/0iuWxXLs8bwAAAAAAGDpPwBBkSMLF5DUsD2xzT81sBX3Kv8qvQAAAAAAQOk/AEGxIwsXEOf/DlPOPzD0QWAnEsI8AAAAAAAg6T8AQdIjCxbd5K31zj8RjrtlFSHKvAAAAAAAAOk/AEHxIwsXsLNsHJnPPzDfDMrsyxs9AAAAAADA6D8AQZEkCxdYTWA4cdA/kU7tFtuc+DwAAAAAAKDoPwBBsSQLF2BhZy3E0D/p6jwWixgnPQAAAAAAgOg/AEHRJAsX6CeCjhfRPxzwpWMOISy9AAAAAABg6D8AQfEkCxf4rMtca9E/gRal982aKz0AAAAAAEDoPwBBkSULF2haY5m/0T+3vUdR7aYsPQAAAAAAIOg/AEGxJQsXuA5tRRTSP+q6Rrrehwo9AAAAAADg5z8AQdElCxeQ3HzwvtI/9ARQSvqcKj0AAAAAAMDnPwBB8SULF2DT4fEU0z+4PCHTeuIovQAAAAAAoOc/AEGRJgsXEL52Z2vTP8h38bDNbhE9AAAAAACA5z8AQbEmCxcwM3dSwtM/XL0GtlQ7GD0AAAAAAGDnPwBB0SYLF+jVI7QZ1D+d4JDsNuQIPQAAAAAAQOc/AEHxJgsXyHHCjXHUP3XWZwnOJy+9AAAAAAAg5z8AQZEnCxcwF57gydQ/pNgKG4kgLr0AAAAAAADnPwBBsScLF6A4B64i1T9Zx2SBcL4uPQAAAAAA4OY/AEHRJwsX0MhT93vVP+9AXe7trR89AAAAAADA5j8AQfEnCw9gWd+91dU/3GWkCCoLCr0AQY4oC/IP8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/";var{f64_pow:cg}=(await WebAssembly.instantiateStreaming(fetch(ug))).instance.exports;var ba=new Float64Array(1),pg=new Float32Array(ba.buffer),hi=new Int32Array(ba.buffer);globalThis.f32_as_i32=function(i){return pg[0]=i,hi[0]};globalThis.i32_as_f32=function(i){return hi[0]=i,pg[0]};globalThis.f64_as_i64=function(i){return ba[0]=i,i64_new(hi[0],hi[1])};globalThis.i64_as_f64=function(i){return hi[0]=i64_low(i),hi[1]=i64_high(i),ba[0]};globalThis.f64_pow=cg;import Ae from"long";globalThis.i64_zero=Ae.ZERO;globalThis.i64_one=Ae.ONE;globalThis.i64_neg_one=Ae.fromInt(-1);globalThis.i64_minimum=Ae.MIN_VALUE;globalThis.i64_maximum=Ae.MAX_VALUE;globalThis.i64_is=function(i){return Ae.isLong(i)};globalThis.i64_new=function(i,e){return Ae.fromBits(i,e)};globalThis.i64_low=function(i){return i.low};globalThis.i64_high=function(i){return i.high};globalThis.i64_not=function(i){return i.not()};globalThis.i64_neg=function(i){return i.neg()};globalThis.i64_clz=function(i){return i.clz()};globalThis.i64_ctz=function(i){return i.ctz()};globalThis.i64_add=function(i,e){return i.add(e)};globalThis.i64_sub=function(i,e){return i.sub(e)};globalThis.i64_mul=function(i,e){return i.mul(e)};globalThis.i64_pow=function(i,e){let t=e.low,n=e.high;if(n<=0){if(n<0)return i.eq(globalThis.i64_neg_one)?t&1?i:Ae.ONE:i.eq(Ae.ONE)?i:Ae.ZERO;if(t==0)return Ae.ONE;if(t==1)return i;if(t==2)return i.mul(i)}let s=Ae.ONE;for(;t|n;)t&1&&(s=s.mul(i)),e=e.shru(1),i=i.mul(i),t=e.low,n=e.high;return s};globalThis.i64_div=function(i,e){return i.div(e)};globalThis.i64_div_u=function(i,e){return i.toUnsigned().div(e.toUnsigned()).toSigned()};globalThis.i64_rem=function(i,e){return i.mod(e)};globalThis.i64_rem_u=function(i,e){return i.toUnsigned().mod(e.toUnsigned()).toSigned()};globalThis.i64_and=function(i,e){return i.and(e)};globalThis.i64_or=function(i,e){return i.or(e)};globalThis.i64_xor=function(i,e){return i.xor(e)};globalThis.i64_shl=function(i,e){return i.shl(e)};globalThis.i64_shr=function(i,e){return i.shr(e)};globalThis.i64_shr_u=function(i,e){return i.shru(e)};globalThis.i64_eq=function(i,e){return i.eq(e)};globalThis.i64_ne=function(i,e){return i.ne(e)};globalThis.i64_ge=function(i,e){return i.ge(e)};globalThis.i64_ge_u=function(i,e){return i.toUnsigned().ge(e.toUnsigned())};globalThis.i64_gt=function(i,e){return i.gt(e)};globalThis.i64_gt_u=function(i,e){return i.toUnsigned().gt(e.toUnsigned())};globalThis.i64_le=function(i,e){return i.le(e)};globalThis.i64_le_u=function(i,e){return i.toUnsigned().le(e.toUnsigned())};globalThis.i64_lt=function(i,e){return i.lt(e)};globalThis.i64_lt_u=function(i,e){return i.toUnsigned().lt(e.toUnsigned())};globalThis.i64_align=function(i,e){assert(e&&(e&e-1)==0);let t=Ae.fromInt(e-1);return i.add(t).and(t.not())};globalThis.i64_signbit=function(i){return!!(i.high>>>31)};globalThis.i64_is_i8=function(i){return i.high===0&&i.low>=0&&i.low<=i8.MAX_VALUE||i.high===-1&&i.low>=i8.MIN_VALUE&&i.low<0};globalThis.i64_is_i16=function(i){return i.high===0&&i.low>=0&&i.low<=i16.MAX_VALUE||i.high===-1&&i.low>=i16.MIN_VALUE&&i.low<0};globalThis.i64_is_i32=function(i){return i.high===0&&i.low>=0||i.high===-1&&i.low<0};globalThis.i64_is_u8=function(i){return i.high===0&&i.low>>>0<=u8.MAX_VALUE};globalThis.i64_is_u16=function(i){return i.high===0&&i.low>>>0<=u16.MAX_VALUE};globalThis.i64_is_u32=function(i){return i.high===0};globalThis.i64_is_bool=function(i){return(i.high|i.low&-2)===0};var S2=Ae.fromNumber(f32.MIN_SAFE_INTEGER),I2=Ae.fromNumber(f32.MAX_SAFE_INTEGER);globalThis.i64_is_f32=function(i){return i.gte(S2)&&i.lte(I2)};var k2=Ae.fromNumber(f64.MIN_SAFE_INTEGER),R2=Ae.fromNumber(f64.MAX_SAFE_INTEGER);globalThis.i64_is_f64=function(i){return i.gte(k2)&&i.lte(R2)};globalThis.i64_to_f32=function(i){return globalThis.Math.fround(i.toNumber())};globalThis.i64_to_f64=function(i){return i.toNumber()};globalThis.i64_to_string=function(i,e){return e?i.toUnsigned().toString():i.toString()};globalThis.i64_clone=function(i){return Ae.fromBits(i.low,i.high,i.unsigned)};globalThis.Map_keys=function(i){return Array.from(i.keys())};globalThis.Map_values=function(i){return Array.from(i.values())};globalThis.Set_values=function(i){return Array.from(i.values())};var Gt=(E=>(E[E.None=0]="None",E[E.SignExtension=1]="SignExtension",E[E.MutableGlobals=2]="MutableGlobals",E[E.NontrappingF2I=4]="NontrappingF2I",E[E.BulkMemory=8]="BulkMemory",E[E.Simd=16]="Simd",E[E.Threads=32]="Threads",E[E.ExceptionHandling=64]="ExceptionHandling",E[E.TailCalls=128]="TailCalls",E[E.ReferenceTypes=256]="ReferenceTypes",E[E.MultiValue=512]="MultiValue",E[E.GC=1024]="GC",E[E.Memory64=2048]="Memory64",E[E.RelaxedSimd=4096]="RelaxedSimd",E[E.ExtendedConst=8192]="ExtendedConst",E[E.Strings=16384]="Strings",E[E.SharedEverything=32768]="SharedEverything",E[E.Closures=65536]="Closures",E[E.All=131071]="All",E))(Gt||{});function mi(r){switch(r){case 1:return"sign-extension";case 2:return"mutable-globals";case 4:return"nontrapping-f2i";case 8:return"bulk-memory";case 16:return"simd";case 32:return"threads";case 64:return"exception-handling";case 128:return"tail-calls";case 256:return"reference-types";case 512:return"multi-value";case 1024:return"gc";case 2048:return"memory64";case 4096:return"relaxed-simd";case 8192:return"extended-const";case 16384:return"stringref";case 32768:return"shared-everything";case 65536:return"closures"}return assert(!1),""}var yi=(t=>(t[t.Js=0]="Js",t[t.Wasm32=1]="Wasm32",t[t.Wasm64=2]="Wasm64",t))(yi||{});var xa=(n=>(n[n.Stub=0]="Stub",n[n.Minimal=1]="Minimal",n[n.Incremental=2]="Incremental",n[n.Memory=3]="Memory",n))(xa||{});var gi=class{constructor(){this.flags=0}};gi=P_([unmanaged],gi);var Ta=(U=>(U[U.NONE=0]="NONE",U[U.ARRAYBUFFERVIEW=1]="ARRAYBUFFERVIEW",U[U.ARRAY=2]="ARRAY",U[U.STATICARRAY=4]="STATICARRAY",U[U.SET=8]="SET",U[U.MAP=16]="MAP",U[U.POINTERFREE=32]="POINTERFREE",U[U.VALUE_ALIGN_0=64]="VALUE_ALIGN_0",U[U.VALUE_ALIGN_1=128]="VALUE_ALIGN_1",U[U.VALUE_ALIGN_2=256]="VALUE_ALIGN_2",U[U.VALUE_ALIGN_3=512]="VALUE_ALIGN_3",U[U.VALUE_ALIGN_4=1024]="VALUE_ALIGN_4",U[U.VALUE_SIGNED=2048]="VALUE_SIGNED",U[U.VALUE_FLOAT=4096]="VALUE_FLOAT",U[U.VALUE_NULLABLE=8192]="VALUE_NULLABLE",U[U.VALUE_MANAGED=16384]="VALUE_MANAGED",U[U.KEY_ALIGN_0=32768]="KEY_ALIGN_0",U[U.KEY_ALIGN_1=65536]="KEY_ALIGN_1",U[U.KEY_ALIGN_2=131072]="KEY_ALIGN_2",U[U.KEY_ALIGN_3=262144]="KEY_ALIGN_3",U[U.KEY_ALIGN_4=524288]="KEY_ALIGN_4",U[U.KEY_SIGNED=1048576]="KEY_SIGNED",U[U.KEY_FLOAT=2097152]="KEY_FLOAT",U[U.KEY_NULLABLE=4194304]="KEY_NULLABLE",U[U.KEY_MANAGED=8388608]="KEY_MANAGED",U))(Ta||{});var ze=(H=>(H[H.None=0]="None",H[H.Import=1]="Import",H[H.Export=2]="Export",H[H.Declare=4]="Declare",H[H.Const=8]="Const",H[H.Let=16]="Let",H[H.Static=32]="Static",H[H.Readonly=64]="Readonly",H[H.Abstract=128]="Abstract",H[H.Public=256]="Public",H[H.Private=512]="Private",H[H.Protected=1024]="Protected",H[H.Get=2048]="Get",H[H.Set=4096]="Set",H[H.Override=8192]="Override",H[H.DefinitelyAssigned=16384]="DefinitelyAssigned",H[H.Ambient=32768]="Ambient",H[H.Generic=65536]="Generic",H[H.GenericContext=131072]="GenericContext",H[H.Instance=262144]="Instance",H[H.Constructor=524288]="Constructor",H[H.ModuleExport=1048576]="ModuleExport",H[H.ModuleImport=2097152]="ModuleImport",H[H.Resolved=4194304]="Resolved",H[H.Compiled=8388608]="Compiled",H[H.Errored=16777216]="Errored",H[H.Inlined=33554432]="Inlined",H[H.Scoped=67108864]="Scoped",H[H.Stub=134217728]="Stub",H[H.Overridden=268435456]="Overridden",H[H.Closure=536870912]="Closure",H[H.Quoted=1073741824]="Quoted",H[H.InternallyNullable=-2147483648]="InternallyNullable",H))(ze||{}),lt="/",F2="..",Aa="get:",va="set:",Rc="#",Nn=".",Fc="~",_g="~lib",bt=_g+lt,qe=lt+"index",wc="@",P;(V=>(V.Empty="",V.i8="i8",V.i16="i16",V.i32="i32",V.i64="i64",V.isize="isize",V.u8="u8",V.u16="u16",V.u32="u32",V.u64="u64",V.usize="usize",V.bool="bool",V.f32="f32",V.f64="f64",V.v128="v128",V.ref_func="ref_func",V.ref_extern="ref_extern",V.ref_any="ref_any",V.ref_eq="ref_eq",V.ref_struct="ref_struct",V.ref_array="ref_array",V.ref_i31="ref_i31",V.ref_string="ref_string",V.ref_stringview_wtf8="ref_stringview_wtf8",V.ref_stringview_wtf16="ref_stringview_wtf16",V.ref_stringview_iter="ref_stringview_iter",V.i8x16="i8x16",V.u8x16="u8x16",V.i16x8="i16x8",V.u16x8="u16x8",V.i32x4="i32x4",V.u32x4="u32x4",V.i64x2="i64x2",V.u64x2="u64x2",V.f32x4="f32x4",V.f64x2="f64x2",V.void_="void",V.number="number",V.boolean="boolean",V.string="string",V.native="native",V.indexof="indexof",V.valueof="valueof",V.returnof="returnof",V.nonnull="nonnull",V.null_="null",V.true_="true",V.false_="false",V.this_="this",V.super_="super",V.constructor="constructor",V.ASC_TARGET="ASC_TARGET",V.ASC_RUNTIME="ASC_RUNTIME",V.ASC_NO_ASSERT="ASC_NO_ASSERT",V.ASC_MEMORY_BASE="ASC_MEMORY_BASE",V.ASC_TABLE_BASE="ASC_TABLE_BASE",V.ASC_OPTIMIZE_LEVEL="ASC_OPTIMIZE_LEVEL",V.ASC_SHRINK_LEVEL="ASC_SHRINK_LEVEL",V.ASC_LOW_MEMORY_LIMIT="ASC_LOW_MEMORY_LIMIT",V.ASC_EXPORT_RUNTIME="ASC_EXPORT_RUNTIME",V.ASC_FEATURE_SIGN_EXTENSION="ASC_FEATURE_SIGN_EXTENSION",V.ASC_FEATURE_MUTABLE_GLOBALS="ASC_FEATURE_MUTABLE_GLOBALS",V.ASC_FEATURE_NONTRAPPING_F2I="ASC_FEATURE_NONTRAPPING_F2I",V.ASC_FEATURE_BULK_MEMORY="ASC_FEATURE_BULK_MEMORY",V.ASC_FEATURE_SIMD="ASC_FEATURE_SIMD",V.ASC_FEATURE_THREADS="ASC_FEATURE_THREADS",V.ASC_FEATURE_EXCEPTION_HANDLING="ASC_FEATURE_EXCEPTION_HANDLING",V.ASC_FEATURE_TAIL_CALLS="ASC_FEATURE_TAIL_CALLS",V.ASC_FEATURE_REFERENCE_TYPES="ASC_FEATURE_REFERENCE_TYPES",V.ASC_FEATURE_MULTI_VALUE="ASC_FEATURE_MULTI_VALUE",V.ASC_FEATURE_GC="ASC_FEATURE_GC",V.ASC_FEATURE_MEMORY64="ASC_FEATURE_MEMORY64",V.ASC_FEATURE_RELAXED_SIMD="ASC_FEATURE_RELAXED_SIMD",V.ASC_FEATURE_EXTENDED_CONST="ASC_FEATURE_EXTENDED_CONST",V.ASC_FEATURE_STRINGREF="ASC_FEATURE_STRINGREF",V.ASC_FEATURE_SHARED_EVERYTHING="ASC_FEATURE_SHARED_EVERYTHING",V.ASC_FEATURE_CLOSURES="ASC_FEATURE_CLOSURES",V.ASC_VERSION_MAJOR="ASC_VERSION_MAJOR",V.ASC_VERSION_MINOR="ASC_VERSION_MINOR",V.ASC_VERSION_PATCH="ASC_VERSION_PATCH",V.EnumToString="__enum_to_string",V.I8="I8",V.I16="I16",V.I32="I32",V.I64="I64",V.Isize="Isize",V.U8="U8",V.U16="U16",V.U32="U32",V.U64="U64",V.Usize="Usize",V.Bool="Bool",V.F32="F32",V.F64="F64",V.V128="V128",V.RefFunc="RefFunc",V.RefExtern="RefExtern",V.RefAny="RefAny",V.RefEq="RefEq",V.RefStruct="RefStruct",V.RefArray="RefArray",V.RefI31="RefI31",V.RefString="RefString",V.String="String",V.RegExp="RegExp",V.Object="Object",V.Array="Array",V.StaticArray="StaticArray",V.Set="Set",V.Map="Map",V.Function="Function",V.ArrayBufferView="ArrayBufferView",V.ArrayBuffer="ArrayBuffer",V.Math="Math",V.Mathf="Mathf",V.NativeMath="NativeMath",V.NativeMathf="NativeMathf",V.Int8Array="Int8Array",V.Int16Array="Int16Array",V.Int32Array="Int32Array",V.Int64Array="Int64Array",V.Uint8Array="Uint8Array",V.Uint8ClampedArray="Uint8ClampedArray",V.Uint16Array="Uint16Array",V.Uint32Array="Uint32Array",V.Uint64Array="Uint64Array",V.Float32Array="Float32Array",V.Float64Array="Float64Array",V.TemplateStringsArray="TemplateStringsArray",V.Error="Error",V.abort="abort",V.trace="trace",V.seed="seed",V.pow="pow",V.ipow32="ipow32",V.ipow64="ipow64",V.mod="mod",V.alloc="__alloc",V.realloc="__realloc",V.free="__free",V.new_="__new",V.renew="__renew",V.link="__link",V.collect="__collect",V.visit="__visit",V.newBuffer="__newBuffer",V.newArray="__newArray",V.BLOCK="~lib/rt/common/BLOCK",V.OBJECT="~lib/rt/common/OBJECT",V.DefaultMemory="0",V.DefaultTable="0"))(P||={});var ot=(v=>(v[v.Not_implemented_0=100]="Not_implemented_0",v[v.Operation_is_unsafe=101]="Operation_is_unsafe",v[v.User_defined_0=102]="User_defined_0",v[v.Feature_0_is_not_enabled=103]="Feature_0_is_not_enabled",v[v.Low_memory_limit_exceeded_by_static_data_0_1=104]="Low_memory_limit_exceeded_by_static_data_0_1",v[v.Module_requires_at_least_0_pages_of_initial_memory=105]="Module_requires_at_least_0_pages_of_initial_memory",v[v.Module_requires_at_least_0_pages_of_maximum_memory=106]="Module_requires_at_least_0_pages_of_maximum_memory",v[v.Shared_memory_requires_maximum_memory_to_be_defined=107]="Shared_memory_requires_maximum_memory_to_be_defined",v[v.Shared_memory_requires_feature_threads_to_be_enabled=108]="Shared_memory_requires_feature_threads_to_be_enabled",v[v.Transform_0_1=109]="Transform_0_1",v[v.Start_function_name_0_is_invalid_or_conflicts_with_another_export=110]="Start_function_name_0_is_invalid_or_conflicts_with_another_export",v[v.Element_0_not_found=111]="Element_0_not_found",v[v.Exchange_of_0_values_is_not_supported_by_all_embeddings=112]="Exchange_of_0_values_is_not_supported_by_all_embeddings",v[v.Conversion_from_type_0_to_1_requires_an_explicit_cast=200]="Conversion_from_type_0_to_1_requires_an_explicit_cast",v[v.Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit=201]="Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit",v[v.Type_0_cannot_be_changed_to_type_1=202]="Type_0_cannot_be_changed_to_type_1",v[v.Operation_0_cannot_be_applied_to_type_1=203]="Operation_0_cannot_be_applied_to_type_1",v[v.Type_0_cannot_be_nullable=204]="Type_0_cannot_be_nullable",v[v.Mutable_value_cannot_be_inlined=206]="Mutable_value_cannot_be_inlined",v[v.Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa=207]="Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa",v[v.Unmanaged_classes_cannot_implement_interfaces=208]="Unmanaged_classes_cannot_implement_interfaces",v[v.Invalid_regular_expression_flags=209]="Invalid_regular_expression_flags",v[v.Expression_is_never_null=210]="Expression_is_never_null",v[v.Class_0_is_final_and_cannot_be_extended=211]="Class_0_is_final_and_cannot_be_extended",v[v.Decorator_0_is_not_valid_here=212]="Decorator_0_is_not_valid_here",v[v.Duplicate_decorator=213]="Duplicate_decorator",v[v.Type_0_is_illegal_in_this_context=214]="Type_0_is_illegal_in_this_context",v[v.Optional_parameter_must_have_an_initializer=215]="Optional_parameter_must_have_an_initializer",v[v.Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal=216]="Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal",v[v.Function_0_cannot_be_inlined_into_itself=217]="Function_0_cannot_be_inlined_into_itself",v[v.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set=218]="Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set",v[v.Optional_properties_are_not_supported=219]="Optional_properties_are_not_supported",v[v.Expression_must_be_a_compile_time_constant=220]="Expression_must_be_a_compile_time_constant",v[v.Type_0_is_not_a_function_index_or_function_reference=221]="Type_0_is_not_a_function_index_or_function_reference",v[v._0_must_be_a_value_between_1_and_2_inclusive=222]="_0_must_be_a_value_between_1_and_2_inclusive",v[v._0_must_be_a_power_of_two=223]="_0_must_be_a_power_of_two",v[v._0_is_not_a_valid_operator=224]="_0_is_not_a_valid_operator",v[v.Expression_cannot_be_represented_by_a_type=225]="Expression_cannot_be_represented_by_a_type",v[v.Expression_resolves_to_unusual_type_0=226]="Expression_resolves_to_unusual_type_0",v[v.Array_literal_expected=227]="Array_literal_expected",v[v.Function_0_is_virtual_and_will_not_be_inlined=228]="Function_0_is_virtual_and_will_not_be_inlined",v[v.Property_0_only_has_a_setter_and_is_missing_a_getter=229]="Property_0_only_has_a_setter_and_is_missing_a_getter",v[v._0_keyword_cannot_be_used_here=230]="_0_keyword_cannot_be_used_here",v[v.A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final=231]="A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final",v[v.Property_0_is_always_assigned_before_being_used=233]="Property_0_is_always_assigned_before_being_used",v[v.Expression_does_not_compile_to_a_value_at_runtime=234]="Expression_does_not_compile_to_a_value_at_runtime",v[v.Only_variables_functions_and_enums_become_WebAssembly_module_exports=235]="Only_variables_functions_and_enums_become_WebAssembly_module_exports",v[v.Literal_0_does_not_fit_into_i64_or_u64_types=236]="Literal_0_does_not_fit_into_i64_or_u64_types",v[v.Index_signature_accessors_in_type_0_differ_in_types=237]="Index_signature_accessors_in_type_0_differ_in_types",v[v.Initializer_definitive_assignment_or_nullable_type_expected=238]="Initializer_definitive_assignment_or_nullable_type_expected",v[v.Definitive_assignment_has_no_effect_on_local_variables=239]="Definitive_assignment_has_no_effect_on_local_variables",v[v.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2=240]="Ambiguous_operator_overload_0_conflicting_overloads_1_and_2",v[v.An_interface_or_abstract_method_0_cannot_have_type_parameters=241]="An_interface_or_abstract_method_0_cannot_have_type_parameters",v[v.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa=242]="Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa",v[v.Only_Error_or_its_subclasses_can_be_thrown_but_found_type_0=250]="Only_Error_or_its_subclasses_can_be_thrown_but_found_type_0",v[v.Importing_the_table_disables_some_indirect_call_optimizations=901]="Importing_the_table_disables_some_indirect_call_optimizations",v[v.Exporting_the_table_disables_some_indirect_call_optimizations=902]="Exporting_the_table_disables_some_indirect_call_optimizations",v[v.Expression_compiles_to_a_dynamic_check_at_runtime=903]="Expression_compiles_to_a_dynamic_check_at_runtime",v[v.Indexed_access_may_involve_bounds_checking=904]="Indexed_access_may_involve_bounds_checking",v[v.Explicitly_returning_constructor_drops_this_allocation=905]="Explicitly_returning_constructor_drops_this_allocation",v[v.Unnecessary_definite_assignment=906]="Unnecessary_definite_assignment",v[v._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead=907]="_NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead",v[v.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters=908]="Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters",v[v.Unterminated_string_literal=1002]="Unterminated_string_literal",v[v.Identifier_expected=1003]="Identifier_expected",v[v._0_expected=1005]="_0_expected",v[v.A_file_cannot_have_a_reference_to_itself=1006]="A_file_cannot_have_a_reference_to_itself",v[v.Trailing_comma_not_allowed=1009]="Trailing_comma_not_allowed",v[v.Unexpected_token=1012]="Unexpected_token",v[v.A_rest_parameter_must_be_last_in_a_parameter_list=1014]="A_rest_parameter_must_be_last_in_a_parameter_list",v[v.Parameter_cannot_have_question_mark_and_initializer=1015]="Parameter_cannot_have_question_mark_and_initializer",v[v.A_required_parameter_cannot_follow_an_optional_parameter=1016]="A_required_parameter_cannot_follow_an_optional_parameter",v[v._0_modifier_cannot_appear_on_class_elements_of_this_kind=1031]="_0_modifier_cannot_appear_on_class_elements_of_this_kind",v[v.Statements_are_not_allowed_in_ambient_contexts=1036]="Statements_are_not_allowed_in_ambient_contexts",v[v.Initializers_are_not_allowed_in_ambient_contexts=1039]="Initializers_are_not_allowed_in_ambient_contexts",v[v._0_modifier_cannot_be_used_here=1042]="_0_modifier_cannot_be_used_here",v[v.A_rest_parameter_cannot_be_optional=1047]="A_rest_parameter_cannot_be_optional",v[v.A_rest_parameter_cannot_have_an_initializer=1048]="A_rest_parameter_cannot_have_an_initializer",v[v.A_set_accessor_must_have_exactly_one_parameter=1049]="A_set_accessor_must_have_exactly_one_parameter",v[v.A_set_accessor_parameter_cannot_have_an_initializer=1052]="A_set_accessor_parameter_cannot_have_an_initializer",v[v.A_get_accessor_cannot_have_parameters=1054]="A_get_accessor_cannot_have_parameters",v[v.Enum_member_must_have_initializer=1061]="Enum_member_must_have_initializer",v[v.Type_parameters_cannot_appear_on_a_constructor_declaration=1092]="Type_parameters_cannot_appear_on_a_constructor_declaration",v[v.Type_annotation_cannot_appear_on_a_constructor_declaration=1093]="Type_annotation_cannot_appear_on_a_constructor_declaration",v[v.An_accessor_cannot_have_type_parameters=1094]="An_accessor_cannot_have_type_parameters",v[v.A_set_accessor_cannot_have_a_return_type_annotation=1095]="A_set_accessor_cannot_have_a_return_type_annotation",v[v.Type_parameter_list_cannot_be_empty=1098]="Type_parameter_list_cannot_be_empty",v[v.Type_argument_list_cannot_be_empty=1099]="Type_argument_list_cannot_be_empty",v[v.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement=1104]="A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement",v[v.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement=1105]="A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement",v[v.A_return_statement_can_only_be_used_within_a_function_body=1108]="A_return_statement_can_only_be_used_within_a_function_body",v[v.Expression_expected=1109]="Expression_expected",v[v.Type_expected=1110]="Type_expected",v[v.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement=1113]="A_default_clause_cannot_appear_more_than_once_in_a_switch_statement",v[v.Duplicate_label_0=1114]="Duplicate_label_0",v[v.An_export_assignment_cannot_have_modifiers=1120]="An_export_assignment_cannot_have_modifiers",v[v.Octal_literals_are_not_allowed_in_strict_mode=1121]="Octal_literals_are_not_allowed_in_strict_mode",v[v.Digit_expected=1124]="Digit_expected",v[v.Hexadecimal_digit_expected=1125]="Hexadecimal_digit_expected",v[v.Unexpected_end_of_text=1126]="Unexpected_end_of_text",v[v.Invalid_character=1127]="Invalid_character",v[v._case_or_default_expected=1130]="_case_or_default_expected",v[v._super_must_be_followed_by_an_argument_list_or_member_access=1034]="_super_must_be_followed_by_an_argument_list_or_member_access",v[v.A_declare_modifier_cannot_be_used_in_an_already_ambient_context=1038]="A_declare_modifier_cannot_be_used_in_an_already_ambient_context",v[v.Type_argument_expected=1140]="Type_argument_expected",v[v.String_literal_expected=1141]="String_literal_expected",v[v.Line_break_not_permitted_here=1142]="Line_break_not_permitted_here",v[v.Declaration_expected=1146]="Declaration_expected",v[v._const_declarations_must_be_initialized=1155]="_const_declarations_must_be_initialized",v[v.Unterminated_regular_expression_literal=1161]="Unterminated_regular_expression_literal",v[v.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions=1263]="Declarations_with_initializers_cannot_also_have_definite_assignment_assertions",v[v.Interface_declaration_cannot_have_implements_clause=1176]="Interface_declaration_cannot_have_implements_clause",v[v.Binary_digit_expected=1177]="Binary_digit_expected",v[v.Octal_digit_expected=1178]="Octal_digit_expected",v[v.An_implementation_cannot_be_declared_in_ambient_contexts=1183]="An_implementation_cannot_be_declared_in_ambient_contexts",v[v.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer=1190]="The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer",v[v.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive=1198]="An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive",v[v.Unterminated_Unicode_escape_sequence=1199]="Unterminated_Unicode_escape_sequence",v[v.Decorators_are_not_valid_here=1206]="Decorators_are_not_valid_here",v[v._abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration=1242]="_abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration",v[v.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract=1245]="Method_0_cannot_have_an_implementation_because_it_is_marked_abstract",v[v.An_interface_property_cannot_have_an_initializer=1246]="An_interface_property_cannot_have_an_initializer",v[v.A_definite_assignment_assertion_is_not_permitted_in_this_context=1255]="A_definite_assignment_assertion_is_not_permitted_in_this_context",v[v.A_class_may_only_extend_another_class=1311]="A_class_may_only_extend_another_class",v[v.A_parameter_property_cannot_be_declared_using_a_rest_parameter=1317]="A_parameter_property_cannot_be_declared_using_a_rest_parameter",v[v.A_default_export_can_only_be_used_in_a_module=1319]="A_default_export_can_only_be_used_in_a_module",v[v.An_expression_of_type_0_cannot_be_tested_for_truthiness=1345]="An_expression_of_type_0_cannot_be_tested_for_truthiness",v[v.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal=1351]="An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal",v[v.Duplicate_identifier_0=2300]="Duplicate_identifier_0",v[v.Cannot_find_name_0=2304]="Cannot_find_name_0",v[v.Module_0_has_no_exported_member_1=2305]="Module_0_has_no_exported_member_1",v[v.An_interface_can_only_extend_an_interface=2312]="An_interface_can_only_extend_an_interface",v[v.Generic_type_0_requires_1_type_argument_s=2314]="Generic_type_0_requires_1_type_argument_s",v[v.Type_0_is_not_generic=2315]="Type_0_is_not_generic",v[v.Type_0_is_not_assignable_to_type_1=2322]="Type_0_is_not_assignable_to_type_1",v[v.Property_0_is_private_in_type_1_but_not_in_type_2=2325]="Property_0_is_private_in_type_1_but_not_in_type_2",v[v.Index_signature_is_missing_in_type_0=2329]="Index_signature_is_missing_in_type_0",v[v._this_cannot_be_referenced_in_current_location=2332]="_this_cannot_be_referenced_in_current_location",v[v._this_cannot_be_referenced_in_constructor_arguments=2333]="_this_cannot_be_referenced_in_constructor_arguments",v[v._super_can_only_be_referenced_in_a_derived_class=2335]="_super_can_only_be_referenced_in_a_derived_class",v[v._super_cannot_be_referenced_in_constructor_arguments=2336]="_super_cannot_be_referenced_in_constructor_arguments",v[v.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors=2337]="Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors",v[v.Property_0_does_not_exist_on_type_1=2339]="Property_0_does_not_exist_on_type_1",v[v.Property_0_is_private_and_only_accessible_within_class_1=2341]="Property_0_is_private_and_only_accessible_within_class_1",v[v.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures=2349]="Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures",v[v.This_expression_is_not_constructable=2351]="This_expression_is_not_constructable",v[v.A_function_whose_declared_type_is_not_void_must_return_a_value=2355]="A_function_whose_declared_type_is_not_void_must_return_a_value",v[v.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access=2357]="The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access",v[v.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access=2364]="The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access",v[v.Operator_0_cannot_be_applied_to_types_1_and_2=2365]="Operator_0_cannot_be_applied_to_types_1_and_2",v[v.A_super_call_must_be_the_first_statement_in_the_constructor=2376]="A_super_call_must_be_the_first_statement_in_the_constructor",v[v.Constructors_for_derived_classes_must_contain_a_super_call=2377]="Constructors_for_derived_classes_must_contain_a_super_call",v[v._get_and_set_accessor_must_have_the_same_type=2380]="_get_and_set_accessor_must_have_the_same_type",v[v.Overload_signatures_must_all_be_public_private_or_protected=2385]="Overload_signatures_must_all_be_public_private_or_protected",v[v.Constructor_implementation_is_missing=2390]="Constructor_implementation_is_missing",v[v.Function_implementation_is_missing_or_not_immediately_following_the_declaration=2391]="Function_implementation_is_missing_or_not_immediately_following_the_declaration",v[v.Multiple_constructor_implementations_are_not_allowed=2392]="Multiple_constructor_implementations_are_not_allowed",v[v.Duplicate_function_implementation=2393]="Duplicate_function_implementation",v[v.This_overload_signature_is_not_compatible_with_its_implementation_signature=2394]="This_overload_signature_is_not_compatible_with_its_implementation_signature",v[v.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local=2395]="Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local",v[v.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2=2416]="Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2",v[v.A_class_can_only_implement_an_interface=2422]="A_class_can_only_implement_an_interface",v[v.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged=2434]="A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged",v[v.Types_have_separate_declarations_of_a_private_property_0=2442]="Types_have_separate_declarations_of_a_private_property_0",v[v.Property_0_is_protected_in_type_1_but_public_in_type_2=2444]="Property_0_is_protected_in_type_1_but_public_in_type_2",v[v.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses=2445]="Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses",v[v.Variable_0_used_before_its_declaration=2448]="Variable_0_used_before_its_declaration",v[v.Cannot_redeclare_block_scoped_variable_0=2451]="Cannot_redeclare_block_scoped_variable_0",v[v.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly=2453]="The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly",v[v.Variable_0_is_used_before_being_assigned=2454]="Variable_0_is_used_before_being_assigned",v[v.Type_alias_0_circularly_references_itself=2456]="Type_alias_0_circularly_references_itself",v[v.Type_0_has_no_property_1=2460]="Type_0_has_no_property_1",v[v.The_0_operator_cannot_be_applied_to_type_1=2469]="The_0_operator_cannot_be_applied_to_type_1",v[v.In_const_enum_declarations_member_initializer_must_be_constant_expression=2474]="In_const_enum_declarations_member_initializer_must_be_constant_expression",v[v.A_const_enum_member_can_only_be_accessed_using_a_string_literal=2476]="A_const_enum_member_can_only_be_accessed_using_a_string_literal",v[v.Export_declaration_conflicts_with_exported_declaration_of_0=2484]="Export_declaration_conflicts_with_exported_declaration_of_0",v[v._0_is_referenced_directly_or_indirectly_in_its_own_base_expression=2506]="_0_is_referenced_directly_or_indirectly_in_its_own_base_expression",v[v.Cannot_create_an_instance_of_an_abstract_class=2511]="Cannot_create_an_instance_of_an_abstract_class",v[v.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2=2515]="Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2",v[v.Object_is_possibly_null=2531]="Object_is_possibly_null",v[v.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property=2540]="Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property",v[v.The_target_of_an_assignment_must_be_a_variable_or_a_property_access=2541]="The_target_of_an_assignment_must_be_a_variable_or_a_property_access",v[v.Index_signature_in_type_0_only_permits_reading=2542]="Index_signature_in_type_0_only_permits_reading",v[v.Expected_0_arguments_but_got_1=2554]="Expected_0_arguments_but_got_1",v[v.Expected_at_least_0_arguments_but_got_1=2555]="Expected_at_least_0_arguments_but_got_1",v[v.Expected_0_type_arguments_but_got_1=2558]="Expected_0_type_arguments_but_got_1",v[v.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned=2564]="Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned",v[v.Property_0_is_used_before_being_assigned=2565]="Property_0_is_used_before_being_assigned",v[v._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property=2610]="_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property",v[v._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor=2611]="_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor",v[v.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums=2651]="A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums",v[v.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration=2673]="Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration",v[v.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration=2674]="Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration",v[v.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private=2675]="Cannot_extend_a_class_0_Class_constructor_is_marked_as_private",v[v.The_this_types_of_each_signature_are_incompatible=2685]="The_this_types_of_each_signature_are_incompatible",v[v.Namespace_0_has_no_exported_member_1=2694]="Namespace_0_has_no_exported_member_1",v[v.Namespace_can_only_have_declarations=2695]="Namespace_can_only_have_declarations",v[v.Required_type_parameters_may_not_follow_optional_type_parameters=2706]="Required_type_parameters_may_not_follow_optional_type_parameters",v[v.Duplicate_property_0=2718]="Duplicate_property_0",v[v.Property_0_is_missing_in_type_1_but_required_in_type_2=2741]="Property_0_is_missing_in_type_1_but_required_in_type_2",v[v.Type_0_has_no_call_signatures=2757]="Type_0_has_no_call_signatures",v[v.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter=2808]="Get_accessor_0_must_be_at_least_as_accessible_as_the_setter",v[v.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0=4117]="This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0",v[v.File_0_not_found=6054]="File_0_not_found",v[v.Numeric_separators_are_not_allowed_here=6188]="Numeric_separators_are_not_allowed_here",v[v.Multiple_consecutive_numeric_separators_are_not_permitted=6189]="Multiple_consecutive_numeric_separators_are_not_permitted",v[v.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without=6234]="This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without",v[v._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class=17009]="_super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class",v[v._super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class=17011]="_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class",v[v.Decorator_0_is_not_valid_in_the_hot_request_artifact=9e3]="Decorator_0_is_not_valid_in_the_hot_request_artifact",v[v.Decorator_0_is_not_valid_in_the_cold_daemon_artifact=9001]="Decorator_0_is_not_valid_in_the_cold_daemon_artifact",v[v.Only_one_daemon_class_is_allowed_per_project=9002]="Only_one_daemon_class_is_allowed_per_project",v[v.A_project_using_stream_cannot_declare_service_or_remote=9003]="A_project_using_stream_cannot_declare_service_or_remote",v[v.Scheduled_is_only_valid_inside_a_daemon_class=9004]="Scheduled_is_only_valid_inside_a_daemon_class",v[v.Stream_hook_0_is_only_valid_inside_a_stream_class=9005]="Stream_hook_0_is_only_valid_inside_a_stream_class",v[v.Duplicate_stream_hook_0=9006]="Duplicate_stream_hook_0",v[v.Stream_class_0_declares_no_lifecycle_hooks=9007]="Stream_class_0_declares_no_lifecycle_hooks",v[v.Daemon_class_0_declares_no_scheduled_tasks=9008]="Daemon_class_0_declares_no_scheduled_tasks",v[v.Decorator_0_does_not_accept_arguments=9009]="Decorator_0_does_not_accept_arguments",v[v.Scheduled_requires_a_single_string_schedule_argument=9010]="Scheduled_requires_a_single_string_schedule_argument",v[v.Scheduled_spec_0_is_not_a_valid_interval_or_cron_expression=9011]="Scheduled_spec_0_is_not_a_valid_interval_or_cron_expression",v[v.Scheduled_handler_0_must_take_no_arguments_and_return_void=9012]="Scheduled_handler_0_must_take_no_arguments_and_return_void",v[v.Stream_scope_must_be_a_StreamScope_enum_member=9013]="Stream_scope_must_be_a_StreamScope_enum_member",v[v.Stream_connect_handler_0_has_an_invalid_signature=9014]="Stream_connect_handler_0_has_an_invalid_signature",v[v.Stream_message_handler_0_has_an_invalid_signature=9015]="Stream_message_handler_0_has_an_invalid_signature",v[v.Stream_close_handler_0_has_an_invalid_signature=9016]="Stream_close_handler_0_has_an_invalid_signature",v[v.Stream_disconnect_handler_0_has_an_invalid_signature=9017]="Stream_disconnect_handler_0_has_an_invalid_signature",v))(ot||{});function Ea(r){switch(r){case 100:return"Not implemented: {0}";case 101:return"Operation is unsafe.";case 102:return"User-defined: {0}";case 103:return"Feature '{0}' is not enabled.";case 104:return"Low memory limit exceeded by static data: {0} > {1}";case 105:return"Module requires at least '{0}' pages of initial memory.";case 106:return"Module requires at least '{0}' pages of maximum memory.";case 107:return"Shared memory requires maximum memory to be defined.";case 108:return"Shared memory requires feature 'threads' to be enabled.";case 109:return"Transform '{0}': {1}";case 110:return"Start function name '{0}' is invalid or conflicts with another export.";case 111:return"Element '{0}' not found.";case 112:return"Exchange of '{0}' values is not supported by all embeddings";case 200:return"Conversion from type '{0}' to '{1}' requires an explicit cast.";case 201:return"Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.";case 202:return"Type '{0}' cannot be changed to type '{1}'.";case 203:return"Operation '{0}' cannot be applied to type '{1}'.";case 204:return"Type '{0}' cannot be nullable.";case 206:return"Mutable value cannot be inlined.";case 207:return"Unmanaged classes cannot extend managed classes and vice-versa.";case 208:return"Unmanaged classes cannot implement interfaces.";case 209:return"Invalid regular expression flags.";case 210:return"Expression is never 'null'.";case 211:return"Class '{0}' is final and cannot be extended.";case 212:return"Decorator '{0}' is not valid here.";case 213:return"Duplicate decorator.";case 214:return"Type '{0}' is illegal in this context.";case 215:return"Optional parameter must have an initializer.";case 216:return"Class '{0}' cannot declare a constructor when instantiated from an object literal.";case 217:return"Function '{0}' cannot be inlined into itself.";case 218:return"Cannot access method '{0}' without calling it as it requires 'this' to be set.";case 219:return"Optional properties are not supported.";case 220:return"Expression must be a compile-time constant.";case 221:return"Type '{0}' is not a function index or function reference.";case 222:return"'{0}' must be a value between '{1}' and '{2}' inclusive.";case 223:return"'{0}' must be a power of two.";case 224:return"'{0}' is not a valid operator.";case 225:return"Expression cannot be represented by a type.";case 226:return"Expression resolves to unusual type '{0}'.";case 227:return"Array literal expected.";case 228:return"Function '{0}' is virtual and will not be inlined.";case 229:return"Property '{0}' only has a setter and is missing a getter.";case 230:return"'{0}' keyword cannot be used here.";case 231:return"A class with a constructor explicitly returning something else than 'this' must be '@final'.";case 233:return"Property '{0}' is always assigned before being used.";case 234:return"Expression does not compile to a value at runtime.";case 235:return"Only variables, functions and enums become WebAssembly module exports.";case 236:return"Literal '{0}' does not fit into 'i64' or 'u64' types.";case 237:return"Index signature accessors in type '{0}' differ in types.";case 238:return"Initializer, definitive assignment or nullable type expected.";case 239:return"Definitive assignment has no effect on local variables.";case 240:return"Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').";case 241:return"An interface or abstract method '{0}' cannot have type parameters.";case 242:return"Cannot override generic method '{0}' with a non-generic method or vice versa.";case 250:return"Only Error or its subclasses can be thrown, but found type '{0}'.";case 901:return"Importing the table disables some indirect call optimizations.";case 902:return"Exporting the table disables some indirect call optimizations.";case 903:return"Expression compiles to a dynamic check at runtime.";case 904:return"Indexed access may involve bounds checking.";case 905:return"Explicitly returning constructor drops 'this' allocation.";case 906:return"Unnecessary definite assignment.";case 907:return"'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.";case 908:return"Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.";case 1002:return"Unterminated string literal.";case 1003:return"Identifier expected.";case 1005:return"'{0}' expected.";case 1006:return"A file cannot have a reference to itself.";case 1009:return"Trailing comma not allowed.";case 1012:return"Unexpected token.";case 1014:return"A rest parameter must be last in a parameter list.";case 1015:return"Parameter cannot have question mark and initializer.";case 1016:return"A required parameter cannot follow an optional parameter.";case 1031:return"'{0}' modifier cannot appear on class elements of this kind.";case 1036:return"Statements are not allowed in ambient contexts.";case 1039:return"Initializers are not allowed in ambient contexts.";case 1042:return"'{0}' modifier cannot be used here.";case 1047:return"A rest parameter cannot be optional.";case 1048:return"A rest parameter cannot have an initializer.";case 1049:return"A 'set' accessor must have exactly one parameter.";case 1052:return"A 'set' accessor parameter cannot have an initializer.";case 1054:return"A 'get' accessor cannot have parameters.";case 1061:return"Enum member must have initializer.";case 1092:return"Type parameters cannot appear on a constructor declaration.";case 1093:return"Type annotation cannot appear on a constructor declaration.";case 1094:return"An accessor cannot have type parameters.";case 1095:return"A 'set' accessor cannot have a return type annotation.";case 1098:return"Type parameter list cannot be empty.";case 1099:return"Type argument list cannot be empty.";case 1104:return"A 'continue' statement can only be used within an enclosing iteration statement.";case 1105:return"A 'break' statement can only be used within an enclosing iteration or switch statement.";case 1108:return"A 'return' statement can only be used within a function body.";case 1109:return"Expression expected.";case 1110:return"Type expected.";case 1113:return"A 'default' clause cannot appear more than once in a 'switch' statement.";case 1114:return"Duplicate label '{0}'.";case 1120:return"An export assignment cannot have modifiers.";case 1121:return"Octal literals are not allowed in strict mode.";case 1124:return"Digit expected.";case 1125:return"Hexadecimal digit expected.";case 1126:return"Unexpected end of text.";case 1127:return"Invalid character.";case 1130:return"'case' or 'default' expected.";case 1034:return"'super' must be followed by an argument list or member access.";case 1038:return"A 'declare' modifier cannot be used in an already ambient context.";case 1140:return"Type argument expected.";case 1141:return"String literal expected.";case 1142:return"Line break not permitted here.";case 1146:return"Declaration expected.";case 1155:return"'const' declarations must be initialized.";case 1161:return"Unterminated regular expression literal.";case 1263:return"Declarations with initializers cannot also have definite assignment assertions.";case 1176:return"Interface declaration cannot have 'implements' clause.";case 1177:return"Binary digit expected.";case 1178:return"Octal digit expected.";case 1183:return"An implementation cannot be declared in ambient contexts.";case 1190:return"The variable declaration of a 'for...of' statement cannot have an initializer.";case 1198:return"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.";case 1199:return"Unterminated Unicode escape sequence.";case 1206:return"Decorators are not valid here.";case 1242:return"'abstract' modifier can only appear on a class, method, or property declaration.";case 1245:return"Method '{0}' cannot have an implementation because it is marked abstract.";case 1246:return"An interface property cannot have an initializer.";case 1255:return"A definite assignment assertion '!' is not permitted in this context.";case 1311:return"A class may only extend another class.";case 1317:return"A parameter property cannot be declared using a rest parameter.";case 1319:return"A default export can only be used in a module.";case 1345:return"An expression of type '{0}' cannot be tested for truthiness.";case 1351:return"An identifier or keyword cannot immediately follow a numeric literal.";case 2300:return"Duplicate identifier '{0}'.";case 2304:return"Cannot find name '{0}'.";case 2305:return"Module '{0}' has no exported member '{1}'.";case 2312:return"An interface can only extend an interface.";case 2314:return"Generic type '{0}' requires {1} type argument(s).";case 2315:return"Type '{0}' is not generic.";case 2322:return"Type '{0}' is not assignable to type '{1}'.";case 2325:return"Property '{0}' is private in type '{1}' but not in type '{2}'.";case 2329:return"Index signature is missing in type '{0}'.";case 2332:return"'this' cannot be referenced in current location.";case 2333:return"'this' cannot be referenced in constructor arguments.";case 2335:return"'super' can only be referenced in a derived class.";case 2336:return"'super' cannot be referenced in constructor arguments.";case 2337:return"Super calls are not permitted outside constructors or in nested functions inside constructors.";case 2339:return"Property '{0}' does not exist on type '{1}'.";case 2341:return"Property '{0}' is private and only accessible within class '{1}'.";case 2349:return"Cannot invoke an expression whose type lacks a call signature. Type '{0}' has no compatible call signatures.";case 2351:return"This expression is not constructable.";case 2355:return"A function whose declared type is not 'void' must return a value.";case 2357:return"The operand of an increment or decrement operator must be a variable or a property access.";case 2364:return"The left-hand side of an assignment expression must be a variable or a property access.";case 2365:return"Operator '{0}' cannot be applied to types '{1}' and '{2}'.";case 2376:return"A 'super' call must be the first statement in the constructor.";case 2377:return"Constructors for derived classes must contain a 'super' call.";case 2380:return"'get' and 'set' accessor must have the same type.";case 2385:return"Overload signatures must all be public, private or protected.";case 2390:return"Constructor implementation is missing.";case 2391:return"Function implementation is missing or not immediately following the declaration.";case 2392:return"Multiple constructor implementations are not allowed.";case 2393:return"Duplicate function implementation.";case 2394:return"This overload signature is not compatible with its implementation signature.";case 2395:return"Individual declarations in merged declaration '{0}' must be all exported or all local.";case 2416:return"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.";case 2422:return"A class can only implement an interface.";case 2434:return"A namespace declaration cannot be located prior to a class or function with which it is merged.";case 2442:return"Types have separate declarations of a private property '{0}'.";case 2444:return"Property '{0}' is protected in type '{1}' but public in type '{2}'.";case 2445:return"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.";case 2448:return"Variable '{0}' used before its declaration.";case 2451:return"Cannot redeclare block-scoped variable '{0}'";case 2453:return"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.";case 2454:return"Variable '{0}' is used before being assigned.";case 2456:return"Type alias '{0}' circularly references itself.";case 2460:return"Type '{0}' has no property '{1}'.";case 2469:return"The '{0}' operator cannot be applied to type '{1}'.";case 2474:return"In 'const' enum declarations member initializer must be constant expression.";case 2476:return"A const enum member can only be accessed using a string literal.";case 2484:return"Export declaration conflicts with exported declaration of '{0}'.";case 2506:return"'{0}' is referenced directly or indirectly in its own base expression.";case 2511:return"Cannot create an instance of an abstract class.";case 2515:return"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from '{2}'.";case 2531:return"Object is possibly 'null'.";case 2540:return"Cannot assign to '{0}' because it is a constant or a read-only property.";case 2541:return"The target of an assignment must be a variable or a property access.";case 2542:return"Index signature in type '{0}' only permits reading.";case 2554:return"Expected {0} arguments, but got {1}.";case 2555:return"Expected at least {0} arguments, but got {1}.";case 2558:return"Expected {0} type arguments, but got {1}.";case 2564:return"Property '{0}' has no initializer and is not assigned in the constructor before 'this' is used or returned.";case 2565:return"Property '{0}' is used before being assigned.";case 2610:return"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.";case 2611:return"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.";case 2651:return"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.";case 2673:return"Constructor of class '{0}' is private and only accessible within the class declaration.";case 2674:return"Constructor of class '{0}' is protected and only accessible within the class declaration.";case 2675:return"Cannot extend a class '{0}'. Class constructor is marked as private.";case 2685:return"The 'this' types of each signature are incompatible.";case 2694:return"Namespace '{0}' has no exported member '{1}'.";case 2695:return"Namespace can only have declarations.";case 2706:return"Required type parameters may not follow optional type parameters.";case 2718:return"Duplicate property '{0}'.";case 2741:return"Property '{0}' is missing in type '{1}' but required in type '{2}'.";case 2757:return"Type '{0}' has no call signatures.";case 2808:return"Get accessor '{0}' must be at least as accessible as the setter.";case 4117:return"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.";case 6054:return"File '{0}' not found.";case 6188:return"Numeric separators are not allowed here.";case 6189:return"Multiple consecutive numeric separators are not permitted.";case 6234:return"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?";case 17009:return"'super' must be called before accessing 'this' in the constructor of a derived class.";case 17011:return"'super' must be called before accessing a property of 'super' in the constructor of a derived class.";case 9e3:return"Decorator '{0}' is not valid in the hot request artifact.";case 9001:return"Decorator '{0}' is not valid in the cold daemon artifact.";case 9002:return"Only one '@daemon' class is allowed per project.";case 9003:return"A project using '@stream' cannot declare '@service' or '@remote'.";case 9004:return"Scheduled is only valid inside a '@daemon' class.";case 9005:return"Stream hook '{0}' is only valid inside a '@stream' class.";case 9006:return"Duplicate stream hook '{0}'.";case 9007:return"Stream class '{0}' declares no lifecycle hooks.";case 9008:return"Daemon class '{0}' declares no scheduled tasks.";case 9009:return"Decorator '{0}' does not accept arguments.";case 9010:return"Scheduled requires a single string schedule argument.";case 9011:return"Scheduled spec '{0}' is not a valid interval or cron expression.";case 9012:return"Scheduled handler '{0}' must take no arguments and return void.";case 9013:return"Stream scope must be a StreamScope enum member.";case 9014:return"Stream connect handler '{0}' has an invalid signature.";case 9015:return"Stream message handler '{0}' has an invalid signature.";case 9016:return"Stream close handler '{0}' has an invalid signature.";case 9017:return"Stream disconnect handler '{0}' has an invalid signature.";default:return""}}var Vc={};Ro(Vc,{BitSet:()=>Bc,COLOR_BLUE:()=>Z2,COLOR_CYAN:()=>Gc,COLOR_GRAY:()=>X2,COLOR_GREEN:()=>J2,COLOR_MAGENTA:()=>Dc,COLOR_RED:()=>Pa,COLOR_RESET:()=>Un,COLOR_WHITE:()=>Y2,COLOR_YELLOW:()=>Mc,CharCode:()=>ut,SURROGATE_HIGH:()=>Dn,SURROGATE_LOW:()=>Ti,accuratePow64:()=>Ia,cloneMap:()=>_e,colorize:()=>$2,combineSurrogates:()=>Gn,dirname:()=>mg,escapeString:()=>ve,indent:()=>W,isAlpha:()=>Nc,isAlphaOrDecimal:()=>dg,isColorsEnabled:()=>Si,isDecimal:()=>ct,isHexBase:()=>zn,isHexOrDecimal:()=>z2,isHighSurrogate:()=>Ai,isIdentifier:()=>We,isIdentifierPart:()=>Ei,isIdentifierStart:()=>vi,isLineBreak:()=>Ut,isLowSurrogate:()=>Ra,isOctal:()=>Fa,isPowerOf2:()=>zt,isSurrogate:()=>M2,isSurrogateHigh:()=>D2,isSurrogateLow:()=>G2,isWhiteSpace:()=>Mn,mergeMaps:()=>N2,normalizePath:()=>Fr,numCodeUnits:()=>kr,readF32:()=>P2,readF64:()=>B2,readI16:()=>C2,readI32:()=>bi,readI64:()=>fg,readI8:()=>w2,readV128:()=>L2,resolvePath:()=>wa,setColorsEnabled:()=>Ba,v128_ones:()=>Uc,v128_zero:()=>zc,writeF32:()=>Sr,writeF64:()=>Ir,writeI16:()=>rr,writeI32:()=>ge,writeI32AsI64:()=>Sa,writeI64:()=>xi,writeI64AsI32:()=>Cc,writeI8:()=>de,writeV128:()=>Pc});function w2(r,i){return r[i]}function de(r,i,e){i[e]=r}function C2(r,i){return i32(r[i])|i32(r[i+1])<<8}function rr(r,i,e){i[e]=r,i[e+1]=r>>>8}function bi(r,i){return i32(r[i])|i32(r[i+1])<<8|i32(r[i+2])<<16|i32(r[i+3])<<24}function ge(r,i,e){i[e]=r,i[e+1]=r>>>8,i[e+2]=r>>>16,i[e+3]=r>>>24}function Sa(r,i,e,t=!1){ge(r,i,e),ge(t||r>=0?0:-1,i,e+4)}function fg(r,i){let e=bi(r,i),t=bi(r,i+4);return i64_new(e,t)}function xi(r,i,e){ge(i64_low(r),i,e),ge(i64_high(r),i,e+4)}function Cc(r,i,e,t=!1){assert(t?i64_is_u32(r):i64_is_i32(r)),ge(i64_low(r),i,e)}function P2(r,i){return i32_as_f32(bi(r,i))}function Sr(r,i,e){ge(f32_as_i32(r),i,e)}function B2(r,i){return i64_as_f64(fg(r,i))}function Ir(r,i,e){let t=f64_as_i64(r);ge(i64_low(t),i,e),ge(i64_high(t),i,e+4)}function L2(r,i){return r.slice(i,i+16)}function Pc(r,i,e){assert(r.length==16),i.set(r,e)}function _e(r){if(ASC_TARGET){let i=new Map;if(r)for(let e=Map_keys(r),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]),a=assert(r.get(s));i.set(s,a)}return i}else return new Map(r)}function N2(r,i){if(ASC_TARGET){let e=new Map;for(let t=Map_keys(r),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(r.get(a));e.set(a,l)}for(let t=Map_keys(i),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(i.get(a));e.set(a,l)}return e}else{let e=new Map(r);return i.forEach((t,n)=>e.set(n,t)),e}}var Bc=class{constructor(){this.clear()}get size(){let i=0,e=this.words;for(let t=0,n=e.length;t<n;t++){let s=unchecked(e[t]);s&&(i+=popcnt(s))}return i}add(i){let e=i>>>5,t=this.words;return e>=t.length&&(this.words=new Uint32Array(e+16),this.words.set(t),t=this.words),unchecked(t[e]|=1<<i),this}delete(i){let e=i>>>5,t=this.words;e>=t.length||unchecked(t[e]&=~(1<<i))}has(i){let e=i>>>5,t=this.words;return e>=t.length?!1:(unchecked(t[i>>>5])&1<<i)!==0}clear(){this.words=new Uint32Array(16)}toArray(){let i=new Array(this.size);for(let e=0,t=0,n=this.words.length;e<n;++e){let s=unchecked(this.words[e]);for(;s;){let a=s&-s;unchecked(i[t++]=(e<<5)+popcnt(a-1)),s^=a}}return i}toString(){return`BitSet { ${this.toArray()} }`}};function zt(r){return r!=0&&(r&r-1)==0}function Ia(r,i){return ASC_TARGET?Math.pow(r,i):f64_pow(r,i)}var ut=(B=>(B[B.Null=0]="Null",B[B.LineFeed=10]="LineFeed",B[B.CarriageReturn=13]="CarriageReturn",B[B.LineSeparator=8232]="LineSeparator",B[B.ParagraphSeparator=8233]="ParagraphSeparator",B[B.NextLine=133]="NextLine",B[B.Space=32]="Space",B[B.NonBreakingSpace=160]="NonBreakingSpace",B[B.EnQuad=8192]="EnQuad",B[B.EmQuad=8193]="EmQuad",B[B.EnSpace=8194]="EnSpace",B[B.EmSpace=8195]="EmSpace",B[B.ThreePerEmSpace=8196]="ThreePerEmSpace",B[B.FourPerEmSpace=8197]="FourPerEmSpace",B[B.SixPerEmSpace=8198]="SixPerEmSpace",B[B.FigureSpace=8199]="FigureSpace",B[B.PunctuationSpace=8200]="PunctuationSpace",B[B.ThinSpace=8201]="ThinSpace",B[B.HairSpace=8202]="HairSpace",B[B.ZeroWidthSpace=8203]="ZeroWidthSpace",B[B.NarrowNoBreakSpace=8239]="NarrowNoBreakSpace",B[B.IdeographicSpace=12288]="IdeographicSpace",B[B.MathematicalSpace=8287]="MathematicalSpace",B[B.Ogham=5760]="Ogham",B[B._=95]="_",B[B._0=48]="_0",B[B._1=49]="_1",B[B._2=50]="_2",B[B._3=51]="_3",B[B._4=52]="_4",B[B._5=53]="_5",B[B._6=54]="_6",B[B._7=55]="_7",B[B._8=56]="_8",B[B._9=57]="_9",B[B.a=97]="a",B[B.b=98]="b",B[B.c=99]="c",B[B.d=100]="d",B[B.e=101]="e",B[B.f=102]="f",B[B.g=103]="g",B[B.h=104]="h",B[B.i=105]="i",B[B.j=106]="j",B[B.k=107]="k",B[B.l=108]="l",B[B.m=109]="m",B[B.n=110]="n",B[B.o=111]="o",B[B.p=112]="p",B[B.q=113]="q",B[B.r=114]="r",B[B.s=115]="s",B[B.t=116]="t",B[B.u=117]="u",B[B.v=118]="v",B[B.w=119]="w",B[B.x=120]="x",B[B.y=121]="y",B[B.z=122]="z",B[B.A=65]="A",B[B.B=66]="B",B[B.C=67]="C",B[B.D=68]="D",B[B.E=69]="E",B[B.F=70]="F",B[B.G=71]="G",B[B.H=72]="H",B[B.I=73]="I",B[B.J=74]="J",B[B.K=75]="K",B[B.L=76]="L",B[B.M=77]="M",B[B.N=78]="N",B[B.O=79]="O",B[B.P=80]="P",B[B.Q=81]="Q",B[B.R=82]="R",B[B.S=83]="S",B[B.T=84]="T",B[B.U=85]="U",B[B.V=86]="V",B[B.W=87]="W",B[B.X=88]="X",B[B.Y=89]="Y",B[B.Z=90]="Z",B[B.Ampersand=38]="Ampersand",B[B.Asterisk=42]="Asterisk",B[B.At=64]="At",B[B.Backslash=92]="Backslash",B[B.Backtick=96]="Backtick",B[B.Bar=124]="Bar",B[B.Caret=94]="Caret",B[B.CloseBrace=125]="CloseBrace",B[B.CloseBracket=93]="CloseBracket",B[B.CloseParen=41]="CloseParen",B[B.Colon=58]="Colon",B[B.Comma=44]="Comma",B[B.Dollar=36]="Dollar",B[B.Dot=46]="Dot",B[B.DoubleQuote=34]="DoubleQuote",B[B.Equals=61]="Equals",B[B.Exclamation=33]="Exclamation",B[B.GreaterThan=62]="GreaterThan",B[B.Hash=35]="Hash",B[B.LessThan=60]="LessThan",B[B.Minus=45]="Minus",B[B.OpenBrace=123]="OpenBrace",B[B.OpenBracket=91]="OpenBracket",B[B.OpenParen=40]="OpenParen",B[B.Percent=37]="Percent",B[B.Plus=43]="Plus",B[B.Question=63]="Question",B[B.Semicolon=59]="Semicolon",B[B.SingleQuote=39]="SingleQuote",B[B.Slash=47]="Slash",B[B.Tilde=126]="Tilde",B[B.Backspace=8]="Backspace",B[B.FormFeed=12]="FormFeed",B[B.ByteOrderMark=65279]="ByteOrderMark",B[B.Tab=9]="Tab",B[B.VerticalTab=11]="VerticalTab",B))(ut||{});function Ut(r){switch(r){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function Mn(r){switch(r){case 32:case 9:case 11:case 12:case 160:case 133:case 5760:case 8239:case 8287:case 12288:case 65279:return!0;default:return r>=8192&&r<=8203}}var Dn=55296,Ti=56320;function M2(r){return(r&63488)==Dn}function D2(r){return r<Ti}function G2(r){return r>=Ti}function Ai(r){return(r&64512)==Dn}function Ra(r){return(r&64512)==Ti}function Gn(r,i){return 65536+((r&1023)<<10)|i&1023}function kr(r){return 1+i32(r>65535)}function Nc(r){let i=r|32;return i>=97&&i<=122}function ct(r){return r>=48&&r<=57}function Fa(r){return r>=48&&r<=55}function zn(r){let i=r|32;return i>=97&&i<=102}function z2(r){return ct(r)||zn(r)}function dg(r){return Nc(r)||ct(r)}function vi(r){return Nc(r)||r==95||r==36||r>=V2&&r<=O2&&hg(r,U2)}function Ei(r){return dg(r)||r==95||r==36||r>=W2&&r<=j2&&hg(r,q2)}function We(r){let i=r.length;if(!i)return!1;let e=r.codePointAt(0);if(!vi(e))return!1;let t=kr(e);for(;t<i;){if(e=r.codePointAt(t),!Ei(e))return!1;t+=kr(e)}return!0}var U2=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2191,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3164,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3292,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7306,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42972,42993,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,68938,68965,68975,68997,69248,69289,69296,69297,69314,69319,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70528,70537,70539,70539,70542,70542,70544,70581,70583,70583,70609,70609,70611,70611,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72640,72672,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73136,73179,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,78944,82938,82944,83526,90368,90397,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93504,93548,93760,93823,93856,93880,93883,93907,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94194,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124368,124397,124400,124400,124608,124638,124640,124642,124644,124645,124647,124653,124656,124660,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041],V2=170,O2=210041,q2=[170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2191,2199,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3164,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3292,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6877,6880,6891,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7306,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42972,42993,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,68928,68965,68969,68973,68975,68997,69248,69289,69291,69292,69296,69297,69314,69319,69370,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70528,70537,70539,70539,70542,70542,70544,70581,70583,70592,70594,70594,70597,70597,70599,70602,70604,70611,70625,70626,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71376,71395,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72544,72551,72640,72672,72688,72697,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73136,73179,73184,73193,73440,73462,73472,73488,73490,73530,73534,73538,73552,73562,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,78944,82938,82944,83526,90368,90425,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93504,93548,93552,93561,93760,93823,93856,93880,93883,93907,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118e3,118009,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124368,124410,124608,124638,124640,124661,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041,917760,917999],W2=170,j2=917999;function hg(r,i){let e=0,t=i.length;for(;e+1<t;){let n=e+(t-e>>>1);n-=n&1;let s=i[n];if(s<=r&&r<=i[n+1])return!0;r<s?t=n:e=n+2}return!1}var Lc=" ",K2=" ",H2=" ",Q2=" ",ka=new Map;function W(r,i){if(i<=4)switch(i){case 1:r.push(Lc);break;case 2:r.push(K2);break;case 3:r.push(H2);break;case 4:r.push(Q2);break}else{let e;ka.size<=1024?ka.has(i)?e=assert(ka.get(i)):ka.set(i,e=Lc.repeat(i)):e=Lc.repeat(i),r.push(e)}}function ve(r,i){let e=new Array,t=0,n=0;for(let s=r.length;n<s;)switch(r.charCodeAt(n)){case 0:{n>t&&e.push(r.substring(t,t=n+1)),e.push("\\0"),t=++n;break}case 8:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\b");break}case 9:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\t");break}case 10:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\n");break}case 11:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\v");break}case 12:{n>t&&e.push(r.substring(t,n)),t=++n,e.push("\\f");break}case 13:{n>t&&e.push(r.substring(t,n)),e.push("\\r"),t=++n;break}case 34:{i==34?(n>t&&e.push(r.substring(t,n)),e.push('\\"'),t=++n):++n;break}case 39:{i==39?(n>t&&e.push(r.substring(t,n)),e.push("\\'"),t=++n):++n;break}case 92:{n>t&&e.push(r.substring(t,n)),e.push("\\\\"),t=++n;break}case 96:{i==96?(n>t&&e.push(r.substring(t,n)),e.push("\\`"),t=++n):++n;break}default:{++n;break}}return n>t&&e.push(r.substring(t,n)),e.join("")}var Rr=47;function Fr(r){let i=0,e=r.length;for(;i+1<e&&r.charCodeAt(i)==46&&r.charCodeAt(i+1)==Rr;)i+=2;(i>0||e<r.length)&&(r=r.substring(i,e),e-=i,i=0);let t;for(;i+1<e;){if(t=!1,r.charCodeAt(i)==Rr&&r.charCodeAt(i+1)==46){if(t=i+2==e,t||i+2<e&&r.charCodeAt(i+2)==Rr){r=t?r.substring(0,i):r.substring(0,i)+r.substring(i+2),e-=2;continue}if(t=i+3==e,t&&r.charCodeAt(i+2)==46||i+3<e&&r.charCodeAt(i+2)==46&&r.charCodeAt(i+3)==Rr){let n=i;for(;--n>=0;)if(r.charCodeAt(n)==Rr){(i-n!=3||r.charCodeAt(n+1)!=46||r.charCodeAt(n+2)!=46)&&(r=t?r.substring(0,n):r.substring(0,n)+r.substring(i+3),e-=i+3-n,i=n-1);break}if(n<0&&i>0&&(i!=2||r.charCodeAt(0)!=46||r.charCodeAt(1)!=46)){r=r.substring(i+4),e=r.length;continue}}}i++}return e>0?r:"."}function wa(r,i){return r.startsWith("std/")?r:Fr(mg(i)+lt+r)}function mg(r){let i=r.length;if(i<=1){if(i==0)return".";if(r.charCodeAt(0)==Rr)return r}for(;--i>0;)if(r.charCodeAt(i)==Rr)return r.substring(0,i);return"."}var X2="\x1B[90m",Pa="\x1B[91m",J2="\x1B[92m",Mc="\x1B[93m",Z2="\x1B[94m",Dc="\x1B[95m",Gc="\x1B[96m",Y2="\x1B[97m",Un="\x1B[0m",Ca=!0;function Si(){return Ca}function Ba(r){let i=Ca;return Ca=r,i}function $2(r,i){return Ca?i+r+Un:r}var zc=new Uint8Array(16),Uc=new Uint8Array(16).fill(255);var Na=(n=>(n[n.Pedantic=0]="Pedantic",n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(Na||{}),ce=class r{constructor(i,e){this.start=i;this.end=e}static join(i,e){if(i.source!=e.source)throw new Error("source mismatch");let t=new r(i.start<e.start?i.start:e.start,i.end>e.end?i.end:e.end);return t.source=i.source,t}equals(i){return this.source==i.source&&this.start==i.start&&this.end==i.end}get atStart(){let i=new r(this.start,this.start);return i.source=this.source,i}get atEnd(){let i=new r(this.end,this.end);return i.source=this.source,i}toString(){return this.source.text.substring(this.start,this.end)}};function Oc(r){switch(r){case 0:return"PEDANTIC";case 1:return"INFO";case 2:return"WARNING";case 3:return"ERROR";default:return assert(!1),""}}function gg(r){switch(r){case 0:return Dc;case 1:return Gc;case 2:return Mc;case 3:return Pa;default:return assert(!1),""}}var La=class r{constructor(i,e,t){this.range=null;this.relatedRange=null;this.code=i,this.category=e,this.message=t}static create(i,e,t=null,n=null,s=null){let a=Ea(i);return t!=null&&(a=a.replace("{0}",t)),n!=null&&(a=a.replace("{1}",n)),s!=null&&(a=a.replace("{2}",s)),new r(i,e,a)}equals(i){if(this.code!=i.code)return!1;let e=this.range,t=i.range;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;let n=this.relatedRange,s=i.relatedRange;if(n){if(!s||!n.equals(s))return!1}else if(s)return!1;return this.message==i.message}withRange(i){return this.range=i,this}withRelatedRange(i){return this.relatedRange=i,this}toString(){let i=Oc(this.category),e=this.range,t=this.code,n=this.message;if(e){let s=e.source,a=s.normalizedPath,l=s.lineAt(e.start),o=s.columnAt(),u=e.end-e.start;return`${i} ${t}: "${n}" in ${a}(${l},${o}+${u})`}return`${i} ${t}: ${n}`}};function bg(r,i=!1,e=!1){let t=Ba(i),n=[];Si()&&n.push(gg(r.category)),n.push(Oc(r.category)),Si()&&n.push(Un),n.push(r.code<1e3?" AS":" TS"),n.push(r.code.toString()),n.push(": "),n.push(r.message);let s=r.range;if(s){let a=s.source,l=r.relatedRange,o=0;if(l&&(o=max(a.lineAt(s.start),l.source.lineAt(l.start))),e?(n.push(`
|
|
10
10
|
`),n.push(yg(s,o))):(n.push(`
|
|
11
11
|
in `),n.push(a.normalizedPath)),n.push("("),n.push(a.lineAt(s.start).toString()),n.push(","),n.push(a.columnAt().toString()),n.push(")"),l){let u=l.source;e?(n.push(`
|
|
12
12
|
`),n.push(yg(l,o))):(n.push(`
|
|
@@ -14,27 +14,27 @@ var ko=Object.defineProperty;var C_=Object.getOwnPropertyDescriptor;var y2=Objec
|
|
|
14
14
|
`," ".repeat(o-l.length),l," \u2502 ",t.substring(s,a).replaceAll(" "," "),`
|
|
15
15
|
`,u," \u2502 "];for(;s<r.start;)t.charCodeAt(s)==9?(p.push(" "),s+=2):(p.push(" "),s++);if(Si()&&p.push(Pa),r.start==r.end)p.push("^");else for(;s++<r.end;){let _=t.charCodeAt(s);if(_==9)p.push("~~");else if(Ut(_)){p.push(s==r.start+1?"^":"~");break}else p.push("~")}return Si()&&p.push(Un),p.push(`
|
|
16
16
|
`),p.push(u),p.push(" \u2514\u2500 in "),p.push(e.normalizedPath),p.join("")}var Je=class{constructor(i=null){this.seen=new Map;i||(i=[]),this.diagnostics=i}emitDiagnostic(i,e,t,n,s=null,a=null,l=null){let o=La.create(i,e,s,a,l);if(t&&(o=o.withRange(t)),n&&(o.relatedRange=n),t){let u=this.seen;if(u.has(t.source)){let p=assert(u.get(t.source));if(p.has(t.start)){let _=assert(p.get(t.start));for(let f=0,d=_.length;f<d;++f)if(_[f].equals(o))return;_.push(o)}else p.set(t.start,[o])}else{let p=new Map;p.set(t.start,[o]),u.set(t.source,p)}}this.diagnostics.push(o)}pedantic(i,e,t=null,n=null,s=null){this.emitDiagnostic(i,0,e,null,t,n,s)}pedanticRelated(i,e,t,n=null,s=null,a=null){this.emitDiagnostic(i,0,e,t,n,s,a)}info(i,e,t=null,n=null,s=null){this.emitDiagnostic(i,1,e,null,t,n,s)}infoRelated(i,e,t,n=null,s=null,a=null){this.emitDiagnostic(i,1,e,t,n,s,a)}warning(i,e,t=null,n=null,s=null){this.emitDiagnostic(i,2,e,null,t,n,s)}warningRelated(i,e,t,n=null,s=null,a=null){this.emitDiagnostic(i,2,e,t,n,s,a)}error(i,e,t=null,n=null,s=null){this.emitDiagnostic(i,3,e,null,t,n,s)}errorRelated(i,e,t,n=null,s=null,a=null){this.emitDiagnostic(i,3,e,t,n,s,a)}};var ft=(q=>(q[q.Source=0]="Source",q[q.NamedType=1]="NamedType",q[q.FunctionType=2]="FunctionType",q[q.TupleType=3]="TupleType",q[q.TypeName=4]="TypeName",q[q.TypeParameter=5]="TypeParameter",q[q.Parameter=6]="Parameter",q[q.Identifier=7]="Identifier",q[q.Assertion=8]="Assertion",q[q.Binary=9]="Binary",q[q.Call=10]="Call",q[q.Class=11]="Class",q[q.Comma=12]="Comma",q[q.ElementAccess=13]="ElementAccess",q[q.False=14]="False",q[q.Function=15]="Function",q[q.InstanceOf=16]="InstanceOf",q[q.Literal=17]="Literal",q[q.New=18]="New",q[q.Null=19]="Null",q[q.Omitted=20]="Omitted",q[q.Parenthesized=21]="Parenthesized",q[q.PropertyAccess=22]="PropertyAccess",q[q.Ternary=23]="Ternary",q[q.Super=24]="Super",q[q.This=25]="This",q[q.True=26]="True",q[q.Constructor=27]="Constructor",q[q.UnaryPostfix=28]="UnaryPostfix",q[q.UnaryPrefix=29]="UnaryPrefix",q[q.Compiled=30]="Compiled",q[q.Block=31]="Block",q[q.Break=32]="Break",q[q.Continue=33]="Continue",q[q.Do=34]="Do",q[q.Empty=35]="Empty",q[q.Export=36]="Export",q[q.ExportDefault=37]="ExportDefault",q[q.ExportImport=38]="ExportImport",q[q.Expression=39]="Expression",q[q.For=40]="For",q[q.ForOf=41]="ForOf",q[q.If=42]="If",q[q.Import=43]="Import",q[q.Return=44]="Return",q[q.Switch=45]="Switch",q[q.Throw=46]="Throw",q[q.Try=47]="Try",q[q.Variable=48]="Variable",q[q.Void=49]="Void",q[q.While=50]="While",q[q.Module=51]="Module",q[q.ClassDeclaration=52]="ClassDeclaration",q[q.EnumDeclaration=53]="EnumDeclaration",q[q.EnumValueDeclaration=54]="EnumValueDeclaration",q[q.FieldDeclaration=55]="FieldDeclaration",q[q.FunctionDeclaration=56]="FunctionDeclaration",q[q.ImportDeclaration=57]="ImportDeclaration",q[q.InterfaceDeclaration=58]="InterfaceDeclaration",q[q.MethodDeclaration=59]="MethodDeclaration",q[q.NamespaceDeclaration=60]="NamespaceDeclaration",q[q.TypeDeclaration=61]="TypeDeclaration",q[q.VariableDeclaration=62]="VariableDeclaration",q[q.Decorator=63]="Decorator",q[q.ExportMember=64]="ExportMember",q[q.SwitchCase=65]="SwitchCase",q[q.IndexSignature=66]="IndexSignature",q[q.Comment=67]="Comment",q))(ft||{}),z=class r{constructor(i,e){this.kind=i;this.range=e}static createSimpleTypeName(i,e){return new ki(r.createIdentifierExpression(i,e),null,e)}static createNamedType(i,e,t,n){return new ae(i,e,t,n)}static createFunctionType(i,e,t,n,s){return new wr(i,e,t,n,s)}static createTupleType(i,e,t,n){return new Ma(i,e,t,n)}static createOmittedType(i){return new ae(r.createSimpleTypeName("",i),null,!1,i)}static createTypeParameter(i,e,t,n){return new Da(i,e,t,n)}static createParameter(i,e,t,n,s){return new Ri(i,e,t,n,s)}static createDecorator(i,e,t){return new Ga(it.fromNode(i),i,e,t)}static createComment(i,e,t){return new za(i,e,t)}static createIdentifierExpression(i,e,t=!1){return new xe(i,t,e)}static createEmptyIdentifierExpression(i){return new xe("",!1,i)}static createArrayLiteralExpression(i,e){return new Cr(i,e)}static createAssertionExpression(i,e,t,n){return new Ua(i,e,t,n)}static createBinaryExpression(i,e,t,n){return new Va(i,e,t,n)}static createCallExpression(i,e,t,n){return new Oa(i,e,t,n)}static createClassExpression(i){return new qa(i)}static createCommaExpression(i,e){return new Wa(i,e)}static createConstructorExpression(i){return new ja(i)}static createElementAccessExpression(i,e,t){return new Ka(i,e,t)}static createFalseExpression(i){return new al(i)}static createFloatLiteralExpression(i,e){return new Ha(i,e)}static createFunctionExpression(i){return new Qa(i)}static createInstanceOfExpression(i,e,t){return new Xa(i,e,t)}static createIntegerLiteralExpression(i,e){return new pt(i,e)}static createNewExpression(i,e,t,n){return new Ja(i,e,t,n)}static createNullExpression(i){return new Za(i)}static createObjectLiteralExpression(i,e,t){return new Pe(i,e,t)}static createOmittedExpression(i){return new Ya(i)}static createParenthesizedExpression(i,e){return new $a(i,e)}static createPropertyAccessExpression(i,e,t){return new _t(i,e,t)}static createRegexpLiteralExpression(i,e,t){return new el(i,e,t)}static createTernaryExpression(i,e,t,n){return new tl(i,e,t,n)}static createStringLiteralExpression(i,e){return new ye(i,e)}static createSuperExpression(i){return new rl(i)}static createTemplateLiteralExpression(i,e,t,n,s){return new il(i,e,t,n,s)}static createThisExpression(i){return new nl(i)}static createTrueExpression(i){return new sl(i)}static createUnaryPostfixExpression(i,e,t){return new ll(i,e,t)}static createUnaryPrefixExpression(i,e,t){return new ol(i,e,t)}static createCompiledExpression(i,e,t){return new ul(i,e,t)}static createBlockStatement(i,e){return new pl(i,e)}static createBreakStatement(i,e){return new _l(i,e)}static createClassDeclaration(i,e,t,n,s,a,l,o){return new On(i,e,t,n,s,a,l,o)}static createContinueStatement(i,e){return new fl(i,e)}static createDoStatement(i,e,t){return new dl(i,e,t)}static createEmptyStatement(i){return new hl(i)}static createEnumDeclaration(i,e,t,n,s){return new ml(i,e,t,n,s)}static createEnumValueDeclaration(i,e,t,n){return new yl(i,e,t,n)}static createExportStatement(i,e,t,n){return new xl(i,e,t,n)}static createExportDefaultStatement(i,e){return new Tl(i,e)}static createExportImportStatement(i,e,t){return new gl(i,e,t)}static createExportMember(i,e,t){return e||(e=i),new bl(i,e,t)}static createExpressionStatement(i){return new Al(i)}static createIfStatement(i,e,t,n){return new Il(i,e,t,n)}static createImportStatement(i,e,t){return new Wn(i,null,e,t)}static createWildcardImportStatement(i,e,t){return new Wn(null,i,e,t)}static createImportDeclaration(i,e,t){return e||(e=i),new kl(e,i,t)}static createInterfaceDeclaration(i,e,t,n,s,a,l,o){return new Rl(i,e,t,n,s,a,l,o)}static createFieldDeclaration(i,e,t,n,s,a){return new vl(i,e,t,n,s,-1,a)}static createForStatement(i,e,t,n,s){return new El(i,e,t,n,s)}static createForOfStatement(i,e,t,n){return new Sl(i,e,t,n)}static createFunctionDeclaration(i,e,t,n,s,a,l,o){return new qn(i,e,t,n,s,a,l,o)}static createIndexSignature(i,e,t,n){return new cl(i,e,t,n)}static createMethodDeclaration(i,e,t,n,s,a,l){return new Pr(i,e,t,n,s,a,l)}static createNamespaceDeclaration(i,e,t,n,s){return new Fl(i,e,t,n,s)}static createReturnStatement(i,e){return new wl(i,e)}static createSwitchStatement(i,e,t){return new Pl(i,e,t)}static createSwitchCase(i,e,t){return new Cl(i,e,t)}static createThrowStatement(i,e){return new Bl(i,e)}static createTryStatement(i,e,t,n,s){return new Ll(i,e,t,n,s)}static createTypeDeclaration(i,e,t,n,s,a){return new Ml(i,e,t,n,s,a)}static createModuleDeclaration(i,e,t){return new Nl(i,e,t)}static createVariableStatement(i,e,t){return new Gl(i,e,t)}static createVariableDeclaration(i,e,t,n,s,a){return new Dl(i,e,t,n,s,a)}static createVoidStatement(i,e){return new zl(i,e)}static createWhileStatement(i,e,t){return new Ul(i,e,t)}isLiteralKind(i){return this.kind==17&&changetype(this).literalKind==i}get isNumericLiteral(){if(this.kind==17)switch(changetype(this).literalKind){case 0:case 1:return!0}return!1}get compilesToConst(){switch(this.kind){case 17:{switch(changetype(this).literalKind){case 0:case 1:case 2:return!0}break}case 19:case 26:case 14:return!0}return!1}isAccessOn(i){let e=changetype(this);return e.kind==10&&(e=e.expression),e.kind==22&&e.expression.kind==i}get isAccessOnThis(){return this.isAccessOn(25)}get isAccessOnSuper(){return this.isAccessOn(24)}get isEmpty(){return this.kind==35}},Ii=class extends z{constructor(e,t,n){super(e,n);this.isNullable=t;this.currentlyResolving=!1}hasGenericComponent(e){if(this.kind==1){let t=changetype(this);if(!t.name.next){let n=t.typeArguments;if(n&&n.length>0){for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else{let s=t.name.identifier.text;for(let a=0,l=e.length;a<l;++a)if(e[a].name.text==s)return!0}}}else if(this.kind==2){let t=changetype(this),n=t.parameters;for(let a=0,l=n.length;a<l;++a)if(n[a].type.hasGenericComponent(e))return!0;if(t.returnType.hasGenericComponent(e))return!0;let s=t.explicitThisType;if(s&&s.hasGenericComponent(e))return!0}else if(this.kind==3){let n=changetype(this).elements;for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else assert(!1);return!1}},ki=class extends z{constructor(e,t,n){super(4,n);this.identifier=e;this.next=t}},ae=class extends Ii{constructor(e,t,n,s){super(1,n,s);this.name=e;this.typeArguments=t}get hasTypeArguments(){let e=this.typeArguments;return e!=null&&e.length>0}get isNull(){return this.name.identifier.text=="null"}},wr=class extends Ii{constructor(e,t,n,s,a){super(2,s,a);this.parameters=e;this.returnType=t;this.explicitThisType=n}},Ma=class extends Ii{constructor(e,t,n,s){super(3,n,s);this.elements=e;this.elementNames=t}},Da=class extends z{constructor(e,t,n,s){super(5,s);this.name=e;this.extendsType=t;this.defaultType=n}},Br=(t=>(t[t.Default=0]="Default",t[t.Optional=1]="Optional",t[t.Rest=2]="Rest",t))(Br||{}),Ri=class extends z{constructor(e,t,n,s,a){super(6,a);this.parameterKind=e;this.name=t;this.type=n;this.initializer=s;this.implicitFieldDeclaration=null;this.flags=0}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},it=(Q=>(Q[Q.Custom=0]="Custom",Q[Q.Global=1]="Global",Q[Q.Operator=2]="Operator",Q[Q.OperatorBinary=3]="OperatorBinary",Q[Q.OperatorPrefix=4]="OperatorPrefix",Q[Q.OperatorPostfix=5]="OperatorPostfix",Q[Q.Unmanaged=6]="Unmanaged",Q[Q.Final=7]="Final",Q[Q.Inline=8]="Inline",Q[Q.External=9]="External",Q[Q.ExternalJs=10]="ExternalJs",Q[Q.Builtin=11]="Builtin",Q[Q.Lazy=12]="Lazy",Q[Q.Unsafe=13]="Unsafe",Q[Q.Main=14]="Main",Q[Q.Data=15]="Data",Q[Q.Remote=16]="Remote",Q[Q.Service=17]="Service",Q[Q.Rest=18]="Rest",Q[Q.Route=19]="Route",Q[Q.Get=20]="Get",Q[Q.Post=21]="Post",Q[Q.Put=22]="Put",Q[Q.Delete=23]="Delete",Q[Q.Patch=24]="Patch",Q[Q.Head=25]="Head",Q[Q.Options=26]="Options",Q[Q.Cache=27]="Cache",Q[Q.Auth=28]="Auth",Q[Q.User=29]="User",Q[Q.Ratelimit=30]="Ratelimit",Q[Q.Database=31]="Database",Q[Q.Collection=32]="Collection",Q[Q.Query=33]="Query",Q[Q.Action=34]="Action",Q[Q.Job=35]="Job",Q[Q.Derive=36]="Derive",Q[Q.Migrate=37]="Migrate",Q[Q.Admin=38]="Admin",Q[Q.Daemon=39]="Daemon",Q[Q.Scheduled=40]="Scheduled",Q[Q.Stream=41]="Stream",Q[Q.Connect=42]="Connect",Q[Q.Message=43]="Message",Q[Q.Close=44]="Close",Q[Q.Disconnect=45]="Disconnect",Q))(it||{});(i=>{function r(e){if(e.kind==7){let t=e.text;switch(assert(t.length),t.charCodeAt(0)){case 97:{if(t=="auth")return 28;if(t=="action")return 34;if(t=="admin")return 38;break}case 98:{if(t=="builtin")return 11;break}case 99:{if(t=="cache")return 27;if(t=="collection")return 32;if(t=="connect")return 42;if(t=="close")return 44;break}case 100:{if(t=="data")return 15;if(t=="del")return 23;if(t=="database")return 31;if(t=="derive")return 36;if(t=="daemon")return 39;if(t=="disconnect")return 45;break}case 101:{if(t=="external")return 9;break}case 102:{if(t=="final")return 7;break}case 103:{if(t=="global")return 1;if(t=="get")return 20;break}case 104:{if(t=="head")return 25;break}case 105:{if(t=="inline")return 8;break}case 106:{if(t=="job")return 35;break}case 108:{if(t=="lazy")return 12;break}case 109:{if(t=="main")return 14;if(t=="migrate")return 37;if(t=="message")return 43;break}case 111:{if(t=="operator")return 2;if(t=="options")return 26;break}case 112:{if(t=="post")return 21;if(t=="put")return 22;if(t=="patch")return 24;break}case 113:{if(t=="query")return 33;break}case 114:{if(t=="ratelimit")return 30;if(t=="remote")return 16;if(t=="rest")return 18;if(t=="route")return 19;break}case 115:{if(t=="service")return 17;if(t=="stream")return 41;if(t=="scheduled")return 40;break}case 117:{if(t=="unmanaged")return 6;if(t=="unsafe")return 13;if(t=="user")return 29;break}}}else if(e.kind==22){let t=e,n=t.expression;if(n.kind==7){let s=n.text;assert(s.length);let a=t.property.text;if(assert(a.length),s=="operator")switch(a.charCodeAt(0)){case 98:{if(a=="binary")return 3;break}case 112:{if(a=="prefix")return 4;if(a=="postfix")return 5;break}}else if(s=="external")switch(a.charCodeAt(0)){case 106:{if(a=="js")return 10;break}}}}return 0}i.fromNode=r})(it||={});var Ga=class extends z{constructor(e,t,n,s){super(63,s);this.decoratorKind=e;this.name=t;this.args=n}},qc=(t=>(t[t.Line=0]="Line",t[t.Triple=1]="Triple",t[t.Block=2]="Block",t))(qc||{}),za=class extends z{constructor(e,t,n){super(67,n);this.commentKind=e;this.text=t}},be=class extends z{},xe=class extends be{constructor(e,t,n){super(7,n);this.text=e;this.isQuoted=t}},ir=(l=>(l[l.Float=0]="Float",l[l.Integer=1]="Integer",l[l.String=2]="String",l[l.Template=3]="Template",l[l.RegExp=4]="RegExp",l[l.Array=5]="Array",l[l.Object=6]="Object",l))(ir||{}),xt=class extends be{constructor(e,t){super(17,t);this.literalKind=e}},Cr=class extends xt{constructor(e,t){super(5,t);this.elementExpressions=e}},wi=(n=>(n[n.Prefix=0]="Prefix",n[n.As=1]="As",n[n.NonNull=2]="NonNull",n[n.Const=3]="Const",n))(wi||{}),Ua=class extends be{constructor(e,t,n,s){super(8,s);this.assertionKind=e;this.expression=t;this.toType=n}},Va=class extends be{constructor(e,t,n,s){super(9,s);this.operator=e;this.left=t;this.right=n}},Oa=class extends be{constructor(e,t,n,s){super(10,s);this.expression=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)?ce.join(e[0].range,e[t-1].range):this.expression.range}get argumentsRange(){let e=this.args,t=e.length;return t?ce.join(e[0].range,e[t-1].range):this.expression.range}},qa=class extends be{constructor(e){super(11,e.range);this.declaration=e}},Wa=class extends be{constructor(e,t){super(12,t);this.expressions=e}},ja=class extends xe{constructor(i){super("constructor",!1,i),this.kind=27}},Ka=class extends be{constructor(e,t,n){super(13,n);this.expression=e;this.elementExpression=t}},Ha=class extends xt{constructor(e,t){super(0,t);this.value=e}},Qa=class extends be{constructor(e){super(15,e.range);this.declaration=e}},Xa=class extends be{constructor(e,t,n){super(16,n);this.expression=e;this.isType=t}},pt=class extends xt{constructor(e,t){super(1,t);this.value=e}},Ja=class extends be{constructor(e,t,n,s){super(18,s);this.typeName=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)>0?ce.join(e[0].range,e[t-1].range):this.typeName.range}get argumentsRange(){let e=this.args,t=e.length;return t?ce.join(e[0].range,e[t-1].range):this.typeName.range}},Za=class extends xe{constructor(i){super("null",!1,i),this.kind=19}},Pe=class extends xt{constructor(e,t,n){super(6,n);this.names=e;this.values=t}},Ya=class extends be{constructor(i){super(20,i)}},$a=class extends be{constructor(e,t){super(21,t);this.expression=e}},_t=class extends be{constructor(e,t,n){super(22,n);this.expression=e;this.property=t}},el=class extends xt{constructor(e,t,n){super(4,n);this.pattern=e;this.patternFlags=t}},tl=class extends be{constructor(e,t,n,s){super(23,s);this.condition=e;this.ifThen=t;this.ifElse=n}},ye=class extends xt{constructor(e,t){super(2,t);this.value=e}},rl=class extends xe{constructor(i){super("super",!1,i),this.kind=24}},il=class extends xt{constructor(e,t,n,s,a){super(3,a);this.tag=e;this.parts=t;this.rawParts=n;this.expressions=s}},nl=class extends xe{constructor(i){super("this",!1,i),this.kind=25}},sl=class extends xe{constructor(i){super("true",!1,i),this.kind=26}},al=class extends xe{constructor(i){super("false",!1,i),this.kind=14}},Vn=class extends be{constructor(e,t,n,s){super(e,s);this.operator=t;this.operand=n}},ll=class extends Vn{constructor(i,e,t){super(28,i,e,t)}},ol=class extends Vn{constructor(i,e,t){super(29,i,e,t)}},ul=class extends be{constructor(e,t,n){super(30,n);this.expr=e;this.type=t}},pe=class extends z{},Ci=(n=>(n[n.User=0]="User",n[n.UserEntry=1]="UserEntry",n[n.Library=2]="Library",n[n.LibraryEntry=3]="LibraryEntry",n))(Ci||{}),fe=class r extends z{constructor(e,t,n){super(0,new ce(0,n.length));this.sourceKind=e;this.normalizedPath=t;this.text=n;this.statements=new Array;this.debugInfoIndex=-1;this.exportPaths=null;this.lineCache=null;this.lineColumn=1;let s=jn(t);this.internalPath=s;let a=s.lastIndexOf(lt);this.simplePath=a>=0?s.substring(a+1):s,this.range.source=this}static get native(){let e=r._native;return e||(r._native=e=new r(3,bt+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==r._native}get isLibrary(){let e=this.sourceKind;return e==2||e==3}lineAt(e){assert(e>=0&&e<2147483647);let t=this.lineCache;if(!t){this.lineCache=t=[0];let a=this.text,l=0,o=a.length;for(;l<o;)a.charCodeAt(l++)==10&&t.push(l);t.push(2147483647)}let n=0,s=t.length-1;for(;n<s;){let a=n+(s-n>>1),l=unchecked(t[a]);if(e<l)s=a;else{if(e<unchecked(t[a+1]))return this.lineColumn=e-l+1,a+1;n=a+1}}return assert(0)}columnAt(){return this.lineColumn}},je=class extends pe{constructor(e,t,n,s,a){super(e,a);this.name=t;this.decorators=n;this.flags=s;this.overriddenModuleName=null}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},cl=class extends z{constructor(e,t,n,s){super(66,s);this.keyType=e;this.valueType=t;this.flags=n}},Fi=class extends je{constructor(e,t,n,s,a,l,o){super(e,t,n,s,o);this.type=a;this.initializer=l}},pl=class extends pe{constructor(e,t){super(31,t);this.statements=e}},_l=class extends pe{constructor(e,t){super(32,t);this.label=e}},On=class extends je{constructor(e,t,n,s,a,l,o,u){super(52,e,t,n,u);this.typeParameters=s;this.extendsType=a;this.implementsTypes=l;this.members=o;this.indexSignature=null}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}},fl=class extends pe{constructor(e,t){super(33,t);this.label=e}},dl=class extends pe{constructor(e,t,n){super(34,n);this.body=e;this.condition=t}},hl=class extends pe{constructor(i){super(35,i)}},ml=class extends je{constructor(e,t,n,s,a){super(53,e,t,n,a);this.values=s}},yl=class extends Fi{constructor(i,e,t,n){super(54,i,null,e,null,t,n)}},gl=class extends pe{constructor(e,t,n){super(38,n);this.name=e;this.externalName=t}},bl=class extends z{constructor(e,t,n){super(64,n);this.localName=e;this.exportedName=t}},xl=class extends pe{constructor(e,t,n,s){super(36,s);this.members=e;this.path=t;this.isDeclare=n;if(t){let a=Fr(t.value);t.value.startsWith(".")?a=wa(a,s.source.internalPath):a.startsWith(bt)||(a=bt+a),this.internalPath=a}else this.internalPath=null}},Tl=class extends pe{constructor(e,t){super(37,t);this.declaration=e}},Al=class extends pe{constructor(e){super(39,e.range);this.expression=e}},vl=class extends Fi{constructor(e,t,n,s,a,l,o){super(55,e,t,n,s,a,o);this.parameterIndex=l}},El=class extends pe{constructor(e,t,n,s,a){super(40,a);this.initializer=e;this.condition=t;this.incrementor=n;this.body=s}},Sl=class extends pe{constructor(e,t,n,s){super(41,s);this.variable=e;this.iterable=t;this.body=n}},Pi=(t=>(t[t.None=0]="None",t[t.Parenthesized=1]="Parenthesized",t[t.Single=2]="Single",t))(Pi||{}),qn=class r extends je{constructor(e,t,n,s,a,l,o,u){super(56,e,t,n,u);this.typeParameters=s;this.signature=a;this.body=l;this.arrowKind=o}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}clone(){return new r(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range)}},Il=class extends pe{constructor(e,t,n,s){super(42,s);this.condition=e;this.ifTrue=t;this.ifFalse=n}},kl=class extends je{constructor(e,t,n){super(57,e,null,0,n);this.foreignName=t}},Wn=class extends pe{constructor(e,t,n,s){super(43,s);this.declarations=e;this.namespaceName=t;this.path=n;let a=Fr(n.value);n.value.startsWith(".")?a=wa(a,s.source.internalPath):a.startsWith(bt)||(a=bt+a),this.internalPath=jn(a)}},Rl=class extends On{constructor(i,e,t,n,s,a,l,o){super(i,e,t,n,s,a,l,o),this.kind=58}},Pr=class extends qn{constructor(i,e,t,n,s,a,l){super(i,e,t,n,s,a,0,l),this.kind=59}},Fl=class extends je{constructor(e,t,n,s,a){super(60,e,t,n,a);this.members=s}},wl=class extends pe{constructor(e,t){super(44,t);this.value=e}},Cl=class extends z{constructor(e,t,n){super(65,n);this.label=e;this.statements=t}get isDefault(){return this.label==null}},Pl=class extends pe{constructor(e,t,n){super(45,n);this.condition=e;this.cases=t}},Bl=class extends pe{constructor(e,t){super(46,t);this.value=e}},Ll=class extends pe{constructor(e,t,n,s,a){super(47,a);this.bodyStatements=e;this.catchVariable=t;this.catchStatements=n;this.finallyStatements=s}},Nl=class extends pe{constructor(e,t,n){super(51,n);this.moduleName=e;this.flags=t}},Ml=class extends je{constructor(e,t,n,s,a,l){super(61,e,t,n,l);this.typeParameters=s;this.type=a}},Dl=class extends Fi{constructor(i,e,t,n,s,a){super(62,i,e,t,n,s,a)}},Gl=class extends pe{constructor(e,t,n){super(48,n);this.decorators=e;this.declarations=t}},zl=class extends pe{constructor(e,t){super(49,t);this.expression=e}},Ul=class extends pe{constructor(e,t,n){super(50,n);this.condition=e;this.body=t}};function Ue(r,i){if(i)for(let e=0,t=i.length;e<t;++e){let n=i[e];if(n.decoratorKind==r)return n}return null}function jn(r){return r.endsWith("/")?r+="index":r.endsWith(".ts")&&(r=r.substring(0,r.length-3)),r}function Be(r){if(r.kind==1){let i=r.name;return!(i.next||i.identifier.text.length>0)}return!1}var Bi=(L=>(L[L.Abstract=0]="Abstract",L[L.As=1]="As",L[L.Async=2]="Async",L[L.Await=3]="Await",L[L.Break=4]="Break",L[L.Case=5]="Case",L[L.Catch=6]="Catch",L[L.Class=7]="Class",L[L.Const=8]="Const",L[L.Continue=9]="Continue",L[L.Constructor=10]="Constructor",L[L.Debugger=11]="Debugger",L[L.Declare=12]="Declare",L[L.Default=13]="Default",L[L.Delete=14]="Delete",L[L.Do=15]="Do",L[L.Else=16]="Else",L[L.Enum=17]="Enum",L[L.Export=18]="Export",L[L.Extends=19]="Extends",L[L.False=20]="False",L[L.Finally=21]="Finally",L[L.For=22]="For",L[L.From=23]="From",L[L.Function=24]="Function",L[L.Get=25]="Get",L[L.If=26]="If",L[L.Implements=27]="Implements",L[L.Import=28]="Import",L[L.In=29]="In",L[L.InstanceOf=30]="InstanceOf",L[L.Interface=31]="Interface",L[L.Is=32]="Is",L[L.KeyOf=33]="KeyOf",L[L.Let=34]="Let",L[L.Module=35]="Module",L[L.Namespace=36]="Namespace",L[L.New=37]="New",L[L.Null=38]="Null",L[L.Of=39]="Of",L[L.Override=40]="Override",L[L.Package=41]="Package",L[L.Private=42]="Private",L[L.Protected=43]="Protected",L[L.Public=44]="Public",L[L.Readonly=45]="Readonly",L[L.Return=46]="Return",L[L.Set=47]="Set",L[L.Static=48]="Static",L[L.Super=49]="Super",L[L.Switch=50]="Switch",L[L.This=51]="This",L[L.Throw=52]="Throw",L[L.True=53]="True",L[L.Try=54]="Try",L[L.Type=55]="Type",L[L.TypeOf=56]="TypeOf",L[L.Var=57]="Var",L[L.Void=58]="Void",L[L.While=59]="While",L[L.With=60]="With",L[L.Yield=61]="Yield",L[L.OpenBrace=62]="OpenBrace",L[L.CloseBrace=63]="CloseBrace",L[L.OpenParen=64]="OpenParen",L[L.CloseParen=65]="CloseParen",L[L.OpenBracket=66]="OpenBracket",L[L.CloseBracket=67]="CloseBracket",L[L.Dot=68]="Dot",L[L.Dot_Dot_Dot=69]="Dot_Dot_Dot",L[L.Semicolon=70]="Semicolon",L[L.Comma=71]="Comma",L[L.LessThan=72]="LessThan",L[L.GreaterThan=73]="GreaterThan",L[L.LessThan_Equals=74]="LessThan_Equals",L[L.GreaterThan_Equals=75]="GreaterThan_Equals",L[L.Equals_Equals=76]="Equals_Equals",L[L.Exclamation_Equals=77]="Exclamation_Equals",L[L.Equals_Equals_Equals=78]="Equals_Equals_Equals",L[L.Exclamation_Equals_Equals=79]="Exclamation_Equals_Equals",L[L.Equals_GreaterThan=80]="Equals_GreaterThan",L[L.Plus=81]="Plus",L[L.Minus=82]="Minus",L[L.Asterisk_Asterisk=83]="Asterisk_Asterisk",L[L.Asterisk=84]="Asterisk",L[L.Slash=85]="Slash",L[L.Percent=86]="Percent",L[L.Plus_Plus=87]="Plus_Plus",L[L.Minus_Minus=88]="Minus_Minus",L[L.LessThan_LessThan=89]="LessThan_LessThan",L[L.GreaterThan_GreaterThan=90]="GreaterThan_GreaterThan",L[L.GreaterThan_GreaterThan_GreaterThan=91]="GreaterThan_GreaterThan_GreaterThan",L[L.Ampersand=92]="Ampersand",L[L.Bar=93]="Bar",L[L.Caret=94]="Caret",L[L.Exclamation=95]="Exclamation",L[L.Tilde=96]="Tilde",L[L.Ampersand_Ampersand=97]="Ampersand_Ampersand",L[L.Bar_Bar=98]="Bar_Bar",L[L.Question=99]="Question",L[L.Colon=100]="Colon",L[L.Equals=101]="Equals",L[L.Plus_Equals=102]="Plus_Equals",L[L.Minus_Equals=103]="Minus_Equals",L[L.Asterisk_Equals=104]="Asterisk_Equals",L[L.Asterisk_Asterisk_Equals=105]="Asterisk_Asterisk_Equals",L[L.Slash_Equals=106]="Slash_Equals",L[L.Percent_Equals=107]="Percent_Equals",L[L.LessThan_LessThan_Equals=108]="LessThan_LessThan_Equals",L[L.GreaterThan_GreaterThan_Equals=109]="GreaterThan_GreaterThan_Equals",L[L.GreaterThan_GreaterThan_GreaterThan_Equals=110]="GreaterThan_GreaterThan_GreaterThan_Equals",L[L.Ampersand_Equals=111]="Ampersand_Equals",L[L.Bar_Equals=112]="Bar_Equals",L[L.Caret_Equals=113]="Caret_Equals",L[L.At=114]="At",L[L.Identifier=115]="Identifier",L[L.StringLiteral=116]="StringLiteral",L[L.IntegerLiteral=117]="IntegerLiteral",L[L.FloatLiteral=118]="FloatLiteral",L[L.TemplateLiteral=119]="TemplateLiteral",L[L.Invalid=120]="Invalid",L[L.EndOfFile=121]="EndOfFile",L))(Bi||{}),jc=(t=>(t[t.Default=0]="Default",t[t.Prefer=1]="Prefer",t[t.Always=2]="Always",t))(jc||{});function xg(r){let i=r.length;switch(assert(i),r.charCodeAt(0)){case 97:{if(i==5){if(r=="async")return 2;if(r=="await")return 3;break}if(r=="as")return 1;if(r=="abstract")return 0;break}case 98:{if(r=="break")return 4;break}case 99:{if(i==5){if(r=="const")return 8;if(r=="class")return 7;if(r=="catch")return 6;break}if(r=="case")return 5;if(r=="continue")return 9;if(r=="constructor")return 10;break}case 100:{if(i==7){if(r=="default")return 13;if(r=="declare")return 12;break}if(r=="do")return 15;if(r=="delete")return 14;if(r=="debugger")return 11;break}case 101:{if(i==4){if(r=="else")return 16;if(r=="enum")return 17;break}if(r=="export")return 18;if(r=="extends")return 19;break}case 102:{if(i<=5){if(r=="false")return 20;if(r=="for")return 22;if(r=="from")return 23;break}if(r=="function")return 24;if(r=="finally")return 21;break}case 103:{if(r=="get")return 25;break}case 105:{if(i==2){if(r=="if")return 26;if(r=="in")return 29;if(r=="is")return 32;break}switch(r.charCodeAt(3)){case 108:{if(r=="implements")return 27;break}case 111:{if(r=="import")return 28;break}case 116:{if(r=="instanceof")return 30;break}case 101:{if(r=="interface")return 31;break}}break}case 107:{if(r=="keyof")return 33;break}case 108:{if(r=="let")return 34;break}case 109:{if(r=="module")return 35;break}case 110:{if(r=="new")return 37;if(r=="null")return 38;if(r=="namespace")return 36;break}case 111:{if(r=="of")return 39;if(r=="override")return 40;break}case 112:{if(i==7){if(r=="private")return 42;if(r=="package")return 41;break}if(r=="public")return 44;if(r=="protected")return 43;break}case 114:{if(r=="return")return 46;if(r=="readonly")return 45;break}case 115:{if(i==6){if(r=="switch")return 50;if(r=="static")return 48;break}if(r=="set")return 47;if(r=="super")return 49;break}case 116:{if(i==4){if(r=="true")return 53;if(r=="this")return 51;if(r=="type")return 55;break}if(r=="try")return 54;if(r=="throw")return 52;if(r=="typeof")return 56;break}case 118:{if(r=="var")return 57;if(r=="void")return 58;break}case 119:{if(r=="while")return 59;if(r=="with")return 60;break}case 121:{if(r=="yield")return 61;break}}return 120}function Tg(r){switch(r){case 0:case 1:case 10:case 12:case 14:case 23:case 22:case 25:case 30:case 32:case 33:case 35:case 36:case 38:case 45:case 47:case 55:case 58:return!0;default:return!1}}function Kc(r){switch(assert(r.length),r.charCodeAt(0)){case 100:return r=="delete";case 102:return r=="for";case 105:return r=="instanceof";case 110:return r=="null";case 118:return r=="void"}return!1}function Fe(r){switch(r){case 14:return"delete";case 29:return"in";case 30:return"instanceof";case 37:return"new";case 56:return"typeof";case 58:return"void";case 61:return"yield";case 69:return"...";case 71:return",";case 72:return"<";case 73:return">";case 74:return"<=";case 75:return">=";case 76:return"==";case 77:return"!=";case 78:return"===";case 79:return"!==";case 81:return"+";case 82:return"-";case 83:return"**";case 84:return"*";case 85:return"/";case 86:return"%";case 87:return"++";case 88:return"--";case 89:return"<<";case 90:return">>";case 91:return">>>";case 92:return"&";case 93:return"|";case 94:return"^";case 95:return"!";case 96:return"~";case 97:return"&&";case 98:return"||";case 101:return"=";case 102:return"+=";case 103:return"-=";case 104:return"*=";case 105:return"**=";case 106:return"/=";case 107:return"%=";case 108:return"<<=";case 109:return">>=";case 110:return">>>=";case 111:return"&=";case 112:return"|=";case 113:return"^=";default:return assert(!1),""}}var Lr=class extends Je{constructor(e,t=null){super(t);this.end=0;this.pos=0;this.token=-1;this.tokenPos=0;this.nextToken=-1;this.nextTokenPos=0;this.nextTokenOnNewLine=2;this.onComment=null;this.readingTemplateString=!1;this.readStringStart=0;this.readStringEnd=0;t||(t=[]),this.diagnostics=t,this.source=e;let n=e.text,s=n.length,a=0;if(a<s&&n.charCodeAt(a)==65279&&++a,a+1<s&&n.charCodeAt(a)==35&&n.charCodeAt(a+1)==33)for(a+=2;a<s&&n.charCodeAt(a)!=10;)++a;this.pos=a,this.end=s}next(e=0){this.clearNextToken();let t;do t=this.unsafeNext(e);while(t==120);return this.token=t,t}unsafeNext(e=0,t=i32.MAX_VALUE){let n=this.source.text,s=this.end,a=this.pos;for(;a<s;){this.tokenPos=a;let l=n.charCodeAt(a);switch(l){case 13:if(!(++a<s&&n.charCodeAt(a)==10))break;case 10:case 9:case 11:case 12:case 32:{++a;break}case 33:return++a,t>1&&a<s&&n.charCodeAt(a)==61?(++a,t>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,79):(this.pos=a,77)):(this.pos=a,95);case 34:case 39:return this.pos=a,116;case 96:return this.pos=a,119;case 37:return++a,t>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,107):(this.pos=a,86);case 38:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==38)return this.pos=a+1,97;if(o==61)return this.pos=a+1,111}return this.pos=a,92}case 40:return this.pos=a+1,64;case 41:return this.pos=a+1,65;case 42:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==61)return this.pos=a+1,104;if(o==42)return++a,t>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,105):(this.pos=a,83)}return this.pos=a,84}case 43:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==43)return this.pos=a+1,87;if(o==61)return this.pos=a+1,102}return this.pos=a,81}case 44:return this.pos=a+1,71;case 45:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==45)return this.pos=a+1,88;if(o==61)return this.pos=a+1,103}return this.pos=a,82}case 46:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(ct(o))return this.pos=a-1,118;if(t>2&&a+1<s&&o==46&&n.charCodeAt(a+1)==46)return this.pos=a+2,69}return this.pos=a,68}case 47:{let o=a;if(++a,t>1&&a<s){let u=n.charCodeAt(a);if(u==47){let p=0;for(a+1<s&&n.charCodeAt(a+1)==47&&(++a,p=1);++a<s;)if(n.charCodeAt(a)==10){++a;break}this.onComment&&this.onComment(p,n.substring(o,a),this.range(o,a));break}if(u==42){let p=!1;for(;++a<s;)if(l=n.charCodeAt(a),l==42&&a+1<s&&n.charCodeAt(a+1)==47){a+=2,p=!0;break}p?this.onComment&&this.onComment(2,n.substring(o,a),this.range(o,a)):this.error(1005,this.range(a),"*/");break}if(u==61)return this.pos=a+1,106}return this.pos=a,85}case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.pos=a,this.testInteger()?117:118;case 58:return this.pos=a+1,100;case 59:return this.pos=a+1,70;case 60:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==60)return++a,t>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,108):(this.pos=a,89);if(o==61)return this.pos=a+1,74}return this.pos=a,72}case 61:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==61)return++a,t>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,78):(this.pos=a,76);if(o==62)return this.pos=a+1,80}return this.pos=a,101}case 62:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==62){if(++a,t>2&&a<s){if(o=n.charCodeAt(a),o==62)return++a,t>3&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,110):(this.pos=a,91);if(o==61)return this.pos=a+1,109}return this.pos=a,90}if(o==61)return this.pos=a+1,75}return this.pos=a,73}case 63:return this.pos=a+1,99;case 91:return this.pos=a+1,66;case 93:return this.pos=a+1,67;case 94:return++a,t>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,113):(this.pos=a,94);case 123:return this.pos=a+1,62;case 124:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==124)return this.pos=a+1,98;if(o==61)return this.pos=a+1,112}return this.pos=a,93}case 125:return this.pos=a+1,63;case 126:return this.pos=a+1,96;case 64:return this.pos=a+1,114;default:{if(Ai(l)&&a+1<s&&(l=Gn(l,n.charCodeAt(a+1))),vi(l)){let u=a;for(;(a+=kr(l))<s&&Ei(l=n.codePointAt(a)););if(e!=2){let p=xg(n.substring(u,a));if(p!=120&&!(e==1&&Tg(p)))return this.pos=a,p}return this.pos=u,115}else if(Mn(l)){++a;break}let o=a;return a+=kr(l),this.error(1127,this.range(o,a)),this.pos=a,120}}}return this.pos=a,121}peek(e=0,t=i32.MAX_VALUE){let n=this.nextToken;if(n<0){let s=this.pos,a=this.token,l=this.tokenPos;do n=this.unsafeNext(e,t);while(n==120);this.nextToken=n,this.nextTokenPos=this.tokenPos,this.nextTokenOnNewLine=2,this.pos=s,this.token=a,this.tokenPos=l}return n}peekOnNewLine(){switch(this.nextTokenOnNewLine){case 0:return!1;case 1:return!0}this.peek();let e=this.source.text;for(let t=this.pos,n=this.nextTokenPos;t<n;++t)if(Ut(e.charCodeAt(t)))return this.nextTokenOnNewLine=1,!0;return this.nextTokenOnNewLine=0,!1}skipIdentifier(e=1){return this.skip(115,e)}skip(e,t=0){let n=this.pos,s=this.token,a=this.tokenPos,l=i32.MAX_VALUE;e==73&&(l=1);let o;do o=this.unsafeNext(t,l);while(o==120);return o==e?(this.token=e,this.clearNextToken(),!0):(this.pos=n,this.token=s,this.tokenPos=a,!1)}mark(){let e=Wc;return e?(Wc=null,e.pos=this.pos,e.token=this.token,e.tokenPos=this.tokenPos):e=new Vl(this.pos,this.token,this.tokenPos),e}discard(e){Wc=e}reset(e){this.pos=e.pos,this.token=e.token,this.tokenPos=e.tokenPos,this.clearNextToken()}clearNextToken(){this.nextToken=-1,this.nextTokenPos=0,this.nextTokenOnNewLine=2}range(e=-1,t=-1){e<0?(e=this.tokenPos,t=this.pos):t<0&&(t=e);let n=new ce(e,t);return n.source=this.source,n}readIdentifier(){let e=this.source.text,t=this.end,n=this.pos,s=n,a=e.codePointAt(n);for(assert(vi(a));(n+=kr(a))<t&&Ei(a=e.codePointAt(n)););return this.pos=n,e.substring(s,n)}readString(e=0,t=!1){let n=this.source.text,s=this.end,a=this.pos;e||(e=n.charCodeAt(a++));let l=a;this.readStringStart=l;let o="";for(;;){if(a>=s){o+=n.substring(l,a),this.error(1002,this.range(l-1,s)),this.readStringEnd=s;break}let u=n.charCodeAt(a);if(u==e){this.readStringEnd=a,o+=n.substring(l,a++);break}if(u==92){o+=n.substring(l,a),this.pos=a,o+=this.readEscapeSequence(t),a=this.pos,l=a;continue}if(e==96){if(u==36&&a+1<s&&n.charCodeAt(a+1)==123)return o+=n.substring(l,a),this.readStringEnd=a,this.pos=a+2,this.readingTemplateString=!0,o}else if(Ut(u)){o+=n.substring(l,a),this.error(1002,this.range(l-1,a)),this.readStringEnd=a;break}++a}return this.pos=a,this.readingTemplateString=!1,o}readEscapeSequence(e=!1){let t=this.pos,n=this.end;if(++this.pos>=n)return this.error(1126,this.range(n)),"";let s=this.source.text,a=s.charCodeAt(this.pos++);switch(a){case 48:return e&&this.pos<n&&ct(s.charCodeAt(this.pos))?(++this.pos,s.substring(t,this.pos)):"\0";case 98:return"\b";case 116:return" ";case 110:return`
|
|
17
|
-
`;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:return this.pos<n&&s.charCodeAt(this.pos)==123?(++this.pos,this.readExtendedUnicodeEscape(e?t:-1)):this.readUnicodeEscape(e?t:-1);case 120:return this.readHexadecimalEscape(2,e?t:-1);case 13:this.pos<n&&s.charCodeAt(this.pos)==10&&++this.pos;case 10:case 8232:case 8233:return"";default:return String.fromCodePoint(a)}}readRegexpPattern(){let e=this.source.text,t=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(t,n));break}if(e.charCodeAt(this.pos)==92){++this.pos,s=!0;continue}let a=e.charCodeAt(this.pos);if(!s&&a==47)break;if(Ut(a)){this.error(1161,this.range(t,this.pos));break}++this.pos,s=!1}return e.substring(t,this.pos)}readRegexpFlags(){let e=this.source.text,t=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!Ei(a))break;switch(++this.pos,a){case 103:{s|=s&1?-1:1;break}case 105:{s|=s&2?-1:2;break}case 109:{s|=s&4?-1:4;break}default:{s=-1;break}}}return s==-1&&this.error(209,this.range(t,this.pos)),e.substring(t,this.pos)}testInteger(){let e=this.source.text,t=this.pos,n=this.end;if(t+1<n&&e.charCodeAt(t)==48)switch(e.charCodeAt(t+2)|32){case 120:case 98:case 111:return!0}for(;t<n;){let s=e.charCodeAt(t);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;t++}return!0}readInteger(){let e=this.source.text,t=this.pos;if(t+2<this.end&&e.charCodeAt(t)==48){switch(e.charCodeAt(t+1)|32){case 120:return this.pos=t+2,this.readHexInteger();case 98:return this.pos=t+2,this.readBinaryInteger();case 111:return this.pos=t+2,this.readOctalInteger()}if(Fa(e.charCodeAt(t+1))){let n=t;this.pos=t+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(4),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(ct(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(zn(_))u=i64_add(i64_shl(l,o),i64_new((_|32)+-87));else if(_==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1125,this.range(s)):a==t&&this.error(6188,this.range(a-1)),p&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readDecimalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(10),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(ct(_))u=i64_add(i64_mul(l,o),i64_new(_-48));else if(_==95)a==t?this.error(a==s?6188:6189,this.range(t)):t-1==s&&e.charCodeAt(t-1)==48&&this.error(6188,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1124,this.range(s)):a==t?this.error(6188,this.range(a-1)):p&&this.error(236,this.range(s,t),this.source.text.substring(s,t)),this.pos=t,l}readOctalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(3),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(Fa(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(_==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1178,this.range(s)):a==t?this.error(6188,this.range(a-1)):p&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readBinaryInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=l,u=!1;for(;t<n;){let p=e.charCodeAt(t);if(p==48)o=i64_shl(l,i64_one);else if(p==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(p==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt(l,o)&&(u=!0),l=o,++t}return t==s?this.error(1177,this.range(s)):a==t?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,t=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<t&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<t){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<t&&(l=e.charCodeAt(this.pos))==45||l==43&&ct(e.charCodeAt(this.pos+1)))&&++this.pos,s+=this.readDecimalFloatPartial())}let a=e.substring(n,this.pos);return s&&(a=a.replaceAll("_","")),parseFloat(a)}readDecimalFloatPartial(e=!0){let t=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=t.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&t.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!ct(u))break;++n}return n!=s&&l==n&&this.error(6188,this.range(l-1)),this.pos=n,o}readHexFloat(){throw new Error("not implemented")}readHexadecimalEscape(e=2,t=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(ct(o))n=(n<<4)+o-48;else if(zn(o))n=(n<<4)+(o|32)+-87;else return~t?(this.pos=--a,s.substring(t,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~t?s.substring(t,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&vi(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let t=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(t,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(t,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(t,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Vl=class{constructor(i,e,t){this.pos=i;this.token=e;this.tokenPos=t}},Wc=null;var N;(S=>(S.None=0,S.Unreachable=1,S.I32=2,S.I64=3,S.F32=4,S.F64=5,S.V128=6,S.Funcref=D_(),S.Externref=G_(),S.Anyref=z_(),S.Eqref=U_(),S.Structref=O_(),S.Arrayref=q_(),S.I31ref=V_(),S.Stringref=W_(),S.Noneref=j_(),S.Nofuncref=H_(),S.Noexternref=K_()))(N||={});var Te;(m=>{m.Extern=8,m.Func=16,m.Any=32,m.Eq=40,m.I31=48,m.Struct=56,m.Array=64,m.Exn=7,m.String=80,m.None=88,m.Noextern=96,m.Nofunc=104;function f(T){return Q_(T)}m.isBottom=f;function d(T){return X_(T)}m.getBottom=d;function h(T,S){return J_(T,S)}m.isSubtype=h;function g(T,S){if(T==S)return T;if(d(T)!=d(S))return-1;if(f(T))return S;if(f(S))return T;if(T>S){let v=T;T=S,S=v}switch(T){case m.Extern:return S==m.String?T:-1;case m.Func:return-1;case m.Any:return T;case m.Eq:return S==m.I31||S==m.Struct||S==m.Array?m.Eq:m.Any;case m.I31:return S==m.Struct||S==m.Array?m.Eq:m.Any;case m.Struct:return S==m.Array?m.Eq:m.Any;case m.Array:return m.Any}return assert(!1),-1}m.leastUpperBound=g})(Te||={});var Hn;(t=>(t.NotPacked=0,t.I8=1,t.I16=2))(Hn||={});var Qc;(s=>{s.SelfSupertype=0,s.InvalidSupertype=1,s.ForwardSupertypeReference=2,s.ForwardChildReference=3;function n(a){switch(a){case 0:return"SelfSupertype";case 1:return"InvalidSupertype";case 2:return"ForwardSupertypeReference";case 3:return"ForwardChildReference"}return assert(!1),""}s.toString=n})(Qc||={});var Xc=(O=>(O[O.MVP=0]="MVP",O[O.Atomics=1]="Atomics",O[O.MutableGlobals=2]="MutableGlobals",O[O.TruncSat=4]="TruncSat",O[O.SIMD=8]="SIMD",O[O.BulkMemory=16]="BulkMemory",O[O.SignExt=32]="SignExt",O[O.ExceptionHandling=64]="ExceptionHandling",O[O.TailCall=128]="TailCall",O[O.ReferenceTypes=256]="ReferenceTypes",O[O.MultiValue=512]="MultiValue",O[O.GC=1024]="GC",O[O.Memory64=2048]="Memory64",O[O.RelaxedSIMD=4096]="RelaxedSIMD",O[O.ExtendedConst=8192]="ExtendedConst",O[O.Strings=16384]="Strings",O[O.MultiMemory=32768]="MultiMemory",O[O.StackSwitching=65536]="StackSwitching",O[O.SharedEverything=131072]="SharedEverything",O[O.FP16=262144]="FP16",O[O.BulkMemoryOpt=524288]="BulkMemoryOpt",O[O.CallIndirectOverlong=1048576]="CallIndirectOverlong",O[O.RelaxedAtomics=4194304]="RelaxedAtomics",O[O.CustomPageSizes=8388608]="CustomPageSizes",O[O.Multibyte=16777216]="Multibyte",O[O.WideArithmetic=33554432]="WideArithmetic",O[O.All=67108863]="All",O))(Xc||{}),Nr=(M=>(M[M.Invalid=0]="Invalid",M[M.Block=1]="Block",M[M.If=2]="If",M[M.Loop=3]="Loop",M[M.Break=4]="Break",M[M.Switch=5]="Switch",M[M.Call=6]="Call",M[M.CallIndirect=7]="CallIndirect",M[M.LocalGet=8]="LocalGet",M[M.LocalSet=9]="LocalSet",M[M.GlobalGet=10]="GlobalGet",M[M.GlobalSet=11]="GlobalSet",M[M.Load=12]="Load",M[M.Store=13]="Store",M[M.Const=14]="Const",M[M.Unary=15]="Unary",M[M.Binary=16]="Binary",M[M.Select=17]="Select",M[M.Drop=18]="Drop",M[M.Return=19]="Return",M[M.MemorySize=20]="MemorySize",M[M.MemoryGrow=21]="MemoryGrow",M[M.Nop=22]="Nop",M[M.Unreachable=23]="Unreachable",M[M.AtomicRMW=24]="AtomicRMW",M[M.AtomicCmpxchg=25]="AtomicCmpxchg",M[M.AtomicWait=26]="AtomicWait",M[M.AtomicNotify=27]="AtomicNotify",M[M.AtomicFence=28]="AtomicFence",M[M.Pause=29]="Pause",M[M.SIMDExtract=30]="SIMDExtract",M[M.SIMDReplace=31]="SIMDReplace",M[M.SIMDShuffle=32]="SIMDShuffle",M[M.SIMDTernary=33]="SIMDTernary",M[M.SIMDShift=34]="SIMDShift",M[M.SIMDLoad=35]="SIMDLoad",M[M.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",M[M.MemoryInit=37]="MemoryInit",M[M.DataDrop=38]="DataDrop",M[M.MemoryCopy=39]="MemoryCopy",M[M.MemoryFill=40]="MemoryFill",M[M.Pop=41]="Pop",M[M.RefNull=42]="RefNull",M[M.RefIsNull=43]="RefIsNull",M[M.RefFunc=44]="RefFunc",M[M.RefEq=45]="RefEq",M[M.TableGet=46]="TableGet",M[M.TableSet=47]="TableSet",M[M.TableSize=48]="TableSize",M[M.TableGrow=49]="TableGrow",M[M.TableFill=50]="TableFill",M[M.TableCopy=51]="TableCopy",M[M.TableInit=52]="TableInit",M[M.ElemDrop=53]="ElemDrop",M[M.Try=54]="Try",M[M.TryTable=55]="TryTable",M[M.Throw=56]="Throw",M[M.Rethrow=57]="Rethrow",M[M.ThrowRef=58]="ThrowRef",M[M.TupleMake=59]="TupleMake",M[M.TupleExtract=60]="TupleExtract",M[M.RefI31=61]="RefI31",M[M.I31Get=62]="I31Get",M[M.CallRef=63]="CallRef",M[M.RefTest=64]="RefTest",M[M.RefCast=65]="RefCast",M[M.RefGetDesc=66]="RefGetDesc",M[M.BrOn=67]="BrOn",M[M.StructNew=68]="StructNew",M[M.StructGet=69]="StructGet",M[M.StructSet=70]="StructSet",M[M.StructRMW=71]="StructRMW",M[M.StructCmpxchg=72]="StructCmpxchg",M[M.ArrayNew=73]="ArrayNew",M[M.ArrayNewData=74]="ArrayNewData",M[M.ArrayNewElem=75]="ArrayNewElem",M[M.ArrayNewFixed=76]="ArrayNewFixed",M[M.ArrayGet=77]="ArrayGet",M[M.ArraySet=78]="ArraySet",M[M.ArrayLoad=79]="ArrayLoad",M[M.ArrayStore=80]="ArrayStore",M[M.ArrayLen=81]="ArrayLen",M[M.ArrayCopy=82]="ArrayCopy",M[M.ArrayFill=83]="ArrayFill",M[M.ArrayInitData=84]="ArrayInitData",M[M.ArrayInitElem=85]="ArrayInitElem",M[M.ArrayRMW=86]="ArrayRMW",M[M.ArrayCmpxchg=87]="ArrayCmpxchg",M[M.RefAs=88]="RefAs",M[M.StringNew=89]="StringNew",M[M.StringConst=90]="StringConst",M[M.StringMeasure=91]="StringMeasure",M[M.StringEncode=92]="StringEncode",M[M.StringConcat=93]="StringConcat",M[M.StringEq=94]="StringEq",M[M.StringTest=95]="StringTest",M[M.StringWTF16Get=96]="StringWTF16Get",M[M.StringSliceWTF=97]="StringSliceWTF",M[M.ContNew=98]="ContNew",M[M.ContBind=99]="ContBind",M[M.Suspend=100]="Suspend",M[M.Resume=101]="Resume",M[M.ResumeThrow=102]="ResumeThrow",M[M.StackSwitch=103]="StackSwitch",M[M.StructWait=104]="StructWait",M[M.StructNotify=105]="StructNotify",M[M.WideIntAddSub=106]="WideIntAddSub",M[M.WideIntMul=107]="WideIntMul",M))(Nr||{}),Jc=(s=>(s[s.Function=0]="Function",s[s.Table=1]="Table",s[s.Memory=2]="Memory",s[s.Global=3]="Global",s[s.Tag=4]="Tag",s))(Jc||{}),Ag=(t=>(t[t.Unordered=0]="Unordered",t[t.SeqCst=1]="SeqCst",t[t.AcqRel=2]="AcqRel",t))(Ag||{}),Xn=(w=>(w[w.ClzI32=0]="ClzI32",w[w.ClzI64=1]="ClzI64",w[w.CtzI32=2]="CtzI32",w[w.CtzI64=3]="CtzI64",w[w.PopcntI32=4]="PopcntI32",w[w.PopcntI64=5]="PopcntI64",w[w.NegF32=6]="NegF32",w[w.NegF64=7]="NegF64",w[w.AbsF32=8]="AbsF32",w[w.AbsF64=9]="AbsF64",w[w.CeilF32=10]="CeilF32",w[w.CeilF64=11]="CeilF64",w[w.FloorF32=12]="FloorF32",w[w.FloorF64=13]="FloorF64",w[w.TruncF32=14]="TruncF32",w[w.TruncF64=15]="TruncF64",w[w.NearestF32=16]="NearestF32",w[w.NearestF64=17]="NearestF64",w[w.SqrtF32=18]="SqrtF32",w[w.SqrtF64=19]="SqrtF64",w[w.EqzI32=20]="EqzI32",w[w.EqzI64=21]="EqzI64",w[w.ExtendI32ToI64=22]="ExtendI32ToI64",w[w.ExtendU32ToU64=23]="ExtendU32ToU64",w[w.WrapI64ToI32=24]="WrapI64ToI32",w[w.TruncF32ToI32=25]="TruncF32ToI32",w[w.TruncF32ToI64=26]="TruncF32ToI64",w[w.TruncF32ToU32=27]="TruncF32ToU32",w[w.TruncF32ToU64=28]="TruncF32ToU64",w[w.TruncF64ToI32=29]="TruncF64ToI32",w[w.TruncF64ToI64=30]="TruncF64ToI64",w[w.TruncF64ToU32=31]="TruncF64ToU32",w[w.TruncF64ToU64=32]="TruncF64ToU64",w[w.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",w[w.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",w[w.ConvertI32ToF32=35]="ConvertI32ToF32",w[w.ConvertI32ToF64=36]="ConvertI32ToF64",w[w.ConvertU32ToF32=37]="ConvertU32ToF32",w[w.ConvertU32ToF64=38]="ConvertU32ToF64",w[w.ConvertI64ToF32=39]="ConvertI64ToF32",w[w.ConvertI64ToF64=40]="ConvertI64ToF64",w[w.ConvertU64ToF32=41]="ConvertU64ToF32",w[w.ConvertU64ToF64=42]="ConvertU64ToF64",w[w.PromoteF32ToF64=43]="PromoteF32ToF64",w[w.DemoteF64ToF32=44]="DemoteF64ToF32",w[w.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",w[w.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",w[w.Extend8I32=47]="Extend8I32",w[w.Extend16I32=48]="Extend16I32",w[w.Extend8I64=49]="Extend8I64",w[w.Extend16I64=50]="Extend16I64",w[w.Extend32I64=51]="Extend32I64",w[w.TruncSatF32ToI32=52]="TruncSatF32ToI32",w[w.TruncSatF32ToU32=53]="TruncSatF32ToU32",w[w.TruncSatF64ToI32=54]="TruncSatF64ToI32",w[w.TruncSatF64ToU32=55]="TruncSatF64ToU32",w[w.TruncSatF32ToI64=56]="TruncSatF32ToI64",w[w.TruncSatF32ToU64=57]="TruncSatF32ToU64",w[w.TruncSatF64ToI64=58]="TruncSatF64ToI64",w[w.TruncSatF64ToU64=59]="TruncSatF64ToU64",w[w.SplatI8x16=60]="SplatI8x16",w[w.SplatI16x8=61]="SplatI16x8",w[w.SplatI32x4=62]="SplatI32x4",w[w.SplatI64x2=63]="SplatI64x2",w[w.SplatF32x4=64]="SplatF32x4",w[w.SplatF64x2=65]="SplatF64x2",w[w.NotV128=66]="NotV128",w[w.AnyTrueV128=67]="AnyTrueV128",w[w.AbsI8x16=68]="AbsI8x16",w[w.NegI8x16=69]="NegI8x16",w[w.AllTrueI8x16=70]="AllTrueI8x16",w[w.BitmaskI8x16=71]="BitmaskI8x16",w[w.PopcntI8x16=72]="PopcntI8x16",w[w.AbsI16x8=73]="AbsI16x8",w[w.NegI16x8=74]="NegI16x8",w[w.AllTrueI16x8=75]="AllTrueI16x8",w[w.BitmaskI16x8=76]="BitmaskI16x8",w[w.AbsI32x4=77]="AbsI32x4",w[w.NegI32x4=78]="NegI32x4",w[w.AllTrueI32x4=79]="AllTrueI32x4",w[w.BitmaskI32x4=80]="BitmaskI32x4",w[w.AbsI64x2=81]="AbsI64x2",w[w.NegI64x2=82]="NegI64x2",w[w.AllTrueI64x2=83]="AllTrueI64x2",w[w.BitmaskI64x2=84]="BitmaskI64x2",w[w.AbsF32x4=92]="AbsF32x4",w[w.NegF32x4=93]="NegF32x4",w[w.SqrtF32x4=94]="SqrtF32x4",w[w.CeilF32x4=95]="CeilF32x4",w[w.FloorF32x4=96]="FloorF32x4",w[w.TruncF32x4=97]="TruncF32x4",w[w.NearestF32x4=98]="NearestF32x4",w[w.AbsF64x2=99]="AbsF64x2",w[w.NegF64x2=100]="NegF64x2",w[w.SqrtF64x2=101]="SqrtF64x2",w[w.CeilF64x2=102]="CeilF64x2",w[w.FloorF64x2=103]="FloorF64x2",w[w.TruncF64x2=104]="TruncF64x2",w[w.NearestF64x2=105]="NearestF64x2",w[w.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",w[w.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",w[w.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",w[w.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",w[w.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",w[w.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",w[w.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",w[w.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",w[w.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",w[w.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",w[w.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",w[w.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",w[w.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",w[w.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",w[w.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",w[w.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",w[w.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",w[w.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",w[w.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",w[w.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",w[w.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",w[w.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",w[w.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",w[w.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",w[w.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",w[w.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",w[w.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",w[w.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",w[w.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",w[w.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",w[w.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",w[w._last=141]="_last",w[w.ClzSize=142]="ClzSize",w[w.CtzSize=143]="CtzSize",w[w.PopcntSize=144]="PopcntSize",w[w.EqzSize=145]="EqzSize",w))(Xn||{}),Ni=(A=>(A[A.AddI32=0]="AddI32",A[A.SubI32=1]="SubI32",A[A.MulI32=2]="MulI32",A[A.DivI32=3]="DivI32",A[A.DivU32=4]="DivU32",A[A.RemI32=5]="RemI32",A[A.RemU32=6]="RemU32",A[A.AndI32=7]="AndI32",A[A.OrI32=8]="OrI32",A[A.XorI32=9]="XorI32",A[A.ShlI32=10]="ShlI32",A[A.ShrI32=11]="ShrI32",A[A.ShrU32=12]="ShrU32",A[A.RotlI32=13]="RotlI32",A[A.RotrI32=14]="RotrI32",A[A.EqI32=15]="EqI32",A[A.NeI32=16]="NeI32",A[A.LtI32=17]="LtI32",A[A.LtU32=18]="LtU32",A[A.LeI32=19]="LeI32",A[A.LeU32=20]="LeU32",A[A.GtI32=21]="GtI32",A[A.GtU32=22]="GtU32",A[A.GeI32=23]="GeI32",A[A.GeU32=24]="GeU32",A[A.AddI64=25]="AddI64",A[A.SubI64=26]="SubI64",A[A.MulI64=27]="MulI64",A[A.DivI64=28]="DivI64",A[A.DivU64=29]="DivU64",A[A.RemI64=30]="RemI64",A[A.RemU64=31]="RemU64",A[A.AndI64=32]="AndI64",A[A.OrI64=33]="OrI64",A[A.XorI64=34]="XorI64",A[A.ShlI64=35]="ShlI64",A[A.ShrI64=36]="ShrI64",A[A.ShrU64=37]="ShrU64",A[A.RotlI64=38]="RotlI64",A[A.RotrI64=39]="RotrI64",A[A.EqI64=40]="EqI64",A[A.NeI64=41]="NeI64",A[A.LtI64=42]="LtI64",A[A.LtU64=43]="LtU64",A[A.LeI64=44]="LeI64",A[A.LeU64=45]="LeU64",A[A.GtI64=46]="GtI64",A[A.GtU64=47]="GtU64",A[A.GeI64=48]="GeI64",A[A.GeU64=49]="GeU64",A[A.AddF32=50]="AddF32",A[A.SubF32=51]="SubF32",A[A.MulF32=52]="MulF32",A[A.DivF32=53]="DivF32",A[A.CopysignF32=54]="CopysignF32",A[A.MinF32=55]="MinF32",A[A.MaxF32=56]="MaxF32",A[A.EqF32=57]="EqF32",A[A.NeF32=58]="NeF32",A[A.LtF32=59]="LtF32",A[A.LeF32=60]="LeF32",A[A.GtF32=61]="GtF32",A[A.GeF32=62]="GeF32",A[A.AddF64=63]="AddF64",A[A.SubF64=64]="SubF64",A[A.MulF64=65]="MulF64",A[A.DivF64=66]="DivF64",A[A.CopysignF64=67]="CopysignF64",A[A.MinF64=68]="MinF64",A[A.MaxF64=69]="MaxF64",A[A.EqF64=70]="EqF64",A[A.NeF64=71]="NeF64",A[A.LtF64=72]="LtF64",A[A.LeF64=73]="LeF64",A[A.GtF64=74]="GtF64",A[A.GeF64=75]="GeF64",A[A.EqI8x16=76]="EqI8x16",A[A.NeI8x16=77]="NeI8x16",A[A.LtI8x16=78]="LtI8x16",A[A.LtU8x16=79]="LtU8x16",A[A.GtI8x16=80]="GtI8x16",A[A.GtU8x16=81]="GtU8x16",A[A.LeI8x16=82]="LeI8x16",A[A.LeU8x16=83]="LeU8x16",A[A.GeI8x16=84]="GeI8x16",A[A.GeU8x16=85]="GeU8x16",A[A.EqI16x8=86]="EqI16x8",A[A.NeI16x8=87]="NeI16x8",A[A.LtI16x8=88]="LtI16x8",A[A.LtU16x8=89]="LtU16x8",A[A.GtI16x8=90]="GtI16x8",A[A.GtU16x8=91]="GtU16x8",A[A.LeI16x8=92]="LeI16x8",A[A.LeU16x8=93]="LeU16x8",A[A.GeI16x8=94]="GeI16x8",A[A.GeU16x8=95]="GeU16x8",A[A.EqI32x4=96]="EqI32x4",A[A.NeI32x4=97]="NeI32x4",A[A.LtI32x4=98]="LtI32x4",A[A.LtU32x4=99]="LtU32x4",A[A.GtI32x4=100]="GtI32x4",A[A.GtU32x4=101]="GtU32x4",A[A.LeI32x4=102]="LeI32x4",A[A.LeU32x4=103]="LeU32x4",A[A.GeI32x4=104]="GeI32x4",A[A.GeU32x4=105]="GeU32x4",A[A.EqI64x2=106]="EqI64x2",A[A.NeI64x2=107]="NeI64x2",A[A.LtI64x2=108]="LtI64x2",A[A.GtI64x2=109]="GtI64x2",A[A.LeI64x2=110]="LeI64x2",A[A.GeI64x2=111]="GeI64x2",A[A.EqF32x4=118]="EqF32x4",A[A.NeF32x4=119]="NeF32x4",A[A.LtF32x4=120]="LtF32x4",A[A.GtF32x4=121]="GtF32x4",A[A.LeF32x4=122]="LeF32x4",A[A.GeF32x4=123]="GeF32x4",A[A.EqF64x2=124]="EqF64x2",A[A.NeF64x2=125]="NeF64x2",A[A.LtF64x2=126]="LtF64x2",A[A.GtF64x2=127]="GtF64x2",A[A.LeF64x2=128]="LeF64x2",A[A.GeF64x2=129]="GeF64x2",A[A.AndV128=130]="AndV128",A[A.OrV128=131]="OrV128",A[A.XorV128=132]="XorV128",A[A.AndnotV128=133]="AndnotV128",A[A.AddI8x16=134]="AddI8x16",A[A.AddSatI8x16=135]="AddSatI8x16",A[A.AddSatU8x16=136]="AddSatU8x16",A[A.SubI8x16=137]="SubI8x16",A[A.SubSatI8x16=138]="SubSatI8x16",A[A.SubSatU8x16=139]="SubSatU8x16",A[A.MinI8x16=140]="MinI8x16",A[A.MinU8x16=141]="MinU8x16",A[A.MaxI8x16=142]="MaxI8x16",A[A.MaxU8x16=143]="MaxU8x16",A[A.AvgrU8x16=144]="AvgrU8x16",A[A.AddI16x8=145]="AddI16x8",A[A.AddSatI16x8=146]="AddSatI16x8",A[A.AddSatU16x8=147]="AddSatU16x8",A[A.SubI16x8=148]="SubI16x8",A[A.SubSatI16x8=149]="SubSatI16x8",A[A.SubSatU16x8=150]="SubSatU16x8",A[A.MulI16x8=151]="MulI16x8",A[A.MinI16x8=152]="MinI16x8",A[A.MinU16x8=153]="MinU16x8",A[A.MaxI16x8=154]="MaxI16x8",A[A.MaxU16x8=155]="MaxU16x8",A[A.AvgrU16x8=156]="AvgrU16x8",A[A.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",A[A.ExtmulLowI16x8=158]="ExtmulLowI16x8",A[A.ExtmulHighI16x8=159]="ExtmulHighI16x8",A[A.ExtmulLowU16x8=160]="ExtmulLowU16x8",A[A.ExtmulHighU16x8=161]="ExtmulHighU16x8",A[A.AddI32x4=162]="AddI32x4",A[A.SubI32x4=163]="SubI32x4",A[A.MulI32x4=164]="MulI32x4",A[A.MinI32x4=165]="MinI32x4",A[A.MinU32x4=166]="MinU32x4",A[A.MaxI32x4=167]="MaxI32x4",A[A.MaxU32x4=168]="MaxU32x4",A[A.DotI16x8=169]="DotI16x8",A[A.ExtmulLowI32x4=170]="ExtmulLowI32x4",A[A.ExtmulHighI32x4=171]="ExtmulHighI32x4",A[A.ExtmulLowU32x4=172]="ExtmulLowU32x4",A[A.ExtmulHighU32x4=173]="ExtmulHighU32x4",A[A.AddI64x2=174]="AddI64x2",A[A.SubI64x2=175]="SubI64x2",A[A.MulI64x2=176]="MulI64x2",A[A.ExtmulLowI64x2=177]="ExtmulLowI64x2",A[A.ExtmulHighI64x2=178]="ExtmulHighI64x2",A[A.ExtmulLowU64x2=179]="ExtmulLowU64x2",A[A.ExtmulHighU64x2=180]="ExtmulHighU64x2",A[A.AddF32x4=189]="AddF32x4",A[A.SubF32x4=190]="SubF32x4",A[A.MulF32x4=191]="MulF32x4",A[A.DivF32x4=192]="DivF32x4",A[A.MinF32x4=193]="MinF32x4",A[A.MaxF32x4=194]="MaxF32x4",A[A.PminF32x4=195]="PminF32x4",A[A.PmaxF32x4=196]="PmaxF32x4",A[A.AddF64x2=197]="AddF64x2",A[A.SubF64x2=198]="SubF64x2",A[A.MulF64x2=199]="MulF64x2",A[A.DivF64x2=200]="DivF64x2",A[A.MinF64x2=201]="MinF64x2",A[A.MaxF64x2=202]="MaxF64x2",A[A.PminF64x2=203]="PminF64x2",A[A.PmaxF64x2=204]="PmaxF64x2",A[A.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",A[A.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",A[A.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",A[A.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",A[A.SwizzleI8x16=209]="SwizzleI8x16",A[A.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",A[A.RelaxedMinF32x4=211]="RelaxedMinF32x4",A[A.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",A[A.RelaxedMinF64x2=213]="RelaxedMinF64x2",A[A.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",A[A.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",A[A.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",A[A._last=216]="_last",A[A.AddSize=217]="AddSize",A[A.SubSize=218]="SubSize",A[A.MulSize=219]="MulSize",A[A.DivISize=220]="DivISize",A[A.DivUSize=221]="DivUSize",A[A.RemISize=222]="RemISize",A[A.RemUSize=223]="RemUSize",A[A.AndSize=224]="AndSize",A[A.OrSize=225]="OrSize",A[A.XorSize=226]="XorSize",A[A.ShlSize=227]="ShlSize",A[A.ShrISize=228]="ShrISize",A[A.ShrUSize=229]="ShrUSize",A[A.RotlSize=230]="RotlSize",A[A.RotrSize=231]="RotrSize",A[A.EqSize=232]="EqSize",A[A.NeSize=233]="NeSize",A[A.LtISize=234]="LtISize",A[A.LtUSize=235]="LtUSize",A[A.LeISize=236]="LeISize",A[A.LeUSize=237]="LeUSize",A[A.GtISize=238]="GtISize",A[A.GtUSize=239]="GtUSize",A[A.GeISize=240]="GeISize",A[A.GeUSize=241]="GeUSize",A))(Ni||{}),Zc=(a=>(a[a.Add=0]="Add",a[a.Sub=1]="Sub",a[a.And=2]="And",a[a.Or=3]="Or",a[a.Xor=4]="Xor",a[a.Xchg=5]="Xchg",a))(Zc||{}),Yc=(o=>(o[o.ExtractLaneI8x16=0]="ExtractLaneI8x16",o[o.ExtractLaneU8x16=1]="ExtractLaneU8x16",o[o.ExtractLaneI16x8=2]="ExtractLaneI16x8",o[o.ExtractLaneU16x8=3]="ExtractLaneU16x8",o[o.ExtractLaneI32x4=4]="ExtractLaneI32x4",o[o.ExtractLaneI64x2=5]="ExtractLaneI64x2",o[o.ExtractLaneF32x4=7]="ExtractLaneF32x4",o[o.ExtractLaneF64x2=8]="ExtractLaneF64x2",o))(Yc||{}),$c=(a=>(a[a.ReplaceLaneI8x16=0]="ReplaceLaneI8x16",a[a.ReplaceLaneI16x8=1]="ReplaceLaneI16x8",a[a.ReplaceLaneI32x4=2]="ReplaceLaneI32x4",a[a.ReplaceLaneI64x2=3]="ReplaceLaneI64x2",a[a.ReplaceLaneF32x4=5]="ReplaceLaneF32x4",a[a.ReplaceLaneF64x2=6]="ReplaceLaneF64x2",a))($c||{}),ep=(f=>(f[f.ShlI8x16=0]="ShlI8x16",f[f.ShrI8x16=1]="ShrI8x16",f[f.ShrU8x16=2]="ShrU8x16",f[f.ShlI16x8=3]="ShlI16x8",f[f.ShrI16x8=4]="ShrI16x8",f[f.ShrU16x8=5]="ShrU16x8",f[f.ShlI32x4=6]="ShlI32x4",f[f.ShrI32x4=7]="ShrI32x4",f[f.ShrU32x4=8]="ShrU32x4",f[f.ShlI64x2=9]="ShlI64x2",f[f.ShrI64x2=10]="ShrI64x2",f[f.ShrU64x2=11]="ShrU64x2",f))(ep||{}),tp=(f=>(f[f.Load8Splat=0]="Load8Splat",f[f.Load16Splat=1]="Load16Splat",f[f.Load32Splat=2]="Load32Splat",f[f.Load64Splat=3]="Load64Splat",f[f.Load8x8S=4]="Load8x8S",f[f.Load8x8U=5]="Load8x8U",f[f.Load16x4S=6]="Load16x4S",f[f.Load16x4U=7]="Load16x4U",f[f.Load32x2S=8]="Load32x2S",f[f.Load32x2U=9]="Load32x2U",f[f.Load32Zero=10]="Load32Zero",f[f.Load64Zero=11]="Load64Zero",f))(tp||{}),rp=(o=>(o[o.Load8Lane=0]="Load8Lane",o[o.Load16Lane=1]="Load16Lane",o[o.Load32Lane=2]="Load32Lane",o[o.Load64Lane=3]="Load64Lane",o[o.Store8Lane=4]="Store8Lane",o[o.Store16Lane=5]="Store16Lane",o[o.Store32Lane=6]="Store32Lane",o[o.Store64Lane=7]="Store64Lane",o))(rp||{}),ip=(p=>(p[p.Bitselect=0]="Bitselect",p[p.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",p[p.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",p[p.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",p[p.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",p[p.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",p[p.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",p[p.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",p[p.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",p[p.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",p))(ip||{}),vg=(t=>(t[t.NonNull=0]="NonNull",t[t.AnyConvertExtern=1]="AnyConvertExtern",t[t.ExternConvertAny=2]="ExternConvertAny",t))(vg||{}),Eg=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Eg||{}),Sg=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(Sg||{}),Ig=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(Ig||{}),kg=(t=>(t[t.LossyUTF8Array=0]="LossyUTF8Array",t[t.WTF16Array=1]="WTF16Array",t[t.FromCodePoint=2]="FromCodePoint",t))(kg||{}),Rg=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Rg||{}),Fg=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(Fg||{}),wg=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(wg||{}),jl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(jl||{}),Li=class{constructor(i,e){this.buffer=i;this.offset=e}},Ot=class r{constructor(i,e,t){this.ref=i;this.useShadowStack=e;this.sizeType=t;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(t==N.I32||t==N.I64),this.lit=gt(wo())}static create(i,e){return new r(Y_(),i,e)}static createFrom(i,e,t){let n=Kn(i),s=new r(oy(n,i.length),e,t);return ie(changetype(n)),s}i32(i){let e=this.lit;return ef(e,i),ui(this.ref,e)}i64(i,e=0){let t=this.lit;return og(t,i64_new(i,e)),ui(this.ref,t)}usize(i){return i64_is(i)?this.sizeType==N.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==N.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return tf(e,i),ui(this.ref,e)}f64(i){let e=this.lit;return rf(e,i),ui(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let t=0;t<16;++t)Ge(e+t,unchecked(i[t]));return nf(e,e),ui(this.ref,e)}ref_null(i){return ah(this.ref,i)}ref_eq(i,e){return _h(this.ref,i,e)}string_eq(i,e){return pc(this.ref,0,i,e)}string_compare(i,e){return pc(this.ref,1,i,e)}unary(i,e){if(i>141){let t=this.sizeType==N.I64;switch(i){case 142:i=t?1:0;break;case 143:i=t?3:2;break;case 144:i=t?5:4;break;case 145:i=t?21:20;break;default:assert(!1)}}return Zf(this.ref,i,e)}binary(i,e,t){if(i>216){let n=this.sizeType==N.I64;switch(i){case 217:i=n?25:0;break;case 218:i=n?26:1;break;case 219:i=n?27:2;break;case 220:i=n?28:3;break;case 221:i=n?29:4;break;case 222:i=n?30:5;break;case 223:i=n?31:6;break;case 224:i=n?32:7;break;case 225:i=n?33:8;break;case 226:i=n?34:9;break;case 227:i=n?35:10;break;case 228:i=n?36:11;break;case 229:i=n?37:12;break;case 230:i=n?38:13;break;case 231:i=n?39:14;break;case 232:i=n?40:15;break;case 233:i=n?41:16;break;case 234:i=n?42:17;break;case 235:i=n?43:18;break;case 236:i=n?44:19;break;case 237:i=n?45:20;break;case 238:i=n?46:21;break;case 239:i=n?47:22;break;case 240:i=n?48:23;break;case 241:i=n?49:24;break;default:assert(!1)}}return rd(this.ref,i,e,t)}wide_int_add_sub(i,e,t,n,s){return ed(this.ref,i,e,t,n,s)}wide_int_mul(i,e,t){return td(this.ref,i,e,t)}memory_size(i=P.DefaultMemory,e=!1){let t=this.allocStringCached(i);return Nf(this.ref,t,e)}memory_grow(i,e=P.DefaultMemory,t=!1){let n=this.allocStringCached(e);return Mf(this.ref,i,n,t)}table_size(i){let e=this.allocStringCached(i);return yh(this.ref,e)}table_grow(i,e,t=0){let n=this.allocStringCached(i);return gh(this.ref,n,t,e)}local_get(i,e){return Ff(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=Mt(i);return assert(e==N.I32||e==N.Unreachable),this.call(y.tostack,[i],e)}return i}local_tee(i,e,t,n=-1){return n==-1&&(n=Mt(e)),t&&this.useShadowStack&&(e=this.tostack(e)),wf(this.ref,i,e,n)}global_get(i,e){let t=this.allocStringCached(i);return Cf(this.ref,t,e)}table_get(i,e,t){let n=this.allocStringCached(i);return hh(this.ref,n,e,t)}load(i,e,t,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return Gf(this.ref,i,e,s,a,n,t,o)}store(i,e,t,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return Wf(this.ref,i,s,a,e,t,n,o)}atomic_load(i,e,t,n=0,s=P.DefaultMemory,a=1){let l=this.allocStringCached(s);return qf(this.ref,i,n,t,e,l,a)}atomic_store(i,e,t,n,s=0,a=P.DefaultMemory,l=1){let o=this.allocStringCached(a);return Kf(this.ref,i,s,e,t,n,o,l)}atomic_rmw(i,e,t,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return dd(this.ref,i,e,t,n,s,a,u,o)}atomic_cmpxchg(i,e,t,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return yd(this.ref,i,e,t,n,s,a,u,o)}atomic_wait(i,e,t,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return Td(this.ref,i,e,t,n,a)}atomic_notify(i,e,t=P.DefaultMemory){let n=this.allocStringCached(t);return Sd(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return Rd(this.ref,e)}local_set(i,e,t){return t&&this.useShadowStack&&(e=this.tostack(e)),bn(this.ref,i,e)}global_set(i,e){let t=this.allocStringCached(i);return Pf(this.ref,t,e)}table_set(i,e,t){let n=this.allocStringCached(i);return mh(this.ref,n,e,t)}block(i,e,t=N.None){let n=this.allocStringCached(i),s=he(e),a=lf(this.ref,n,s,e.length,t);return ie(s),a}flatten(i,e=N.None){let t=i.length;if(t==0)return this.nop();if(t==1){let n=i[0];switch(re(n)){case 19:case 56:case 23:return n}let s=le(n);return s!=N.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,t=0){let n=this.allocStringCached(i);return hf(this.ref,n,e,t)}drop(i){return Mo(this.ref,i)}maybeDrop(i){let e=Mt(i);return e!=N.None&&e!=N.Unreachable?Mo(this.ref,i):i}maybeDropCondition(i,e){return(Gi(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],le(e)):e}loop(i,e){let t=this.allocStringCached(i);return ff(this.ref,t,e)}if(i,e,t=0){return uf(this.ref,i,e,t)}nop(){return _d(this.ref)}return(i=0){return pd(this.ref,i)}select(i,e,t){return ad(this.ref,t,i,e)}switch(i,e,t,n=0){let s=i.length,a=new Array(s);for(let p=0;p<s;++p)unchecked(a[p]=this.allocStringCached(i[p]));let l=he(a),o=this.allocStringCached(e),u=gf(this.ref,l,s,o,t,n);return ie(l),u}call(i,e,t,n=!1){let s=this.allocStringCached(i),a=he(e),l=n?Sf(this.ref,s,a,e?e.length:0,t):Ef(this.ref,s,a,e?e.length:0,t);return ie(a),l}return_call(i,e,t){return this.call(i,e,t,!0)}call_indirect(i,e,t,n,s,a=!1){let l=this.allocStringCached(i??P.DefaultTable),o=he(t),u=a?Rf(this.ref,l,e,o,t?t.length:0,n,s):If(this.ref,l,e,o,t?t.length:0,n,s);return ie(o),u}return_call_indirect(i,e,t,n,s){return this.call_indirect(i,e,t,n,s,!0)}unreachable(){return fd(this.ref)}memory_copy(i,e,t,n=P.DefaultMemory,s=P.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return Yd(this.ref,i,e,t,a,l)}memory_fill(i,e,t,n=P.DefaultMemory){let s=this.allocStringCached(n);return rh(this.ref,i,e,t,s)}try(i,e,t,n,s=null){let a=t.length,l=new Array(a);for(let d=0;d<a;++d)l[d]=this.allocStringCached(t[d]);let o=he(l),u=he(n),p=this.allocStringCached(i),_=this.allocStringCached(s),f=bh(this.ref,p,e,o,a,u,n.length,_);return ie(u),ie(o),f}throw(i,e){let t=this.allocStringCached(i),n=he(e),s=Ah(this.ref,t,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return Sh(this.ref,e)}pop(i){return wh(this.ref,i)}tuple_make(i){let e=he(i),t=Ih(this.ref,e,i.length);return ie(e),t}tuple_extract(i,e){return Rh(this.ref,i,e)}simd_extract(i,e,t){return Fd(this.ref,i,e,t)}simd_replace(i,e,t,n){return Cd(this.ref,i,e,t,n)}simd_shuffle(i,e,t){assert(t.length==16);let n=Kn(t),s=Ld(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,t,n){return Dd(this.ref,i,e,t,n)}simd_shift(i,e,t){return Vd(this.ref,i,e,t)}simd_load(i,e,t,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return Wd(this.ref,i,t,n,e,a)}simd_loadstorelane(i,e,t,n,s,a,l=P.DefaultMemory){let o=this.allocStringCached(l);return Kd(this.ref,i,t,n,s,e,a,o)}ref_is_null(i){return lh(this.ref,i)}ref_as(i,e){return mu(this.ref,i,e)}ref_as_nonnull(i){return Cg(le(i))?mu(this.ref,0,i):i}ref_func(i,e){let t=this.allocStringCached(i);return ch(this.ref,t,Yt(e))}i31_new(i){return Ch(this.ref,i)}i31_get(i,e){return Bh(this.ref,i,e)}addGlobal(i,e,t,n){let s=this.allocStringCached(i);return Gm(this.ref,s,e,t,n)}getGlobal(i){let e=this.allocStringCached(i);return xc(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return xc(this.ref,e)?(zm(this.ref,e),!0):!1}addTag(i,e,t){let n=this.allocStringCached(i);return jm(this.ref,n,e,t)}getTag(i){let e=this.allocStringCached(i);return Km(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);Hm(this.ref,e)}addFunction(i,e,t,n,s){let a=this.allocStringCached(i),l=he(n),o=ci(this.ref,a,e,t,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,t){vm(i,e,this.allocStringCached(t))}getFunction(i){let e=this.allocStringCached(i);return pi(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);wn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return pi(this.ref,e)!=0}addTemporaryFunction(i,e,t){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=he(e),a=ci(this.ref,n,Ze(e),i,0,0,t);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");wn(this.ref,i)}setStart(i){ty(this.ref,i)}addFunctionExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return fa(this.ref,t,n)}addTableExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Cm(this.ref,t,n)}addMemoryExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Pm(this.ref,t,n)}addGlobalExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Bm(this.ref,t,n)}addTagExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Lm(this.ref,t,n)}removeExport(i){let e=this.allocStringCached(i);ha(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return da(this.ref,e)!=0}addFunctionImport(i,e,t,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);Im(this.ref,a,l,o,n,s)}addTableImport(i,e,t){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(t);km(this.ref,n,s,a)}addMemoryImport(i,e,t,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(t);Rm(this.ref,s,a,l,n)}addGlobalImport(i,e,t,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);Fm(this.ref,a,l,o,n,s)}addTagImport(i,e,t,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);wm(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,t,n,s=null,a=P.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),p=t.length,_=new Array(p),f=new Uint8Array(p),d=new Array(p),h=new Array(p);for(let v=0;v<p;++v){let F=unchecked(t[v]),k=F.buffer,R=F.offset;unchecked(_[v]=Kn(k)),unchecked(f[v]=0),unchecked(d[v]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(h[v]=k.length)}let g=he(_),m=Kn(f),T=he(d),S=Hc(h);ey(this.ref,i,e,o,0,g,m,T,S,p,l,!1,u),ie(S),ie(T),ie(m),ie(g);for(let v=p-1;v>=0;--v)ie(unchecked(_[v]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,t,n,s){let a=this.allocStringCached(i),l=n.length,o=new Array(l);for(let _=0;_<l;++_)unchecked(o[_]=this.allocStringCached(n[_]));let u=he(o),p=Ac(this.ref,a);p?(Zm(p,e),Ym(p,t)):p=Tc(this.ref,a,e,t,N.Funcref),$m(this.ref,a,a,u,l,s),ie(u)}ensureFunctionTable(i){let e=this.allocStringCached(i);Ac(this.ref,e)||Tc(this.ref,e,0,r.UNLIMITED_TABLE,N.Funcref)}addCustomSection(i,e){let t=this.allocStringCached(i),n=Kn(e);dy(this.ref,t,n,e.length),ie(n)}getOptimizeLevel(){return Cy()}setOptimizeLevel(i){Py(i)}getShrinkLevel(){return By()}setShrinkLevel(i){Ly(i)}getDebugInfo(){return Ny()}setDebugInfo(i){My(i)}getTrapsNeverHappen(){return Dy()}setTrapsNeverHappen(i){Gy(i)}getClosedWorld(){return zy()}setClosedWorld(i){Uy(i)}getLowMemoryUnused(){return Vy()}setLowMemoryUnused(i){Oy(i)}getZeroFilledMemory(){return qy()}setZeroFilledMemory(i){Wy(i)}getFastMath(){return jy()}setFastMath(i){Ky(i)}getGenerateStackIR(){return Hy()}setGenerateStackIR(i){Qy(i)}getOptimizeStackIR(){return Xy()}setOptimizeStackIR(i){Jy(i)}getPassArgument(i){let e=this.allocStringCached(i),t=Zy(e);return t?Ke(t):null}setPassArgument(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);Yy(t,n)}clearPassArguments(){$y()}getAlwaysInlineMaxSize(){return eg()}setAlwaysInlineMaxSize(i){tg(i)}getFlexibleInlineMaxSize(){return rg()}setFlexibleInlineMaxSize(i){ig(i)}getOneCallerInlineMaxSize(){return ng()}setOneCallerInlineMaxSize(i){sg(i)}getAllowInliningFunctionsWithLoops(){return ag()}setAllowInliningFunctionsWithLoops(i){lg(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return _y(this.ref)}setFeatures(i){i&16&&(i|=524288),fy(this.ref,i)}runPasses(i,e=0){let t=i.length,n=new Array(t);for(let a=0;a<t;++a)n[a]=Ol(i[a]);let s=he(n);e?Em(e,this.ref,s,t):iy(this.ref,s,t),ie(s);for(let a=t-1;a>=0;--a)ie(n[a])}optimize(i,e,t=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(t),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=i>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),i>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(i<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(i>=2?4:0),i>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),i>=2&&a.push("once-reduction"),(i>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(i>=3||e>=1)&&(a.push("rse"),a.push("vacuum"),a.push("code-folding"),a.push("ssa-nomerge"),a.push("local-cse"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),i>=3&&(a.push("simplify-locals-nostructure"),a.push("flatten"),a.push("vacuum"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),a.push("local-cse"),a.push("licm"),a.push("merge-locals"),a.push("reorder-locals")),a.push("optimize-instructions"),i>=2&&a.push("avoid-reinterprets"),a.push("dce"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),this.getFeatures()&512&&a.push("tuple-optimization"),i>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):i>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(i>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(i>=2||e>=1)&&a.push("local-cse"),a.push("reorder-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("coalesce-locals"),a.push("reorder-locals"),a.push("vacuum"),(i>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),i>=3&&a.push("optimize-instructions"),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(i>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(i>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),i>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),i>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),i>=2||e>=1?(a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")):a.push("precompute"),a.push("directize"),a.push("dae-optimizing"),(i>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(i>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),i>=3&&(a.push("simplify-globals"),a.push("vacuum"),a.push("precompute-propagate"),a.push("inlining-optimizing"),a.push("directize"),a.push("dae-optimizing"),a.push("local-cse"),a.push("merge-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("vacuum"),a.push("inlining"),a.push("precompute-propagate"),a.push("rse"),a.push("vacuum"),a.push("ssa-nomerge"),a.push("simplify-locals"),a.push("coalesce-locals")),a.push("optimize-instructions"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("vacuum"),this.getFeatures()&16384&&a.push("string-gathering"),a.push("simplify-globals-optimizing"),a.push("remove-unused-brs"),a.push("optimize-instructions"),a.push("vacuum")),a.push("reorder-globals"),a.push("reorder-functions"),(i>=2||e>=1)&&a.push("duplicate-function-elimination"),e>=2&&a.push("merge-similar-functions"),a.push("memory-packing"),a.push("remove-unused-module-elements"),(i>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return ry(this.ref)==1}interpret(){uy(this.ref)}toBinary(i=null){assert(wo()>=ny());let e=this.lit,t=Ol(i);sy(e,this.ref,t);let n=tr(e+0),s=tr(e+4),a=tr(e+8),l=new Wl(k1(assert(n),s),Ke(a));return t&&ie(t),a&&ie(a),ie(n),l}toText(i=!0){let e=i?ly(this.ref):ay(this.ref),t=Ke(e);return e&&ie(e),t||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let t=Ol(i);return e.set(i,t),t}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let t=Ke(i);return e.set(i,t),t}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,t=i.length;e<t;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),$_(this.ref),this.ref=0}createRelooper(){return ql.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Nt(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return sf(i,this.ref)}runExpression(i,e,t=50,n=1){let s=Ay(this.ref,e,t,n),a=vy(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(le(a)==le(i))}return a}isConstExpression(i){switch(re(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Mi(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression($e(i))&&this.isConstExpression(Ve(i))}break}}return!1}addDebugInfoFile(i){let e=Ol(i),t=cy(this.ref,e);return ie(e),t}getDebugInfoFile(i){return Ke(py(this.ref,i))}setDebugLocation(i,e,t,n,s){Sm(i,e,t,n,s)}};function Ze(r){if(!r)return N.None;switch(r.length){case 0:return N.None;case 1:return r[0]}let i=he(r),e=B_(i,r.length);return ie(i),e}function np(r){let i=L_(r),e=gt(i<<2);N_(r,e);let t=new Array(i);for(let n=0;n<i;++n)unchecked(t[n]=tr(e+(n<<2)));return ie(e),t}function Cg(r){return M_(r)}function re(r){return Nt(r)}function le(r){return Mt(r)}function ne(r){return Hf(r)}function Ie(r){return i64_low(Ic(r))}function Le(r){return i64_high(Ic(r))}function sp(r,i){let e=0,t=0;return i?(e=Ie(r),t=Le(r)):e=ne(r),i64_new(e,t)}function Ee(r){return Qf(r)}function Se(r){return Xf(r)}function ap(r){let i=gt(16);Jf(r,i);let e=new Uint8Array(16);for(let t=0;t<16;++t)e[t]=Er(i+t);return ie(i),e}function Ye(r){if(re(r)!=14)return!1;let i=le(r);return i==N.I32?ne(r)==0:i==N.I64?(Ie(r)|Le(r))==0:i==N.F32?Ee(r)==0:i==N.F64?Se(r)==0:!1}function dt(r){if(re(r)!=14)return!1;let i=le(r);return i==N.I32?ne(r)!=0:i==N.I64?(Ie(r)|Le(r))!=0:i==N.F32?Ee(r)!=0:i==N.F64?Se(r)!=0:!1}function Kl(r){if(re(r)!=14)return!1;let i=le(r);if(i==N.F32){let e=Ee(r);return e==0&&f32_as_i32(e)<0}if(i==N.F64){let e=Se(r);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function e1(r){if(re(r)!=14)return!1;let i=le(r);return i==N.F32?isNaN(Ee(r)):i==N.F64?isNaN(Se(r)):!1}function Hl(r,i){let e=re(i),t=le(i);if(t==N.F32||t==N.F64){if(e==14)return isNaN(t==N.F32?Ee(i):Se(i));if(e==10){let n=r.runExpression(i,0,8);if(n)return isNaN(t==N.F32?Ee(n):Se(n))}}return!1}function Tt(r){return ia(r)}function Ql(r){return oi(r)}function Xl(r){return Tr(r)}function Jn(r){return na(r)}function Zn(r){return Ke(aa(r))}function Mi(r){return id(r)}function $e(r){return En(r)}function Ve(r){return Sn(r)}function Yn(r){return Yf(r)}function Jl(r){return vn(r)}function lp(r){return Vf(r)}function t1(r){return Uf(r)}function r1(r){return Tn(r)}function op(r){return zf(r)}function i1(r){return la(r)}function n1(r){return oa(r)}function s1(r){return Ar(r)}function a1(r){return An(r)}function $n(r){return Ke(Ys(r))}function es(r){return cn(r)}function ts(r,i){return pn(r,i)}function Zl(r){return _n(r)}function rs(r){return fn(r)}function Di(r){return dn(r)}function l1(r){return Ke($s(r))}function o1(r){return hn(r)}function u1(r){return Ke(ea(r))}function c1(r){return mn(r)}function up(r){return In(r)}function cp(r){return kn(r)}function p1(r){return Rn(r)}function _1(r){return Fn(r)}function f1(r){return vr(r)}function is(r){return Ke(li(r))}function At(r){return $t(r)}function He(r,i){return er(r,i)}function d1(r){return xn(r)}function h1(r){return Dt(r)}function pp(r){return Ke(fi(r))}function m1(r){return Pn(r)}function y1(r){return Bn(r)}function g1(r){let i=pa(r),e=new Array(i);for(let t=0;t<i;++t)unchecked(e[t]=_a(r,t));return e}function b1(r){return Ke(Om(r))}function x1(r){return qm(r)}function _p(r){return Wm(r)}function T1(r){return ma(r)}function A1(r){return Ke(Qm(r))}function v1(r){return Xm(r)}function E1(r){return Jm(r)}var ql=class r{constructor(i,e){this.module=i;this.ref=e}static create(i){return new r(i,my(i.ref))}addBlock(i){return yy(this.ref,i)}addBranch(i,e,t=0,n=0){gy(i,e,t,n)}addBlockWithSwitch(i,e){return by(this.ref,i,e)}addBranchForSwitch(i,e,t,n=0){let s=S1(t);xy(i,e,s,t.length,n),ie(s)}renderAndDispose(i,e){return Ty(this.ref,i,e)}},Qn=class{constructor(i,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=i,this.condition=e}addOrReplaceCase(i,e){let t=this.values.indexOf(i),n=this.addCode(e);t>=0?this.indexes[t]=n:(this.values.push(i),this.indexes.push(n))}addCase(i,e){this.values.push(i),this.indexes.push(this.addCode(e))}addCode(i){let e=this.cases,t=e.indexOf(i);return t<0&&(t=e.length,e.push(i)),t}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let t=this.module,n=this.cases,s=n.length;if(!s)return t.drop(this.condition);let a=this.values,l=a.length,o=this.indexes,u=new Array(1+l+1),p=new Array(s);for(let g=0;g<s;++g)unchecked(p[g]=`case${g}${e}`);u[0]=t.local_set(i,this.condition,!1);for(let g=0;g<l;++g){let m=unchecked(o[g]);unchecked(u[1+g]=t.br(p[m],t.binary(15,t.local_get(i,N.I32),t.i32(a[g]))))}let _=this.defaultIndex,f=`default${e}`;u[1+l]=t.br(~_?p[_]:f);let d=t.block(p[0],u);for(let g=1;g<s;++g){let m=n[g-1];m.unshift(d),d=t.block(unchecked(p[g]),m)}let h=n[s-1];return h.unshift(d),t.block(~_?null:f,h)}},fp=(T=>(T[T.None=0]="None",T[T.Branches=1]="Branches",T[T.Calls=2]="Calls",T[T.ReadsLocal=4]="ReadsLocal",T[T.WritesLocal=8]="WritesLocal",T[T.ReadsGlobal=16]="ReadsGlobal",T[T.WritesGlobal=32]="WritesGlobal",T[T.ReadsMemory=64]="ReadsMemory",T[T.WritesMemory=128]="WritesMemory",T[T.ReadsTable=256]="ReadsTable",T[T.WritesTable=512]="WritesTable",T[T.ImplicitTrap=1024]="ImplicitTrap",T[T.IsAtomic=2048]="IsAtomic",T[T.Throws=4096]="Throws",T[T.DanglingPop=8192]="DanglingPop",T[T.TrapsNeverHappen=16384]="TrapsNeverHappen",T[T.Any=32767]="Any",T))(fp||{});function Gi(r,i){return hy(r,i)}function Yl(r,i){return(Gi(r,i)&-21)!=0}function Kn(r){if(!r)return 0;let i=r.length,e=gt(i);for(let t=0;t<i;++t)Ge(e+t,unchecked(r[t]));return e}function S1(r){if(!r)return 0;let i=r.length,e=gt(i<<2),t=e;for(let n=0;n<i;++n){let s=unchecked(r[n]);ga(t,s),t+=4}return e}function Hc(r){if(!r)return 0;let i=r.length,e=gt(i<<2),t=e;for(let n=0;n<i;++n){let s=unchecked(r[n]);ga(t,s),t+=4}return e}function he(r){if(!r)return 0;assert(ASC_TARGET!=2);let i=r.length,e=gt(i<<2),t=e;for(let n=0,s=i;n<s;++n){let a=unchecked(r[n]);ga(t,a),t+=4}return e}function I1(r){let i=0;for(let e=0,t=r.length;e<t;++e){let n=r.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:Ai(n)&&e+1<t&&Ra(r.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function Ol(r){if(r==null)return 0;let i=I1(r),e=gt(i+1)>>>0,t=e;if(i==r.length)for(let n=0,s=r.length;n<s;++n){let a=r.charCodeAt(n)>>>0;Ge(t++,a)}else for(let n=0,s=r.length;n<s;++n){let a=r.charCodeAt(n)>>>0,l;a<=127?Ge(t++,a):a<=2047?(Ge(t++,192|a>>>6),Ge(t++,128|a&63)):Ai(a)&&n+1<s&&Ra(l=r.charCodeAt(n+1))?(a=Gn(a,l),++n,Ge(t++,240|a>>>18),Ge(t++,128|a>>>12&63),Ge(t++,128|a>>>6&63),Ge(t++,128|a&63)):(Ge(t++,224|a>>>12),Ge(t++,128|a>>>6&63),Ge(t++,128|a&63))}return Ge(t,0),e}function k1(r,i){let e=new Uint8Array(i);for(let t=0;t<i;++t)unchecked(e[t]=Er(r+t));return e}function Ke(r){if(!r)return null;let i=new Array,e,t,n,s;for(;e=Er(r++);){if(!(e&128)){i.push(e);continue}if(t=Er(r++)&63,(e&224)==192){i.push((e&31)<<6|t);continue}if(n=Er(r++)&63,(e&240)==224?e=(e&15)<<12|t<<6|n:(s=Er(r++)&63,(e&248)==240?e=(e&7)<<18|t<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(Dn|a>>>10),i.push(Ti|a&1023)}}return String.fromCharCodes(i)}var Wl=class{constructor(i,e){this.output=i;this.sourceMap=e}},Vt=!1;function ns(r){if(r==c.void)return N.None;let i=Pg(r);if(i)return i;let e=r;if(r=r.nonNullableType,i=r.ref)return me(Yt(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let t=Ey(0),n=new Map;nr(t,n,r);let s=ya(t),a=gt(max(4*s,8));if(!Ry(t,a,a,a+4)){let l=tr(a),o=tr(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Qc.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let p=l[o];assert(!p.is(512));let _=tr(a+4*o),f=me(_,!1);assert(!p.ref),p.ref=f,Vt&&console.log(` set ${p.toString()}`);let d=p.getClass();if(d){let h=d.program.module;Fy(h.ref,_,h.allocStringCached(d.internalName));let g=d.members;if(g){let m=Z_(_),T=0;for(let S=Map_values(g),v=0,F=S.length;v<F;++v){let k=S[v];if(k.kind!=10)continue;let R=k.instance;!R||!R.isField||wy(h.ref,_,T++,h.allocStringCached(R.name))}assert(m==T)}}}return ie(a),Vt&&console.log(` finalize ${r.toString()}`),i=assert(r.ref),me(Yt(i),e.is(512))}function Pg(r){switch(r.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return N.I32;case 4:case 9:return N.I64;case 5:case 10:{if(r.isInternalReference)break;return r.size==64?N.I64:N.I32}case 11:return N.F32;case 12:return N.F64;case 13:return N.V128;case 15:return me(Te.Func,r.is(512));case 14:return me(Te.Extern,r.is(512));case 16:return me(Te.Any,r.is(512));case 17:return me(Te.Eq,r.is(512));case 18:return me(Te.Struct,r.is(512));case 19:return me(Te.Array,r.is(512));case 20:return me(Te.I31,r.is(512));case 21:return me(Te.String,r.is(512));case 25:assert(!1)}return 0}function R1(r){switch(r.kind){case 0:case 1:case 6:return Hn.I8;case 2:case 7:return Hn.I16}return Hn.NotPacked}function nr(r,i,e){if(e==c.void)return N.None;let t=Pg(e);if(t||(assert(!e.is(512)),t=e.ref))return t;if(i.has(e))return Vt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Vt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=nr(r,i,a.type));let o=ya(r);vc(r,1),Vt&&console.log(` block [${o}]: ${e.toString()}`);let u=Ec(r,o);t=di(r,u,!1),i.set(e,t);let p=new Array,_=new Array,f=new Array,d=n.members;if(d)for(let T=Map_values(d),S=0,v=T.length;S<v;++S){let F=T[S];if(F.kind!=10)continue;let k=F.instance;if(!k||!k.isField)continue;let R=k.type;Vt&&console.log(` field ${R.toString()}`),R.is(512)?p.push(di(r,Yt(nr(r,i,R.nonNullableType)),!0)):p.push(nr(r,i,R)),_.push(R1(R)),f.push(1)}let h=he(p),g=Hc(_),m=Hc(f);return Vt&&console.log(` concretize [${o}]: ${e.toString()}`),Iy(r,o,h,g,m,p.length),a&&(Vt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),ky(r,o,Yt(l))),ie(m),ie(g),ie(h),t}let s=e.getSignature();if(s){let a=ya(r);vc(r,1);let l=di(r,Ec(r,a),!1);i.set(e,l);let o=new Array,u=new Array,p=s.parameterTypes;for(let h=0,g=p.length;h<g;++h){let m=p[h];m.is(512)?o.push(di(r,Yt(nr(r,i,m.nonNullableType)),!0)):o.push(nr(r,i,m))}let _=s.returnType;u.push(_==c.void?N.None:_.is(512)?di(r,Yt(nr(r,i,_.nonNullableType)),!0):nr(r,i,_));let f;if(o.length>1){let h=he(o);f=Sc(r,h,o.length),ie(h)}else f=o.length?o[0]:N.None;let d;if(u.length>1){let h=he(u);d=Sc(r,h,u.length),ie(h)}else d=u[0];return Vt&&console.log(` concretize [${a}]: ${e.toString()}`),Sy(r,a,f,d),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var eo=(k=>(k[k.None=0]="None",k[k.Returns=1]="Returns",k[k.ReturnsWrapped=2]="ReturnsWrapped",k[k.ReturnsNonNull=4]="ReturnsNonNull",k[k.Throws=8]="Throws",k[k.Breaks=16]="Breaks",k[k.Continues=32]="Continues",k[k.AccessesThis=64]="AccessesThis",k[k.CallsSuper=128]="CallsSuper",k[k.Terminates=256]="Terminates",k[k.ConditionallyReturns=512]="ConditionallyReturns",k[k.ConditionallyThrows=1024]="ConditionallyThrows",k[k.ConditionallyBreaks=2048]="ConditionallyBreaks",k[k.ConditionallyContinues=4096]="ConditionallyContinues",k[k.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",k[k.MayReturnNonThis=16384]="MayReturnNonThis",k[k.UncheckedContext=32768]="UncheckedContext",k[k.CtorParamContext=65536]="CtorParamContext",k[k.InlineContext=131072]="InlineContext",k[k.AnyCategorical=511]="AnyCategorical",k[k.AnyConditional=15872]="AnyConditional",k))(eo||{}),ss=(s=>(s[s.None=0]="None",s[s.Constant=1]="Constant",s[s.Wrapped=2]="Wrapped",s[s.NonNull=4]="NonNull",s[s.Initialized=8]="Initialized",s))(ss||{}),dp=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(dp||{}),hp=(t=>(t[t.Unknown=0]="Unknown",t[t.True=1]="True",t[t.False=2]="False",t))(hp||{}),qt=class r{constructor(i,e=null){this.targetFunction=i;this.inlineFunction=e;this.parent=null;this.outer=null;this.flags=0;this.continueLabel=null;this.breakLabel=null;this.scopedLocals=null;this.scopedTypeAlias=null;this.localFlags=[];this.thisFieldFlags=null;this.inlineReturnLabel=null;this.trueFlows=null;this.falseFlows=null;this.tryFinallyPendingActionLocal=-1;this.tryFinallyPendingValueLocal=-1;this.tryFinallyDispatchLabel=null;this.tryFinallyReturnType=null}static createDefault(i){let e=new r(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let t=new r(i,e);return t.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&t.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&t.set(32768),t}get isInline(){return this.inlineFunction!=null}get isInTryFinally(){return this.tryFinallyPendingActionLocal>=0}getTryFinallyContext(){let i=this;for(;i;){if(i.tryFinallyPendingActionLocal>=0)return i;i=i.parent}return null}get sourceFunction(){let i=this.inlineFunction;return i||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}deriveConditionalFlags(){let i=this.flags&15872;return this.is(1)&&(i|=512),this.is(8)&&(i|=1024),this.is(16)&&(i|=2048),this.is(32)&&(i|=4096),this.is(64)&&(i|=8192),i}fork(i=!1,e=i){let t=new r(this.targetFunction,this.inlineFunction);if(t.parent=this,t.flags=this.flags,t.outer=this.outer,i?t.flags&=-2065:t.breakLabel=this.breakLabel,e?t.flags&=-4129:t.continueLabel=this.continueLabel,t.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);t.thisFieldFlags=_e(n)}else assert(!this.thisFieldFlags);return t.inlineReturnLabel=this.inlineReturnLabel,t}forkThen(i,e=!1,t=e){let n=this.fork(e,t),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let t=this.trueFlows;t||(this.trueFlows=t=new Map),t.set(i,e)}forkElse(i){let e=this.fork(),t=this.falseFlows;return t&&t.has(i)&&e.inherit(changetype(t.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let t=this.falseFlows;t||(this.falseFlows=t=new Map),t.set(i,e)}addScopedTypeAlias(i,e){let t=this.scopedTypeAlias;t||(this.scopedTypeAlias=t=new Map),t.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let t=e.scopedTypeAlias;if(t&&t.has(i))return assert(t.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let t=this.sourceFunction.parent;return t.kind==5?t.flow.lookupTypeAlias(i):null}getTempLocal(i){let e=this.targetFunction.addLocal(i);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(i){let e=this.scopedLocals;return e&&e.has(i)?assert(e.get(i)):null}addScopedLocal(i,e){let t=this.getTempLocal(e);t.name=i,t.internalName=Ne(i,t.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,t.set(67108864),n.set(i,t),t}addScopedDummyLocal(i,e,t){let n=new Qe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,t.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,t,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(i)){let l=assert(s.get(i));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,i):this.program.errorRelated(2300,n.range,l.declaration.name.range,i)),l}assert(t<this.targetFunction.localsByIndex.length);let a=new Qe(i,t,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let t=assert(e.get(i));assert(t.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let t=e.scopedLocals;if(t&&t.has(i))return assert(t.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let t=e.lookupLocal(i);if(t)return t;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,t=!0){if(i<0)return t;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,t=!0){if(i<0)return t;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let t=this.localFlags,n=i<t.length?unchecked(t[i]):0;t[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let t=this.localFlags,n=i<t.length?unchecked(t[i]):0;t[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let t=e;this.thisFieldFlags=new Map;let n=t.members;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=10)continue;let u=o.instance;!u||!u.isField||(u.prototype.parent!=t||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let t=this.thisFieldFlags;return t!=null&&t.has(i)?(changetype(t.get(i))&e)==e:!1}setThisFieldFlag(i,e){let t=this.thisFieldFlags;if(t)if(assert(this.sourceFunction.is(524288)),t.has(i)){let n=changetype(t.get(i));t.set(i,n|e)}else t.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,t=i.breakStack;return t?t.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,t=assert(e.breakStack);assert(t.length),assert(t.pop()==i)}inherit(i){assert(i.targetFunction==this.targetFunction);let e=i.flags;this.breakLabel!=i.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=i.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=i.localFlags,this.thisFieldFlags=i.thisFieldFlags}mergeSideEffects(i){assert(i.targetFunction==this.targetFunction);let e=this.flags,t=i.flags,n=0;e&1?n|=1:t&1?n|=512:n|=(e|t)&512,n|=e&t&2,n|=e&t&4,e&8?n|=8:t&8?n|=1024:n|=(e|t)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?t&16?n|=2048:n|=(e|t)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?t&32?n|=4096:n|=(e|t)&4096:n|=e&4096,e&64?t&64?n|=64:n|=8192:t&64&&(n|=8192),n|=(e|t)&16384,n|=e&t&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,t=e.length,n=i.localFlags,s=n.length,a=max(t,s);for(let l=0;l<a;++l){let o=l<t?e[l]:0,u=l<s?n[l]:0;e[l]=o&u&15}}inheritAlternatives(i,e){assert(i.targetFunction==e.targetFunction),assert(i.targetFunction==this.targetFunction);let t=i.flags,n=e.flags,s=0;t&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(t|n)&512,t&2&&n&2&&(s|=2),t&4&&n&4&&(s|=4),t&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(t|n)&1024,t&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(t|n)&2048,t&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(t|n)&4096,t&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(t|n)&8192,s|=(t|n)&16384,t&128&&n&128&&(s|=128),t&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(t&256){if(!(n&256)){let o=e.localFlags;for(let u=0,p=o.length;u<p;++u)a[u]=o[u]}}else if(n&256){let o=i.localFlags;for(let u=0,p=o.length;u<p;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,p=e.localFlags,_=p.length,f=max(u,_);for(let d=0;d<f;++d){let h=d<u?o[d]:0,g=d<_?p[d]:0;a[d]=h&g&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let p=Map_keys(l),_=0,f=p.length;_<f;++_){let d=p[_];(changetype(l.get(d))&1)!=0&&u.has(d)&&changetype(u.get(d))&1&&o.set(d,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let t=this.localFlags.length,n=i.localFlags.length,s=this.targetFunction;assert(s==i.targetFunction);let a=s.localsByIndex;assert(a==i.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(t,n);o<u;++o){let _=a[o].type;_.isShortIntegerValue&&this.isLocalFlag(o,2)&&!i.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),_.isNullableReference&&this.isLocalFlag(o,4)&&!i.isLocalFlag(o,4)&&(this.unsetLocalFlag(o,4),l=!0)}return l&&(assert(a.length>=e),a.length=e,this.localFlags.length>e&&(this.localFlags.length=e)),l}isNonnull(i,e){if(!e.isNullableReference)return!0;switch(re(i)){case 9:{if(!Jn(i))break;let t=this.targetFunction.localsByIndex[Ql(i)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}case 8:{let t=this.targetFunction.localsByIndex[Tt(i)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch(re(i)){case 9:{if(!Jn(i))break;let t=this.targetFunction.localsByIndex[Ql(i)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4),this.inheritNonnullIfTrue(Xl(i),e);break}case 8:{let t=this.targetFunction.localsByIndex[Tt(i)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4);break}case 2:{let t=Di(i);t&&Ye(t)&&(this.inheritNonnullIfTrue(Zl(i),e),this.inheritNonnullIfTrue(rs(i),e));break}case 15:{switch(Yn(i)){case 20:case 21:{this.inheritNonnullIfFalse(Jl(i),e);break}}break}case 16:{switch(Mi(i)){case 15:case 40:{let t=$e(i),n=Ve(i);dt(t)?this.inheritNonnullIfTrue(n,e):dt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=$e(i),n=Ve(i);Ye(t)?this.inheritNonnullIfTrue(n,e):Ye(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=is(i);if(t==y.String_eq){assert(At(i)==2);let n=He(i,0),s=He(i,1);dt(n)?this.inheritNonnullIfTrue(s,e):dt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==y.String_ne){assert(At(i)==2);let n=He(i,0),s=He(i,1);Ye(n)?this.inheritNonnullIfTrue(s,e):Ye(s)&&this.inheritNonnullIfTrue(n,e)}else t==y.String_not?(assert(At(i)==1),this.inheritNonnullIfFalse(He(i,0),e)):t==y.tostack&&(assert(At(i)==1),this.inheritNonnullIfTrue(He(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch(re(i)){case 15:{switch(Yn(i)){case 20:case 21:{this.inheritNonnullIfTrue(Jl(i),e);break}}break}case 2:{let t=rs(i);Di(i)&&dt(t)&&(this.inheritNonnullIfFalse(Zl(i),e),this.inheritNonnullIfFalse(Di(i),e));break}case 16:{switch(Mi(i)){case 15:case 40:{let t=$e(i),n=Ve(i);Ye(t)?this.inheritNonnullIfTrue(n,e):Ye(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=$e(i),n=Ve(i);dt(t)?this.inheritNonnullIfTrue(n,e):dt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=is(i);if(t==y.String_eq){assert(At(i)==2);let n=He(i,0),s=He(i,1);Ye(n)?this.inheritNonnullIfTrue(s,e):Ye(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==y.String_ne){assert(At(i)==2);let n=He(i,0),s=He(i,1);dt(n)?this.inheritNonnullIfTrue(s,e):dt(s)&&this.inheritNonnullIfTrue(n,e)}else t==y.String_not?(assert(At(i)==1),this.inheritNonnullIfTrue(He(i,0),e)):t==y.tostack&&(assert(At(i)==1),this.inheritNonnullIfFalse(He(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let t;switch(re(i)){case 8:{let n=this.targetFunction.localsByIndex[Tt(i)];return!this.isLocalFlag(n.index,2,!0)||$l(n.type,e)}case 9:return assert(Jn(i)),this.canOverflow(Xl(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Zn(i))));return assert(n.kind==0||n.kind==3),$l(n.type,e)}case 16:{switch(Mi(i)){case 15:case 40:case 57:case 70:case 16:case 41:case 58:case 71:case 17:case 18:case 42:case 43:case 59:case 72:case 19:case 20:case 44:case 45:case 60:case 73:case 21:case 22:case 46:case 47:case 61:case 74:case 23:case 24:case 48:case 49:case 62:case 75:return!1;case 2:return!(re(t=$e(i))==14&&(ne(t)==0||ne(t)==1&&!this.canOverflow(Ve(i),e))||re(t=Ve(i))==14&&(ne(t)==0||ne(t)==1&&!this.canOverflow($e(i),e)));case 7:return!(re(t=$e(i))==14&&ne(t)<=e.computeSmallIntegerMask(c.i32)||!this.canOverflow(t,e)||re(t=Ve(i))==14&&ne(t)<=e.computeSmallIntegerMask(c.i32)||!this.canOverflow(t,e));case 10:{let n=32-e.size;return re(t=Ve(i))!=14||ne(t)<n}case 11:{let n=32-e.size;return this.canOverflow($e(i),e)&&(re(t=Ve(i))!=14||ne(t)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!(re(t=Ve(i))==14&&ne(t)>n):this.canOverflow($e(i),e)&&!(re(t=Ve(i))==14&&ne(t)>=n)}case 4:case 5:case 6:return this.canOverflow($e(i),e)||this.canOverflow(Ve(i),e)}break}case 15:{switch(Yn(i)){case 20:case 21:return!1;case 0:case 2:case 4:return e.size<7;case 47:return e.size<(e.isUnsignedIntegerValue?32:8);case 49:return e.size<(e.isUnsignedIntegerValue?64:8);case 48:return e.size<(e.isUnsignedIntegerValue?32:16);case 50:return e.size<(e.isUnsignedIntegerValue?64:16);case 51:return e.size<(e.isUnsignedIntegerValue?64:32)}break}case 14:{let n=0;switch(le(i)){case N.I32:{n=ne(i);break}case N.I64:{n=Ie(i);break}case N.F32:{n=i32(Ee(i));break}case N.F64:{n=i32(Se(i));break}case N.V128:return!1;default:assert(!1)}switch(e.kind){case 0:return(n&-2)!=0;case 1:return n<i8.MIN_VALUE||n>i8.MAX_VALUE;case 2:return n<i16.MIN_VALUE||n>i16.MAX_VALUE;case 6:return n<0||n>u8.MAX_VALUE;case 7:return n<0||n>u16.MAX_VALUE}break}case 12:{let n,s=op(i);switch(lp(i)){case 1:{n=s?c.i8:c.u8;break}case 2:{n=s?c.i16:c.u16;break}default:{n=s?c.i32:c.u32;break}}return $l(n,e)}case 1:{if(!$n(i)){let n=assert(es(i)),s=ts(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(rs(i),e)||this.canOverflow(assert(Di(i)),e);case 17:return this.canOverflow(up(i),e)||this.canOverflow(cp(i),e);case 6:{let s=this.program.instancesByName,a=assert(is(i));if(s.has(a)){let l=assert(s.get(a));assert(l.kind==5);let o=l,u=o.signature.returnType;return!o.flow.is(2)||$l(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let t=new Array;return this.is(1)&&t.push("RETURNS"),this.is(2)&&t.push("RETURNS_WRAPPED"),this.is(4)&&t.push("RETURNS_NONNULL"),this.is(8)&&t.push("THROWS"),this.is(16)&&t.push("BREAKS"),this.is(32)&&t.push("CONTINUES"),this.is(64)&&t.push("ACCESSES_THIS"),this.is(128)&&t.push("CALLS_SUPER"),this.is(256)&&t.push("TERMINATES"),this.is(512)&&t.push("CONDITIONALLY_RETURNS"),this.is(1024)&&t.push("CONDITIONALLY_THROWS"),this.is(2048)&&t.push("CONDITIONALLY_BREAKS"),this.is(4096)&&t.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&t.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&t.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${t.join(" ")}`}};function $l(r,i){return i.isShortIntegerValue&&(!r.isIntegerValue||r.size>i.size||r.isSignedIntegerValue!=i.isSignedIntegerValue)}var no=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(no||{}),as=class extends Je{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.program=e}resolveType(e,t,n,s=null,a=0){if(e.currentlyResolving)return this.error(100,e.range,"Recursive types"),null;e.currentlyResolving=!0;let l=null;switch(e.kind){case 1:{l=this.resolveNamedType(e,t,n,s,a);break}case 2:{l=this.resolveFunctionType(e,t,n,s,a);break}case 3:{l=this.resolveTupleType(e,t,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,t,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let f=l.identifier.text;if(s&&s.has(f)){let d=assert(s.get(f));if(o&&o.length>0&&a==0&&this.error(2315,e.range,d.toString()),e.isNullable){if(d.isReference)return d.asNullable();a==0&&this.error(204,e.range,d.toString())}return d}}let p=this.resolveTypeName(l,t,n,a);if(!p)return null;let _=p.shadowType;if(_)p=_;else{if(p.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,p.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${p.name}/i32`),c.i32;if(p.kind==6||p.kind==8){let f=this.resolveClassInclTypeArguments(p,o,t,n,_e(s),e,a);return f?e.isNullable?f.type.asNullable():f.type:null}}if(p.kind==14){let f=p;if(p.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,p.internalName);let m=f.type;if(e.isNullable){if(m.isReference)return m.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return m}if(u){let m=l.identifier.text;if(ar.has(m)){let T=assert(ar.get(m)),S=new so(this,e,n,s,a);return T(S)}}let d=f.typeParameterNodes,h=null;if(d){if(h=this.resolveTypeArguments(d,o,t,n,s=_e(s),e,a),!h)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let g=this.resolveType(f.typeNode,t,p,s,a);if(!g)return null;if(e.isNullable){if(g.isReference)return g.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return g}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,t,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,t,n,s,a),!o))return null;let u=e.parameters,p=u.length,_=new Array(p),f=0,d=!1;for(let T=0;T<p;++T){let S=u[T];switch(S.parameterKind){case 0:{f=T+1;break}case 2:{assert(T==p-1),d=!0;break}}let v=S.type;if(Be(v))return a==0&&this.error(1110,v.range),null;let F=this.resolveType(v,t,n,s,a);if(!F)return null;if(F==c.void)return a==0&&this.error(214,v.range,F.toString()),null;_[T]=F}let h=e.returnType,g;if(Be(h))a==0&&this.error(1110,h.range),g=c.void;else if(g=this.resolveType(h,t,n,s,a),!g)return null;let m=Xe.create(this.program,_,g,o,f,d);return e.isNullable?m.type.asNullable():m.type}resolveTupleType(e,t,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],t,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,t,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,t,n,s=0){let a=null;if(t&&(a=t.lookupTypeAlias(e.identifier.text)),a||(a=n.lookup(e.identifier.text,!0)),!a)return s==0&&this.error(2304,e.range,e.identifier.text),null;let l=e,o=e.next;for(;o;){if(!(a=a.getMember(o.identifier.text)))return s==0&&this.error(2339,o.range,o.identifier.text,l.identifier.text),null;l=o,o=o.next}return a}resolveTypeArguments(e,t,n,s,a=new Map,l=null,o=0){let u=0,p=0;for(let h=0,g=e.length;h<g;++h)e[h].defaultType||++u,++p;let _=t?t.length:0;if(_<u||_>p)return o==0&&this.error(2558,_?ce.join(t[0].range,t[_-1].range):l.range,(_<u?u:p).toString(),_.toString()),null;let f=new Array(p),d=_e(a);a.clear();for(let h=0;h<p;++h){let g=h<_?this.resolveType(t[h],n,s,d,o):this.resolveType(assert(e[h].defaultType),n,s,_e(a),o);if(!g)return null;a.set(e[h].name.text,g),f[h]=g}return f}maybeInferCall(e,t,n,s=0){let a=e.typeArguments;if(a)return t.is(65536)?this.resolveFunctionInclTypeArguments(t,a,n.sourceFunction,_e(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,t.internalName),null);if(t.is(65536)){let l=this.inferGenericTypeArguments(e,t,t.typeParameterNodes,n,s);return l?this.resolveFunction(t,l,_e(n.contextualTypeArguments),s):null}return this.resolveFunction(t,null,new Map,s)}inferGenericTypeArguments(e,t,n,s,a=0){if(!n)return null;let l=_e(s.contextualTypeArguments),o=n.length,u=new Set;for(let m=0;m<o;++m){let T=n[m].name.text;l.set(T,c.auto),u.add(T)}let p=t.functionTypeNode.parameters,_=p.length,f,d;switch(e.kind){case 10:{let m=e;f=m.args,d=m.argumentsRange;break}case 18:{let m=e;f=m.args,d=m.argumentsRange;break}default:return assert(!1),null}let h=f.length;for(let m=0;m<_;++m){let T=m<h?f[m]:p[m].initializer;if(!T){if(p[m].parameterKind==1)continue;return a==0&&(p[m].parameterKind==2?this.error(1140,d.atEnd):this.error(2554,e.range,_.toString(),h.toString())),null}let S=p[m].type;if(p[m].parameterKind==2&&(S=S.typeArguments[0]),S.hasGenericComponent(n)){let v=this.resolveExpression(T,s,c.auto,1);v&&this.propagateInferredGenericTypes(S,v,t,l,u)}}let g=new Array(o);for(let m=0;m<o;++m){let T=n[m],S=T.name.text;if(l.has(S)){let v=assert(l.get(S));if(v!=c.auto){g[m]=v;continue}let F=T.defaultType;if(F){let k=t.parent,R=null;(k.kind==7||k.kind==5)&&(R=k.contextualTypeArguments);let C=this.resolveType(F,null,t,R,a);if(!C)return null;g[m]=C;continue}}if(a==0){let v;switch(e.kind){case 10:v=e.expression.range;break;case 18:v=e.typeName.range;break;default:return assert(!1),null}this.error(1140,v.atEnd)}return null}return g}propagateInferredGenericTypes(e,t,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=t.classReference;if(u){let p=this.resolveTypeName(l.name,null,n);if(!p||p.kind!=6)return;if(u.prototype==p){let _=u.typeArguments;if(_&&_.length==o.length){for(let f=0,d=_.length;f<d;++f)this.propagateInferredGenericTypes(o[f],_[f],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let p=assert(s.get(u));(p==c.auto||a.has(u)&&p.isAssignableTo(t))&&s.set(u,t)}}}else if(e.kind==2){let l=e,o=l.parameters,u=t.signatureReference;if(u){let p=u.parameterTypes;for(let h=0,g=min(p.length,o.length);h<g;++h)this.propagateInferredGenericTypes(o[h].type,p[h],n,s,a);let _=u.returnType;_!=c.void&&this.propagateInferredGenericTypes(l.returnType,_,n,s,a);let f=u.thisType,d=l.explicitThisType;f&&d&&this.propagateInferredGenericTypes(d,f,n,s,a);return}}}getTypeOfElement(e){let t=e.kind;if(t==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(ro(t)){let n=e.type,s=n.getClassOrWrapper(this.program);if(s){let a=s.wrappedType;a&&(n=a)}return n}return null}getElementOfType(e){let t=e.getClassOrWrapper(this.program);return t||null}lookupExpression(e,t,n=c.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,t,n,s);case 9:return this.lookupBinaryExpression(e,t,n,s);case 10:return this.lookupCallExpression(e,t,n,s);case 12:return this.lookupCommaExpression(e,t,n,s);case 13:return this.lookupElementAccessExpression(e,t,n,s);case 15:return this.lookupFunctionExpression(e,t,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,t,t.sourceFunction,s);case 25:return this.lookupThisExpression(e,t,n,s);case 24:return this.lookupSuperExpression(e,t,n,s);case 16:return this.lookupInstanceOfExpression(e,t,n,s);case 17:return this.lookupLiteralExpression(e,t,n,s);case 18:return this.lookupNewExpression(e,t,n,s);case 22:return this.lookupPropertyAccessExpression(e,t,n,s);case 23:return this.lookupTernaryExpression(e,t,n,s);case 28:return this.lookupUnaryPostfixExpression(e,t,n,s);case 29:return this.lookupUnaryPrefixExpression(e,t,n,s)}return assert(!1),null}resolveExpression(e,t,n=c.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,t,n,s);return a.delete(e),l}doResolveExpression(e,t,n=c.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,t,n,s);case 9:return this.resolveBinaryExpression(e,t,n,s);case 10:return this.resolveCallExpression(e,t,n,s);case 12:return this.resolveCommaExpression(e,t,n,s);case 13:return this.resolveElementAccessExpression(e,t,n,s);case 15:return this.resolveFunctionExpression(e,t,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,t,n,t.sourceFunction,s);case 25:return this.resolveThisExpression(e,t,n,s);case 24:return this.resolveSuperExpression(e,t,n,s);case 16:return this.resolveInstanceOfExpression(e,t,n,s);case 17:return this.resolveLiteralExpression(e,t,n,s);case 18:return this.resolveNewExpression(e,t,n,s);case 22:return this.resolvePropertyAccessExpression(e,t,n,s);case 23:return this.resolveTernaryExpression(e,t,n,s);case 28:return this.resolveUnaryPostfixExpression(e,t,n,s);case 29:return this.resolveUnaryPrefixExpression(e,t,n,s)}return assert(!1),null}lookupIdentifierExpression(e,t,n=t.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,t,c.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=t.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=t.outer;return o&&(l=o.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=n.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=this.program.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2304,e.range,a),null)}resolveIdentifierExpression(e,t,n=c.auto,s=t.sourceFunction,a=0){switch(e.kind){case 26:case 14:return c.bool;case 19:{let u=n.getClass();if(u)return u.type.asNullable();{let p=n.getSignature();if(p)return p.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,t,s,a);if(!l)return null;if(l.kind==4){let u=this.resolveFunction(l,null,new Map,a);if(!u)return null;l=u}let o=this.getTypeOfElement(l);return o||a==0&&this.error(225,e.range),o}ensureResolvedLazyGlobal(e,t=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,t):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,c.auto,t);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,t,n,s=0){let a=e.expression,l=this.lookupExpression(a,t,n,s);if(!l)return null;let o=e.property.text;switch(l.kind){case 0:if(!this.ensureResolvedLazyGlobal(l,s))return null;case 3:case 1:{let u=l,p=u.type;if(p==c.void)return null;let _=p.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=_;break}case 10:{let u=this.resolveProperty(l,s);if(!u)return null;l=u}case 11:{let u=l,p=u.getterInstance;if(!p){let d=assert(u.setterInstance);return this.errorRelated(229,a.range,d.declaration.range,u.name),null}let _=p.signature.returnType,f=_.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,_.toString()),null;l=f;break}case 15:{let p=l.parent;assert(p.kind==7);let _=p,f=assert(this.currentElementExpression),d=_.lookupOverload(1);if(!d)return s==0&&this.error(2329,f.range,p.internalName),null;let h=d.signature.returnType,g=h.getClassOrWrapper(this.program);if(!g)return s==0&&this.error(2339,e.property.range,o,h.toString()),null;l=g;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let _=this.resolveType(u.typeNode,null,u.parent,null,s);_&&u.setType(_)}let p=u.type.classReference;p&&(l=p.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let _=this.resolveFunction(l,null,new Map,1);if(_){let f=_.type.getClassOrWrapper(this.program);f&&(l=f)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,p=!1;do{let _=u.getMember(o);if(_){if(_.kind==10){let f=this.resolveProperty(_,s);if(!f)return null;_=f,f.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,_}switch(p=!1,u.kind){case 6:case 8:{let d=u.basePrototype;d&&(p=!0,u=d);break}case 7:case 9:{let d=u.base;d&&(p=!0,u=d);break}}}while(p);break}default:{let u=l.getMember(o);if(u)return this.currentThisExpression=a,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,l.internalName),null}resolvePropertyAccessExpression(e,t,n,s=0){let a=this.lookupPropertyAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,t,n,s=0){let a=e.expression,l=this.resolveExpression(a,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o)do{let u=o.indexSignature;if(u)return this.currentThisExpression=a,this.currentElementExpression=e.elementExpression,u;o=o.base}while(o);return s==0&&this.error(2329,a.range,l.toString()),null}resolveElementAccessExpression(e,t,n,s=0){let a=this.lookupElementAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,t,n){let s=e.value;if(t){if(i64_gt(i64_add(s,i64_minimum),i64_zero)){let a=e.range;this.error(236,a,a.source.text.substring(a.start-1,a.end))}else if(i64_eq(s,i64_zero)){if(n.isFloatValue)return n.kind==11?c.f32:c.f64;if(!n.isIntegerValue)return c.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return c.bool;break}case 1:{if(i64_is_i8(s))return c.i8;break}case 6:{if(i64_is_u8(s))return c.u8;break}case 2:{if(i64_is_i16(s))return c.i16;break}case 7:{if(i64_is_u16(s))return c.u16;break}case 3:{if(i64_is_i32(s))return c.i32;break}case 8:{if(i64_is_u32(s))return c.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return c.isize32;break}return c.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return c.usize32;break}return c.usize64}case 4:return c.i64;case 9:return c.u64;case 11:return c.f32;case 12:return c.f64}return i64_is_i32(s)?c.i32:i64_is_u32(s)?c.u32:c.i64}lookupAssertionExpression(e,t,n=c.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),this.currentThisExpression=null,this.currentElementExpression=null,null)}case 2:return this.lookupExpression(e.expression,t,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,t,n=c.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,t,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}default:assert(!1)}return null}lookupUnaryPrefixExpression(e,t,n=c.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Fe(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,t,n=c.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 82:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 81:case 87:case 88:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(we.fromUnaryPrefixToken(l));if(p)return p.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Fe(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(25);if(p)return p.signature.returnType}return c.bool}case 96:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(26);if(p)return p.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 69:return s==0&&this.error(100,e.range,"Spread operator"),null;case 56:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,t,n=c.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Fe(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,t,n=c.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(we.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Fe(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,t,n=c.auto,s=0){let a=this.resolveBinaryExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),null)}resolveBinaryExpression(e,t,n=c.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:return this.resolveExpression(a,t,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(we.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isNumericValue?c.bool:(s==0&&this.error(2469,e.range,Fe(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(we.fromBinaryToken(o));if(_)return _.signature.returnType}return c.bool}case 78:case 79:return c.bool;case 29:return c.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let d=p.lookupOverload(we.fromBinaryToken(o));if(d)return d.signature.returnType}let _=this.resolveExpression(l,t,u,s);if(!_)return null;let f=c.commonType(u,_,n);return f||s==0&&this.error(2365,e.range,Fe(o),u.toString(),_.toString()),f}case 89:case 90:case 91:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(we.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Fe(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let d=p.lookupOverload(we.fromBinaryToken(o));if(d)return d.signature.returnType}let _=this.resolveExpression(l,t,n,s);if(!_)return null;let f=c.commonType(u,_,n);return(!f||!f.isIntegerValue)&&s==0&&this.error(2365,e.range,Fe(o),u.toString(),_.toString()),f}case 97:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=this.resolveExpression(l,t,u,s);if(!p)return null;let _=c.commonType(u,p,n);return _||s==0&&this.error(2365,e.range,"&&",u.toString(),p.toString()),_}case 98:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=this.resolveExpression(l,t,u,s);if(!p)return null;let _=c.commonType(u,p,n);return _?u.is(512)&&p.is(512)?_:_.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),p.toString()),null)}}return assert(!1),null}lookupThisExpression(e,t,n=c.auto,s=0){if(t.isInline){let o=t.lookupLocal(P.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=t.lookupLocal(P.this_);if(a||(a=t.lookupLocalInOuter(P.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=t.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,t,n=c.auto,s=0){let a=this.lookupThisExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,t,n=c.auto,s=0){if(t.isInline){let l=t.lookupLocal(P.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=t.sourceFunction.parent;if(a&&a.kind==7){let l=a.base;if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}return s==0&&this.error(2335,e.range),null}resolveSuperExpression(e,t,n=c.auto,s=0){let a=this.lookupSuperExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,t,n=c.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let a=this.determineIntegerLiteralType(e,!1,n);return assert(a.getClassOrWrapper(this.program))}case 0:{let a=n==c.f32?c.f32:c.f64;return assert(a.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let a=n.getClass();if(a&&a.prototype==this.program.arrayPrototype)return this.getElementOfType(n);let l=e.elementExpressions,o=l.length,u=c.auto,p=0;for(let _=0,f=o;_<f;++_){let d=l[_];if(d)if(d.kind==19&&o>1)++p;else{let h=this.resolveExpression(d,t,u);if(!h)return null;if(u==c.auto)u=h;else if(h!=u){let g=c.commonType(u,h,u);g&&(u=g)}}}if(u==c.auto)if(p==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return p>0&&u.isInternalReference&&(u=u.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[u]))}case 6:return n.isClass?n.classReference:(s==0&&this.error(225,e.range),null)}return assert(!1),null}resolveLiteralExpression(e,t,n=c.auto,s=0){let a=this.lookupLiteralExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,t,n=c.void,s=0){let a=this.resolveCallExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveCallExpression(e,t,n=c.void,s=0){let a=e.expression,l=this.lookupExpression(a,t,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==y.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],t,n,s);let u=this.maybeInferCall(e,o,t,s);if(!u)return null;l=u}case 5:return l.signature.returnType;case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!ro(l.kind))break;let o=this.getElementOfType(l.type);if(!o||o.kind!=7)break;l=o}case 7:{let o=l.getTypeArgumentsTo(this.program.functionPrototype);if(!(o&&o.length))break;return assert(o[0].getSignature()).returnType}}return s==0&&this.error(2349,a.range,l.internalName),null}lookupCommaExpression(e,t,n=c.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],t,n,s)}resolveCommaExpression(e,t,n=c.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],t,n,s)}lookupInstanceOfExpression(e,t,n=c.auto,s=0){return assert(c.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,t,n=c.auto,s=0){return c.bool}lookupTernaryExpression(e,t,n,s=0){let a=this.resolveTernaryExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveTernaryExpression(e,t,n,s=0){let a=this.resolveExpression(e.ifThen,t,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,t,a,s);if(!l)return null;let o=c.commonType(a,l,n);return o||s==0&&this.error(2365,e.range,"?:",a.toString(),l.toString()),o}lookupNewExpression(e,t,n,s=0){let a=this.resolveTypeName(e.typeName,t,t.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,t,t.sourceFunction,_e(t.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,t,n,s=0){let a=this.lookupNewExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,t,n,s=0){let a=this.resolveFunctionExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveFunctionExpression(e,t,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,t.sourceFunction,t.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&Be(l.returnType)){let p=o.expression,_=assert(u.getSignature()),f=qt.createDefault(t.sourceFunction),d=l.parameters;assert(_.parameterTypes.length==d.length);for(let g=0,m=d.length;g<m;g++){let T=d[g],S=_.parameterTypes[g];f.addScopedDummyLocal(T.name.text,S,T)}let h=this.resolveExpression(p,f,n,s);h&&(u.signatureReference=Xe.create(this.program,_.parameterTypes,h,_.thisType,_.requiredParameters,_.hasRest))}return u}resolveFunction(e,t,n=new Map,s=0){let a=null,l=t?io(t):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let C=a.typeArguments;if(C){let D=assert(a.prototype.typeParameterNodes),U=D.length;assert(U==D.length);for(let G=0;G<U;++G){let O=D[G].name.text;n.set(O,C[G])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,p;if(t&&(p=t.length)>0){assert(u&&p==u.length);for(let R=0;R<p;++R)n.set(u[R].name.text,t[R])}else assert(!u||u.length==0);let _=null,f=o.explicitThisType;if(f){if(_=this.resolveType(f,null,e.parent,n,s),!_)return null;n.set(P.this_,_)}else a&&(_=a.type,n.set(P.this_,_));let d=o.parameters,h=d.length,g=new Array(h),m=0,T=!1;for(let R=0;R<h;++R){let C=d[R];C.parameterKind==0?m=R+1:C.parameterKind==2&&(T=!0);let D=C.type;if(Be(D))return s==0&&this.error(1110,D.range),null;let U=this.resolveType(D,null,e.parent,n,s);if(!U)return null;if(U==c.void)return s==0&&this.error(1110,D.range),null;g[R]=U}let S;if(e.is(4096))S=c.void;else if(e.is(524288))S=a.type;else{let R=o.returnType;if(Be(R))return s==0&&this.error(1110,R.range),null;let C=this.resolveType(R,null,e.parent,n,s);if(!C)return null;S=C}let v=Xe.create(this.program,g,S,_,m,T),F=e.name;l.length&&(F+=`<${l}>`);let k=new St(F,e,t,v,n);if(e.setResolvedInstance(l,k),a){let R=k.declaration.name.text,C=a.base;if(C){let D=C.getMember(R);if(D){this.discoveredOverride=!0;let U=!0;if(k.isAny(6144)){if(D.kind==10){let G=this.resolveProperty(D,s);if(G)if(k.is(2048)){let O=G.getterInstance;O&&k.signature.isAssignableTo(O.signature,!0)&&(U=!1)}else{assert(k.is(4096));let O=G.setterInstance;O&&k.signature.isAssignableTo(O.signature,!0)&&(U=!1)}}}else if(k.is(524288))U=!1;else if(D.kind==4){let G=D,O=G.typeParameterNodes,Y=O!=null&&O.length>0,Z=t!=null&&t.length>0;if(Y!=Z)this.errorRelated(242,k.identifierAndSignatureRange,D.identifierAndSignatureRange,R),U=!1;else{let ee=this.resolveFunction(G,t,new Map,1);ee&&k.signature.isAssignableTo(ee.signature,!0)&&(U=!1)}}U&&this.errorRelated(2394,k.identifierAndSignatureRange,D.identifierAndSignatureRange)}}}return k}resolveFunctionInclTypeArguments(e,t,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),p=u.typeArguments;if(p){let _=assert(u.prototype.typeParameterNodes),f=p.length;assert(f==_.length);for(let d=0;d<f;++d)s.set(_[d].name.text,p[d])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),t,null,n,s,a,l),!o)return null}else if(t&&t.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let t=e.prototype.unboundOverrides;if(!t)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(t),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let p=u.parent,_;if(assert(p.kind==6||p.kind==8),_=p.instances,!!_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d){let g=f[d];if(!g.isAssignableTo(n))continue;let m=null;if(e.isAny(6144)){let T=e.declaration.name.text,S=assert(g.getMember(T));assert(S.kind==10);let v=this.resolveProperty(S);if(!v)continue;e.is(2048)?m=v.getterInstance:(assert(e.is(4096)),m=v.setterInstance)}else{let T=g.getMember(u.name);if(T){assert(T.kind==4);let S=T;S.is(65536)==e.is(65536)&&(m=this.resolveFunction(S,e.typeArguments))}}m&&s.add(m)}}return Set_values(s)}resolveClass(e,t,n=new Map,s=0){let a=t?io(t):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new us(o,e,t):l=new lr(o,e,t),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),t){let d=assert(e.typeParameterNodes),h=d.length,g=t.length;assert(g==h);for(let m=0;m<g;++m)n.set(d[m].name.text,t[m])}else{let d=e.typeParameterNodes;assert(!(d&&d.length>0))}l.contextualTypeArguments=n;let p=!1,_=e.basePrototype;if(_){let d=_;do{if(d==e)return this.error(2506,e.identifierNode.range,e.internalName),null;d=d.basePrototype}while(d);let h=assert(e.extendsNode),g=this.resolveClassInclTypeArguments(_,h.typeArguments,null,e.parent,_e(n),h,s);if(!g)return null;l.setBase(g),u.has(g)&&(p=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let f=e.interfacePrototypes;if(f)for(let d=0,h=f.length;d<h;++d){let g=f[d],m=g;do{if(m==e)return this.error(2506,e.identifierNode.range,e.internalName),null;m=m.basePrototype}while(m);let T=assert(e.implementsNodes[d]),S=this.resolveClassInclTypeArguments(g,T.typeArguments,null,e.parent,_e(n),T,s);if(!S)return null;assert(S.kind==9),l.addInterface(S),u.has(S)&&(p=!0)}return p||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,t,n,s,a,l){let o=!1;return t.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,t.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):t.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,t.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):t.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):t.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,t){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let d=Set_values(l),h=0,g=d.length;h<g;++h){let m=d[h];assert(!s.has(m));let T=m.members;if(T)for(let S=Map_keys(T),v=0,F=S.length;v<F;++v){let k=unchecked(S[v]),R=assert(T.get(k)),C=e.getMember(k);C&&!this.checkOverrideVisibility(k,C,e,R,m,t)||(n.set(k,R),a.set(k,R))}}let o=0,u=e.base;if(u){let d=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let h=u.members;if(h)for(let g=Map_keys(h),m=0,T=g.length;m<T;++m){let S=unchecked(g[m]),v=assert(h.get(S));if(d&&v.is(32))continue;let F=e.getMember(S);F&&!this.checkOverrideVisibility(S,F,e,v,u,t)||(n.set(S,v),v.is(128)?a.set(S,v):a.delete(S))}o=u.nextMemoryOffset}let p=e.prototype,_=p.instanceMembers;if(_)for(let d=Map_values(_),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=m.name;if(u){let S=u.getMember(T);S&&this.checkOverrideVisibility(T,m,e,S,u,t)}switch(m.kind){case 4:{let S=m.toBound(e);e.add(S.name,S);break}case 10:{let S=m.toBound(e);if(S.isField){let v=this.resolveProperty(S,t);if(v){let F=v.type;if(F==c.void)break;if(F.isExternalReference){this.error(100,assert(S.typeNode).range,"Reference typed fields");break}let k=!0;if(u){let C=u.getMember(S.name);if(C&&C.kind==10){let D=C,U=this.resolveProperty(D,t);if(U&&U.isField){if(U.type!=v.type){this.errorRelated(2416,v.identifierNode.range,U.identifierNode.range,v.name,e.internalName,u.internalName);break}v.memoryOffset=U.memoryOffset,k=!1}}}if(k){let C=F.byteSize;assert(zt(C));let D=C-1;o&D&&(o=(o|D)+1),v.memoryOffset=o,o+=C}S.instance=v,e.add(S.name,S);let R=assert(S.fieldDeclaration).type;R&&this.program.checkTypeSupported(F,R)}}else e.add(S.name,S);break}default:assert(!1)}!m.is(128)&&!m.is(65536)&&a.delete(T)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let d=Map_keys(a),h=0,g=d.length;h<g;++h){let m=d[h],T=assert(a.get(m));this.errorRelated(2515,e.identifierNode.range,T.identifierNode.range,e.internalName,m,T.parent.internalName)}e.nextMemoryOffset=o;{let d=e.getMember(P.constructor);if(d&&d.parent==e){assert(d.kind==4);let h=this.resolveFunction(d,null,assert(e.contextualTypeArguments),t);h&&(e.constructorInstance=h)}}}let f=p.operatorOverloadPrototypes;for(let d=Map_keys(f),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=assert(f.get(m));if(assert(m!=0),T.is(65536))continue;let S;if(T.is(262144)){let F=T.toBound(e);S=this.resolveFunction(F,null,new Map,t)}else S=this.resolveFunction(T,null,new Map,t);if(!S)continue;let v=e.operatorOverloads;if(v||(e.operatorOverloads=v=new Map),S.is(262144))switch(m){case 27:case 28:case 29:case 30:{let F=S.signature.returnType;F.isAssignableTo(e.type)||t==0&&this.error(2322,T.functionTypeNode.returnType.range,F.toString(),e.type.toString())}}if(v.has(m))t==0&&this.error(213,S.declaration.range);else if(v.set(m,S),m==1||m==2){let F=e.indexSignature;F||(e.indexSignature=F=new os(e)),m==1&&F.setType(S.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let d=Set_values(s),h=0,g=d.length;h<g;++h){let m=d[h],T=m.base==e,S=m.interfaces;if(S){let v=!1;for(let F=Set_values(S),k=0,R=F.length;k<R;++k){let C=F[k];C==e?T=!0:s.has(C)&&(v=!0)}if(v)continue}T&&this.finishResolveClass(m,t)}}resolveClassInclTypeArguments(e,t,n,s,a,l,o=0){let u=null;if(e.is(65536)){let p=null;for(let _=e;_&&!p;_=_.basePrototype)p=_.constructorPrototype;if(!t&&p&&n&&a.size==0?u=this.inferGenericTypeArguments(l,p,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),t,n,s,a,l,o),!u)return null}else if(t&&t.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,t=0){let n=e.instance;if(n)return n;e.instance=n=new ls(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,t);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,t);l&&(n.setterInstance=l,n.is(4194304)||(assert(l.signature.parameterTypes.length==1),n.setType(l.signature.parameterTypes[0])))}return n.checkVisibility(this),n}ensureOneTypeArgument(e,t=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(t==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};var F1=1,w1=50,C1=6e4;function zi(r){let i=2166136261;for(let e=0,t=r.length;e<t;++e)i=Math.imul(i^r.charCodeAt(e),16777619)>>>0;return i>>>0}var yp=class{constructor(){this.name="";this.typeName="";this.isArray=!1}};function ht(r,i){return Math.imul(r^i&255,16777619)>>>0}function oo(r,i){let e=i.length;r=ht(r,e&255),r=ht(r,e>>>8&255),r=ht(r,e>>>16&255),r=ht(r,e>>>24&255);for(let t=0;t<e;++t)r=ht(r,i.charCodeAt(t));return r>>>0}function ps(r,i=null,e=null){return Lg(2166136261,r,i,e)}function Lg(r,i,e,t){for(let n=0,s=i.length;n<s;++n){let a=i[n];if(r=oo(r,a.name),r=oo(r,a.typeName),r=ht(r,a.isArray?1:0),e!=null&&e.has(a.typeName)){let l=t??new Set;l.has(a.typeName)||(l.add(a.typeName),r=Lg(r,e.get(a.typeName),e,l),l.delete(a.typeName))}}return r>>>0}function Ui(r){let i=new Map;for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.isLibrary||n.internalPath.endsWith(".migration"))continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o;if(!et(u.decorators,15))continue;let p=u.name.text;i.has(p)||i.set(p,Gr(u))}}return i}function Gr(r){let i=new Array,e=r.members;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(s.kind!=55)continue;let a=s;if(a.is(32))continue;let l=a.type;if(l==null||!(l instanceof ae))continue;let o=l,u=o.name.identifier.text,p=new yp;p.name=a.name.text;let _=o.typeArguments;u=="Array"&&_!=null&&_.length==1&&_[0]instanceof ae?(p.typeName=_[0].name.identifier.text,p.isArray=!0):p.typeName=u,i.push(p)}return i}var gp=class{constructor(){this.oldType="";this.newType="";this.fnName="";this.oldVersion=0;this.delta=!1;this.sourceInternalPath=""}};function ao(r){return r==null||!(r instanceof ae)?null:r.name.identifier.text}function kp(r,i,e=null){let t=new Array;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.isLibrary)continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind!=56)continue;let _=p;if(!et(_.decorators,37))continue;let f=_.signature,d=null,h=null,g=!1;if(f.parameters.length==1)d=ao(f.parameters[0].type),h=ao(f.returnType);else if(f.parameters.length==2)d=ao(f.parameters[0].type),h=ao(f.parameters[1].type),g=!0;else continue;if(d==null||h==null)continue;let m=new gp;m.oldType=d,m.newType=h,m.fnName=_.name.text,m.delta=g,m.oldVersion=i.has(d)?ps(i.get(d),e):zi(d),m.sourceInternalPath=a.internalPath,t.push(m)}}return t}var bp=class{constructor(){this.oldType="";this.oldVersion=0;this.steps=[]}};function Rp(r,i){let e=new Array,t=new Set;t.add(r);let n=new Array,s=new Array;n.push(r),s.push(new Array);let a=0;for(;a<n.length;){let l=n[a],o=s[a];a++;for(let u=0,p=i.length;u<p;++u){let _=i[u];if(_.newType!=l||t.has(_.oldType))continue;t.add(_.oldType);let f=new Array;f.push(_);for(let h=0,g=o.length;h<g;++h)f.push(o[h]);let d=new bp;d.oldType=_.oldType,d.oldVersion=_.oldVersion,d.steps=f,e.push(d),n.push(_.oldType),s.push(f)}}return e}function P1(r){switch(r){case"Documents":return 0;case"View":return 1;case"Events":return 2;case"Counter":return 3;case"Membership":return 4;case"Unique":return 5;case"Capacity":return 6;default:return-1}}function et(r,i){if(r==null)return!1;for(let e=0,t=r.length;e<t;++e)if(r[e].decoratorKind==i)return!0;return!1}var xp=class{constructor(){this.name="";this.family=0;this.keyType="";this.valueType="";this.fillMaxWaitMs=w1;this.fillAllowStale=!0}},Tp=class{constructor(){this.name="";this.collections=new Array}},It=class{constructor(){this.bytes=new Array}u8(i){this.bytes.push(i&255)}u16(i){this.u8(i&255),this.u8(i>>>8&255)}u32(i){this.u8(i&255),this.u8(i>>>8&255),this.u8(i>>>16&255),this.u8(i>>>24&255)}u64(i){let e=i%4294967296,t=Math.floor(i/4294967296);this.u32(e),this.u32(t)}u64lohi(i,e){this.u32(i),this.u32(e)}str(i){this.u32(i.length);for(let e=0,t=i.length;e<t;++e)this.u8(i.charCodeAt(e)&255)}toBytes(){let i=this.bytes.length,e=new Uint8Array(i);for(let t=0;t<i;++t)e[t]=this.bytes[t];return e}};function mp(r,i){let e=r.typeArguments;if(e!=null&&e.length>i){let t=e[i];if(t instanceof ae)return t.name.identifier.text}return""}function Ng(r){let i=new Array,e=r.sources,t=new Map;for(let o=0,u=e.length;o<u;++o){let p=e[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;et(g.decorators,15)&&t.set(g.name.text,Gr(g))}}let n=Ui(e),s=kp(e,t,n),a=new Map;for(let o=0,u=s.length;o<u;++o){let p=s[o].newType;if(a.has(p))continue;let _=new Array,f=Rp(p,s);for(let d=0,h=f.length;d<h;++d)_.push(f[d].oldVersion);a.set(p,_)}for(let o=0,u=e.length;o<u;++o){let p=e[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!et(g.decorators,31))continue;let m=new Tp;m.name=g.name.text;let T=g.members;for(let S=0,v=T.length;S<v;++S){let F=T[S];if(F.kind!=55)continue;let k=F,R=Mr(k.decorators,32);if(R==null)continue;let C=k.type;if(C==null||!(C instanceof ae))continue;let D=C,U=P1(D.name.identifier.text);if(U<0)continue;let G=new xp;G.name=k.name.text,G.family=U,U==3||U==6?(G.keyType=mp(D,0),G.valueType="i64"):(G.keyType=mp(D,0),G.valueType=mp(D,1));let O=Vg(R);if(O!=null){let Y=uo(O,"fillMaxWaitMs");if(Y<0&&(Y=uo(O,"maxWaitMs")),Y>=0){if(Y>C1)return r.error(102,k.name.range,"@collection fillMaxWaitMs exceeds the platform catalog maximum"),null;G.fillMaxWaitMs=Y}let Z=Bg(O,"fillStale");if(Z.length==0&&(Z=Bg(O,"stale")),Z.length>0)if(Z=="allow"||Z=="Allow")G.fillAllowStale=!0;else if(Z=="deny"||Z=="Deny")G.fillAllowStale=!1;else return r.error(102,k.name.range,'@collection fillStale must be "allow" or "deny"'),null}m.collections.push(G)}m.collections.length>0&&i.push(m)}}if(i.length==0)return null;let l=new It;l.u16(F1),l.u16(i.length);for(let o=0,u=i.length;o<u;++o){let p=i[o];l.str(p.name),l.u16(p.collections.length);for(let _=0,f=p.collections.length;_<f;++_){let d=p.collections[_];l.str(d.name),l.u8(d.family),l.str(d.keyType),l.str(d.valueType);let h=zi(d.valueType),g=t.has(d.valueType),m=g?t.get(d.valueType):new Array,T=g?ps(m,n):h;l.u32(h),l.u32(T),l.u32(0),l.u8(0),l.u8(0),l.u32(d.fillMaxWaitMs),l.u8(d.fillAllowStale?1:0),l.u16(m.length);for(let v=0,F=m.length;v<F;++v)l.str(m[v].name),l.str(m[v].typeName),l.u8(m[v].isArray?1:0);let S=a.has(d.valueType)?a.get(d.valueType):new Array;l.u16(S.length);for(let v=0,F=S.length;v<F;++v)l.u32(S[v])}}return l.toBytes()}function Mg(r){let i=r.sources,e=new Array,t=new Map;for(let s=0,a=i.length;s<a;++s){let l=i[s];if(l.isLibrary||l.internalPath.endsWith(".migration"))continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind!=52)continue;let f=_;if(!et(f.decorators,15))continue;let d=f.name.text;t.has(d)||(e.push(d),t.set(d,Gr(f)))}}if(e.length==0)return null;let n=new It;n.u16(e.length);for(let s=0,a=e.length;s<a;++s){let l=e[s];n.str(l);let o=t.get(l);n.u16(o.length);for(let u=0,p=o.length;u<p;++u)n.str(o[u].name),n.str(o[u].typeName),n.u8(o[u].isArray?1:0)}return n.toBytes()}var Ap=class{constructor(){this.method=0;this.kind=0;this.path=""}},vp=class{constructor(){this.method=-1;this.path=""}},Dg=128*1024,B1=2048,L1=2048;function Gg(r){let i=new Array,e=r.sources;for(let s=0,a=e.length;s<a;++s){let l=e[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)continue;let f=_,d=Mr(f.decorators,18);if(d==null)continue;let h=M1(d),g=f.members;for(let m=0,T=g.length;m<T;++m){let S=g[m];if(S.kind!=59)continue;let v=S,F=D1(v);if(F==null)continue;let k=G1(F);if(k==null||N1(k.method))continue;let R=Ep(v.decorators);if(R>1)return r.error(102,v.name.range,"HTTP route methods may only use @query or @action ToilDB function kinds"),null;if(R!=0)continue;let C=V1(h,k.path);if(i.length>=B1)return r.error(102,v.name.range,"too many explicit @query HTTP routes for toildb.route_kinds"),null;if(!O1(C))return r.error(102,v.name.range,"route pattern for toildb.route_kinds must be a non-empty ASCII path starting with '/'"),null;if(C.length>L1)return r.error(102,v.name.range,"route pattern for toildb.route_kinds is too large"),null;let D=new Ap;D.method=k.method,D.kind=0,D.path=C,i.push(D)}}}if(i.length==0)return null;let t=new It;t.u16(1),t.u16(i.length);for(let s=0,a=i.length;s<a;++s)t.u8(i[s].method),t.u8(i[s].kind),t.str(i[s].path);let n=t.toBytes();return n.length>Dg?(r.error(102,null,"toildb.route_kinds section is too large"),null):n}function zg(r){let i=new Array,e=r.sources;for(let s=0,a=e.length;s<a;++s){let l=e[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=_;if(Mr(f.decorators,17)==null)continue;let d=f.name.text,h=f.members;for(let g=0,m=h.length;g<m;++g){let T=h[g];if(T.kind!=59)continue;let S=T;if(Mr(S.decorators,16)==null)continue;let v=Ep(S.decorators);v>1?r.error(102,S.name.range,"@remote methods may only use @query or @action ToilDB function kinds (default is read-only @query)"):v==1&&i.push(zi(d+"."+S.name.text))}}else if(_.kind==56){let f=_;if(Mr(f.decorators,16)==null)continue;let d=Ep(f.decorators);d>1?r.error(102,f.name.range,"@remote functions may only use @query or @action ToilDB function kinds (default is read-only @query)"):d==1&&i.push(zi(f.name.text))}}}if(i.length==0)return null;let t=new It;t.u16(1),t.u16(i.length);for(let s=0,a=i.length;s<a;++s)t.u32(i[s]),t.u8(1);let n=t.toBytes();return n.length>Dg?(r.error(102,null,"toildb.rpc_kinds section is too large"),null):n}function Ep(r){if(r==null)return-1;for(let i=0,e=r.length;i<e;++i){let t=r[i].decoratorKind;if(t==33)return 0;if(t==34)return 1;if(t==35||t==36||t==38)return 2}return-1}function N1(r){return r==0||r==5||r==6}function M1(r){let i=r.args;if(i==null||i.length==0)return"";let e=i[0];if(e instanceof ye){let t=e.value.trim();return t.length==0||t=="/"?"":(t.startsWith("/")||(t="/"+t),t.replace(/\/+$/,""))}return""}function D1(r){let i=r.decorators;if(i==null)return null;for(let e=0,t=i.length;e<t;++e)switch(i[e].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return i[e]}return null}function G1(r){let i=new vp,e=r.decoratorKind;if(e==19){let t=r.args;if(t==null||t.length==0||!(t[0]instanceof Pe))return null;let n=t[0],s=Dr(n,"method"),a=Dr(n,"path");if(s==null||a==null||!(a instanceof ye))return null;let l=Fp(s);if(l==null)return null;i.method=U1(l),i.path=a.value}else{i.method=z1(e);let t=r.args;if(t==null||t.length==0||!(t[0]instanceof ye))return null;i.path=t[0].value}return i.method>=0?i:null}function z1(r){switch(r){case 21:return 1;case 22:return 2;case 23:return 3;case 24:return 4;case 25:return 5;case 26:return 6;default:return 0}}function U1(r){switch(r){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}}function V1(r,i){let e=i.trim();if(e.length==0&&(e="/"),e.startsWith("/")||(e="/"+e),e=="/")return r.length>0?r:"/";e.length>1&&(e=e.replace(/\/+$/,""));let t=r+e;return t.length==0?"/":t}function O1(r){if(r.length==0||!r.startsWith("/"))return!1;for(let i=0,e=r.length;i<e;++i){let t=r.charCodeAt(i);if(t<32||t>126)return!1}return!0}function or(r,i){return r=ht(r,i&255),r=ht(r,i>>>8&255),r=ht(r,i>>>16&255),r=ht(r,i>>>24&255),r>>>0}function Mr(r,i){if(r==null)return null;for(let e=0,t=r.length;e<t;++e)if(r[e].decoratorKind==i)return r[e];return null}function Ug(r){let i=r.args;if(i==null||i.length==0)return null;let e=i[0];return e instanceof ye?e.value:null}function Vg(r){let i=r.args;if(i==null||i.length==0)return null;let e=i[0];return e instanceof Pe?e:null}function Dr(r,i){let e=r.names;for(let t=0,n=e.length;t<n;++t)if(e[t].text==i)return r.values[t];return null}function Fp(r){return r instanceof _t?r.property.text:null}function Bg(r,i){let e=Dr(r,i);if(e==null)return"";if(e instanceof ye)return e.value;if(e instanceof xe)return e.text;let t=Fp(e);return t??""}function uo(r,i){let e=Dr(r,i);if(e!=null&&e instanceof pt){let t=e.range.toString().trim(),n=0;if(t.length==0)return-1;for(let s=0,a=t.length;s<a;++s){let l=t.charCodeAt(s);if(l<48||l>57)return-1;if(n=n*10+(l-48),n>4294967295)return 4294967295}return n}return-1}function q1(r,i){let e=Dr(r,i);return e!=null&&e instanceof xe?e.text:""}function Og(r){let i=new Map;for(let e=0,t=r.length;e<t;++e){let n=r[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)continue;let u=o;et(u.decorators,15)&&i.set(u.name.text,Gr(u))}}return i}function W1(r){let i=0,e=r.members;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(s.kind!=59)continue;let a=s.decorators;if(a!=null)for(let l=0,o=a.length;l<o;++l)switch(a[l].decoratorKind){case 42:{i|=1;break}case 43:{i|=2;break}case 44:{i|=4;break}case 45:{i|=8;break}}}return i}function qg(r){let i=r.sources,e=Ui(i),t=Og(i),n=new Array,s=new Array,a=new Array,l=new Array,o=new Array,u=new Array,p=new Array,_=new Array,f=new Array;for(let h=0,g=i.length;h<g;++h){let m=i[h];if(m.isLibrary)continue;let T=m.statements;for(let S=0,v=T.length;S<v;++S){let F=T[S];if(F.kind!=52)continue;let k=F;if(!et(k.decorators,41))continue;let R=Mr(k.decorators,41),C=k.name.text,D=R!=null?Ug(R):null,U=R!=null?Vg(R):null;if(D!=null){let se=D.trim();se.startsWith("/")&&(se=se.substring(1)),se.length>0&&(C=se)}else if(U!=null){let se=Dr(U,"name");if(se!=null&&se instanceof ye){let Re=se.value.trim();Re.startsWith("/")&&(Re=Re.substring(1)),Re.length>0&&(C=Re)}}let G="/"+C,O=0;if(U!=null){let se=Dr(U,"scope");se!=null&&Fp(se)=="Continental"&&(O=1)}let Y=0,Z=0;if(U!=null){let se=uo(U,"maxFrameBytes");se>0&&(Y=se);let Re=uo(U,"ingressRingBytes");Re>0&&(Z=Re)}let ee=W1(k),K=0,te=0,H=0,oe=U!=null?q1(U,"message"):"";oe.length>0&&t.has(oe)&&(K=1,te=zi(oe),H=ps(t.get(oe),e)),n.push(C),s.push(G),a.push(ee),l.push(O),o.push(K),u.push(Y),p.push(Z),_.push(te),f.push(H)}}if(n.length==0)return null;let d=new It;d.u16(1),d.u16(n.length);for(let h=0,g=n.length;h<g;++h)d.str(n[h]),d.str(s[h]),d.u8(a[h]),d.u8(l[h]),d.u8(o[h]),d.u32(u[h]),d.u32(p[h]),d.u32(_[h]),d.u32(f[h]),d.u16(h);return d.toBytes()}var co=class{constructor(){this.kind=0;this.interval_ms=0;this.cron_minute_lo=0;this.cron_minute_hi=0;this.cron_hour_mask=0;this.cron_dom_mask=0;this.cron_month_mask=0;this.cron_dow_mask=0;this.valid=!0}};function j1(r){let i=r.length;if(i<2)return-1;let e=r.charCodeAt(i-1),t;if(e==115)t=1e3;else if(e==109)t=6e4;else if(e==104)t=36e5;else if(e==100)t=864e5;else return-1;let n=0;for(let a=0;a<i-1;++a){let l=r.charCodeAt(a);if(l<48||l>57||(n=n*10+(l-48),n>1e15))return-1}if(n<1)return-1;let s=n*t;return s<1e3?-1:s}function lo(r){if(r.length==0)return-1;let i=0;for(let e=0,t=r.length;e<t;++e){let n=r.charCodeAt(e);if(n<48||n>57||(i=i*10+(n-48),i>1e6))return-1}return i}function cs(r,i,e,t){if(r.length==0)return!1;let n=r.split(",");for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.length==0)return!1;let o=i,u=e,p=1,_=l,f=l.indexOf("/");if(f>=0){_=l.substring(0,f);let d=lo(l.substring(f+1));if(d<1)return!1;p=d}if(_!="*"){let d=_.indexOf("-");if(d>=0){let h=lo(_.substring(0,d)),g=lo(_.substring(d+1));if(h<0||g<0||h<i||g>e||h>g)return!1;o=h,u=g}else{let h=lo(_);if(h<0||h<i||h>e)return!1;o=h,u=f>=0?e:h}}for(let d=o;d<=u;d+=p)t(d)}return!0}function K1(r,i){let e=r.split(" ");if(e.length!=5){i.valid=!1;return}i.kind=1;let t=0,n=0,s=cs(e[0],0,59,h=>{h<32?t=(t|1<<h)>>>0:n=(n|1<<h-32)>>>0});i.cron_minute_lo=t,i.cron_minute_hi=n;let a=0,l=cs(e[1],0,23,h=>{a=(a|1<<h)>>>0});i.cron_hour_mask=a;let o=0,u=cs(e[2],1,31,h=>{o=(o|1<<h)>>>0});i.cron_dom_mask=o;let p=0,_=cs(e[3],1,12,h=>{p=p|1<<h});i.cron_month_mask=p&65535;let f=0,d=cs(e[4],0,6,h=>{f=f|1<<h});i.cron_dow_mask=f&255,s&&l&&u&&_&&d||(i.valid=!1)}function H1(r){let i=new co,e=r.trim();if(e.length==0)return i.valid=!1,i;if(e.indexOf(" ")>=0)return K1(e,i),i;let t=j1(e);return t<0?(i.valid=!1,i):(i.kind=0,i.interval_ms=t,i)}var Sp=class{constructor(){this.name="";this.schedule=new co}};function Wg(r){let i=r.sources,e=null;for(let a=0,l=i.length;a<l&&e==null;++a){let o=i[a];if(o.isLibrary)continue;let u=o.statements;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=52)continue;let d=f;if(et(d.decorators,39)){e=d;break}}}if(e==null)return null;let t=new Array,n=e.members;for(let a=0,l=n.length;a<l;++a){let o=n[a];if(o.kind!=59)continue;let u=o,p=Mr(u.decorators,40);if(p==null)continue;let _=Ug(p);if(_==null){r.error(9010,p.range);continue}let f=H1(_);if(!f.valid){r.error(9011,p.range,_);continue}let d=new Sp;d.name=u.name.text,d.schedule=f,t.push(d)}let s=new It;s.u16(1),s.u8(1),s.u16(t.length);for(let a=0,l=t.length;a<l;++a){let o=t[a],u=o.schedule;s.str(o.name),s.u16(a),s.u8(u.kind),s.u64(u.kind==0?u.interval_ms:0),u.kind==1?(s.u64lohi(u.cron_minute_lo,u.cron_minute_hi),s.u32(u.cron_hour_mask),s.u32(u.cron_dom_mask),s.u16(u.cron_month_mask),s.u8(u.cron_dow_mask)):(s.u64lohi(0,0),s.u32(0),s.u32(0),s.u16(0),s.u8(0)),s.u8(0),s.u8(0),s.u64(0)}return s.toBytes()}var Ip=class{constructor(){this.deriveId=0;this.dbName="";this.methodName=""}};function jg(r){let i=r.sources,e=new Array,t=0;for(let s=0,a=i.length;s<a;++s){let l=i[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)continue;let f=_;if(!et(f.decorators,31))continue;let d=f.name.text,h=f.members;for(let g=0,m=h.length;g<m;++g){let T=h[g];if(T.kind!=59)continue;let S=T;if(!et(S.decorators,36))continue;let v=new Ip;v.deriveId=t,v.dbName=d,v.methodName=S.name.text,e.push(v),++t}}}if(e.length==0)return null;let n=new It;n.u16(1),n.u16(e.length);for(let s=0,a=e.length;s<a;++s){let l=e[s];n.u16(l.deriveId),n.str(l.dbName),n.str(l.methodName)}return n.toBytes()}function Q1(r){for(let i=0,e=r.length;i<e;++i){let t=r[i];if(t.isLibrary)continue;let n=t.statements;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind==52){let o=l,u=o.decorators;if(u!=null)for(let _=0,f=u.length;_<f;++_)switch(u[_].decoratorKind){case 18:case 41:case 39:case 31:case 15:return!0}let p=o.members;for(let _=0,f=p.length;_<f;++_){let d=p[_];if(d.kind!=59)continue;let h=d.decorators;if(h!=null){for(let g=0,m=h.length;g<m;++g)if(h[g].decoratorKind==40)return!0}}}}}return!1}var X1=1,J1=2,Z1=4,Y1=8,$1=16;function e6(r){let i=0;for(let e=0,t=r.length;e<t;++e){let n=r[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)continue;let u=o,p=u.decorators;if(p!=null)for(let f=0,d=p.length;f<d;++f)switch(p[f].decoratorKind){case 18:{i|=X1;break}case 41:{i|=J1;break}case 39:{i|=Z1;break}case 31:{i|=$1;break}}let _=u.members;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=59)continue;let g=h.decorators;if(g!=null){for(let m=0,T=g.length;m<T;++m)if(g[m].decoratorKind==40){i|=Y1;break}}}}}return i>>>0}function t6(r){let i=Ui(r),e=2166136261,t=new Set;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.isLibrary||a.internalPath.endsWith(".migration"))continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind!=52)continue;let _=p;if(!et(_.decorators,15))continue;let f=_.name.text;t.has(f)||(t.add(f),e=oo(e,f),e=or(e,ps(Gr(_),i)))}}return e>>>0}function r6(r,i,e){let t=Ui(r),n=Og(r),s=2166136261;s=oo(s,i),s=or(s,e);let a=new Array,l=new Array;for(let o=0,u=r.length;o<u;++o){let p=r[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!et(g.decorators,31))continue;let m=g.members;for(let T=0,S=m.length;T<S;++T){let v=m[T];if(v.kind!=55)continue;let F=v;if(!et(F.decorators,32))continue;let k=F.type;if(k==null||!(k instanceof ae))continue;let R=k,C=R.name.identifier.text,D;if(C=="Counter"||C=="Capacity")D="i64";else{let Y=R.typeArguments;D=Y!=null&&Y.length>1&&Y[1]instanceof ae?Y[1].name.identifier.text:""}let U=zi(D),O=n.has(D)?ps(n.get(D),t):U;a.push(U),l.push(O)}}}s=or(s,a.length);for(let o=0,u=a.length;o<u;++o)s=or(s,a[o]),s=or(s,l[o]),s=or(s,0);return s>>>0}function Kg(r,i){let e=r.sources;if(i==null&&!Q1(e))return null;let t=i=="cold"?1:0,n=e6(e),s=1,a="",l=t6(e),o=r6(e,a,l),u=2166136261;u=ht(u,t),u=or(u,n),u=or(u,l);let p=u>>>0,_=new It;return _.u16(1),_.u8(t),_.u8(0),_.u32(n),_.u16(s),_.str(a),_.u32(p),_.u32(l),_.u32(o),_.toBytes()}function Jg(r){switch(r){case"u8":return"U8";case"u16":return"U16";case"u32":return"U32";case"u64":return"U64";case"i8":return"I8";case"i16":return"I16";case"i32":return"I32";case"i64":return"I64";case"f32":return"F32";case"f64":return"F64";case"bool":case"boolean":return"Bool";case"string":return"String";case"u128":return"U128";case"i128":return"I128";case"u256":return"U256";case"i256":return"I256";default:return""}}function po(r,i){let e=Jg(r);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function _o(r){let i=Jg(r);return i.length!=0?"__r.read"+i+"()":r+".decodeFrom(__r)"}function _s(r){let i=2166136261;for(let e=0,t=r.length;e<t;++e)i=Math.imul(i^r.charCodeAt(e),16777619)>>>0;return i>>>0}function Hg(r,i){switch(r){case"bool":case"boolean":case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":case"string":return"JSON.of<"+r+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function Qg(r,i){switch(r){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+r+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+r+">"+i+".asI64()";case"f32":case"f64":return"<"+r+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"u128.fromString("+i+".asString())";case"i128":return"i128.fromString("+i+".asString())";case"u256":return"u256.fromString("+i+".asString())";case"i256":return"i256.fromString("+i+".asString())";default:return r+".fromJSON("+i+")"}}var ds=class{constructor(i,e){this.source=i;this.reportNode=e}};function i6(r,i){switch(r){case"Documents":return i=="get"||i=="require"?"Get":i=="getMany"?"GetMany":i=="exists"?"Exists":i=="create"?"Create":i=="patch"?"Patch":i=="delete"?"Delete":i=="getDelete"?"GetDelete":"";case"View":return i=="get"||i=="require"?"ViewGet":i=="getMany"?"GetMany":i=="publish"?"ViewPublish":"";case"Unique":return i=="lookup"?"UniqueLookup":i=="claim"?"UniqueClaim":i=="release"?"UniqueRelease":"";case"Counter":return i=="get"?"CounterGet":i=="add"?"CounterAdd":"";case"Events":return i=="append"?"Append":i=="latest"?"Latest":"";case"Membership":return i=="contains"?"MembershipContains":i=="list"?"MembershipList":i=="add"?"MembershipAdd":i=="remove"?"MembershipRemove":"";case"Capacity":return i=="available"?"CapacityAvailable":i=="reserve"?"CapacityReserve":i=="confirm"?"CapacityConfirm":i=="cancel"?"CapacityCancel":i=="setTotal"?"CapacitySetTotal":"";default:return""}}function wp(r){return r=="Get"||r=="GetMany"||r=="Exists"||r=="ViewGet"||r=="CounterGet"||r=="UniqueLookup"||r=="Latest"||r=="MembershipContains"||r=="MembershipList"||r=="CapacityAvailable"}function Xg(r){return r=="Latest"||r=="MembershipList"}function n6(r,i){switch(r){case 33:return wp(i)&&!Xg(i);case 34:return wp(i)&&!Xg(i)||i=="Create"||i=="Patch"||i=="Delete"||i=="GetDelete"||i=="Append"||i=="CounterAdd"||i=="UniqueClaim"||i=="UniqueRelease"||i=="MembershipAdd"||i=="MembershipRemove"||i=="CapacityReserve"||i=="CapacityConfirm"||i=="CapacityCancel";case 36:return wp(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 38:return!1;case 37:return!1;default:return!0}}function s6(r){switch(r){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 38:return"admin";case 37:return"migrate";default:return"?"}}function a6(r){switch(r){case 33:return"a query is read-only and cannot scan";case 34:return"an action cannot scan or publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 38:return"an admin has no request-path data access";case 37:return"a migration is a pure value transform and cannot access the database";default:return"not permitted in this kind"}}var hs=class extends Je{constructor(e=null,t=[]){super(e);this.backlog=new Array;this.seenlog=new Set;this.donelog=new Set;this.onComment=null;this.currentSource=null;this.dependees=new Map;this.restImportedSources=new Set;this.rpcImportedSources=new Set;this.streamExportedSources=new Set;this.ratelimitRouteCounter=0;this.toildbCodecReads=new Map;this.toildbCodecClasses=new Map;this.toildbWoven=!1;this.toildbDerivesWoven=!1;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=t}parseFile(e,t,n){let s=Fr(t),a=jn(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let p=this.dependees,_=null;p.has(a)&&(_=assert(p.get(a))),this.error(6054,_?_.reportNode.range:null,t);return}let l=new fe(n?1:t.startsWith(bt)?t.indexOf(lt,bt.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new Lr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let p=this.parseTopLevelStatement(o,null);p?u.push(p):this.skipStatement(o)}}parseTopLevelStatement(e,t=null){let n=t?t.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let m=this.parseDecorator(e);if(!m){this.skipStatement(e);continue}a?a.push(m):a=[m]}let l=0,o=0,u=0,p=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,p=e.pos));let _=0,f=0,d=t!=null&&t.is(32768);e.skip(12)?d?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),_=s,f=e.pos,n|=32772):d&&(n|=32768);let h=null,g=e.peek();switch(s<0&&(s=e.nextTokenPos),g){case 8:{e.next(),n|=8,e.skip(17)?h=this.parseEnum(e,n,a,s):h=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),h=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),h=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),h=this.parseFunction(e,n,a,s),a=null;break}case 0:{let m=e.mark();e.next();let T=e.tokenPos,S=e.pos;if(e.peekOnNewLine()){e.reset(m),h=this.parseStatement(e,!0);break}let v=e.peek();if(v!=7){v==31&&this.error(1242,e.range(T,S)),e.reset(m),h=this.parseStatement(e,!0);break}else e.discard(m);n|=128}case 7:case 31:{e.next(),h=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let m=e.mark();e.next(),e.peek(1)==115?(e.discard(m),h=this.parseNamespace(e,n,a,s),a=null):(e.reset(m),h=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?h=this.parseExportImport(e,s):h=this.parseImport(e);break}case 55:{let m=e.mark();e.next(),e.peek(1)==115?(e.discard(m),h=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(m),h=this.parseStatement(e,!0));break}case 35:{let m=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(m),h=this.parseModuleDeclaration(e,n)):(e.reset(m),h=this.parseStatement(e,!0));break}default:{n&2?p&&e.skipIdentifier(1)?(f&&this.error(1120,e.range(_,f)),h=this.parseExportDefaultAlias(e,s,u,p),u=p=0):h=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),f&&this.error(1042,e.range(_,f),"declare"),t?this.error(2695,e.range(s)):h=this.parseStatement(e,!0));break}}if(a)for(let m=0,T=a.length;m<T;++m)this.error(1206,a[m].range);if(p&&h!=null)switch(h.kind){case 53:case 56:case 52:case 58:case 60:return z.createExportDefaultStatement(h,e.range(s,e.pos));default:this.error(1042,e.range(u,p),"default")}return h}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let t=this.dependees;return t.has(e)?assert(t.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.weaveDataMigrations(),this.weaveDeriveHandlers(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.streamExportedSources.clear(),this.dependees.clear(),this.restImportedSources.clear(),this.rpcImportedSources.clear()}weaveDeriveHandlers(){if(this.toildbDerivesWoven)return;this.toildbDerivesWoven=!0;let e=this.options;if(e!=null&&e.targetMode=="cold")return;let t=null,n="",s="",a=0,l=0;for(let o=0,u=this.sources.length;o<u;++o){let p=this.sources[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!this.hasDecoratorKind(g.decorators,31))continue;let m=g.name.text,T=g.members,S="",v=!1;for(let k=0,R=T.length;k<R;++k){let C=T[k];if(C.kind!=59)continue;let D=C;if(!this.hasDecoratorKind(D.decorators,36))continue;let U=D.name.text;this.isVoidNoArgSignature(D.signature)||this.error(102,D.signature.range,"ToilDB: @derive method '"+m+"."+U+"' must take no arguments and return void."),S+="if(__id=="+a.toString()+"){this."+U+"();return true;}",t==null&&(t=g),v=!0,++a}if(!v)continue;this.injectClassMember(g,"__deriveRun(__id:i32):bool{"+S+"return false;}");let F="__toilDeriveInstance"+l.toString();n+="let "+F+":"+m+`|null=null;
|
|
17
|
+
`;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:return this.pos<n&&s.charCodeAt(this.pos)==123?(++this.pos,this.readExtendedUnicodeEscape(e?t:-1)):this.readUnicodeEscape(e?t:-1);case 120:return this.readHexadecimalEscape(2,e?t:-1);case 13:this.pos<n&&s.charCodeAt(this.pos)==10&&++this.pos;case 10:case 8232:case 8233:return"";default:return String.fromCodePoint(a)}}readRegexpPattern(){let e=this.source.text,t=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(t,n));break}if(e.charCodeAt(this.pos)==92){++this.pos,s=!0;continue}let a=e.charCodeAt(this.pos);if(!s&&a==47)break;if(Ut(a)){this.error(1161,this.range(t,this.pos));break}++this.pos,s=!1}return e.substring(t,this.pos)}readRegexpFlags(){let e=this.source.text,t=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!Ei(a))break;switch(++this.pos,a){case 103:{s|=s&1?-1:1;break}case 105:{s|=s&2?-1:2;break}case 109:{s|=s&4?-1:4;break}default:{s=-1;break}}}return s==-1&&this.error(209,this.range(t,this.pos)),e.substring(t,this.pos)}testInteger(){let e=this.source.text,t=this.pos,n=this.end;if(t+1<n&&e.charCodeAt(t)==48)switch(e.charCodeAt(t+2)|32){case 120:case 98:case 111:return!0}for(;t<n;){let s=e.charCodeAt(t);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;t++}return!0}readInteger(){let e=this.source.text,t=this.pos;if(t+2<this.end&&e.charCodeAt(t)==48){switch(e.charCodeAt(t+1)|32){case 120:return this.pos=t+2,this.readHexInteger();case 98:return this.pos=t+2,this.readBinaryInteger();case 111:return this.pos=t+2,this.readOctalInteger()}if(Fa(e.charCodeAt(t+1))){let n=t;this.pos=t+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(4),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(ct(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(zn(_))u=i64_add(i64_shl(l,o),i64_new((_|32)+-87));else if(_==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1125,this.range(s)):a==t&&this.error(6188,this.range(a-1)),p&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readDecimalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(10),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(ct(_))u=i64_add(i64_mul(l,o),i64_new(_-48));else if(_==95)a==t?this.error(a==s?6188:6189,this.range(t)):t-1==s&&e.charCodeAt(t-1)==48&&this.error(6188,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1124,this.range(s)):a==t?this.error(6188,this.range(a-1)):p&&this.error(236,this.range(s,t),this.source.text.substring(s,t)),this.pos=t,l}readOctalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(3),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(Fa(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(_==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1178,this.range(s)):a==t?this.error(6188,this.range(a-1)):p&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readBinaryInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=l,u=!1;for(;t<n;){let p=e.charCodeAt(t);if(p==48)o=i64_shl(l,i64_one);else if(p==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(p==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt(l,o)&&(u=!0),l=o,++t}return t==s?this.error(1177,this.range(s)):a==t?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,t=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<t&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<t){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<t&&(l=e.charCodeAt(this.pos))==45||l==43&&ct(e.charCodeAt(this.pos+1)))&&++this.pos,s+=this.readDecimalFloatPartial())}let a=e.substring(n,this.pos);return s&&(a=a.replaceAll("_","")),parseFloat(a)}readDecimalFloatPartial(e=!0){let t=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=t.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&t.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!ct(u))break;++n}return n!=s&&l==n&&this.error(6188,this.range(l-1)),this.pos=n,o}readHexFloat(){throw new Error("not implemented")}readHexadecimalEscape(e=2,t=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(ct(o))n=(n<<4)+o-48;else if(zn(o))n=(n<<4)+(o|32)+-87;else return~t?(this.pos=--a,s.substring(t,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~t?s.substring(t,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&vi(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let t=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(t,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(t,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(t,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Vl=class{constructor(i,e,t){this.pos=i;this.token=e;this.tokenPos=t}},Wc=null;var N;(S=>(S.None=0,S.Unreachable=1,S.I32=2,S.I64=3,S.F32=4,S.F64=5,S.V128=6,S.Funcref=D_(),S.Externref=G_(),S.Anyref=z_(),S.Eqref=U_(),S.Structref=O_(),S.Arrayref=q_(),S.I31ref=V_(),S.Stringref=W_(),S.Noneref=j_(),S.Nofuncref=H_(),S.Noexternref=K_()))(N||={});var Te;(m=>{m.Extern=8,m.Func=16,m.Any=32,m.Eq=40,m.I31=48,m.Struct=56,m.Array=64,m.Exn=7,m.String=80,m.None=88,m.Noextern=96,m.Nofunc=104;function f(T){return Q_(T)}m.isBottom=f;function d(T){return X_(T)}m.getBottom=d;function h(T,S){return J_(T,S)}m.isSubtype=h;function g(T,S){if(T==S)return T;if(d(T)!=d(S))return-1;if(f(T))return S;if(f(S))return T;if(T>S){let E=T;T=S,S=E}switch(T){case m.Extern:return S==m.String?T:-1;case m.Func:return-1;case m.Any:return T;case m.Eq:return S==m.I31||S==m.Struct||S==m.Array?m.Eq:m.Any;case m.I31:return S==m.Struct||S==m.Array?m.Eq:m.Any;case m.Struct:return S==m.Array?m.Eq:m.Any;case m.Array:return m.Any}return assert(!1),-1}m.leastUpperBound=g})(Te||={});var Hn;(t=>(t.NotPacked=0,t.I8=1,t.I16=2))(Hn||={});var Qc;(s=>{s.SelfSupertype=0,s.InvalidSupertype=1,s.ForwardSupertypeReference=2,s.ForwardChildReference=3;function n(a){switch(a){case 0:return"SelfSupertype";case 1:return"InvalidSupertype";case 2:return"ForwardSupertypeReference";case 3:return"ForwardChildReference"}return assert(!1),""}s.toString=n})(Qc||={});var Xc=(O=>(O[O.MVP=0]="MVP",O[O.Atomics=1]="Atomics",O[O.MutableGlobals=2]="MutableGlobals",O[O.TruncSat=4]="TruncSat",O[O.SIMD=8]="SIMD",O[O.BulkMemory=16]="BulkMemory",O[O.SignExt=32]="SignExt",O[O.ExceptionHandling=64]="ExceptionHandling",O[O.TailCall=128]="TailCall",O[O.ReferenceTypes=256]="ReferenceTypes",O[O.MultiValue=512]="MultiValue",O[O.GC=1024]="GC",O[O.Memory64=2048]="Memory64",O[O.RelaxedSIMD=4096]="RelaxedSIMD",O[O.ExtendedConst=8192]="ExtendedConst",O[O.Strings=16384]="Strings",O[O.MultiMemory=32768]="MultiMemory",O[O.StackSwitching=65536]="StackSwitching",O[O.SharedEverything=131072]="SharedEverything",O[O.FP16=262144]="FP16",O[O.BulkMemoryOpt=524288]="BulkMemoryOpt",O[O.CallIndirectOverlong=1048576]="CallIndirectOverlong",O[O.RelaxedAtomics=4194304]="RelaxedAtomics",O[O.CustomPageSizes=8388608]="CustomPageSizes",O[O.Multibyte=16777216]="Multibyte",O[O.WideArithmetic=33554432]="WideArithmetic",O[O.All=67108863]="All",O))(Xc||{}),Nr=(M=>(M[M.Invalid=0]="Invalid",M[M.Block=1]="Block",M[M.If=2]="If",M[M.Loop=3]="Loop",M[M.Break=4]="Break",M[M.Switch=5]="Switch",M[M.Call=6]="Call",M[M.CallIndirect=7]="CallIndirect",M[M.LocalGet=8]="LocalGet",M[M.LocalSet=9]="LocalSet",M[M.GlobalGet=10]="GlobalGet",M[M.GlobalSet=11]="GlobalSet",M[M.Load=12]="Load",M[M.Store=13]="Store",M[M.Const=14]="Const",M[M.Unary=15]="Unary",M[M.Binary=16]="Binary",M[M.Select=17]="Select",M[M.Drop=18]="Drop",M[M.Return=19]="Return",M[M.MemorySize=20]="MemorySize",M[M.MemoryGrow=21]="MemoryGrow",M[M.Nop=22]="Nop",M[M.Unreachable=23]="Unreachable",M[M.AtomicRMW=24]="AtomicRMW",M[M.AtomicCmpxchg=25]="AtomicCmpxchg",M[M.AtomicWait=26]="AtomicWait",M[M.AtomicNotify=27]="AtomicNotify",M[M.AtomicFence=28]="AtomicFence",M[M.Pause=29]="Pause",M[M.SIMDExtract=30]="SIMDExtract",M[M.SIMDReplace=31]="SIMDReplace",M[M.SIMDShuffle=32]="SIMDShuffle",M[M.SIMDTernary=33]="SIMDTernary",M[M.SIMDShift=34]="SIMDShift",M[M.SIMDLoad=35]="SIMDLoad",M[M.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",M[M.MemoryInit=37]="MemoryInit",M[M.DataDrop=38]="DataDrop",M[M.MemoryCopy=39]="MemoryCopy",M[M.MemoryFill=40]="MemoryFill",M[M.Pop=41]="Pop",M[M.RefNull=42]="RefNull",M[M.RefIsNull=43]="RefIsNull",M[M.RefFunc=44]="RefFunc",M[M.RefEq=45]="RefEq",M[M.TableGet=46]="TableGet",M[M.TableSet=47]="TableSet",M[M.TableSize=48]="TableSize",M[M.TableGrow=49]="TableGrow",M[M.TableFill=50]="TableFill",M[M.TableCopy=51]="TableCopy",M[M.TableInit=52]="TableInit",M[M.ElemDrop=53]="ElemDrop",M[M.Try=54]="Try",M[M.TryTable=55]="TryTable",M[M.Throw=56]="Throw",M[M.Rethrow=57]="Rethrow",M[M.ThrowRef=58]="ThrowRef",M[M.TupleMake=59]="TupleMake",M[M.TupleExtract=60]="TupleExtract",M[M.RefI31=61]="RefI31",M[M.I31Get=62]="I31Get",M[M.CallRef=63]="CallRef",M[M.RefTest=64]="RefTest",M[M.RefCast=65]="RefCast",M[M.RefGetDesc=66]="RefGetDesc",M[M.BrOn=67]="BrOn",M[M.StructNew=68]="StructNew",M[M.StructGet=69]="StructGet",M[M.StructSet=70]="StructSet",M[M.StructRMW=71]="StructRMW",M[M.StructCmpxchg=72]="StructCmpxchg",M[M.ArrayNew=73]="ArrayNew",M[M.ArrayNewData=74]="ArrayNewData",M[M.ArrayNewElem=75]="ArrayNewElem",M[M.ArrayNewFixed=76]="ArrayNewFixed",M[M.ArrayGet=77]="ArrayGet",M[M.ArraySet=78]="ArraySet",M[M.ArrayLoad=79]="ArrayLoad",M[M.ArrayStore=80]="ArrayStore",M[M.ArrayLen=81]="ArrayLen",M[M.ArrayCopy=82]="ArrayCopy",M[M.ArrayFill=83]="ArrayFill",M[M.ArrayInitData=84]="ArrayInitData",M[M.ArrayInitElem=85]="ArrayInitElem",M[M.ArrayRMW=86]="ArrayRMW",M[M.ArrayCmpxchg=87]="ArrayCmpxchg",M[M.RefAs=88]="RefAs",M[M.StringNew=89]="StringNew",M[M.StringConst=90]="StringConst",M[M.StringMeasure=91]="StringMeasure",M[M.StringEncode=92]="StringEncode",M[M.StringConcat=93]="StringConcat",M[M.StringEq=94]="StringEq",M[M.StringTest=95]="StringTest",M[M.StringWTF16Get=96]="StringWTF16Get",M[M.StringSliceWTF=97]="StringSliceWTF",M[M.ContNew=98]="ContNew",M[M.ContBind=99]="ContBind",M[M.Suspend=100]="Suspend",M[M.Resume=101]="Resume",M[M.ResumeThrow=102]="ResumeThrow",M[M.StackSwitch=103]="StackSwitch",M[M.StructWait=104]="StructWait",M[M.StructNotify=105]="StructNotify",M[M.WideIntAddSub=106]="WideIntAddSub",M[M.WideIntMul=107]="WideIntMul",M))(Nr||{}),Jc=(s=>(s[s.Function=0]="Function",s[s.Table=1]="Table",s[s.Memory=2]="Memory",s[s.Global=3]="Global",s[s.Tag=4]="Tag",s))(Jc||{}),Ag=(t=>(t[t.Unordered=0]="Unordered",t[t.SeqCst=1]="SeqCst",t[t.AcqRel=2]="AcqRel",t))(Ag||{}),Xn=(w=>(w[w.ClzI32=0]="ClzI32",w[w.ClzI64=1]="ClzI64",w[w.CtzI32=2]="CtzI32",w[w.CtzI64=3]="CtzI64",w[w.PopcntI32=4]="PopcntI32",w[w.PopcntI64=5]="PopcntI64",w[w.NegF32=6]="NegF32",w[w.NegF64=7]="NegF64",w[w.AbsF32=8]="AbsF32",w[w.AbsF64=9]="AbsF64",w[w.CeilF32=10]="CeilF32",w[w.CeilF64=11]="CeilF64",w[w.FloorF32=12]="FloorF32",w[w.FloorF64=13]="FloorF64",w[w.TruncF32=14]="TruncF32",w[w.TruncF64=15]="TruncF64",w[w.NearestF32=16]="NearestF32",w[w.NearestF64=17]="NearestF64",w[w.SqrtF32=18]="SqrtF32",w[w.SqrtF64=19]="SqrtF64",w[w.EqzI32=20]="EqzI32",w[w.EqzI64=21]="EqzI64",w[w.ExtendI32ToI64=22]="ExtendI32ToI64",w[w.ExtendU32ToU64=23]="ExtendU32ToU64",w[w.WrapI64ToI32=24]="WrapI64ToI32",w[w.TruncF32ToI32=25]="TruncF32ToI32",w[w.TruncF32ToI64=26]="TruncF32ToI64",w[w.TruncF32ToU32=27]="TruncF32ToU32",w[w.TruncF32ToU64=28]="TruncF32ToU64",w[w.TruncF64ToI32=29]="TruncF64ToI32",w[w.TruncF64ToI64=30]="TruncF64ToI64",w[w.TruncF64ToU32=31]="TruncF64ToU32",w[w.TruncF64ToU64=32]="TruncF64ToU64",w[w.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",w[w.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",w[w.ConvertI32ToF32=35]="ConvertI32ToF32",w[w.ConvertI32ToF64=36]="ConvertI32ToF64",w[w.ConvertU32ToF32=37]="ConvertU32ToF32",w[w.ConvertU32ToF64=38]="ConvertU32ToF64",w[w.ConvertI64ToF32=39]="ConvertI64ToF32",w[w.ConvertI64ToF64=40]="ConvertI64ToF64",w[w.ConvertU64ToF32=41]="ConvertU64ToF32",w[w.ConvertU64ToF64=42]="ConvertU64ToF64",w[w.PromoteF32ToF64=43]="PromoteF32ToF64",w[w.DemoteF64ToF32=44]="DemoteF64ToF32",w[w.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",w[w.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",w[w.Extend8I32=47]="Extend8I32",w[w.Extend16I32=48]="Extend16I32",w[w.Extend8I64=49]="Extend8I64",w[w.Extend16I64=50]="Extend16I64",w[w.Extend32I64=51]="Extend32I64",w[w.TruncSatF32ToI32=52]="TruncSatF32ToI32",w[w.TruncSatF32ToU32=53]="TruncSatF32ToU32",w[w.TruncSatF64ToI32=54]="TruncSatF64ToI32",w[w.TruncSatF64ToU32=55]="TruncSatF64ToU32",w[w.TruncSatF32ToI64=56]="TruncSatF32ToI64",w[w.TruncSatF32ToU64=57]="TruncSatF32ToU64",w[w.TruncSatF64ToI64=58]="TruncSatF64ToI64",w[w.TruncSatF64ToU64=59]="TruncSatF64ToU64",w[w.SplatI8x16=60]="SplatI8x16",w[w.SplatI16x8=61]="SplatI16x8",w[w.SplatI32x4=62]="SplatI32x4",w[w.SplatI64x2=63]="SplatI64x2",w[w.SplatF32x4=64]="SplatF32x4",w[w.SplatF64x2=65]="SplatF64x2",w[w.NotV128=66]="NotV128",w[w.AnyTrueV128=67]="AnyTrueV128",w[w.AbsI8x16=68]="AbsI8x16",w[w.NegI8x16=69]="NegI8x16",w[w.AllTrueI8x16=70]="AllTrueI8x16",w[w.BitmaskI8x16=71]="BitmaskI8x16",w[w.PopcntI8x16=72]="PopcntI8x16",w[w.AbsI16x8=73]="AbsI16x8",w[w.NegI16x8=74]="NegI16x8",w[w.AllTrueI16x8=75]="AllTrueI16x8",w[w.BitmaskI16x8=76]="BitmaskI16x8",w[w.AbsI32x4=77]="AbsI32x4",w[w.NegI32x4=78]="NegI32x4",w[w.AllTrueI32x4=79]="AllTrueI32x4",w[w.BitmaskI32x4=80]="BitmaskI32x4",w[w.AbsI64x2=81]="AbsI64x2",w[w.NegI64x2=82]="NegI64x2",w[w.AllTrueI64x2=83]="AllTrueI64x2",w[w.BitmaskI64x2=84]="BitmaskI64x2",w[w.AbsF32x4=92]="AbsF32x4",w[w.NegF32x4=93]="NegF32x4",w[w.SqrtF32x4=94]="SqrtF32x4",w[w.CeilF32x4=95]="CeilF32x4",w[w.FloorF32x4=96]="FloorF32x4",w[w.TruncF32x4=97]="TruncF32x4",w[w.NearestF32x4=98]="NearestF32x4",w[w.AbsF64x2=99]="AbsF64x2",w[w.NegF64x2=100]="NegF64x2",w[w.SqrtF64x2=101]="SqrtF64x2",w[w.CeilF64x2=102]="CeilF64x2",w[w.FloorF64x2=103]="FloorF64x2",w[w.TruncF64x2=104]="TruncF64x2",w[w.NearestF64x2=105]="NearestF64x2",w[w.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",w[w.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",w[w.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",w[w.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",w[w.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",w[w.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",w[w.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",w[w.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",w[w.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",w[w.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",w[w.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",w[w.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",w[w.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",w[w.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",w[w.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",w[w.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",w[w.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",w[w.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",w[w.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",w[w.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",w[w.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",w[w.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",w[w.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",w[w.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",w[w.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",w[w.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",w[w.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",w[w.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",w[w.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",w[w.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",w[w.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",w[w._last=141]="_last",w[w.ClzSize=142]="ClzSize",w[w.CtzSize=143]="CtzSize",w[w.PopcntSize=144]="PopcntSize",w[w.EqzSize=145]="EqzSize",w))(Xn||{}),Ni=(A=>(A[A.AddI32=0]="AddI32",A[A.SubI32=1]="SubI32",A[A.MulI32=2]="MulI32",A[A.DivI32=3]="DivI32",A[A.DivU32=4]="DivU32",A[A.RemI32=5]="RemI32",A[A.RemU32=6]="RemU32",A[A.AndI32=7]="AndI32",A[A.OrI32=8]="OrI32",A[A.XorI32=9]="XorI32",A[A.ShlI32=10]="ShlI32",A[A.ShrI32=11]="ShrI32",A[A.ShrU32=12]="ShrU32",A[A.RotlI32=13]="RotlI32",A[A.RotrI32=14]="RotrI32",A[A.EqI32=15]="EqI32",A[A.NeI32=16]="NeI32",A[A.LtI32=17]="LtI32",A[A.LtU32=18]="LtU32",A[A.LeI32=19]="LeI32",A[A.LeU32=20]="LeU32",A[A.GtI32=21]="GtI32",A[A.GtU32=22]="GtU32",A[A.GeI32=23]="GeI32",A[A.GeU32=24]="GeU32",A[A.AddI64=25]="AddI64",A[A.SubI64=26]="SubI64",A[A.MulI64=27]="MulI64",A[A.DivI64=28]="DivI64",A[A.DivU64=29]="DivU64",A[A.RemI64=30]="RemI64",A[A.RemU64=31]="RemU64",A[A.AndI64=32]="AndI64",A[A.OrI64=33]="OrI64",A[A.XorI64=34]="XorI64",A[A.ShlI64=35]="ShlI64",A[A.ShrI64=36]="ShrI64",A[A.ShrU64=37]="ShrU64",A[A.RotlI64=38]="RotlI64",A[A.RotrI64=39]="RotrI64",A[A.EqI64=40]="EqI64",A[A.NeI64=41]="NeI64",A[A.LtI64=42]="LtI64",A[A.LtU64=43]="LtU64",A[A.LeI64=44]="LeI64",A[A.LeU64=45]="LeU64",A[A.GtI64=46]="GtI64",A[A.GtU64=47]="GtU64",A[A.GeI64=48]="GeI64",A[A.GeU64=49]="GeU64",A[A.AddF32=50]="AddF32",A[A.SubF32=51]="SubF32",A[A.MulF32=52]="MulF32",A[A.DivF32=53]="DivF32",A[A.CopysignF32=54]="CopysignF32",A[A.MinF32=55]="MinF32",A[A.MaxF32=56]="MaxF32",A[A.EqF32=57]="EqF32",A[A.NeF32=58]="NeF32",A[A.LtF32=59]="LtF32",A[A.LeF32=60]="LeF32",A[A.GtF32=61]="GtF32",A[A.GeF32=62]="GeF32",A[A.AddF64=63]="AddF64",A[A.SubF64=64]="SubF64",A[A.MulF64=65]="MulF64",A[A.DivF64=66]="DivF64",A[A.CopysignF64=67]="CopysignF64",A[A.MinF64=68]="MinF64",A[A.MaxF64=69]="MaxF64",A[A.EqF64=70]="EqF64",A[A.NeF64=71]="NeF64",A[A.LtF64=72]="LtF64",A[A.LeF64=73]="LeF64",A[A.GtF64=74]="GtF64",A[A.GeF64=75]="GeF64",A[A.EqI8x16=76]="EqI8x16",A[A.NeI8x16=77]="NeI8x16",A[A.LtI8x16=78]="LtI8x16",A[A.LtU8x16=79]="LtU8x16",A[A.GtI8x16=80]="GtI8x16",A[A.GtU8x16=81]="GtU8x16",A[A.LeI8x16=82]="LeI8x16",A[A.LeU8x16=83]="LeU8x16",A[A.GeI8x16=84]="GeI8x16",A[A.GeU8x16=85]="GeU8x16",A[A.EqI16x8=86]="EqI16x8",A[A.NeI16x8=87]="NeI16x8",A[A.LtI16x8=88]="LtI16x8",A[A.LtU16x8=89]="LtU16x8",A[A.GtI16x8=90]="GtI16x8",A[A.GtU16x8=91]="GtU16x8",A[A.LeI16x8=92]="LeI16x8",A[A.LeU16x8=93]="LeU16x8",A[A.GeI16x8=94]="GeI16x8",A[A.GeU16x8=95]="GeU16x8",A[A.EqI32x4=96]="EqI32x4",A[A.NeI32x4=97]="NeI32x4",A[A.LtI32x4=98]="LtI32x4",A[A.LtU32x4=99]="LtU32x4",A[A.GtI32x4=100]="GtI32x4",A[A.GtU32x4=101]="GtU32x4",A[A.LeI32x4=102]="LeI32x4",A[A.LeU32x4=103]="LeU32x4",A[A.GeI32x4=104]="GeI32x4",A[A.GeU32x4=105]="GeU32x4",A[A.EqI64x2=106]="EqI64x2",A[A.NeI64x2=107]="NeI64x2",A[A.LtI64x2=108]="LtI64x2",A[A.GtI64x2=109]="GtI64x2",A[A.LeI64x2=110]="LeI64x2",A[A.GeI64x2=111]="GeI64x2",A[A.EqF32x4=118]="EqF32x4",A[A.NeF32x4=119]="NeF32x4",A[A.LtF32x4=120]="LtF32x4",A[A.GtF32x4=121]="GtF32x4",A[A.LeF32x4=122]="LeF32x4",A[A.GeF32x4=123]="GeF32x4",A[A.EqF64x2=124]="EqF64x2",A[A.NeF64x2=125]="NeF64x2",A[A.LtF64x2=126]="LtF64x2",A[A.GtF64x2=127]="GtF64x2",A[A.LeF64x2=128]="LeF64x2",A[A.GeF64x2=129]="GeF64x2",A[A.AndV128=130]="AndV128",A[A.OrV128=131]="OrV128",A[A.XorV128=132]="XorV128",A[A.AndnotV128=133]="AndnotV128",A[A.AddI8x16=134]="AddI8x16",A[A.AddSatI8x16=135]="AddSatI8x16",A[A.AddSatU8x16=136]="AddSatU8x16",A[A.SubI8x16=137]="SubI8x16",A[A.SubSatI8x16=138]="SubSatI8x16",A[A.SubSatU8x16=139]="SubSatU8x16",A[A.MinI8x16=140]="MinI8x16",A[A.MinU8x16=141]="MinU8x16",A[A.MaxI8x16=142]="MaxI8x16",A[A.MaxU8x16=143]="MaxU8x16",A[A.AvgrU8x16=144]="AvgrU8x16",A[A.AddI16x8=145]="AddI16x8",A[A.AddSatI16x8=146]="AddSatI16x8",A[A.AddSatU16x8=147]="AddSatU16x8",A[A.SubI16x8=148]="SubI16x8",A[A.SubSatI16x8=149]="SubSatI16x8",A[A.SubSatU16x8=150]="SubSatU16x8",A[A.MulI16x8=151]="MulI16x8",A[A.MinI16x8=152]="MinI16x8",A[A.MinU16x8=153]="MinU16x8",A[A.MaxI16x8=154]="MaxI16x8",A[A.MaxU16x8=155]="MaxU16x8",A[A.AvgrU16x8=156]="AvgrU16x8",A[A.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",A[A.ExtmulLowI16x8=158]="ExtmulLowI16x8",A[A.ExtmulHighI16x8=159]="ExtmulHighI16x8",A[A.ExtmulLowU16x8=160]="ExtmulLowU16x8",A[A.ExtmulHighU16x8=161]="ExtmulHighU16x8",A[A.AddI32x4=162]="AddI32x4",A[A.SubI32x4=163]="SubI32x4",A[A.MulI32x4=164]="MulI32x4",A[A.MinI32x4=165]="MinI32x4",A[A.MinU32x4=166]="MinU32x4",A[A.MaxI32x4=167]="MaxI32x4",A[A.MaxU32x4=168]="MaxU32x4",A[A.DotI16x8=169]="DotI16x8",A[A.ExtmulLowI32x4=170]="ExtmulLowI32x4",A[A.ExtmulHighI32x4=171]="ExtmulHighI32x4",A[A.ExtmulLowU32x4=172]="ExtmulLowU32x4",A[A.ExtmulHighU32x4=173]="ExtmulHighU32x4",A[A.AddI64x2=174]="AddI64x2",A[A.SubI64x2=175]="SubI64x2",A[A.MulI64x2=176]="MulI64x2",A[A.ExtmulLowI64x2=177]="ExtmulLowI64x2",A[A.ExtmulHighI64x2=178]="ExtmulHighI64x2",A[A.ExtmulLowU64x2=179]="ExtmulLowU64x2",A[A.ExtmulHighU64x2=180]="ExtmulHighU64x2",A[A.AddF32x4=189]="AddF32x4",A[A.SubF32x4=190]="SubF32x4",A[A.MulF32x4=191]="MulF32x4",A[A.DivF32x4=192]="DivF32x4",A[A.MinF32x4=193]="MinF32x4",A[A.MaxF32x4=194]="MaxF32x4",A[A.PminF32x4=195]="PminF32x4",A[A.PmaxF32x4=196]="PmaxF32x4",A[A.AddF64x2=197]="AddF64x2",A[A.SubF64x2=198]="SubF64x2",A[A.MulF64x2=199]="MulF64x2",A[A.DivF64x2=200]="DivF64x2",A[A.MinF64x2=201]="MinF64x2",A[A.MaxF64x2=202]="MaxF64x2",A[A.PminF64x2=203]="PminF64x2",A[A.PmaxF64x2=204]="PmaxF64x2",A[A.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",A[A.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",A[A.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",A[A.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",A[A.SwizzleI8x16=209]="SwizzleI8x16",A[A.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",A[A.RelaxedMinF32x4=211]="RelaxedMinF32x4",A[A.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",A[A.RelaxedMinF64x2=213]="RelaxedMinF64x2",A[A.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",A[A.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",A[A.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",A[A._last=216]="_last",A[A.AddSize=217]="AddSize",A[A.SubSize=218]="SubSize",A[A.MulSize=219]="MulSize",A[A.DivISize=220]="DivISize",A[A.DivUSize=221]="DivUSize",A[A.RemISize=222]="RemISize",A[A.RemUSize=223]="RemUSize",A[A.AndSize=224]="AndSize",A[A.OrSize=225]="OrSize",A[A.XorSize=226]="XorSize",A[A.ShlSize=227]="ShlSize",A[A.ShrISize=228]="ShrISize",A[A.ShrUSize=229]="ShrUSize",A[A.RotlSize=230]="RotlSize",A[A.RotrSize=231]="RotrSize",A[A.EqSize=232]="EqSize",A[A.NeSize=233]="NeSize",A[A.LtISize=234]="LtISize",A[A.LtUSize=235]="LtUSize",A[A.LeISize=236]="LeISize",A[A.LeUSize=237]="LeUSize",A[A.GtISize=238]="GtISize",A[A.GtUSize=239]="GtUSize",A[A.GeISize=240]="GeISize",A[A.GeUSize=241]="GeUSize",A))(Ni||{}),Zc=(a=>(a[a.Add=0]="Add",a[a.Sub=1]="Sub",a[a.And=2]="And",a[a.Or=3]="Or",a[a.Xor=4]="Xor",a[a.Xchg=5]="Xchg",a))(Zc||{}),Yc=(o=>(o[o.ExtractLaneI8x16=0]="ExtractLaneI8x16",o[o.ExtractLaneU8x16=1]="ExtractLaneU8x16",o[o.ExtractLaneI16x8=2]="ExtractLaneI16x8",o[o.ExtractLaneU16x8=3]="ExtractLaneU16x8",o[o.ExtractLaneI32x4=4]="ExtractLaneI32x4",o[o.ExtractLaneI64x2=5]="ExtractLaneI64x2",o[o.ExtractLaneF32x4=7]="ExtractLaneF32x4",o[o.ExtractLaneF64x2=8]="ExtractLaneF64x2",o))(Yc||{}),$c=(a=>(a[a.ReplaceLaneI8x16=0]="ReplaceLaneI8x16",a[a.ReplaceLaneI16x8=1]="ReplaceLaneI16x8",a[a.ReplaceLaneI32x4=2]="ReplaceLaneI32x4",a[a.ReplaceLaneI64x2=3]="ReplaceLaneI64x2",a[a.ReplaceLaneF32x4=5]="ReplaceLaneF32x4",a[a.ReplaceLaneF64x2=6]="ReplaceLaneF64x2",a))($c||{}),ep=(f=>(f[f.ShlI8x16=0]="ShlI8x16",f[f.ShrI8x16=1]="ShrI8x16",f[f.ShrU8x16=2]="ShrU8x16",f[f.ShlI16x8=3]="ShlI16x8",f[f.ShrI16x8=4]="ShrI16x8",f[f.ShrU16x8=5]="ShrU16x8",f[f.ShlI32x4=6]="ShlI32x4",f[f.ShrI32x4=7]="ShrI32x4",f[f.ShrU32x4=8]="ShrU32x4",f[f.ShlI64x2=9]="ShlI64x2",f[f.ShrI64x2=10]="ShrI64x2",f[f.ShrU64x2=11]="ShrU64x2",f))(ep||{}),tp=(f=>(f[f.Load8Splat=0]="Load8Splat",f[f.Load16Splat=1]="Load16Splat",f[f.Load32Splat=2]="Load32Splat",f[f.Load64Splat=3]="Load64Splat",f[f.Load8x8S=4]="Load8x8S",f[f.Load8x8U=5]="Load8x8U",f[f.Load16x4S=6]="Load16x4S",f[f.Load16x4U=7]="Load16x4U",f[f.Load32x2S=8]="Load32x2S",f[f.Load32x2U=9]="Load32x2U",f[f.Load32Zero=10]="Load32Zero",f[f.Load64Zero=11]="Load64Zero",f))(tp||{}),rp=(o=>(o[o.Load8Lane=0]="Load8Lane",o[o.Load16Lane=1]="Load16Lane",o[o.Load32Lane=2]="Load32Lane",o[o.Load64Lane=3]="Load64Lane",o[o.Store8Lane=4]="Store8Lane",o[o.Store16Lane=5]="Store16Lane",o[o.Store32Lane=6]="Store32Lane",o[o.Store64Lane=7]="Store64Lane",o))(rp||{}),ip=(p=>(p[p.Bitselect=0]="Bitselect",p[p.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",p[p.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",p[p.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",p[p.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",p[p.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",p[p.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",p[p.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",p[p.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",p[p.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",p))(ip||{}),vg=(t=>(t[t.NonNull=0]="NonNull",t[t.AnyConvertExtern=1]="AnyConvertExtern",t[t.ExternConvertAny=2]="ExternConvertAny",t))(vg||{}),Eg=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Eg||{}),Sg=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(Sg||{}),Ig=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(Ig||{}),kg=(t=>(t[t.LossyUTF8Array=0]="LossyUTF8Array",t[t.WTF16Array=1]="WTF16Array",t[t.FromCodePoint=2]="FromCodePoint",t))(kg||{}),Rg=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Rg||{}),Fg=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(Fg||{}),wg=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(wg||{}),jl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(jl||{}),Li=class{constructor(i,e){this.buffer=i;this.offset=e}},Ot=class r{constructor(i,e,t){this.ref=i;this.useShadowStack=e;this.sizeType=t;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(t==N.I32||t==N.I64),this.lit=gt(wo())}static create(i,e){return new r(Y_(),i,e)}static createFrom(i,e,t){let n=Kn(i),s=new r(oy(n,i.length),e,t);return ie(changetype(n)),s}i32(i){let e=this.lit;return ef(e,i),ui(this.ref,e)}i64(i,e=0){let t=this.lit;return og(t,i64_new(i,e)),ui(this.ref,t)}usize(i){return i64_is(i)?this.sizeType==N.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==N.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return tf(e,i),ui(this.ref,e)}f64(i){let e=this.lit;return rf(e,i),ui(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let t=0;t<16;++t)Ge(e+t,unchecked(i[t]));return nf(e,e),ui(this.ref,e)}ref_null(i){return ah(this.ref,i)}ref_eq(i,e){return _h(this.ref,i,e)}string_eq(i,e){return pc(this.ref,0,i,e)}string_compare(i,e){return pc(this.ref,1,i,e)}unary(i,e){if(i>141){let t=this.sizeType==N.I64;switch(i){case 142:i=t?1:0;break;case 143:i=t?3:2;break;case 144:i=t?5:4;break;case 145:i=t?21:20;break;default:assert(!1)}}return Zf(this.ref,i,e)}binary(i,e,t){if(i>216){let n=this.sizeType==N.I64;switch(i){case 217:i=n?25:0;break;case 218:i=n?26:1;break;case 219:i=n?27:2;break;case 220:i=n?28:3;break;case 221:i=n?29:4;break;case 222:i=n?30:5;break;case 223:i=n?31:6;break;case 224:i=n?32:7;break;case 225:i=n?33:8;break;case 226:i=n?34:9;break;case 227:i=n?35:10;break;case 228:i=n?36:11;break;case 229:i=n?37:12;break;case 230:i=n?38:13;break;case 231:i=n?39:14;break;case 232:i=n?40:15;break;case 233:i=n?41:16;break;case 234:i=n?42:17;break;case 235:i=n?43:18;break;case 236:i=n?44:19;break;case 237:i=n?45:20;break;case 238:i=n?46:21;break;case 239:i=n?47:22;break;case 240:i=n?48:23;break;case 241:i=n?49:24;break;default:assert(!1)}}return rd(this.ref,i,e,t)}wide_int_add_sub(i,e,t,n,s){return ed(this.ref,i,e,t,n,s)}wide_int_mul(i,e,t){return td(this.ref,i,e,t)}memory_size(i=P.DefaultMemory,e=!1){let t=this.allocStringCached(i);return Nf(this.ref,t,e)}memory_grow(i,e=P.DefaultMemory,t=!1){let n=this.allocStringCached(e);return Mf(this.ref,i,n,t)}table_size(i){let e=this.allocStringCached(i);return yh(this.ref,e)}table_grow(i,e,t=0){let n=this.allocStringCached(i);return gh(this.ref,n,t,e)}local_get(i,e){return Ff(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=Mt(i);return assert(e==N.I32||e==N.Unreachable),this.call(y.tostack,[i],e)}return i}local_tee(i,e,t,n=-1){return n==-1&&(n=Mt(e)),t&&this.useShadowStack&&(e=this.tostack(e)),wf(this.ref,i,e,n)}global_get(i,e){let t=this.allocStringCached(i);return Cf(this.ref,t,e)}table_get(i,e,t){let n=this.allocStringCached(i);return hh(this.ref,n,e,t)}load(i,e,t,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return Gf(this.ref,i,e,s,a,n,t,o)}store(i,e,t,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return Wf(this.ref,i,s,a,e,t,n,o)}atomic_load(i,e,t,n=0,s=P.DefaultMemory,a=1){let l=this.allocStringCached(s);return qf(this.ref,i,n,t,e,l,a)}atomic_store(i,e,t,n,s=0,a=P.DefaultMemory,l=1){let o=this.allocStringCached(a);return Kf(this.ref,i,s,e,t,n,o,l)}atomic_rmw(i,e,t,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return dd(this.ref,i,e,t,n,s,a,u,o)}atomic_cmpxchg(i,e,t,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return yd(this.ref,i,e,t,n,s,a,u,o)}atomic_wait(i,e,t,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return Td(this.ref,i,e,t,n,a)}atomic_notify(i,e,t=P.DefaultMemory){let n=this.allocStringCached(t);return Sd(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return Rd(this.ref,e)}local_set(i,e,t){return t&&this.useShadowStack&&(e=this.tostack(e)),bn(this.ref,i,e)}global_set(i,e){let t=this.allocStringCached(i);return Pf(this.ref,t,e)}table_set(i,e,t){let n=this.allocStringCached(i);return mh(this.ref,n,e,t)}block(i,e,t=N.None){let n=this.allocStringCached(i),s=he(e),a=lf(this.ref,n,s,e.length,t);return ie(s),a}flatten(i,e=N.None){let t=i.length;if(t==0)return this.nop();if(t==1){let n=i[0];switch(re(n)){case 19:case 56:case 23:return n}let s=le(n);return s!=N.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,t=0){let n=this.allocStringCached(i);return hf(this.ref,n,e,t)}drop(i){return Mo(this.ref,i)}maybeDrop(i){let e=Mt(i);return e!=N.None&&e!=N.Unreachable?Mo(this.ref,i):i}maybeDropCondition(i,e){return(Gi(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],le(e)):e}loop(i,e){let t=this.allocStringCached(i);return ff(this.ref,t,e)}if(i,e,t=0){return uf(this.ref,i,e,t)}nop(){return _d(this.ref)}return(i=0){return pd(this.ref,i)}select(i,e,t){return ad(this.ref,t,i,e)}switch(i,e,t,n=0){let s=i.length,a=new Array(s);for(let p=0;p<s;++p)unchecked(a[p]=this.allocStringCached(i[p]));let l=he(a),o=this.allocStringCached(e),u=gf(this.ref,l,s,o,t,n);return ie(l),u}call(i,e,t,n=!1){let s=this.allocStringCached(i),a=he(e),l=n?Sf(this.ref,s,a,e?e.length:0,t):Ef(this.ref,s,a,e?e.length:0,t);return ie(a),l}return_call(i,e,t){return this.call(i,e,t,!0)}call_indirect(i,e,t,n,s,a=!1){let l=this.allocStringCached(i??P.DefaultTable),o=he(t),u=a?Rf(this.ref,l,e,o,t?t.length:0,n,s):If(this.ref,l,e,o,t?t.length:0,n,s);return ie(o),u}return_call_indirect(i,e,t,n,s){return this.call_indirect(i,e,t,n,s,!0)}unreachable(){return fd(this.ref)}memory_copy(i,e,t,n=P.DefaultMemory,s=P.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return Yd(this.ref,i,e,t,a,l)}memory_fill(i,e,t,n=P.DefaultMemory){let s=this.allocStringCached(n);return rh(this.ref,i,e,t,s)}try(i,e,t,n,s=null){let a=t.length,l=new Array(a);for(let d=0;d<a;++d)l[d]=this.allocStringCached(t[d]);let o=he(l),u=he(n),p=this.allocStringCached(i),_=this.allocStringCached(s),f=bh(this.ref,p,e,o,a,u,n.length,_);return ie(u),ie(o),f}throw(i,e){let t=this.allocStringCached(i),n=he(e),s=Ah(this.ref,t,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return Sh(this.ref,e)}pop(i){return wh(this.ref,i)}tuple_make(i){let e=he(i),t=Ih(this.ref,e,i.length);return ie(e),t}tuple_extract(i,e){return Rh(this.ref,i,e)}simd_extract(i,e,t){return Fd(this.ref,i,e,t)}simd_replace(i,e,t,n){return Cd(this.ref,i,e,t,n)}simd_shuffle(i,e,t){assert(t.length==16);let n=Kn(t),s=Ld(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,t,n){return Dd(this.ref,i,e,t,n)}simd_shift(i,e,t){return Vd(this.ref,i,e,t)}simd_load(i,e,t,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return Wd(this.ref,i,t,n,e,a)}simd_loadstorelane(i,e,t,n,s,a,l=P.DefaultMemory){let o=this.allocStringCached(l);return Kd(this.ref,i,t,n,s,e,a,o)}ref_is_null(i){return lh(this.ref,i)}ref_as(i,e){return mu(this.ref,i,e)}ref_as_nonnull(i){return Cg(le(i))?mu(this.ref,0,i):i}ref_func(i,e){let t=this.allocStringCached(i);return ch(this.ref,t,Yt(e))}i31_new(i){return Ch(this.ref,i)}i31_get(i,e){return Bh(this.ref,i,e)}addGlobal(i,e,t,n){let s=this.allocStringCached(i);return Gm(this.ref,s,e,t,n)}getGlobal(i){let e=this.allocStringCached(i);return xc(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return xc(this.ref,e)?(zm(this.ref,e),!0):!1}addTag(i,e,t){let n=this.allocStringCached(i);return jm(this.ref,n,e,t)}getTag(i){let e=this.allocStringCached(i);return Km(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);Hm(this.ref,e)}addFunction(i,e,t,n,s){let a=this.allocStringCached(i),l=he(n),o=ci(this.ref,a,e,t,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,t){vm(i,e,this.allocStringCached(t))}getFunction(i){let e=this.allocStringCached(i);return pi(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);wn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return pi(this.ref,e)!=0}addTemporaryFunction(i,e,t){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=he(e),a=ci(this.ref,n,Ze(e),i,0,0,t);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");wn(this.ref,i)}setStart(i){ty(this.ref,i)}addFunctionExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return fa(this.ref,t,n)}addTableExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Cm(this.ref,t,n)}addMemoryExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Pm(this.ref,t,n)}addGlobalExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Bm(this.ref,t,n)}addTagExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Lm(this.ref,t,n)}removeExport(i){let e=this.allocStringCached(i);ha(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return da(this.ref,e)!=0}addFunctionImport(i,e,t,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);Im(this.ref,a,l,o,n,s)}addTableImport(i,e,t){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(t);km(this.ref,n,s,a)}addMemoryImport(i,e,t,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(t);Rm(this.ref,s,a,l,n)}addGlobalImport(i,e,t,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);Fm(this.ref,a,l,o,n,s)}addTagImport(i,e,t,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);wm(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,t,n,s=null,a=P.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),p=t.length,_=new Array(p),f=new Uint8Array(p),d=new Array(p),h=new Array(p);for(let E=0;E<p;++E){let F=unchecked(t[E]),k=F.buffer,R=F.offset;unchecked(_[E]=Kn(k)),unchecked(f[E]=0),unchecked(d[E]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(h[E]=k.length)}let g=he(_),m=Kn(f),T=he(d),S=Hc(h);ey(this.ref,i,e,o,0,g,m,T,S,p,l,!1,u),ie(S),ie(T),ie(m),ie(g);for(let E=p-1;E>=0;--E)ie(unchecked(_[E]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,t,n,s){let a=this.allocStringCached(i),l=n.length,o=new Array(l);for(let _=0;_<l;++_)unchecked(o[_]=this.allocStringCached(n[_]));let u=he(o),p=Ac(this.ref,a);p?(Zm(p,e),Ym(p,t)):p=Tc(this.ref,a,e,t,N.Funcref),$m(this.ref,a,a,u,l,s),ie(u)}ensureFunctionTable(i){let e=this.allocStringCached(i);Ac(this.ref,e)||Tc(this.ref,e,0,r.UNLIMITED_TABLE,N.Funcref)}addCustomSection(i,e){let t=this.allocStringCached(i),n=Kn(e);dy(this.ref,t,n,e.length),ie(n)}getOptimizeLevel(){return Cy()}setOptimizeLevel(i){Py(i)}getShrinkLevel(){return By()}setShrinkLevel(i){Ly(i)}getDebugInfo(){return Ny()}setDebugInfo(i){My(i)}getTrapsNeverHappen(){return Dy()}setTrapsNeverHappen(i){Gy(i)}getClosedWorld(){return zy()}setClosedWorld(i){Uy(i)}getLowMemoryUnused(){return Vy()}setLowMemoryUnused(i){Oy(i)}getZeroFilledMemory(){return qy()}setZeroFilledMemory(i){Wy(i)}getFastMath(){return jy()}setFastMath(i){Ky(i)}getGenerateStackIR(){return Hy()}setGenerateStackIR(i){Qy(i)}getOptimizeStackIR(){return Xy()}setOptimizeStackIR(i){Jy(i)}getPassArgument(i){let e=this.allocStringCached(i),t=Zy(e);return t?Ke(t):null}setPassArgument(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);Yy(t,n)}clearPassArguments(){$y()}getAlwaysInlineMaxSize(){return eg()}setAlwaysInlineMaxSize(i){tg(i)}getFlexibleInlineMaxSize(){return rg()}setFlexibleInlineMaxSize(i){ig(i)}getOneCallerInlineMaxSize(){return ng()}setOneCallerInlineMaxSize(i){sg(i)}getAllowInliningFunctionsWithLoops(){return ag()}setAllowInliningFunctionsWithLoops(i){lg(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return _y(this.ref)}setFeatures(i){i&16&&(i|=524288),fy(this.ref,i)}runPasses(i,e=0){let t=i.length,n=new Array(t);for(let a=0;a<t;++a)n[a]=Ol(i[a]);let s=he(n);e?Em(e,this.ref,s,t):iy(this.ref,s,t),ie(s);for(let a=t-1;a>=0;--a)ie(n[a])}optimize(i,e,t=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(t),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=i>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),i>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(i<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(i>=2?4:0),i>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),i>=2&&a.push("once-reduction"),(i>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(i>=3||e>=1)&&(a.push("rse"),a.push("vacuum"),a.push("code-folding"),a.push("ssa-nomerge"),a.push("local-cse"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),i>=3&&(a.push("simplify-locals-nostructure"),a.push("flatten"),a.push("vacuum"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),a.push("local-cse"),a.push("licm"),a.push("merge-locals"),a.push("reorder-locals")),a.push("optimize-instructions"),i>=2&&a.push("avoid-reinterprets"),a.push("dce"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),this.getFeatures()&512&&a.push("tuple-optimization"),i>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):i>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(i>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(i>=2||e>=1)&&a.push("local-cse"),a.push("reorder-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("coalesce-locals"),a.push("reorder-locals"),a.push("vacuum"),(i>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),i>=3&&a.push("optimize-instructions"),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(i>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(i>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),i>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),i>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),i>=2||e>=1?(a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")):a.push("precompute"),a.push("directize"),a.push("dae-optimizing"),(i>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(i>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),i>=3&&(a.push("simplify-globals"),a.push("vacuum"),a.push("precompute-propagate"),a.push("inlining-optimizing"),a.push("directize"),a.push("dae-optimizing"),a.push("local-cse"),a.push("merge-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("vacuum"),a.push("inlining"),a.push("precompute-propagate"),a.push("rse"),a.push("vacuum"),a.push("ssa-nomerge"),a.push("simplify-locals"),a.push("coalesce-locals")),a.push("optimize-instructions"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("vacuum"),this.getFeatures()&16384&&a.push("string-gathering"),a.push("simplify-globals-optimizing"),a.push("remove-unused-brs"),a.push("optimize-instructions"),a.push("vacuum")),a.push("reorder-globals"),a.push("reorder-functions"),(i>=2||e>=1)&&a.push("duplicate-function-elimination"),e>=2&&a.push("merge-similar-functions"),a.push("memory-packing"),a.push("remove-unused-module-elements"),(i>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return ry(this.ref)==1}interpret(){uy(this.ref)}toBinary(i=null){assert(wo()>=ny());let e=this.lit,t=Ol(i);sy(e,this.ref,t);let n=tr(e+0),s=tr(e+4),a=tr(e+8),l=new Wl(k1(assert(n),s),Ke(a));return t&&ie(t),a&&ie(a),ie(n),l}toText(i=!0){let e=i?ly(this.ref):ay(this.ref),t=Ke(e);return e&&ie(e),t||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let t=Ol(i);return e.set(i,t),t}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let t=Ke(i);return e.set(i,t),t}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,t=i.length;e<t;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),$_(this.ref),this.ref=0}createRelooper(){return ql.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Nt(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return sf(i,this.ref)}runExpression(i,e,t=50,n=1){let s=Ay(this.ref,e,t,n),a=vy(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(le(a)==le(i))}return a}isConstExpression(i){switch(re(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Mi(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression($e(i))&&this.isConstExpression(Ve(i))}break}}return!1}addDebugInfoFile(i){let e=Ol(i),t=cy(this.ref,e);return ie(e),t}getDebugInfoFile(i){return Ke(py(this.ref,i))}setDebugLocation(i,e,t,n,s){Sm(i,e,t,n,s)}};function Ze(r){if(!r)return N.None;switch(r.length){case 0:return N.None;case 1:return r[0]}let i=he(r),e=B_(i,r.length);return ie(i),e}function np(r){let i=L_(r),e=gt(i<<2);N_(r,e);let t=new Array(i);for(let n=0;n<i;++n)unchecked(t[n]=tr(e+(n<<2)));return ie(e),t}function Cg(r){return M_(r)}function re(r){return Nt(r)}function le(r){return Mt(r)}function ne(r){return Hf(r)}function Ie(r){return i64_low(Ic(r))}function Le(r){return i64_high(Ic(r))}function sp(r,i){let e=0,t=0;return i?(e=Ie(r),t=Le(r)):e=ne(r),i64_new(e,t)}function Ee(r){return Qf(r)}function Se(r){return Xf(r)}function ap(r){let i=gt(16);Jf(r,i);let e=new Uint8Array(16);for(let t=0;t<16;++t)e[t]=Er(i+t);return ie(i),e}function Ye(r){if(re(r)!=14)return!1;let i=le(r);return i==N.I32?ne(r)==0:i==N.I64?(Ie(r)|Le(r))==0:i==N.F32?Ee(r)==0:i==N.F64?Se(r)==0:!1}function dt(r){if(re(r)!=14)return!1;let i=le(r);return i==N.I32?ne(r)!=0:i==N.I64?(Ie(r)|Le(r))!=0:i==N.F32?Ee(r)!=0:i==N.F64?Se(r)!=0:!1}function Kl(r){if(re(r)!=14)return!1;let i=le(r);if(i==N.F32){let e=Ee(r);return e==0&&f32_as_i32(e)<0}if(i==N.F64){let e=Se(r);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function e1(r){if(re(r)!=14)return!1;let i=le(r);return i==N.F32?isNaN(Ee(r)):i==N.F64?isNaN(Se(r)):!1}function Hl(r,i){let e=re(i),t=le(i);if(t==N.F32||t==N.F64){if(e==14)return isNaN(t==N.F32?Ee(i):Se(i));if(e==10){let n=r.runExpression(i,0,8);if(n)return isNaN(t==N.F32?Ee(n):Se(n))}}return!1}function Tt(r){return ia(r)}function Ql(r){return oi(r)}function Xl(r){return Tr(r)}function Jn(r){return na(r)}function Zn(r){return Ke(aa(r))}function Mi(r){return id(r)}function $e(r){return En(r)}function Ve(r){return Sn(r)}function Yn(r){return Yf(r)}function Jl(r){return vn(r)}function lp(r){return Vf(r)}function t1(r){return Uf(r)}function r1(r){return Tn(r)}function op(r){return zf(r)}function i1(r){return la(r)}function n1(r){return oa(r)}function s1(r){return Ar(r)}function a1(r){return An(r)}function $n(r){return Ke(Ys(r))}function es(r){return cn(r)}function ts(r,i){return pn(r,i)}function Zl(r){return _n(r)}function rs(r){return fn(r)}function Di(r){return dn(r)}function l1(r){return Ke($s(r))}function o1(r){return hn(r)}function u1(r){return Ke(ea(r))}function c1(r){return mn(r)}function up(r){return In(r)}function cp(r){return kn(r)}function p1(r){return Rn(r)}function _1(r){return Fn(r)}function f1(r){return vr(r)}function is(r){return Ke(li(r))}function At(r){return $t(r)}function He(r,i){return er(r,i)}function d1(r){return xn(r)}function h1(r){return Dt(r)}function pp(r){return Ke(fi(r))}function m1(r){return Pn(r)}function y1(r){return Bn(r)}function g1(r){let i=pa(r),e=new Array(i);for(let t=0;t<i;++t)unchecked(e[t]=_a(r,t));return e}function b1(r){return Ke(Om(r))}function x1(r){return qm(r)}function _p(r){return Wm(r)}function T1(r){return ma(r)}function A1(r){return Ke(Qm(r))}function v1(r){return Xm(r)}function E1(r){return Jm(r)}var ql=class r{constructor(i,e){this.module=i;this.ref=e}static create(i){return new r(i,my(i.ref))}addBlock(i){return yy(this.ref,i)}addBranch(i,e,t=0,n=0){gy(i,e,t,n)}addBlockWithSwitch(i,e){return by(this.ref,i,e)}addBranchForSwitch(i,e,t,n=0){let s=S1(t);xy(i,e,s,t.length,n),ie(s)}renderAndDispose(i,e){return Ty(this.ref,i,e)}},Qn=class{constructor(i,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=i,this.condition=e}addOrReplaceCase(i,e){let t=this.values.indexOf(i),n=this.addCode(e);t>=0?this.indexes[t]=n:(this.values.push(i),this.indexes.push(n))}addCase(i,e){this.values.push(i),this.indexes.push(this.addCode(e))}addCode(i){let e=this.cases,t=e.indexOf(i);return t<0&&(t=e.length,e.push(i)),t}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let t=this.module,n=this.cases,s=n.length;if(!s)return t.drop(this.condition);let a=this.values,l=a.length,o=this.indexes,u=new Array(1+l+1),p=new Array(s);for(let g=0;g<s;++g)unchecked(p[g]=`case${g}${e}`);u[0]=t.local_set(i,this.condition,!1);for(let g=0;g<l;++g){let m=unchecked(o[g]);unchecked(u[1+g]=t.br(p[m],t.binary(15,t.local_get(i,N.I32),t.i32(a[g]))))}let _=this.defaultIndex,f=`default${e}`;u[1+l]=t.br(~_?p[_]:f);let d=t.block(p[0],u);for(let g=1;g<s;++g){let m=n[g-1];m.unshift(d),d=t.block(unchecked(p[g]),m)}let h=n[s-1];return h.unshift(d),t.block(~_?null:f,h)}},fp=(T=>(T[T.None=0]="None",T[T.Branches=1]="Branches",T[T.Calls=2]="Calls",T[T.ReadsLocal=4]="ReadsLocal",T[T.WritesLocal=8]="WritesLocal",T[T.ReadsGlobal=16]="ReadsGlobal",T[T.WritesGlobal=32]="WritesGlobal",T[T.ReadsMemory=64]="ReadsMemory",T[T.WritesMemory=128]="WritesMemory",T[T.ReadsTable=256]="ReadsTable",T[T.WritesTable=512]="WritesTable",T[T.ImplicitTrap=1024]="ImplicitTrap",T[T.IsAtomic=2048]="IsAtomic",T[T.Throws=4096]="Throws",T[T.DanglingPop=8192]="DanglingPop",T[T.TrapsNeverHappen=16384]="TrapsNeverHappen",T[T.Any=32767]="Any",T))(fp||{});function Gi(r,i){return hy(r,i)}function Yl(r,i){return(Gi(r,i)&-21)!=0}function Kn(r){if(!r)return 0;let i=r.length,e=gt(i);for(let t=0;t<i;++t)Ge(e+t,unchecked(r[t]));return e}function S1(r){if(!r)return 0;let i=r.length,e=gt(i<<2),t=e;for(let n=0;n<i;++n){let s=unchecked(r[n]);ga(t,s),t+=4}return e}function Hc(r){if(!r)return 0;let i=r.length,e=gt(i<<2),t=e;for(let n=0;n<i;++n){let s=unchecked(r[n]);ga(t,s),t+=4}return e}function he(r){if(!r)return 0;assert(ASC_TARGET!=2);let i=r.length,e=gt(i<<2),t=e;for(let n=0,s=i;n<s;++n){let a=unchecked(r[n]);ga(t,a),t+=4}return e}function I1(r){let i=0;for(let e=0,t=r.length;e<t;++e){let n=r.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:Ai(n)&&e+1<t&&Ra(r.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function Ol(r){if(r==null)return 0;let i=I1(r),e=gt(i+1)>>>0,t=e;if(i==r.length)for(let n=0,s=r.length;n<s;++n){let a=r.charCodeAt(n)>>>0;Ge(t++,a)}else for(let n=0,s=r.length;n<s;++n){let a=r.charCodeAt(n)>>>0,l;a<=127?Ge(t++,a):a<=2047?(Ge(t++,192|a>>>6),Ge(t++,128|a&63)):Ai(a)&&n+1<s&&Ra(l=r.charCodeAt(n+1))?(a=Gn(a,l),++n,Ge(t++,240|a>>>18),Ge(t++,128|a>>>12&63),Ge(t++,128|a>>>6&63),Ge(t++,128|a&63)):(Ge(t++,224|a>>>12),Ge(t++,128|a>>>6&63),Ge(t++,128|a&63))}return Ge(t,0),e}function k1(r,i){let e=new Uint8Array(i);for(let t=0;t<i;++t)unchecked(e[t]=Er(r+t));return e}function Ke(r){if(!r)return null;let i=new Array,e,t,n,s;for(;e=Er(r++);){if(!(e&128)){i.push(e);continue}if(t=Er(r++)&63,(e&224)==192){i.push((e&31)<<6|t);continue}if(n=Er(r++)&63,(e&240)==224?e=(e&15)<<12|t<<6|n:(s=Er(r++)&63,(e&248)==240?e=(e&7)<<18|t<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(Dn|a>>>10),i.push(Ti|a&1023)}}return String.fromCharCodes(i)}var Wl=class{constructor(i,e){this.output=i;this.sourceMap=e}},Vt=!1;function ns(r){if(r==c.void)return N.None;let i=Pg(r);if(i)return i;let e=r;if(r=r.nonNullableType,i=r.ref)return me(Yt(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let t=Ey(0),n=new Map;nr(t,n,r);let s=ya(t),a=gt(max(4*s,8));if(!Ry(t,a,a,a+4)){let l=tr(a),o=tr(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Qc.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let p=l[o];assert(!p.is(512));let _=tr(a+4*o),f=me(_,!1);assert(!p.ref),p.ref=f,Vt&&console.log(` set ${p.toString()}`);let d=p.getClass();if(d){let h=d.program.module;Fy(h.ref,_,h.allocStringCached(d.internalName));let g=d.members;if(g){let m=Z_(_),T=0;for(let S=Map_values(g),E=0,F=S.length;E<F;++E){let k=S[E];if(k.kind!=10)continue;let R=k.instance;!R||!R.isField||wy(h.ref,_,T++,h.allocStringCached(R.name))}assert(m==T)}}}return ie(a),Vt&&console.log(` finalize ${r.toString()}`),i=assert(r.ref),me(Yt(i),e.is(512))}function Pg(r){switch(r.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return N.I32;case 4:case 9:return N.I64;case 5:case 10:{if(r.isInternalReference)break;return r.size==64?N.I64:N.I32}case 11:return N.F32;case 12:return N.F64;case 13:return N.V128;case 15:return me(Te.Func,r.is(512));case 14:return me(Te.Extern,r.is(512));case 16:return me(Te.Any,r.is(512));case 17:return me(Te.Eq,r.is(512));case 18:return me(Te.Struct,r.is(512));case 19:return me(Te.Array,r.is(512));case 20:return me(Te.I31,r.is(512));case 21:return me(Te.String,r.is(512));case 25:assert(!1)}return 0}function R1(r){switch(r.kind){case 0:case 1:case 6:return Hn.I8;case 2:case 7:return Hn.I16}return Hn.NotPacked}function nr(r,i,e){if(e==c.void)return N.None;let t=Pg(e);if(t||(assert(!e.is(512)),t=e.ref))return t;if(i.has(e))return Vt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Vt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=nr(r,i,a.type));let o=ya(r);vc(r,1),Vt&&console.log(` block [${o}]: ${e.toString()}`);let u=Ec(r,o);t=di(r,u,!1),i.set(e,t);let p=new Array,_=new Array,f=new Array,d=n.members;if(d)for(let T=Map_values(d),S=0,E=T.length;S<E;++S){let F=T[S];if(F.kind!=10)continue;let k=F.instance;if(!k||!k.isField)continue;let R=k.type;Vt&&console.log(` field ${R.toString()}`),R.is(512)?p.push(di(r,Yt(nr(r,i,R.nonNullableType)),!0)):p.push(nr(r,i,R)),_.push(R1(R)),f.push(1)}let h=he(p),g=Hc(_),m=Hc(f);return Vt&&console.log(` concretize [${o}]: ${e.toString()}`),Iy(r,o,h,g,m,p.length),a&&(Vt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),ky(r,o,Yt(l))),ie(m),ie(g),ie(h),t}let s=e.getSignature();if(s){let a=ya(r);vc(r,1);let l=di(r,Ec(r,a),!1);i.set(e,l);let o=new Array,u=new Array,p=s.parameterTypes;for(let h=0,g=p.length;h<g;++h){let m=p[h];m.is(512)?o.push(di(r,Yt(nr(r,i,m.nonNullableType)),!0)):o.push(nr(r,i,m))}let _=s.returnType;u.push(_==c.void?N.None:_.is(512)?di(r,Yt(nr(r,i,_.nonNullableType)),!0):nr(r,i,_));let f;if(o.length>1){let h=he(o);f=Sc(r,h,o.length),ie(h)}else f=o.length?o[0]:N.None;let d;if(u.length>1){let h=he(u);d=Sc(r,h,u.length),ie(h)}else d=u[0];return Vt&&console.log(` concretize [${a}]: ${e.toString()}`),Sy(r,a,f,d),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var eo=(k=>(k[k.None=0]="None",k[k.Returns=1]="Returns",k[k.ReturnsWrapped=2]="ReturnsWrapped",k[k.ReturnsNonNull=4]="ReturnsNonNull",k[k.Throws=8]="Throws",k[k.Breaks=16]="Breaks",k[k.Continues=32]="Continues",k[k.AccessesThis=64]="AccessesThis",k[k.CallsSuper=128]="CallsSuper",k[k.Terminates=256]="Terminates",k[k.ConditionallyReturns=512]="ConditionallyReturns",k[k.ConditionallyThrows=1024]="ConditionallyThrows",k[k.ConditionallyBreaks=2048]="ConditionallyBreaks",k[k.ConditionallyContinues=4096]="ConditionallyContinues",k[k.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",k[k.MayReturnNonThis=16384]="MayReturnNonThis",k[k.UncheckedContext=32768]="UncheckedContext",k[k.CtorParamContext=65536]="CtorParamContext",k[k.InlineContext=131072]="InlineContext",k[k.AnyCategorical=511]="AnyCategorical",k[k.AnyConditional=15872]="AnyConditional",k))(eo||{}),ss=(s=>(s[s.None=0]="None",s[s.Constant=1]="Constant",s[s.Wrapped=2]="Wrapped",s[s.NonNull=4]="NonNull",s[s.Initialized=8]="Initialized",s))(ss||{}),dp=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(dp||{}),hp=(t=>(t[t.Unknown=0]="Unknown",t[t.True=1]="True",t[t.False=2]="False",t))(hp||{}),qt=class r{constructor(i,e=null){this.targetFunction=i;this.inlineFunction=e;this.parent=null;this.outer=null;this.flags=0;this.continueLabel=null;this.breakLabel=null;this.scopedLocals=null;this.scopedTypeAlias=null;this.localFlags=[];this.thisFieldFlags=null;this.inlineReturnLabel=null;this.trueFlows=null;this.falseFlows=null;this.tryFinallyPendingActionLocal=-1;this.tryFinallyPendingValueLocal=-1;this.tryFinallyDispatchLabel=null;this.tryFinallyReturnType=null}static createDefault(i){let e=new r(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let t=new r(i,e);return t.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&t.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&t.set(32768),t}get isInline(){return this.inlineFunction!=null}get isInTryFinally(){return this.tryFinallyPendingActionLocal>=0}getTryFinallyContext(){let i=this;for(;i;){if(i.tryFinallyPendingActionLocal>=0)return i;i=i.parent}return null}get sourceFunction(){let i=this.inlineFunction;return i||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}deriveConditionalFlags(){let i=this.flags&15872;return this.is(1)&&(i|=512),this.is(8)&&(i|=1024),this.is(16)&&(i|=2048),this.is(32)&&(i|=4096),this.is(64)&&(i|=8192),i}fork(i=!1,e=i){let t=new r(this.targetFunction,this.inlineFunction);if(t.parent=this,t.flags=this.flags,t.outer=this.outer,i?t.flags&=-2065:t.breakLabel=this.breakLabel,e?t.flags&=-4129:t.continueLabel=this.continueLabel,t.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);t.thisFieldFlags=_e(n)}else assert(!this.thisFieldFlags);return t.inlineReturnLabel=this.inlineReturnLabel,t}forkThen(i,e=!1,t=e){let n=this.fork(e,t),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let t=this.trueFlows;t||(this.trueFlows=t=new Map),t.set(i,e)}forkElse(i){let e=this.fork(),t=this.falseFlows;return t&&t.has(i)&&e.inherit(changetype(t.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let t=this.falseFlows;t||(this.falseFlows=t=new Map),t.set(i,e)}addScopedTypeAlias(i,e){let t=this.scopedTypeAlias;t||(this.scopedTypeAlias=t=new Map),t.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let t=e.scopedTypeAlias;if(t&&t.has(i))return assert(t.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let t=this.sourceFunction.parent;return t.kind==5?t.flow.lookupTypeAlias(i):null}getTempLocal(i){let e=this.targetFunction.addLocal(i);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(i){let e=this.scopedLocals;return e&&e.has(i)?assert(e.get(i)):null}addScopedLocal(i,e){let t=this.getTempLocal(e);t.name=i,t.internalName=Ne(i,t.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,t.set(67108864),n.set(i,t),t}addScopedDummyLocal(i,e,t){let n=new Qe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,t.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,t,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(i)){let l=assert(s.get(i));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,i):this.program.errorRelated(2300,n.range,l.declaration.name.range,i)),l}assert(t<this.targetFunction.localsByIndex.length);let a=new Qe(i,t,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let t=assert(e.get(i));assert(t.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let t=e.scopedLocals;if(t&&t.has(i))return assert(t.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let t=e.lookupLocal(i);if(t)return t;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,t=!0){if(i<0)return t;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,t=!0){if(i<0)return t;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let t=this.localFlags,n=i<t.length?unchecked(t[i]):0;t[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let t=this.localFlags,n=i<t.length?unchecked(t[i]):0;t[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let t=e;this.thisFieldFlags=new Map;let n=t.members;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=10)continue;let u=o.instance;!u||!u.isField||(u.prototype.parent!=t||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let t=this.thisFieldFlags;return t!=null&&t.has(i)?(changetype(t.get(i))&e)==e:!1}setThisFieldFlag(i,e){let t=this.thisFieldFlags;if(t)if(assert(this.sourceFunction.is(524288)),t.has(i)){let n=changetype(t.get(i));t.set(i,n|e)}else t.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,t=i.breakStack;return t?t.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,t=assert(e.breakStack);assert(t.length),assert(t.pop()==i)}inherit(i){assert(i.targetFunction==this.targetFunction);let e=i.flags;this.breakLabel!=i.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=i.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=i.localFlags,this.thisFieldFlags=i.thisFieldFlags}mergeSideEffects(i){assert(i.targetFunction==this.targetFunction);let e=this.flags,t=i.flags,n=0;e&1?n|=1:t&1?n|=512:n|=(e|t)&512,n|=e&t&2,n|=e&t&4,e&8?n|=8:t&8?n|=1024:n|=(e|t)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?t&16?n|=2048:n|=(e|t)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?t&32?n|=4096:n|=(e|t)&4096:n|=e&4096,e&64?t&64?n|=64:n|=8192:t&64&&(n|=8192),n|=(e|t)&16384,n|=e&t&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,t=e.length,n=i.localFlags,s=n.length,a=max(t,s);for(let l=0;l<a;++l){let o=l<t?e[l]:0,u=l<s?n[l]:0;e[l]=o&u&15}}inheritAlternatives(i,e){assert(i.targetFunction==e.targetFunction),assert(i.targetFunction==this.targetFunction);let t=i.flags,n=e.flags,s=0;t&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(t|n)&512,t&2&&n&2&&(s|=2),t&4&&n&4&&(s|=4),t&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(t|n)&1024,t&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(t|n)&2048,t&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(t|n)&4096,t&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(t|n)&8192,s|=(t|n)&16384,t&128&&n&128&&(s|=128),t&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(t&256){if(!(n&256)){let o=e.localFlags;for(let u=0,p=o.length;u<p;++u)a[u]=o[u]}}else if(n&256){let o=i.localFlags;for(let u=0,p=o.length;u<p;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,p=e.localFlags,_=p.length,f=max(u,_);for(let d=0;d<f;++d){let h=d<u?o[d]:0,g=d<_?p[d]:0;a[d]=h&g&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let p=Map_keys(l),_=0,f=p.length;_<f;++_){let d=p[_];(changetype(l.get(d))&1)!=0&&u.has(d)&&changetype(u.get(d))&1&&o.set(d,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let t=this.localFlags.length,n=i.localFlags.length,s=this.targetFunction;assert(s==i.targetFunction);let a=s.localsByIndex;assert(a==i.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(t,n);o<u;++o){let _=a[o].type;_.isShortIntegerValue&&this.isLocalFlag(o,2)&&!i.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),_.isNullableReference&&this.isLocalFlag(o,4)&&!i.isLocalFlag(o,4)&&(this.unsetLocalFlag(o,4),l=!0)}return l&&(assert(a.length>=e),a.length=e,this.localFlags.length>e&&(this.localFlags.length=e)),l}isNonnull(i,e){if(!e.isNullableReference)return!0;switch(re(i)){case 9:{if(!Jn(i))break;let t=this.targetFunction.localsByIndex[Ql(i)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}case 8:{let t=this.targetFunction.localsByIndex[Tt(i)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch(re(i)){case 9:{if(!Jn(i))break;let t=this.targetFunction.localsByIndex[Ql(i)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4),this.inheritNonnullIfTrue(Xl(i),e);break}case 8:{let t=this.targetFunction.localsByIndex[Tt(i)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4);break}case 2:{let t=Di(i);t&&Ye(t)&&(this.inheritNonnullIfTrue(Zl(i),e),this.inheritNonnullIfTrue(rs(i),e));break}case 15:{switch(Yn(i)){case 20:case 21:{this.inheritNonnullIfFalse(Jl(i),e);break}}break}case 16:{switch(Mi(i)){case 15:case 40:{let t=$e(i),n=Ve(i);dt(t)?this.inheritNonnullIfTrue(n,e):dt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=$e(i),n=Ve(i);Ye(t)?this.inheritNonnullIfTrue(n,e):Ye(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=is(i);if(t==y.String_eq){assert(At(i)==2);let n=He(i,0),s=He(i,1);dt(n)?this.inheritNonnullIfTrue(s,e):dt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==y.String_ne){assert(At(i)==2);let n=He(i,0),s=He(i,1);Ye(n)?this.inheritNonnullIfTrue(s,e):Ye(s)&&this.inheritNonnullIfTrue(n,e)}else t==y.String_not?(assert(At(i)==1),this.inheritNonnullIfFalse(He(i,0),e)):t==y.tostack&&(assert(At(i)==1),this.inheritNonnullIfTrue(He(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch(re(i)){case 15:{switch(Yn(i)){case 20:case 21:{this.inheritNonnullIfTrue(Jl(i),e);break}}break}case 2:{let t=rs(i);Di(i)&&dt(t)&&(this.inheritNonnullIfFalse(Zl(i),e),this.inheritNonnullIfFalse(Di(i),e));break}case 16:{switch(Mi(i)){case 15:case 40:{let t=$e(i),n=Ve(i);Ye(t)?this.inheritNonnullIfTrue(n,e):Ye(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=$e(i),n=Ve(i);dt(t)?this.inheritNonnullIfTrue(n,e):dt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=is(i);if(t==y.String_eq){assert(At(i)==2);let n=He(i,0),s=He(i,1);Ye(n)?this.inheritNonnullIfTrue(s,e):Ye(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==y.String_ne){assert(At(i)==2);let n=He(i,0),s=He(i,1);dt(n)?this.inheritNonnullIfTrue(s,e):dt(s)&&this.inheritNonnullIfTrue(n,e)}else t==y.String_not?(assert(At(i)==1),this.inheritNonnullIfTrue(He(i,0),e)):t==y.tostack&&(assert(At(i)==1),this.inheritNonnullIfFalse(He(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let t;switch(re(i)){case 8:{let n=this.targetFunction.localsByIndex[Tt(i)];return!this.isLocalFlag(n.index,2,!0)||$l(n.type,e)}case 9:return assert(Jn(i)),this.canOverflow(Xl(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Zn(i))));return assert(n.kind==0||n.kind==3),$l(n.type,e)}case 16:{switch(Mi(i)){case 15:case 40:case 57:case 70:case 16:case 41:case 58:case 71:case 17:case 18:case 42:case 43:case 59:case 72:case 19:case 20:case 44:case 45:case 60:case 73:case 21:case 22:case 46:case 47:case 61:case 74:case 23:case 24:case 48:case 49:case 62:case 75:return!1;case 2:return!(re(t=$e(i))==14&&(ne(t)==0||ne(t)==1&&!this.canOverflow(Ve(i),e))||re(t=Ve(i))==14&&(ne(t)==0||ne(t)==1&&!this.canOverflow($e(i),e)));case 7:return!(re(t=$e(i))==14&&ne(t)<=e.computeSmallIntegerMask(c.i32)||!this.canOverflow(t,e)||re(t=Ve(i))==14&&ne(t)<=e.computeSmallIntegerMask(c.i32)||!this.canOverflow(t,e));case 10:{let n=32-e.size;return re(t=Ve(i))!=14||ne(t)<n}case 11:{let n=32-e.size;return this.canOverflow($e(i),e)&&(re(t=Ve(i))!=14||ne(t)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!(re(t=Ve(i))==14&&ne(t)>n):this.canOverflow($e(i),e)&&!(re(t=Ve(i))==14&&ne(t)>=n)}case 4:case 5:case 6:return this.canOverflow($e(i),e)||this.canOverflow(Ve(i),e)}break}case 15:{switch(Yn(i)){case 20:case 21:return!1;case 0:case 2:case 4:return e.size<7;case 47:return e.size<(e.isUnsignedIntegerValue?32:8);case 49:return e.size<(e.isUnsignedIntegerValue?64:8);case 48:return e.size<(e.isUnsignedIntegerValue?32:16);case 50:return e.size<(e.isUnsignedIntegerValue?64:16);case 51:return e.size<(e.isUnsignedIntegerValue?64:32)}break}case 14:{let n=0;switch(le(i)){case N.I32:{n=ne(i);break}case N.I64:{n=Ie(i);break}case N.F32:{n=i32(Ee(i));break}case N.F64:{n=i32(Se(i));break}case N.V128:return!1;default:assert(!1)}switch(e.kind){case 0:return(n&-2)!=0;case 1:return n<i8.MIN_VALUE||n>i8.MAX_VALUE;case 2:return n<i16.MIN_VALUE||n>i16.MAX_VALUE;case 6:return n<0||n>u8.MAX_VALUE;case 7:return n<0||n>u16.MAX_VALUE}break}case 12:{let n,s=op(i);switch(lp(i)){case 1:{n=s?c.i8:c.u8;break}case 2:{n=s?c.i16:c.u16;break}default:{n=s?c.i32:c.u32;break}}return $l(n,e)}case 1:{if(!$n(i)){let n=assert(es(i)),s=ts(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(rs(i),e)||this.canOverflow(assert(Di(i)),e);case 17:return this.canOverflow(up(i),e)||this.canOverflow(cp(i),e);case 6:{let s=this.program.instancesByName,a=assert(is(i));if(s.has(a)){let l=assert(s.get(a));assert(l.kind==5);let o=l,u=o.signature.returnType;return!o.flow.is(2)||$l(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let t=new Array;return this.is(1)&&t.push("RETURNS"),this.is(2)&&t.push("RETURNS_WRAPPED"),this.is(4)&&t.push("RETURNS_NONNULL"),this.is(8)&&t.push("THROWS"),this.is(16)&&t.push("BREAKS"),this.is(32)&&t.push("CONTINUES"),this.is(64)&&t.push("ACCESSES_THIS"),this.is(128)&&t.push("CALLS_SUPER"),this.is(256)&&t.push("TERMINATES"),this.is(512)&&t.push("CONDITIONALLY_RETURNS"),this.is(1024)&&t.push("CONDITIONALLY_THROWS"),this.is(2048)&&t.push("CONDITIONALLY_BREAKS"),this.is(4096)&&t.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&t.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&t.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${t.join(" ")}`}};function $l(r,i){return i.isShortIntegerValue&&(!r.isIntegerValue||r.size>i.size||r.isSignedIntegerValue!=i.isSignedIntegerValue)}var no=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(no||{}),as=class extends Je{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.program=e}resolveType(e,t,n,s=null,a=0){if(e.currentlyResolving)return this.error(100,e.range,"Recursive types"),null;e.currentlyResolving=!0;let l=null;switch(e.kind){case 1:{l=this.resolveNamedType(e,t,n,s,a);break}case 2:{l=this.resolveFunctionType(e,t,n,s,a);break}case 3:{l=this.resolveTupleType(e,t,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,t,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let f=l.identifier.text;if(s&&s.has(f)){let d=assert(s.get(f));if(o&&o.length>0&&a==0&&this.error(2315,e.range,d.toString()),e.isNullable){if(d.isReference)return d.asNullable();a==0&&this.error(204,e.range,d.toString())}return d}}let p=this.resolveTypeName(l,t,n,a);if(!p)return null;let _=p.shadowType;if(_)p=_;else{if(p.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,p.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${p.name}/i32`),c.i32;if(p.kind==6||p.kind==8){let f=this.resolveClassInclTypeArguments(p,o,t,n,_e(s),e,a);return f?e.isNullable?f.type.asNullable():f.type:null}}if(p.kind==14){let f=p;if(p.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,p.internalName);let m=f.type;if(e.isNullable){if(m.isReference)return m.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return m}if(u){let m=l.identifier.text;if(ar.has(m)){let T=assert(ar.get(m)),S=new so(this,e,n,s,a);return T(S)}}let d=f.typeParameterNodes,h=null;if(d){if(h=this.resolveTypeArguments(d,o,t,n,s=_e(s),e,a),!h)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let g=this.resolveType(f.typeNode,t,p,s,a);if(!g)return null;if(e.isNullable){if(g.isReference)return g.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return g}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,t,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,t,n,s,a),!o))return null;let u=e.parameters,p=u.length,_=new Array(p),f=0,d=!1;for(let T=0;T<p;++T){let S=u[T];switch(S.parameterKind){case 0:{f=T+1;break}case 2:{assert(T==p-1),d=!0;break}}let E=S.type;if(Be(E))return a==0&&this.error(1110,E.range),null;let F=this.resolveType(E,t,n,s,a);if(!F)return null;if(F==c.void)return a==0&&this.error(214,E.range,F.toString()),null;_[T]=F}let h=e.returnType,g;if(Be(h))a==0&&this.error(1110,h.range),g=c.void;else if(g=this.resolveType(h,t,n,s,a),!g)return null;let m=Xe.create(this.program,_,g,o,f,d);return e.isNullable?m.type.asNullable():m.type}resolveTupleType(e,t,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],t,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,t,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,t,n,s=0){let a=null;if(t&&(a=t.lookupTypeAlias(e.identifier.text)),a||(a=n.lookup(e.identifier.text,!0)),!a)return s==0&&this.error(2304,e.range,e.identifier.text),null;let l=e,o=e.next;for(;o;){if(!(a=a.getMember(o.identifier.text)))return s==0&&this.error(2339,o.range,o.identifier.text,l.identifier.text),null;l=o,o=o.next}return a}resolveTypeArguments(e,t,n,s,a=new Map,l=null,o=0){let u=0,p=0;for(let h=0,g=e.length;h<g;++h)e[h].defaultType||++u,++p;let _=t?t.length:0;if(_<u||_>p)return o==0&&this.error(2558,_?ce.join(t[0].range,t[_-1].range):l.range,(_<u?u:p).toString(),_.toString()),null;let f=new Array(p),d=_e(a);a.clear();for(let h=0;h<p;++h){let g=h<_?this.resolveType(t[h],n,s,d,o):this.resolveType(assert(e[h].defaultType),n,s,_e(a),o);if(!g)return null;a.set(e[h].name.text,g),f[h]=g}return f}maybeInferCall(e,t,n,s=0){let a=e.typeArguments;if(a)return t.is(65536)?this.resolveFunctionInclTypeArguments(t,a,n.sourceFunction,_e(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,t.internalName),null);if(t.is(65536)){let l=this.inferGenericTypeArguments(e,t,t.typeParameterNodes,n,s);return l?this.resolveFunction(t,l,_e(n.contextualTypeArguments),s):null}return this.resolveFunction(t,null,new Map,s)}inferGenericTypeArguments(e,t,n,s,a=0){if(!n)return null;let l=_e(s.contextualTypeArguments),o=n.length,u=new Set;for(let m=0;m<o;++m){let T=n[m].name.text;l.set(T,c.auto),u.add(T)}let p=t.functionTypeNode.parameters,_=p.length,f,d;switch(e.kind){case 10:{let m=e;f=m.args,d=m.argumentsRange;break}case 18:{let m=e;f=m.args,d=m.argumentsRange;break}default:return assert(!1),null}let h=f.length;for(let m=0;m<_;++m){let T=m<h?f[m]:p[m].initializer;if(!T){if(p[m].parameterKind==1)continue;return a==0&&(p[m].parameterKind==2?this.error(1140,d.atEnd):this.error(2554,e.range,_.toString(),h.toString())),null}let S=p[m].type;if(p[m].parameterKind==2&&(S=S.typeArguments[0]),S.hasGenericComponent(n)){let E=this.resolveExpression(T,s,c.auto,1);E&&this.propagateInferredGenericTypes(S,E,t,l,u)}}let g=new Array(o);for(let m=0;m<o;++m){let T=n[m],S=T.name.text;if(l.has(S)){let E=assert(l.get(S));if(E!=c.auto){g[m]=E;continue}let F=T.defaultType;if(F){let k=t.parent,R=null;(k.kind==7||k.kind==5)&&(R=k.contextualTypeArguments);let C=this.resolveType(F,null,t,R,a);if(!C)return null;g[m]=C;continue}}if(a==0){let E;switch(e.kind){case 10:E=e.expression.range;break;case 18:E=e.typeName.range;break;default:return assert(!1),null}this.error(1140,E.atEnd)}return null}return g}propagateInferredGenericTypes(e,t,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=t.classReference;if(u){let p=this.resolveTypeName(l.name,null,n);if(!p||p.kind!=6)return;if(u.prototype==p){let _=u.typeArguments;if(_&&_.length==o.length){for(let f=0,d=_.length;f<d;++f)this.propagateInferredGenericTypes(o[f],_[f],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let p=assert(s.get(u));(p==c.auto||a.has(u)&&p.isAssignableTo(t))&&s.set(u,t)}}}else if(e.kind==2){let l=e,o=l.parameters,u=t.signatureReference;if(u){let p=u.parameterTypes;for(let h=0,g=min(p.length,o.length);h<g;++h)this.propagateInferredGenericTypes(o[h].type,p[h],n,s,a);let _=u.returnType;_!=c.void&&this.propagateInferredGenericTypes(l.returnType,_,n,s,a);let f=u.thisType,d=l.explicitThisType;f&&d&&this.propagateInferredGenericTypes(d,f,n,s,a);return}}}getTypeOfElement(e){let t=e.kind;if(t==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(ro(t)){let n=e.type,s=n.getClassOrWrapper(this.program);if(s){let a=s.wrappedType;a&&(n=a)}return n}return null}getElementOfType(e){let t=e.getClassOrWrapper(this.program);return t||null}lookupExpression(e,t,n=c.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,t,n,s);case 9:return this.lookupBinaryExpression(e,t,n,s);case 10:return this.lookupCallExpression(e,t,n,s);case 12:return this.lookupCommaExpression(e,t,n,s);case 13:return this.lookupElementAccessExpression(e,t,n,s);case 15:return this.lookupFunctionExpression(e,t,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,t,t.sourceFunction,s);case 25:return this.lookupThisExpression(e,t,n,s);case 24:return this.lookupSuperExpression(e,t,n,s);case 16:return this.lookupInstanceOfExpression(e,t,n,s);case 17:return this.lookupLiteralExpression(e,t,n,s);case 18:return this.lookupNewExpression(e,t,n,s);case 22:return this.lookupPropertyAccessExpression(e,t,n,s);case 23:return this.lookupTernaryExpression(e,t,n,s);case 28:return this.lookupUnaryPostfixExpression(e,t,n,s);case 29:return this.lookupUnaryPrefixExpression(e,t,n,s)}return assert(!1),null}resolveExpression(e,t,n=c.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,t,n,s);return a.delete(e),l}doResolveExpression(e,t,n=c.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,t,n,s);case 9:return this.resolveBinaryExpression(e,t,n,s);case 10:return this.resolveCallExpression(e,t,n,s);case 12:return this.resolveCommaExpression(e,t,n,s);case 13:return this.resolveElementAccessExpression(e,t,n,s);case 15:return this.resolveFunctionExpression(e,t,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,t,n,t.sourceFunction,s);case 25:return this.resolveThisExpression(e,t,n,s);case 24:return this.resolveSuperExpression(e,t,n,s);case 16:return this.resolveInstanceOfExpression(e,t,n,s);case 17:return this.resolveLiteralExpression(e,t,n,s);case 18:return this.resolveNewExpression(e,t,n,s);case 22:return this.resolvePropertyAccessExpression(e,t,n,s);case 23:return this.resolveTernaryExpression(e,t,n,s);case 28:return this.resolveUnaryPostfixExpression(e,t,n,s);case 29:return this.resolveUnaryPrefixExpression(e,t,n,s)}return assert(!1),null}lookupIdentifierExpression(e,t,n=t.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,t,c.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=t.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=t.outer;return o&&(l=o.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=n.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=this.program.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2304,e.range,a),null)}resolveIdentifierExpression(e,t,n=c.auto,s=t.sourceFunction,a=0){switch(e.kind){case 26:case 14:return c.bool;case 19:{let u=n.getClass();if(u)return u.type.asNullable();{let p=n.getSignature();if(p)return p.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,t,s,a);if(!l)return null;if(l.kind==4){let u=this.resolveFunction(l,null,new Map,a);if(!u)return null;l=u}let o=this.getTypeOfElement(l);return o||a==0&&this.error(225,e.range),o}ensureResolvedLazyGlobal(e,t=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,t):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,c.auto,t);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,t,n,s=0){let a=e.expression,l=this.lookupExpression(a,t,n,s);if(!l)return null;let o=e.property.text;switch(l.kind){case 0:if(!this.ensureResolvedLazyGlobal(l,s))return null;case 3:case 1:{let u=l,p=u.type;if(p==c.void)return null;let _=p.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=_;break}case 10:{let u=this.resolveProperty(l,s);if(!u)return null;l=u}case 11:{let u=l,p=u.getterInstance;if(!p){let d=assert(u.setterInstance);return this.errorRelated(229,a.range,d.declaration.range,u.name),null}let _=p.signature.returnType,f=_.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,_.toString()),null;l=f;break}case 15:{let p=l.parent;assert(p.kind==7);let _=p,f=assert(this.currentElementExpression),d=_.lookupOverload(1);if(!d)return s==0&&this.error(2329,f.range,p.internalName),null;let h=d.signature.returnType,g=h.getClassOrWrapper(this.program);if(!g)return s==0&&this.error(2339,e.property.range,o,h.toString()),null;l=g;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let _=this.resolveType(u.typeNode,null,u.parent,null,s);_&&u.setType(_)}let p=u.type.classReference;p&&(l=p.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let _=this.resolveFunction(l,null,new Map,1);if(_){let f=_.type.getClassOrWrapper(this.program);f&&(l=f)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,p=!1;do{let _=u.getMember(o);if(_){if(_.kind==10){let f=this.resolveProperty(_,s);if(!f)return null;_=f,f.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,_}switch(p=!1,u.kind){case 6:case 8:{let d=u.basePrototype;d&&(p=!0,u=d);break}case 7:case 9:{let d=u.base;d&&(p=!0,u=d);break}}}while(p);break}default:{let u=l.getMember(o);if(u)return this.currentThisExpression=a,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,l.internalName),null}resolvePropertyAccessExpression(e,t,n,s=0){let a=this.lookupPropertyAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,t,n,s=0){let a=e.expression,l=this.resolveExpression(a,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o)do{let u=o.indexSignature;if(u)return this.currentThisExpression=a,this.currentElementExpression=e.elementExpression,u;o=o.base}while(o);return s==0&&this.error(2329,a.range,l.toString()),null}resolveElementAccessExpression(e,t,n,s=0){let a=this.lookupElementAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,t,n){let s=e.value;if(t){if(i64_gt(i64_add(s,i64_minimum),i64_zero)){let a=e.range;this.error(236,a,a.source.text.substring(a.start-1,a.end))}else if(i64_eq(s,i64_zero)){if(n.isFloatValue)return n.kind==11?c.f32:c.f64;if(!n.isIntegerValue)return c.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return c.bool;break}case 1:{if(i64_is_i8(s))return c.i8;break}case 6:{if(i64_is_u8(s))return c.u8;break}case 2:{if(i64_is_i16(s))return c.i16;break}case 7:{if(i64_is_u16(s))return c.u16;break}case 3:{if(i64_is_i32(s))return c.i32;break}case 8:{if(i64_is_u32(s))return c.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return c.isize32;break}return c.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return c.usize32;break}return c.usize64}case 4:return c.i64;case 9:return c.u64;case 11:return c.f32;case 12:return c.f64}return i64_is_i32(s)?c.i32:i64_is_u32(s)?c.u32:c.i64}lookupAssertionExpression(e,t,n=c.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),this.currentThisExpression=null,this.currentElementExpression=null,null)}case 2:return this.lookupExpression(e.expression,t,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,t,n=c.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,t,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}default:assert(!1)}return null}lookupUnaryPrefixExpression(e,t,n=c.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Fe(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,t,n=c.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 82:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 81:case 87:case 88:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(we.fromUnaryPrefixToken(l));if(p)return p.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Fe(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(25);if(p)return p.signature.returnType}return c.bool}case 96:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(26);if(p)return p.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 69:return s==0&&this.error(100,e.range,"Spread operator"),null;case 56:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,t,n=c.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Fe(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,t,n=c.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(we.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Fe(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,t,n=c.auto,s=0){let a=this.resolveBinaryExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),null)}resolveBinaryExpression(e,t,n=c.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:return this.resolveExpression(a,t,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(we.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isNumericValue?c.bool:(s==0&&this.error(2469,e.range,Fe(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(we.fromBinaryToken(o));if(_)return _.signature.returnType}return c.bool}case 78:case 79:return c.bool;case 29:return c.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let d=p.lookupOverload(we.fromBinaryToken(o));if(d)return d.signature.returnType}let _=this.resolveExpression(l,t,u,s);if(!_)return null;let f=c.commonType(u,_,n);return f||s==0&&this.error(2365,e.range,Fe(o),u.toString(),_.toString()),f}case 89:case 90:case 91:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(we.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Fe(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let d=p.lookupOverload(we.fromBinaryToken(o));if(d)return d.signature.returnType}let _=this.resolveExpression(l,t,n,s);if(!_)return null;let f=c.commonType(u,_,n);return(!f||!f.isIntegerValue)&&s==0&&this.error(2365,e.range,Fe(o),u.toString(),_.toString()),f}case 97:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=this.resolveExpression(l,t,u,s);if(!p)return null;let _=c.commonType(u,p,n);return _||s==0&&this.error(2365,e.range,"&&",u.toString(),p.toString()),_}case 98:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=this.resolveExpression(l,t,u,s);if(!p)return null;let _=c.commonType(u,p,n);return _?u.is(512)&&p.is(512)?_:_.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),p.toString()),null)}}return assert(!1),null}lookupThisExpression(e,t,n=c.auto,s=0){if(t.isInline){let o=t.lookupLocal(P.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=t.lookupLocal(P.this_);if(a||(a=t.lookupLocalInOuter(P.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=t.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,t,n=c.auto,s=0){let a=this.lookupThisExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,t,n=c.auto,s=0){if(t.isInline){let l=t.lookupLocal(P.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=t.sourceFunction.parent;if(a&&a.kind==7){let l=a.base;if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}return s==0&&this.error(2335,e.range),null}resolveSuperExpression(e,t,n=c.auto,s=0){let a=this.lookupSuperExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,t,n=c.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let a=this.determineIntegerLiteralType(e,!1,n);return assert(a.getClassOrWrapper(this.program))}case 0:{let a=n==c.f32?c.f32:c.f64;return assert(a.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let a=n.getClass();if(a&&a.prototype==this.program.arrayPrototype)return this.getElementOfType(n);let l=e.elementExpressions,o=l.length,u=c.auto,p=0;for(let _=0,f=o;_<f;++_){let d=l[_];if(d)if(d.kind==19&&o>1)++p;else{let h=this.resolveExpression(d,t,u);if(!h)return null;if(u==c.auto)u=h;else if(h!=u){let g=c.commonType(u,h,u);g&&(u=g)}}}if(u==c.auto)if(p==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return p>0&&u.isInternalReference&&(u=u.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[u]))}case 6:return n.isClass?n.classReference:(s==0&&this.error(225,e.range),null)}return assert(!1),null}resolveLiteralExpression(e,t,n=c.auto,s=0){let a=this.lookupLiteralExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,t,n=c.void,s=0){let a=this.resolveCallExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveCallExpression(e,t,n=c.void,s=0){let a=e.expression,l=this.lookupExpression(a,t,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==y.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],t,n,s);let u=this.maybeInferCall(e,o,t,s);if(!u)return null;l=u}case 5:return l.signature.returnType;case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!ro(l.kind))break;let o=this.getElementOfType(l.type);if(!o||o.kind!=7)break;l=o}case 7:{let o=l.getTypeArgumentsTo(this.program.functionPrototype);if(!(o&&o.length))break;return assert(o[0].getSignature()).returnType}}return s==0&&this.error(2349,a.range,l.internalName),null}lookupCommaExpression(e,t,n=c.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],t,n,s)}resolveCommaExpression(e,t,n=c.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],t,n,s)}lookupInstanceOfExpression(e,t,n=c.auto,s=0){return assert(c.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,t,n=c.auto,s=0){return c.bool}lookupTernaryExpression(e,t,n,s=0){let a=this.resolveTernaryExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveTernaryExpression(e,t,n,s=0){let a=this.resolveExpression(e.ifThen,t,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,t,a,s);if(!l)return null;let o=c.commonType(a,l,n);return o||s==0&&this.error(2365,e.range,"?:",a.toString(),l.toString()),o}lookupNewExpression(e,t,n,s=0){let a=this.resolveTypeName(e.typeName,t,t.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,t,t.sourceFunction,_e(t.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,t,n,s=0){let a=this.lookupNewExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,t,n,s=0){let a=this.resolveFunctionExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveFunctionExpression(e,t,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,t.sourceFunction,t.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&Be(l.returnType)){let p=o.expression,_=assert(u.getSignature()),f=qt.createDefault(t.sourceFunction),d=l.parameters;assert(_.parameterTypes.length==d.length);for(let g=0,m=d.length;g<m;g++){let T=d[g],S=_.parameterTypes[g];f.addScopedDummyLocal(T.name.text,S,T)}let h=this.resolveExpression(p,f,n,s);h&&(u.signatureReference=Xe.create(this.program,_.parameterTypes,h,_.thisType,_.requiredParameters,_.hasRest))}return u}resolveFunction(e,t,n=new Map,s=0){let a=null,l=t?io(t):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let C=a.typeArguments;if(C){let D=assert(a.prototype.typeParameterNodes),U=D.length;assert(U==D.length);for(let G=0;G<U;++G){let O=D[G].name.text;n.set(O,C[G])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,p;if(t&&(p=t.length)>0){assert(u&&p==u.length);for(let R=0;R<p;++R)n.set(u[R].name.text,t[R])}else assert(!u||u.length==0);let _=null,f=o.explicitThisType;if(f){if(_=this.resolveType(f,null,e.parent,n,s),!_)return null;n.set(P.this_,_)}else a&&(_=a.type,n.set(P.this_,_));let d=o.parameters,h=d.length,g=new Array(h),m=0,T=!1;for(let R=0;R<h;++R){let C=d[R];C.parameterKind==0?m=R+1:C.parameterKind==2&&(T=!0);let D=C.type;if(Be(D))return s==0&&this.error(1110,D.range),null;let U=this.resolveType(D,null,e.parent,n,s);if(!U)return null;if(U==c.void)return s==0&&this.error(1110,D.range),null;g[R]=U}let S;if(e.is(4096))S=c.void;else if(e.is(524288))S=a.type;else{let R=o.returnType;if(Be(R))return s==0&&this.error(1110,R.range),null;let C=this.resolveType(R,null,e.parent,n,s);if(!C)return null;S=C}let E=Xe.create(this.program,g,S,_,m,T),F=e.name;l.length&&(F+=`<${l}>`);let k=new St(F,e,t,E,n);if(e.setResolvedInstance(l,k),a){let R=k.declaration.name.text,C=a.base;if(C){let D=C.getMember(R);if(D){this.discoveredOverride=!0;let U=!0;if(k.isAny(6144)){if(D.kind==10){let G=this.resolveProperty(D,s);if(G)if(k.is(2048)){let O=G.getterInstance;O&&k.signature.isAssignableTo(O.signature,!0)&&(U=!1)}else{assert(k.is(4096));let O=G.setterInstance;O&&k.signature.isAssignableTo(O.signature,!0)&&(U=!1)}}}else if(k.is(524288))U=!1;else if(D.kind==4){let G=D,O=G.typeParameterNodes,Y=O!=null&&O.length>0,Z=t!=null&&t.length>0;if(Y!=Z)this.errorRelated(242,k.identifierAndSignatureRange,D.identifierAndSignatureRange,R),U=!1;else{let ee=this.resolveFunction(G,t,new Map,1);ee&&k.signature.isAssignableTo(ee.signature,!0)&&(U=!1)}}U&&this.errorRelated(2394,k.identifierAndSignatureRange,D.identifierAndSignatureRange)}}}return k}resolveFunctionInclTypeArguments(e,t,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),p=u.typeArguments;if(p){let _=assert(u.prototype.typeParameterNodes),f=p.length;assert(f==_.length);for(let d=0;d<f;++d)s.set(_[d].name.text,p[d])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),t,null,n,s,a,l),!o)return null}else if(t&&t.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let t=e.prototype.unboundOverrides;if(!t)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(t),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let p=u.parent,_;if(assert(p.kind==6||p.kind==8),_=p.instances,!!_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d){let g=f[d];if(!g.isAssignableTo(n))continue;let m=null;if(e.isAny(6144)){let T=e.declaration.name.text,S=assert(g.getMember(T));assert(S.kind==10);let E=this.resolveProperty(S);if(!E)continue;e.is(2048)?m=E.getterInstance:(assert(e.is(4096)),m=E.setterInstance)}else{let T=g.getMember(u.name);if(T){assert(T.kind==4);let S=T;S.is(65536)==e.is(65536)&&(m=this.resolveFunction(S,e.typeArguments))}}m&&s.add(m)}}return Set_values(s)}resolveClass(e,t,n=new Map,s=0){let a=t?io(t):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new us(o,e,t):l=new lr(o,e,t),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),t){let d=assert(e.typeParameterNodes),h=d.length,g=t.length;assert(g==h);for(let m=0;m<g;++m)n.set(d[m].name.text,t[m])}else{let d=e.typeParameterNodes;assert(!(d&&d.length>0))}l.contextualTypeArguments=n;let p=!1,_=e.basePrototype;if(_){let d=_;do{if(d==e)return this.error(2506,e.identifierNode.range,e.internalName),null;d=d.basePrototype}while(d);let h=assert(e.extendsNode),g=this.resolveClassInclTypeArguments(_,h.typeArguments,null,e.parent,_e(n),h,s);if(!g)return null;l.setBase(g),u.has(g)&&(p=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let f=e.interfacePrototypes;if(f)for(let d=0,h=f.length;d<h;++d){let g=f[d],m=g;do{if(m==e)return this.error(2506,e.identifierNode.range,e.internalName),null;m=m.basePrototype}while(m);let T=assert(e.implementsNodes[d]),S=this.resolveClassInclTypeArguments(g,T.typeArguments,null,e.parent,_e(n),T,s);if(!S)return null;assert(S.kind==9),l.addInterface(S),u.has(S)&&(p=!0)}return p||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,t,n,s,a,l){let o=!1;return t.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,t.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):t.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,t.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):t.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):t.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,t){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let d=Set_values(l),h=0,g=d.length;h<g;++h){let m=d[h];assert(!s.has(m));let T=m.members;if(T)for(let S=Map_keys(T),E=0,F=S.length;E<F;++E){let k=unchecked(S[E]),R=assert(T.get(k)),C=e.getMember(k);C&&!this.checkOverrideVisibility(k,C,e,R,m,t)||(n.set(k,R),a.set(k,R))}}let o=0,u=e.base;if(u){let d=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let h=u.members;if(h)for(let g=Map_keys(h),m=0,T=g.length;m<T;++m){let S=unchecked(g[m]),E=assert(h.get(S));if(d&&E.is(32))continue;let F=e.getMember(S);F&&!this.checkOverrideVisibility(S,F,e,E,u,t)||(n.set(S,E),E.is(128)?a.set(S,E):a.delete(S))}o=u.nextMemoryOffset}let p=e.prototype,_=p.instanceMembers;if(_)for(let d=Map_values(_),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=m.name;if(u){let S=u.getMember(T);S&&this.checkOverrideVisibility(T,m,e,S,u,t)}switch(m.kind){case 4:{let S=m.toBound(e);e.add(S.name,S);break}case 10:{let S=m.toBound(e);if(S.isField){let E=this.resolveProperty(S,t);if(E){let F=E.type;if(F==c.void)break;if(F.isExternalReference){this.error(100,assert(S.typeNode).range,"Reference typed fields");break}let k=!0;if(u){let C=u.getMember(S.name);if(C&&C.kind==10){let D=C,U=this.resolveProperty(D,t);if(U&&U.isField){if(U.type!=E.type){this.errorRelated(2416,E.identifierNode.range,U.identifierNode.range,E.name,e.internalName,u.internalName);break}E.memoryOffset=U.memoryOffset,k=!1}}}if(k){let C=F.byteSize;assert(zt(C));let D=C-1;o&D&&(o=(o|D)+1),E.memoryOffset=o,o+=C}S.instance=E,e.add(S.name,S);let R=assert(S.fieldDeclaration).type;R&&this.program.checkTypeSupported(F,R)}}else e.add(S.name,S);break}default:assert(!1)}!m.is(128)&&!m.is(65536)&&a.delete(T)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let d=Map_keys(a),h=0,g=d.length;h<g;++h){let m=d[h],T=assert(a.get(m));this.errorRelated(2515,e.identifierNode.range,T.identifierNode.range,e.internalName,m,T.parent.internalName)}e.nextMemoryOffset=o;{let d=e.getMember(P.constructor);if(d&&d.parent==e){assert(d.kind==4);let h=this.resolveFunction(d,null,assert(e.contextualTypeArguments),t);h&&(e.constructorInstance=h)}}}let f=p.operatorOverloadPrototypes;for(let d=Map_keys(f),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=assert(f.get(m));if(assert(m!=0),T.is(65536))continue;let S;if(T.is(262144)){let F=T.toBound(e);S=this.resolveFunction(F,null,new Map,t)}else S=this.resolveFunction(T,null,new Map,t);if(!S)continue;let E=e.operatorOverloads;if(E||(e.operatorOverloads=E=new Map),S.is(262144))switch(m){case 27:case 28:case 29:case 30:{let F=S.signature.returnType;F.isAssignableTo(e.type)||t==0&&this.error(2322,T.functionTypeNode.returnType.range,F.toString(),e.type.toString())}}if(E.has(m))t==0&&this.error(213,S.declaration.range);else if(E.set(m,S),m==1||m==2){let F=e.indexSignature;F||(e.indexSignature=F=new os(e)),m==1&&F.setType(S.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let d=Set_values(s),h=0,g=d.length;h<g;++h){let m=d[h],T=m.base==e,S=m.interfaces;if(S){let E=!1;for(let F=Set_values(S),k=0,R=F.length;k<R;++k){let C=F[k];C==e?T=!0:s.has(C)&&(E=!0)}if(E)continue}T&&this.finishResolveClass(m,t)}}resolveClassInclTypeArguments(e,t,n,s,a,l,o=0){let u=null;if(e.is(65536)){let p=null;for(let _=e;_&&!p;_=_.basePrototype)p=_.constructorPrototype;if(!t&&p&&n&&a.size==0?u=this.inferGenericTypeArguments(l,p,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),t,n,s,a,l,o),!u)return null}else if(t&&t.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,t=0){let n=e.instance;if(n)return n;e.instance=n=new ls(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,t);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,t);l&&(n.setterInstance=l,n.is(4194304)||(assert(l.signature.parameterTypes.length==1),n.setType(l.signature.parameterTypes[0])))}return n.checkVisibility(this),n}ensureOneTypeArgument(e,t=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(t==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};var F1=1,w1=50,C1=6e4;function zi(r){let i=2166136261;for(let e=0,t=r.length;e<t;++e)i=Math.imul(i^r.charCodeAt(e),16777619)>>>0;return i>>>0}var yp=class{constructor(){this.name="";this.typeName="";this.isArray=!1}};function ht(r,i){return Math.imul(r^i&255,16777619)>>>0}function oo(r,i){let e=i.length;r=ht(r,e&255),r=ht(r,e>>>8&255),r=ht(r,e>>>16&255),r=ht(r,e>>>24&255);for(let t=0;t<e;++t)r=ht(r,i.charCodeAt(t));return r>>>0}function ps(r,i=null,e=null){return Lg(2166136261,r,i,e)}function Lg(r,i,e,t){for(let n=0,s=i.length;n<s;++n){let a=i[n];if(r=oo(r,a.name),r=oo(r,a.typeName),r=ht(r,a.isArray?1:0),e!=null&&e.has(a.typeName)){let l=t??new Set;l.has(a.typeName)||(l.add(a.typeName),r=Lg(r,e.get(a.typeName),e,l),l.delete(a.typeName))}}return r>>>0}function Ui(r){let i=new Map;for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.isLibrary||n.internalPath.endsWith(".migration"))continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o;if(!et(u.decorators,15))continue;let p=u.name.text;i.has(p)||i.set(p,Gr(u))}}return i}function Gr(r){let i=new Array,e=r.members;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(s.kind!=55)continue;let a=s;if(a.is(32))continue;let l=a.type;if(l==null||!(l instanceof ae))continue;let o=l,u=o.name.identifier.text,p=new yp;p.name=a.name.text;let _=o.typeArguments;u=="Array"&&_!=null&&_.length==1&&_[0]instanceof ae?(p.typeName=_[0].name.identifier.text,p.isArray=!0):p.typeName=u,i.push(p)}return i}var gp=class{constructor(){this.oldType="";this.newType="";this.fnName="";this.oldVersion=0;this.delta=!1;this.sourceInternalPath=""}};function ao(r){return r==null||!(r instanceof ae)?null:r.name.identifier.text}function kp(r,i,e=null){let t=new Array;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.isLibrary)continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind!=56)continue;let _=p;if(!et(_.decorators,37))continue;let f=_.signature,d=null,h=null,g=!1;if(f.parameters.length==1)d=ao(f.parameters[0].type),h=ao(f.returnType);else if(f.parameters.length==2)d=ao(f.parameters[0].type),h=ao(f.parameters[1].type),g=!0;else continue;if(d==null||h==null)continue;let m=new gp;m.oldType=d,m.newType=h,m.fnName=_.name.text,m.delta=g,m.oldVersion=i.has(d)?ps(i.get(d),e):zi(d),m.sourceInternalPath=a.internalPath,t.push(m)}}return t}var bp=class{constructor(){this.oldType="";this.oldVersion=0;this.steps=[]}};function Rp(r,i){let e=new Array,t=new Set;t.add(r);let n=new Array,s=new Array;n.push(r),s.push(new Array);let a=0;for(;a<n.length;){let l=n[a],o=s[a];a++;for(let u=0,p=i.length;u<p;++u){let _=i[u];if(_.newType!=l||t.has(_.oldType))continue;t.add(_.oldType);let f=new Array;f.push(_);for(let h=0,g=o.length;h<g;++h)f.push(o[h]);let d=new bp;d.oldType=_.oldType,d.oldVersion=_.oldVersion,d.steps=f,e.push(d),n.push(_.oldType),s.push(f)}}return e}function P1(r){switch(r){case"Documents":return 0;case"View":return 1;case"Events":return 2;case"Counter":return 3;case"Membership":return 4;case"Unique":return 5;case"Capacity":return 6;default:return-1}}function et(r,i){if(r==null)return!1;for(let e=0,t=r.length;e<t;++e)if(r[e].decoratorKind==i)return!0;return!1}var xp=class{constructor(){this.name="";this.family=0;this.keyType="";this.valueType="";this.fillMaxWaitMs=w1;this.fillAllowStale=!0}},Tp=class{constructor(){this.name="";this.collections=new Array}},It=class{constructor(){this.bytes=new Array}u8(i){this.bytes.push(i&255)}u16(i){this.u8(i&255),this.u8(i>>>8&255)}u32(i){this.u8(i&255),this.u8(i>>>8&255),this.u8(i>>>16&255),this.u8(i>>>24&255)}u64(i){let e=i%4294967296,t=Math.floor(i/4294967296);this.u32(e),this.u32(t)}u64lohi(i,e){this.u32(i),this.u32(e)}str(i){let e=[],t=0,n=i.length;for(;t<n;){let s=i.charCodeAt(t++);if(s>=55296&&s<=56319&&t<n){let a=i.charCodeAt(t);a>=56320&&a<=57343&&(s=65536+(s-55296<<10)+(a-56320),t++)}s<128?e.push(s):s<2048?(e.push(192|s>>6),e.push(128|s&63)):s<65536?(e.push(224|s>>12),e.push(128|s>>6&63),e.push(128|s&63)):(e.push(240|s>>18),e.push(128|s>>12&63),e.push(128|s>>6&63),e.push(128|s&63))}this.u32(e.length);for(let s=0,a=e.length;s<a;++s)this.u8(e[s])}toBytes(){let i=this.bytes.length,e=new Uint8Array(i);for(let t=0;t<i;++t)e[t]=this.bytes[t];return e}};function mp(r,i){let e=r.typeArguments;if(e!=null&&e.length>i){let t=e[i];if(t instanceof ae)return t.name.identifier.text}return""}function Ng(r){let i=new Array,e=r.sources,t=new Map;for(let o=0,u=e.length;o<u;++o){let p=e[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;et(g.decorators,15)&&t.set(g.name.text,Gr(g))}}let n=Ui(e),s=kp(e,t,n),a=new Map;for(let o=0,u=s.length;o<u;++o){let p=s[o].newType;if(a.has(p))continue;let _=new Array,f=Rp(p,s);for(let d=0,h=f.length;d<h;++d)_.push(f[d].oldVersion);a.set(p,_)}for(let o=0,u=e.length;o<u;++o){let p=e[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!et(g.decorators,31))continue;let m=new Tp;m.name=g.name.text;let T=g.members;for(let S=0,E=T.length;S<E;++S){let F=T[S];if(F.kind!=55)continue;let k=F,R=Mr(k.decorators,32);if(R==null)continue;let C=k.type;if(C==null||!(C instanceof ae))continue;let D=C,U=P1(D.name.identifier.text);if(U<0)continue;let G=new xp;G.name=k.name.text,G.family=U,U==3||U==6?(G.keyType=mp(D,0),G.valueType="i64"):(G.keyType=mp(D,0),G.valueType=mp(D,1));let O=Vg(R);if(O!=null){let Y=uo(O,"fillMaxWaitMs");if(Y<0&&(Y=uo(O,"maxWaitMs")),Y>=0){if(Y>C1)return r.error(102,k.name.range,"@collection fillMaxWaitMs exceeds the platform catalog maximum"),null;G.fillMaxWaitMs=Y}let Z=Bg(O,"fillStale");if(Z.length==0&&(Z=Bg(O,"stale")),Z.length>0)if(Z=="allow"||Z=="Allow")G.fillAllowStale=!0;else if(Z=="deny"||Z=="Deny")G.fillAllowStale=!1;else return r.error(102,k.name.range,'@collection fillStale must be "allow" or "deny"'),null}m.collections.push(G)}m.collections.length>0&&i.push(m)}}if(i.length==0)return null;let l=new It;l.u16(F1),l.u16(i.length);for(let o=0,u=i.length;o<u;++o){let p=i[o];l.str(p.name),l.u16(p.collections.length);for(let _=0,f=p.collections.length;_<f;++_){let d=p.collections[_];l.str(d.name),l.u8(d.family),l.str(d.keyType),l.str(d.valueType);let h=zi(d.valueType),g=t.has(d.valueType),m=g?t.get(d.valueType):new Array,T=g?ps(m,n):h;l.u32(h),l.u32(T),l.u32(0),l.u8(0),l.u8(0),l.u32(d.fillMaxWaitMs),l.u8(d.fillAllowStale?1:0),l.u16(m.length);for(let E=0,F=m.length;E<F;++E)l.str(m[E].name),l.str(m[E].typeName),l.u8(m[E].isArray?1:0);let S=a.has(d.valueType)?a.get(d.valueType):new Array;l.u16(S.length);for(let E=0,F=S.length;E<F;++E)l.u32(S[E])}}return l.toBytes()}function Mg(r){let i=r.sources,e=new Array,t=new Map;for(let s=0,a=i.length;s<a;++s){let l=i[s];if(l.isLibrary||l.internalPath.endsWith(".migration"))continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind!=52)continue;let f=_;if(!et(f.decorators,15))continue;let d=f.name.text;t.has(d)||(e.push(d),t.set(d,Gr(f)))}}if(e.length==0)return null;let n=new It;n.u16(e.length);for(let s=0,a=e.length;s<a;++s){let l=e[s];n.str(l);let o=t.get(l);n.u16(o.length);for(let u=0,p=o.length;u<p;++u)n.str(o[u].name),n.str(o[u].typeName),n.u8(o[u].isArray?1:0)}return n.toBytes()}var Ap=class{constructor(){this.method=0;this.kind=0;this.path=""}},vp=class{constructor(){this.method=-1;this.path=""}},Dg=128*1024,B1=2048,L1=2048;function Gg(r){let i=new Array,e=r.sources;for(let s=0,a=e.length;s<a;++s){let l=e[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)continue;let f=_,d=Mr(f.decorators,18);if(d==null)continue;let h=M1(d),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,F=D1(E);if(F==null)continue;let k=G1(F);if(k==null||N1(k.method))continue;let R=Ep(E.decorators);if(R>1)return r.error(102,E.name.range,"HTTP route methods may only use @query or @action ToilDB function kinds"),null;if(R!=0)continue;let C=V1(h,k.path);if(i.length>=B1)return r.error(102,E.name.range,"too many explicit @query HTTP routes for toildb.route_kinds"),null;if(!O1(C))return r.error(102,E.name.range,"route pattern for toildb.route_kinds must be a non-empty ASCII path starting with '/'"),null;if(C.length>L1)return r.error(102,E.name.range,"route pattern for toildb.route_kinds is too large"),null;let D=new Ap;D.method=k.method,D.kind=0,D.path=C,i.push(D)}}}if(i.length==0)return null;let t=new It;t.u16(1),t.u16(i.length);for(let s=0,a=i.length;s<a;++s)t.u8(i[s].method),t.u8(i[s].kind),t.str(i[s].path);let n=t.toBytes();return n.length>Dg?(r.error(102,null,"toildb.route_kinds section is too large"),null):n}function zg(r){let i=new Array,e=r.sources;for(let s=0,a=e.length;s<a;++s){let l=e[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=_;if(Mr(f.decorators,17)==null)continue;let d=f.name.text,h=f.members;for(let g=0,m=h.length;g<m;++g){let T=h[g];if(T.kind!=59)continue;let S=T;if(Mr(S.decorators,16)==null)continue;let E=Ep(S.decorators);E>1?r.error(102,S.name.range,"@remote methods may only use @query or @action ToilDB function kinds (default is read-only @query)"):E==1&&i.push(zi(d+"."+S.name.text))}}else if(_.kind==56){let f=_;if(Mr(f.decorators,16)==null)continue;let d=Ep(f.decorators);d>1?r.error(102,f.name.range,"@remote functions may only use @query or @action ToilDB function kinds (default is read-only @query)"):d==1&&i.push(zi(f.name.text))}}}if(i.length==0)return null;let t=new It;t.u16(1),t.u16(i.length);for(let s=0,a=i.length;s<a;++s)t.u32(i[s]),t.u8(1);let n=t.toBytes();return n.length>Dg?(r.error(102,null,"toildb.rpc_kinds section is too large"),null):n}function Ep(r){if(r==null)return-1;for(let i=0,e=r.length;i<e;++i){let t=r[i].decoratorKind;if(t==33)return 0;if(t==34)return 1;if(t==35||t==36||t==38)return 2}return-1}function N1(r){return r==0||r==5||r==6}function M1(r){let i=r.args;if(i==null||i.length==0)return"";let e=i[0];if(e instanceof ye){let t=e.value.trim();return t.length==0||t=="/"?"":(t.startsWith("/")||(t="/"+t),t.replace(/\/+$/,""))}return""}function D1(r){let i=r.decorators;if(i==null)return null;for(let e=0,t=i.length;e<t;++e)switch(i[e].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return i[e]}return null}function G1(r){let i=new vp,e=r.decoratorKind;if(e==19){let t=r.args;if(t==null||t.length==0||!(t[0]instanceof Pe))return null;let n=t[0],s=Dr(n,"method"),a=Dr(n,"path");if(s==null||a==null||!(a instanceof ye))return null;let l=Fp(s);if(l==null)return null;i.method=U1(l),i.path=a.value}else{i.method=z1(e);let t=r.args;if(t==null||t.length==0||!(t[0]instanceof ye))return null;i.path=t[0].value}return i.method>=0?i:null}function z1(r){switch(r){case 21:return 1;case 22:return 2;case 23:return 3;case 24:return 4;case 25:return 5;case 26:return 6;default:return 0}}function U1(r){switch(r){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}}function V1(r,i){let e=i.trim();if(e.length==0&&(e="/"),e.startsWith("/")||(e="/"+e),e=="/")return r.length>0?r:"/";e.length>1&&(e=e.replace(/\/+$/,""));let t=r+e;return t.length==0?"/":t}function O1(r){if(r.length==0||!r.startsWith("/"))return!1;for(let i=0,e=r.length;i<e;++i){let t=r.charCodeAt(i);if(t<32||t>126)return!1}return!0}function or(r,i){return r=ht(r,i&255),r=ht(r,i>>>8&255),r=ht(r,i>>>16&255),r=ht(r,i>>>24&255),r>>>0}function Mr(r,i){if(r==null)return null;for(let e=0,t=r.length;e<t;++e)if(r[e].decoratorKind==i)return r[e];return null}function Ug(r){let i=r.args;if(i==null||i.length==0)return null;let e=i[0];return e instanceof ye?e.value:null}function Vg(r){let i=r.args;if(i==null||i.length==0)return null;let e=i[0];return e instanceof Pe?e:null}function Dr(r,i){let e=r.names;for(let t=0,n=e.length;t<n;++t)if(e[t].text==i)return r.values[t];return null}function Fp(r){return r instanceof _t?r.property.text:null}function Bg(r,i){let e=Dr(r,i);if(e==null)return"";if(e instanceof ye)return e.value;if(e instanceof xe)return e.text;let t=Fp(e);return t??""}function uo(r,i){let e=Dr(r,i);if(e!=null&&e instanceof pt){let t=e.range.toString().trim(),n=0;if(t.length==0)return-1;for(let s=0,a=t.length;s<a;++s){let l=t.charCodeAt(s);if(l<48||l>57)return-1;if(n=n*10+(l-48),n>4294967295)return 4294967295}return n}return-1}function q1(r,i){let e=Dr(r,i);return e!=null&&e instanceof xe?e.text:""}function Og(r){let i=new Map;for(let e=0,t=r.length;e<t;++e){let n=r[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)continue;let u=o;et(u.decorators,15)&&i.set(u.name.text,Gr(u))}}return i}function W1(r){let i=0,e=r.members;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(s.kind!=59)continue;let a=s.decorators;if(a!=null)for(let l=0,o=a.length;l<o;++l)switch(a[l].decoratorKind){case 42:{i|=1;break}case 43:{i|=2;break}case 44:{i|=4;break}case 45:{i|=8;break}}}return i}function qg(r){let i=r.sources,e=Ui(i),t=Og(i),n=new Array,s=new Array,a=new Array,l=new Array,o=new Array,u=new Array,p=new Array,_=new Array,f=new Array;for(let h=0,g=i.length;h<g;++h){let m=i[h];if(m.isLibrary)continue;let T=m.statements;for(let S=0,E=T.length;S<E;++S){let F=T[S];if(F.kind!=52)continue;let k=F;if(!et(k.decorators,41))continue;let R=Mr(k.decorators,41),C=k.name.text,D=R!=null?Ug(R):null,U=R!=null?Vg(R):null;if(D!=null){let se=D.trim();se.startsWith("/")&&(se=se.substring(1)),se.length>0&&(C=se)}else if(U!=null){let se=Dr(U,"name");if(se!=null&&se instanceof ye){let Re=se.value.trim();Re.startsWith("/")&&(Re=Re.substring(1)),Re.length>0&&(C=Re)}}let G="/"+C,O=0;if(U!=null){let se=Dr(U,"scope");se!=null&&Fp(se)=="Continental"&&(O=1)}let Y=0,Z=0;if(U!=null){let se=uo(U,"maxFrameBytes");se>0&&(Y=se);let Re=uo(U,"ingressRingBytes");Re>0&&(Z=Re)}let ee=W1(k),K=0,te=0,H=0,oe=U!=null?q1(U,"message"):"";oe.length>0&&t.has(oe)&&(K=1,te=zi(oe),H=ps(t.get(oe),e)),n.push(C),s.push(G),a.push(ee),l.push(O),o.push(K),u.push(Y),p.push(Z),_.push(te),f.push(H)}}if(n.length==0)return null;let d=new It;d.u16(1),d.u16(n.length);for(let h=0,g=n.length;h<g;++h)d.str(n[h]),d.str(s[h]),d.u8(a[h]),d.u8(l[h]),d.u8(o[h]),d.u32(u[h]),d.u32(p[h]),d.u32(_[h]),d.u32(f[h]),d.u16(h);return d.toBytes()}var co=class{constructor(){this.kind=0;this.interval_ms=0;this.cron_minute_lo=0;this.cron_minute_hi=0;this.cron_hour_mask=0;this.cron_dom_mask=0;this.cron_month_mask=0;this.cron_dow_mask=0;this.valid=!0}};function j1(r){let i=r.length;if(i<2)return-1;let e=r.charCodeAt(i-1),t;if(e==115)t=1e3;else if(e==109)t=6e4;else if(e==104)t=36e5;else if(e==100)t=864e5;else return-1;let n=0;for(let a=0;a<i-1;++a){let l=r.charCodeAt(a);if(l<48||l>57||(n=n*10+(l-48),n>1e15))return-1}if(n<1)return-1;let s=n*t;return s<1e3?-1:s}function lo(r){if(r.length==0)return-1;let i=0;for(let e=0,t=r.length;e<t;++e){let n=r.charCodeAt(e);if(n<48||n>57||(i=i*10+(n-48),i>1e6))return-1}return i}function cs(r,i,e,t){if(r.length==0)return!1;let n=r.split(",");for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.length==0)return!1;let o=i,u=e,p=1,_=l,f=l.indexOf("/");if(f>=0){_=l.substring(0,f);let d=lo(l.substring(f+1));if(d<1)return!1;p=d}if(_!="*"){let d=_.indexOf("-");if(d>=0){let h=lo(_.substring(0,d)),g=lo(_.substring(d+1));if(h<0||g<0||h<i||g>e||h>g)return!1;o=h,u=g}else{let h=lo(_);if(h<0||h<i||h>e)return!1;o=h,u=f>=0?e:h}}for(let d=o;d<=u;d+=p)t(d)}return!0}function K1(r,i){let e=r.split(" ");if(e.length!=5){i.valid=!1;return}i.kind=1;let t=0,n=0,s=cs(e[0],0,59,h=>{h<32?t=(t|1<<h)>>>0:n=(n|1<<h-32)>>>0});i.cron_minute_lo=t,i.cron_minute_hi=n;let a=0,l=cs(e[1],0,23,h=>{a=(a|1<<h)>>>0});i.cron_hour_mask=a;let o=0,u=cs(e[2],1,31,h=>{o=(o|1<<h)>>>0});i.cron_dom_mask=o;let p=0,_=cs(e[3],1,12,h=>{p=p|1<<h});i.cron_month_mask=p&65535;let f=0,d=cs(e[4],0,6,h=>{f=f|1<<h});i.cron_dow_mask=f&255,s&&l&&u&&_&&d||(i.valid=!1)}function H1(r){let i=new co,e=r.trim();if(e.length==0)return i.valid=!1,i;if(e.indexOf(" ")>=0)return K1(e,i),i;let t=j1(e);return t<0?(i.valid=!1,i):(i.kind=0,i.interval_ms=t,i)}var Sp=class{constructor(){this.name="";this.schedule=new co}};function Wg(r){let i=r.sources,e=null;for(let a=0,l=i.length;a<l&&e==null;++a){let o=i[a];if(o.isLibrary)continue;let u=o.statements;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=52)continue;let d=f;if(et(d.decorators,39)){e=d;break}}}if(e==null)return null;let t=new Array,n=e.members;for(let a=0,l=n.length;a<l;++a){let o=n[a];if(o.kind!=59)continue;let u=o,p=Mr(u.decorators,40);if(p==null)continue;let _=Ug(p);if(_==null){r.error(9010,p.range);continue}let f=H1(_);if(!f.valid){r.error(9011,p.range,_);continue}let d=new Sp;d.name=u.name.text,d.schedule=f,t.push(d)}let s=new It;s.u16(1),s.u8(1),s.u16(t.length);for(let a=0,l=t.length;a<l;++a){let o=t[a],u=o.schedule;s.str(o.name),s.u16(a),s.u8(u.kind),s.u64(u.kind==0?u.interval_ms:0),u.kind==1?(s.u64lohi(u.cron_minute_lo,u.cron_minute_hi),s.u32(u.cron_hour_mask),s.u32(u.cron_dom_mask),s.u16(u.cron_month_mask),s.u8(u.cron_dow_mask)):(s.u64lohi(0,0),s.u32(0),s.u32(0),s.u16(0),s.u8(0)),s.u8(0),s.u8(0),s.u64(0)}return s.toBytes()}var Ip=class{constructor(){this.deriveId=0;this.dbName="";this.methodName=""}};function jg(r){let i=r.sources,e=new Array,t=0;for(let s=0,a=i.length;s<a;++s){let l=i[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)continue;let f=_;if(!et(f.decorators,31))continue;let d=f.name.text,h=f.members;for(let g=0,m=h.length;g<m;++g){let T=h[g];if(T.kind!=59)continue;let S=T;if(!et(S.decorators,36))continue;let E=new Ip;E.deriveId=t,E.dbName=d,E.methodName=S.name.text,e.push(E),++t}}}if(e.length==0)return null;let n=new It;n.u16(1),n.u16(e.length);for(let s=0,a=e.length;s<a;++s){let l=e[s];n.u16(l.deriveId),n.str(l.dbName),n.str(l.methodName)}return n.toBytes()}function Q1(r){for(let i=0,e=r.length;i<e;++i){let t=r[i];if(t.isLibrary)continue;let n=t.statements;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind==52){let o=l,u=o.decorators;if(u!=null)for(let _=0,f=u.length;_<f;++_)switch(u[_].decoratorKind){case 18:case 41:case 39:case 31:case 15:return!0}let p=o.members;for(let _=0,f=p.length;_<f;++_){let d=p[_];if(d.kind!=59)continue;let h=d.decorators;if(h!=null){for(let g=0,m=h.length;g<m;++g)if(h[g].decoratorKind==40)return!0}}}}}return!1}var X1=1,J1=2,Z1=4,Y1=8,$1=16;function e6(r){let i=0;for(let e=0,t=r.length;e<t;++e){let n=r[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)continue;let u=o,p=u.decorators;if(p!=null)for(let f=0,d=p.length;f<d;++f)switch(p[f].decoratorKind){case 18:{i|=X1;break}case 41:{i|=J1;break}case 39:{i|=Z1;break}case 31:{i|=$1;break}}let _=u.members;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=59)continue;let g=h.decorators;if(g!=null){for(let m=0,T=g.length;m<T;++m)if(g[m].decoratorKind==40){i|=Y1;break}}}}}return i>>>0}function t6(r){let i=Ui(r),e=2166136261,t=new Set;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.isLibrary||a.internalPath.endsWith(".migration"))continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind!=52)continue;let _=p;if(!et(_.decorators,15))continue;let f=_.name.text;t.has(f)||(t.add(f),e=oo(e,f),e=or(e,ps(Gr(_),i)))}}return e>>>0}function r6(r,i,e){let t=Ui(r),n=Og(r),s=2166136261;s=oo(s,i),s=or(s,e);let a=new Array,l=new Array;for(let o=0,u=r.length;o<u;++o){let p=r[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!et(g.decorators,31))continue;let m=g.members;for(let T=0,S=m.length;T<S;++T){let E=m[T];if(E.kind!=55)continue;let F=E;if(!et(F.decorators,32))continue;let k=F.type;if(k==null||!(k instanceof ae))continue;let R=k,C=R.name.identifier.text,D;if(C=="Counter"||C=="Capacity")D="i64";else{let Y=R.typeArguments;D=Y!=null&&Y.length>1&&Y[1]instanceof ae?Y[1].name.identifier.text:""}let U=zi(D),O=n.has(D)?ps(n.get(D),t):U;a.push(U),l.push(O)}}}s=or(s,a.length);for(let o=0,u=a.length;o<u;++o)s=or(s,a[o]),s=or(s,l[o]),s=or(s,0);return s>>>0}function Kg(r,i){let e=r.sources;if(i==null&&!Q1(e))return null;let t=i=="cold"?1:0,n=e6(e),s=1,a="",l=t6(e),o=r6(e,a,l),u=2166136261;u=ht(u,t),u=or(u,n),u=or(u,l);let p=u>>>0,_=new It;return _.u16(1),_.u8(t),_.u8(0),_.u32(n),_.u16(s),_.str(a),_.u32(p),_.u32(l),_.u32(o),_.toBytes()}function Jg(r){switch(r){case"u8":return"U8";case"u16":return"U16";case"u32":return"U32";case"u64":return"U64";case"i8":return"I8";case"i16":return"I16";case"i32":return"I32";case"i64":return"I64";case"f32":return"F32";case"f64":return"F64";case"bool":case"boolean":return"Bool";case"string":return"String";case"u128":return"U128";case"i128":return"I128";case"u256":return"U256";case"i256":return"I256";default:return""}}function po(r,i){let e=Jg(r);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function _o(r){let i=Jg(r);return i.length!=0?"__r.read"+i+"()":r+".decodeFrom(__r)"}function _s(r){let i=2166136261;for(let e=0,t=r.length;e<t;++e)i=Math.imul(i^r.charCodeAt(e),16777619)>>>0;return i>>>0}function Hg(r,i){switch(r){case"bool":case"boolean":case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":case"string":return"JSON.of<"+r+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function Qg(r,i){switch(r){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+r+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+r+">"+i+".asI64()";case"f32":case"f64":return"<"+r+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"u128.fromString("+i+".asString())";case"i128":return"i128.fromString("+i+".asString())";case"u256":return"u256.fromString("+i+".asString())";case"i256":return"i256.fromString("+i+".asString())";default:return r+".fromJSON("+i+")"}}var ds=class{constructor(i,e){this.source=i;this.reportNode=e}};function i6(r,i){switch(r){case"Documents":return i=="get"||i=="require"?"Get":i=="getMany"?"GetMany":i=="exists"?"Exists":i=="create"?"Create":i=="patch"?"Patch":i=="delete"?"Delete":i=="getDelete"?"GetDelete":"";case"View":return i=="get"||i=="require"?"ViewGet":i=="getMany"?"GetMany":i=="publish"?"ViewPublish":"";case"Unique":return i=="lookup"?"UniqueLookup":i=="claim"?"UniqueClaim":i=="release"?"UniqueRelease":"";case"Counter":return i=="get"?"CounterGet":i=="add"?"CounterAdd":"";case"Events":return i=="append"?"Append":i=="latest"?"Latest":"";case"Membership":return i=="contains"?"MembershipContains":i=="list"?"MembershipList":i=="add"?"MembershipAdd":i=="remove"?"MembershipRemove":"";case"Capacity":return i=="available"?"CapacityAvailable":i=="reserve"?"CapacityReserve":i=="confirm"?"CapacityConfirm":i=="cancel"?"CapacityCancel":i=="setTotal"?"CapacitySetTotal":"";default:return""}}function wp(r){return r=="Get"||r=="GetMany"||r=="Exists"||r=="ViewGet"||r=="CounterGet"||r=="UniqueLookup"||r=="Latest"||r=="MembershipContains"||r=="MembershipList"||r=="CapacityAvailable"}function Xg(r){return r=="Latest"||r=="MembershipList"}function n6(r,i){switch(r){case 33:return wp(i)&&!Xg(i);case 34:return wp(i)&&!Xg(i)||i=="Create"||i=="Patch"||i=="Delete"||i=="GetDelete"||i=="Append"||i=="CounterAdd"||i=="UniqueClaim"||i=="UniqueRelease"||i=="MembershipAdd"||i=="MembershipRemove"||i=="CapacityReserve"||i=="CapacityConfirm"||i=="CapacityCancel";case 36:return wp(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 38:return!1;case 37:return!1;default:return!0}}function s6(r){switch(r){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 38:return"admin";case 37:return"migrate";default:return"?"}}function a6(r){switch(r){case 33:return"a query is read-only and cannot scan";case 34:return"an action cannot scan or publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 38:return"an admin has no request-path data access";case 37:return"a migration is a pure value transform and cannot access the database";default:return"not permitted in this kind"}}var hs=class extends Je{constructor(e=null,t=[]){super(e);this.backlog=new Array;this.seenlog=new Set;this.donelog=new Set;this.onComment=null;this.currentSource=null;this.dependees=new Map;this.restImportedSources=new Set;this.rpcImportedSources=new Set;this.streamExportedSources=new Set;this.ratelimitRouteCounter=0;this.toildbCodecReads=new Map;this.toildbCodecClasses=new Map;this.toildbWoven=!1;this.toildbDerivesWoven=!1;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=t}parseFile(e,t,n){let s=Fr(t),a=jn(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let p=this.dependees,_=null;p.has(a)&&(_=assert(p.get(a))),this.error(6054,_?_.reportNode.range:null,t);return}let l=new fe(n?1:t.startsWith(bt)?t.indexOf(lt,bt.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new Lr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let p=this.parseTopLevelStatement(o,null);p?u.push(p):this.skipStatement(o)}}parseTopLevelStatement(e,t=null){let n=t?t.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let m=this.parseDecorator(e);if(!m){this.skipStatement(e);continue}a?a.push(m):a=[m]}let l=0,o=0,u=0,p=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,p=e.pos));let _=0,f=0,d=t!=null&&t.is(32768);e.skip(12)?d?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),_=s,f=e.pos,n|=32772):d&&(n|=32768);let h=null,g=e.peek();switch(s<0&&(s=e.nextTokenPos),g){case 8:{e.next(),n|=8,e.skip(17)?h=this.parseEnum(e,n,a,s):h=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),h=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),h=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),h=this.parseFunction(e,n,a,s),a=null;break}case 0:{let m=e.mark();e.next();let T=e.tokenPos,S=e.pos;if(e.peekOnNewLine()){e.reset(m),h=this.parseStatement(e,!0);break}let E=e.peek();if(E!=7){E==31&&this.error(1242,e.range(T,S)),e.reset(m),h=this.parseStatement(e,!0);break}else e.discard(m);n|=128}case 7:case 31:{e.next(),h=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let m=e.mark();e.next(),e.peek(1)==115?(e.discard(m),h=this.parseNamespace(e,n,a,s),a=null):(e.reset(m),h=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?h=this.parseExportImport(e,s):h=this.parseImport(e);break}case 55:{let m=e.mark();e.next(),e.peek(1)==115?(e.discard(m),h=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(m),h=this.parseStatement(e,!0));break}case 35:{let m=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(m),h=this.parseModuleDeclaration(e,n)):(e.reset(m),h=this.parseStatement(e,!0));break}default:{n&2?p&&e.skipIdentifier(1)?(f&&this.error(1120,e.range(_,f)),h=this.parseExportDefaultAlias(e,s,u,p),u=p=0):h=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),f&&this.error(1042,e.range(_,f),"declare"),t?this.error(2695,e.range(s)):h=this.parseStatement(e,!0));break}}if(a)for(let m=0,T=a.length;m<T;++m)this.error(1206,a[m].range);if(p&&h!=null)switch(h.kind){case 53:case 56:case 52:case 58:case 60:return z.createExportDefaultStatement(h,e.range(s,e.pos));default:this.error(1042,e.range(u,p),"default")}return h}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let t=this.dependees;return t.has(e)?assert(t.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.weaveDataMigrations(),this.weaveDeriveHandlers(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.streamExportedSources.clear(),this.dependees.clear(),this.restImportedSources.clear(),this.rpcImportedSources.clear()}weaveDeriveHandlers(){if(this.toildbDerivesWoven)return;this.toildbDerivesWoven=!0;let e=this.options;if(e!=null&&e.targetMode=="cold")return;let t=null,n="",s="",a=0,l=0;for(let o=0,u=this.sources.length;o<u;++o){let p=this.sources[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!this.hasDecoratorKind(g.decorators,31))continue;let m=g.name.text,T=g.members,S="",E=!1;for(let k=0,R=T.length;k<R;++k){let C=T[k];if(C.kind!=59)continue;let D=C;if(!this.hasDecoratorKind(D.decorators,36))continue;let U=D.name.text;this.isVoidNoArgSignature(D.signature)||this.error(102,D.signature.range,"ToilDB: @derive method '"+m+"."+U+"' must take no arguments and return void."),S+="if(__id=="+a.toString()+"){this."+U+"();return true;}",t==null&&(t=g),E=!0,++a}if(!E)continue;this.injectClassMember(g,"__deriveRun(__id:i32):bool{"+S+"return false;}");let F="__toilDeriveInstance"+l.toString();n+="let "+F+":"+m+`|null=null;
|
|
18
18
|
`,s+="if(__derive_id<"+a.toString()+"){let __inst="+F+";if(__inst==null){__inst=new "+m+"();"+F+`=__inst;}if(__inst.__deriveRun(__derive_id))return 0;}
|
|
19
19
|
`,++l}}t!=null&&this.injectTopLevelStatements(t,`// @ts-ignore: injected derive entries (materialized-view runner)
|
|
20
20
|
`+n+`export function derive_run(__derive_id:i32):i64{
|
|
21
21
|
`+s+`return -1;}
|
|
22
|
-
`)}weaveDataMigrations(){if(this.toildbWoven||(this.toildbWoven=!0,this.checkMigrationLocations(),this.weaveRpc(),this.toildbCodecClasses.size==0))return;let e=new Map;for(let a=0,l=this.sources.length;a<l;++a){let o=this.sources[a];if(o.isLibrary)continue;let u=o.statements;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=52)continue;let d=f;(this.hasDecoratorKind(d.decorators,15)||this.hasDecoratorKind(d.decorators,29))&&e.set(d.name.text,Gr(d))}}let t=Ui(this.sources),n=kp(this.sources,e,t);if(n.length==0)return;let s=new Set;for(let a=0,l=n.length;a<l;++a){let o=n[a].newType;s.has(o)||(s.add(o),this.weaveDecodeInto(o,Rp(o,n),e))}}checkMigrationLocations(){for(let e=0,t=this.sources.length;e<t;++e){let n=this.sources[e];if(n.isLibrary)continue;let s=n.internalPath.split("/"),l=s[s.length-1].endsWith(".migration"),o=!1;for(let p=0,_=s.length-1;p<_;++p)if(s[p]=="migrations"){o=!0;break}if(l&&o)continue;let u=n.statements;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=56)continue;let d=f;this.hasDecoratorKind(d.decorators,37)&&this.error(102,d.name.range,"ToilDB: @migrate must live in a 'migrations/<Type>.migration.ts' file (a *.migration.ts under a migrations/ folder), so the build can discover it. Found in '"+n.internalPath+".ts'.")}}}weaveDecodeInto(e,t,n){if(!this.toildbCodecClasses.has(e))return;let s=this.toildbCodecClasses.get(e),a=this.toildbCodecReads.get(e),l=s.members,o=new Array;for(let d=0,h=l.length;d<h;++d){let g=l[d];if(g.kind!=55)continue;let m=g;m.is(32)||o.push(m.name.text)}let u="";for(let d=0,h=t.length;d<h;++d){let g=t[d],m="const __m0="+g.oldType+".decode(__buf);",T=g.steps.length;for(let F=0;F<T;++F){let k=g.steps[F],R="__m"+F.toString(),C="__m"+(F+1).toString();k.delta?m+="const "+C+"=new "+k.newType+"();"+this.migrationCarry(k.oldType,k.newType,R,C,n)+k.fnName+"("+R+","+C+");":m+="const "+C+"="+k.fnName+"("+R+");"}let S="__m"+T.toString(),
|
|
22
|
+
`)}weaveDataMigrations(){if(this.toildbWoven||(this.toildbWoven=!0,this.checkMigrationLocations(),this.weaveRpc(),this.toildbCodecClasses.size==0))return;let e=new Map;for(let a=0,l=this.sources.length;a<l;++a){let o=this.sources[a];if(o.isLibrary)continue;let u=o.statements;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=52)continue;let d=f;(this.hasDecoratorKind(d.decorators,15)||this.hasDecoratorKind(d.decorators,29))&&e.set(d.name.text,Gr(d))}}let t=Ui(this.sources),n=kp(this.sources,e,t);if(n.length==0)return;let s=new Set;for(let a=0,l=n.length;a<l;++a){let o=n[a].newType;s.has(o)||(s.add(o),this.weaveDecodeInto(o,Rp(o,n),e))}}checkMigrationLocations(){for(let e=0,t=this.sources.length;e<t;++e){let n=this.sources[e];if(n.isLibrary)continue;let s=n.internalPath.split("/"),l=s[s.length-1].endsWith(".migration"),o=!1;for(let p=0,_=s.length-1;p<_;++p)if(s[p]=="migrations"){o=!0;break}if(l&&o)continue;let u=n.statements;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=56)continue;let d=f;this.hasDecoratorKind(d.decorators,37)&&this.error(102,d.name.range,"ToilDB: @migrate must live in a 'migrations/<Type>.migration.ts' file (a *.migration.ts under a migrations/ folder), so the build can discover it. Found in '"+n.internalPath+".ts'.")}}}weaveDecodeInto(e,t,n){if(!this.toildbCodecClasses.has(e))return;let s=this.toildbCodecClasses.get(e),a=this.toildbCodecReads.get(e),l=s.members,o=new Array;for(let d=0,h=l.length;d<h;++d){let g=l[d];if(g.kind!=55)continue;let m=g;m.is(32)||o.push(m.name.text)}let u="";for(let d=0,h=t.length;d<h;++d){let g=t[d],m="const __m0="+g.oldType+".decode(__buf);",T=g.steps.length;for(let F=0;F<T;++F){let k=g.steps[F],R="__m"+F.toString(),C="__m"+(F+1).toString();k.delta?m+="const "+C+"=new "+k.newType+"();"+this.migrationCarry(k.oldType,k.newType,R,C,n)+k.fnName+"("+R+","+C+");":m+="const "+C+"="+k.fnName+"("+R+");"}let S="__m"+T.toString(),E="";for(let F=0,k=o.length;F<k;++F)E+="this."+o[F]+"="+S+"."+o[F]+";";u+="if(__v==<i64>"+g.oldVersion.toString()+"){"+m+E+"__toildbMarkMigrated();return;}"}for(let d=l.length-1;d>=0;--d){let h=l[d];if(h.kind!=59)continue;let g=h.name.text;(g=="decodeInto"||g=="decodeIntoVersioned")&&l.splice(d,1)}this.injectClassMember(s,"decodeIntoVersioned(__buf: Uint8Array, __v: i64): void{"+u+"const __r=new DataReader(__buf);__r.readU32();"+a.replace(/__o\./g,"this.")+"}"),this.injectClassMember(s,"decodeInto(__buf: Uint8Array): void{this.decodeIntoVersioned(__buf, __toildbReadVersion());}");let p=s.range.source.internalPath,_=new Array,f=new Array;for(let d=0,h=t.length;d<h;++d){let g=t[d];this.addMigrationImport(_,f,g.oldType,this.typeSourcePath(g.oldType),p);for(let m=0,T=g.steps.length;m<T;++m){let S=g.steps[m];this.addMigrationImport(_,f,S.fnName,S.sourceInternalPath,p),S.newType!=e&&this.addMigrationImport(_,f,S.newType,this.typeSourcePath(S.newType),p)}}for(let d=0,h=_.length;d<h;++d){let g=f[d],m="";for(let T=0,S=g.length;T<S;++T)m+=g[T],T+1<S&&(m+=", ");this.injectTopLevelStatements(s,`// @ts-ignore: injected migration import
|
|
23
23
|
import { `+m+' } from "'+this.relativeModulePath(p,_[d])+`";
|
|
24
|
-
`)}}addMigrationImport(e,t,n,s,a){if(s.length==0||s==a)return;let l=e.indexOf(s);l<0&&(e.push(s),t.push(new Array),l=e.length-1);let o=t[l];o.indexOf(n)<0&&o.push(n)}typeSourcePath(e){return this.toildbCodecClasses.has(e)?this.toildbCodecClasses.get(e).range.source.internalPath:""}relativeModulePath(e,t){let n=e.split("/");n.pop();let s=t.split("/"),a=0;for(;a<n.length&&a+1<s.length&&n[a]==s[a];)a++;let l="";for(let o=a,u=n.length;o<u;++o)l+="../";l.length==0&&(l="./");for(let o=a,u=s.length;o<u;++o)l+=s[o],o+1<u&&(l+="/");return l}migrationCarry(e,t,n,s,a){let l=a.has(e)?a.get(e):new Array,o=a.has(t)?a.get(t):new Array,u="";for(let p=0,_=o.length;p<_;++p){let f=o[p];for(let d=0,h=l.length;d<h;++d){let g=l[d];if(g.name==f.name&&g.typeName==f.typeName&&g.isArray==f.isArray){u+=s+"."+f.name+"="+n+"."+f.name+";";break}}}return u}checkToilDbKinds(){let e=new Map;for(let t=0,n=this.sources.length;t<n;++t)this.collectDbCollections(this.sources[t].statements,e);if(e.size)for(let t=0,n=this.sources.length;t<n;++t)this.checkDbFunctions(this.sources[t].statements,e)}collectDbCollections(e,t){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==52){let l=a;if(this.hasDecoratorKind(l.decorators,31)){let o=new Map,u=l.members;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=55)continue;let d=f;if(!this.hasDecoratorKind(d.decorators,32))continue;let h=d.type;h==null||!(h instanceof ae)||o.set(d.name.text,h.name.identifier.text)}o.size&&t.set(l.name.text,o)}}else a.kind==60&&this.collectDbCollections(a.members,t)}}checkDbFunctions(e,t){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==56||a.kind==59){let l=a,o=this.dbFunctionKind(l.decorators);o==-1&&this.hasDecoratorKind(l.decorators,16)&&(o=33);let u=l.body;o!=-1&&u!=null&&this.walkDbStmt(u,o,t)}else a.kind==60?this.checkDbFunctions(a.members,t):a.kind==52&&this.checkDbFunctions(a.members,t)}}dbFunctionKind(e){if(e==null)return-1;for(let t=0,n=e.length;t<n;++t){let s=e[t].decoratorKind;if(s==33||s==34||s==35||s==36||s==38||s==37)return s}return-1}walkDbStmt(e,t,n){switch(e.kind){case 31:{let s=e.statements;for(let a=0,l=s.length;a<l;++a)this.walkDbStmt(s[a],t,n);break}case 39:this.walkDbExpr(e.expression,t,n);break;case 44:{let s=e.value;s&&this.walkDbExpr(s,t,n);break}case 48:{let s=e.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;o&&this.walkDbExpr(o,t,n)}break}case 42:{let s=e;this.walkDbExpr(s.condition,t,n),this.walkDbStmt(s.ifTrue,t,n),s.ifFalse&&this.walkDbStmt(s.ifFalse,t,n);break}case 40:{let s=e;s.initializer&&this.walkDbStmt(s.initializer,t,n),s.condition&&this.walkDbExpr(s.condition,t,n),s.incrementor&&this.walkDbExpr(s.incrementor,t,n),this.walkDbStmt(s.body,t,n);break}case 41:{let s=e;this.walkDbExpr(s.iterable,t,n),this.walkDbStmt(s.body,t,n);break}case 50:{let s=e;this.walkDbExpr(s.condition,t,n),this.walkDbStmt(s.body,t,n);break}case 34:{let s=e;this.walkDbStmt(s.body,t,n),this.walkDbExpr(s.condition,t,n);break}case 45:{let s=e;this.walkDbExpr(s.condition,t,n);let a=s.cases;for(let l=0,o=a.length;l<o;++l){let u=a[l].statements;for(let p=0,_=u.length;p<_;++p)this.walkDbStmt(u[p],t,n)}break}case 46:this.walkDbExpr(e.value,t,n);break;case 47:{let s=e;this.walkDbStmtList(s.bodyStatements,t,n),s.catchStatements&&this.walkDbStmtList(s.catchStatements,t,n),s.finallyStatements&&this.walkDbStmtList(s.finallyStatements,t,n);break}default:break}}walkDbStmtList(e,t,n){for(let s=0,a=e.length;s<a;++s)this.walkDbStmt(e[s],t,n)}walkDbExpr(e,t,n){switch(e.kind){case 10:{let s=e;this.checkDbCall(s,t,n),this.walkDbExpr(s.expression,t,n);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkDbExpr(a[l],t,n);break}case 18:{let s=e.args;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],t,n);break}case 22:this.walkDbExpr(e.expression,t,n);break;case 13:{let s=e;this.walkDbExpr(s.expression,t,n),this.walkDbExpr(s.elementExpression,t,n);break}case 9:{let s=e;this.walkDbExpr(s.left,t,n),this.walkDbExpr(s.right,t,n);break}case 29:this.walkDbExpr(e.operand,t,n);break;case 28:this.walkDbExpr(e.operand,t,n);break;case 21:this.walkDbExpr(e.expression,t,n);break;case 8:this.walkDbExpr(e.expression,t,n);break;case 16:this.walkDbExpr(e.expression,t,n);break;case 23:{let s=e;this.walkDbExpr(s.condition,t,n),this.walkDbExpr(s.ifThen,t,n),this.walkDbExpr(s.ifElse,t,n);break}case 12:{let s=e.expressions;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],t,n);break}default:break}}checkDbCall(e,t,n){let s=e.expression;if(s.kind!=22)return;let a=s,l=a.expression;if(l.kind!=22)return;let o=l,u=o.expression;if(u.kind!=7)return;let p=n.get(u.text);if(p==null)return;let _=p.get(o.property.text);if(_==null)return;let f=a.property.text,d=i6(_,f);d.length!=0&&(n6(t,d)||this.error(102,a.property.range,"ToilDB: a @"+s6(t)+" function may not call '."+f+"' on '"+u.text+"."+o.property.text+"' ("+a6(t)+")"))}parseTypeName(e){let t=z.createSimpleTypeName(e.readIdentifier(),e.range()),n=t;for(;e.skip(68);)if(e.skip(115)){let s=z.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return t}parseType(e,t=!0,n=!1){let s=e.next(),a=e.tokenPos,l;if(s==64){let o=e.skip(64),u=this.tryParseFunctionType(e);if(u){if(o&&!e.skip(65))return n||this.error(1005,e.range(),")"),null;l=u}else{if(o||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(t){let p=this.parseType(e,!1,n);if(!p)return null;if(!e.skip(65))return n||this.error(1005,e.range(e.pos),")"),null;l=p,l.range.start=a,l.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(s==45){let o=this.parseType(e,t,n);if(!o)return null;l=o,l.range.start=a}else if(s==66&&this.options&&this.options.hasFeature(512)){let o=[],u=[],p=!1;if(!e.skip(67)){do{let _=null,f=e.mark();if(e.skip(115)){let h=e.readIdentifier(),g=e.range();e.skip(100)?(_=z.createIdentifierExpression(h,g),p=!0):e.reset(f)}let d=this.parseType(e,!0,n);if(!d)return null;o.push(d),u.push(_)}while(e.skip(71));if(!e.skip(67))return n||this.error(1005,e.range(e.pos),"]"),null}l=z.createTupleType(o,p?u:null,!1,e.range(a,e.pos))}else if(s==58)l=z.createNamedType(z.createSimpleTypeName("void",e.range()),[],!1,e.range(a,e.pos));else if(s==51)l=z.createNamedType(z.createSimpleTypeName("this",e.range()),[],!1,e.range(a,e.pos));else if(s==53||s==20)l=z.createNamedType(z.createSimpleTypeName("bool",e.range()),[],!1,e.range(a,e.pos));else if(s==38)l=z.createNamedType(z.createSimpleTypeName("null",e.range()),[],!1,e.range(a,e.pos));else if(s==116)e.readString(),l=z.createNamedType(z.createSimpleTypeName("string",e.range()),[],!1,e.range(a,e.pos));else if(s==115){let o=this.parseTypeName(e);if(!o)return null;let u=null;if(e.skip(72)){do{let p=this.parseType(e,!0,n);if(!p)return null;u?u.push(p):u=[p]}while(e.skip(71));if(!e.skip(73))return n||this.error(1005,e.range(e.pos),">"),null}u||(u=[]),l=z.createNamedType(o,u,!1,e.range(a,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(93);){let o=this.parseType(e,!0,!1);if(!o)return null;let u=l.kind==1&&l.isNull,p=o.kind==1&&o.isNull;if(!u&&!p)return n||this.error(100,o.range,"union types"),null;p?(l.isNullable=!0,l.range.end=o.range.end):u?(o.range.start=l.range.start,o.isNullable=!0,l=o):l.range.end=o.range.end}for(;e.skip(66);){let o=e.tokenPos;if(!e.skip(67))return n||this.error(1005,e.range(),"]"),null;let u=e.range(o,e.pos),p=!1;if(e.skip(93))if(e.skip(38))p=!0;else return n||this.error(100,e.range(),"union types"),null;if(l=z.createNamedType(z.createSimpleTypeName("Array",u),[l],p,e.range(a,e.pos)),p)break}return l}tryParseFunctionType(e){let t=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(65))l=!0,e.discard(t),s=[];else{l=!1;do{let _=-1,f=0;if(e.skip(69)&&(_=e.tokenPos,l=!0,e.discard(t),f=2),e.skip(51))if(_<0&&(_=e.tokenPos),e.skip(100)){l=!0,e.discard(t);let d=this.parseType(e,!1);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),this.tryParseSignatureIsSignature=!0,null;a=d}else return e.reset(t),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){_<0&&(_=e.tokenPos);let d=z.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(99)&&(l=!0,e.discard(t),f==2?this.error(1047,e.range()):f=1),e.skip(100)){l=!0,e.discard(t);let h=this.parseType(e);if(!h)return this.tryParseSignatureIsSignature=l,null;let g=z.createParameter(f,d,h,null,e.range(_,e.pos));s?s.push(g):s=[g]}else if(l||e.peek()==71&&(l=!0,e.discard(t)),l){let h=z.createParameter(f,d,z.createOmittedType(e.range(e.pos)),null,e.range(_,e.pos));s?s.push(h):s=[h],this.error(1110,h.type.range)}else s||(o=d,u=f)}else{if(l){if(e.peek()==65)break;this.error(1003,e.range())}else e.reset(t);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(71));if(!e.skip(65))return l?this.error(1005,e.range(),")"):e.reset(t),this.tryParseSignatureIsSignature=l,null}let p;if(e.skip(80)){if(!l&&(l=!0,e.discard(t),o)){let _=z.createParameter(u,o,z.createOmittedType(o.range.atEnd),null,o.range);s?s.push(_):s=[_],this.error(1110,_.type.range)}if(p=this.parseType(e),!p)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(t),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),z.createFunctionType(s,p,a,!1,e.range(n,e.pos))}parseDecorator(e){let t=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=z.createIdentifierExpression(n,e.range(t,e.pos));for(;e.skip(68);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=z.createPropertyAccessExpression(s,z.createIdentifierExpression(n,e.range()),e.range(t,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(64)){if(a=this.parseArguments(e),a)return z.createDecorator(s,a,e.range(t,e.pos))}else return z.createDecorator(s,null,e.range(t,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,t,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,t,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(71));let o=z.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(70)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,t,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=z.createIdentifierExpression(e.readIdentifier(),e.range());Kc(a.text)&&this.error(1003,a.range);let l=t;e.skip(95)&&(l|=16384);let o=null;e.skip(100)&&(o=this.parseType(e,!0));let u=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;l&16384&&this.error(1263,u.range)}else s||(l&8?l&32768||this.error(1155,a.range):o||this.error(1110,e.range(e.pos)));let p=ce.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,p),z.createVariableDeclaration(a,n,l,o,u,p)}parseEnum(e,t,n,s){if(e.next()!=115)return this.error(1003,e.range()),null;let a=z.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=62)return this.error(1005,e.range(),"{"),null;let l=new Array;for(;!e.skip(63);){let u=this.parseEnumValue(e,0);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}let o=z.createEnumDeclaration(a,n,t,l,e.range(s,e.pos));return o.overriddenModuleName=this.currentModuleName,e.skip(70),o}parseEnumValue(e,t){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=z.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(101)&&(s=this.parseExpression(e,2),!s)?null:z.createEnumValueDeclaration(n,t,s,ce.join(n.range,e.range()))}parseReturn(e){let t=e.tokenPos,n=null,s=e.peek();if(s!=70&&s!=63&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=z.createReturnStatement(n,e.range(t,e.pos));return e.skip(70)||this.checkASI(e),a}parseTypeParameters(e){let t=new Array,n=!1,s=e.tokenPos;for(;!e.skip(73);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),t.push(a),!e.skip(71)){if(e.skip(73))break;return this.error(1005,e.range(),">"),null}}return t.length||this.error(1098,e.range(s,e.pos)),t}parseTypeParameter(e){if(e.next()==115){let t=z.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(19)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;n=a}let s=null;if(e.skip(101)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return z.createTypeParameter(t,n,s,ce.join(t.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,t=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(51)){if(e.skip(100)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(71))return e.skip(65)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(65);){let u=this.parseParameter(e,t);if(!u)return null;switch(s&&!l&&(this.error(1014,s.name.range),l=!0),u.parameterKind){default:{a&&this.error(1016,u.name.range);break}case 1:{a=!0;break}case 2:{s=u;break}}if(n.push(u),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,t=!1){let n=!1,s=!1,a=null,l=0;if(t&&(e.skip(44)?(a=e.range(),l|=256):e.skip(43)?(a=e.range(),l|=1024):e.skip(42)&&(a=e.range(),l|=512),e.peek()==45)){let o=e.mark();e.next(),e.peek()!=100?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(69)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=z.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(99))&&n&&this.error(1047,o.range),e.skip(100)){if(u=this.parseType(e),!u)return null}else u=z.createOmittedType(e.range(e.pos));let p=null;if(e.skip(101)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,p=this.parseExpression(e,2),!p))return null;let _=z.createParameter(n?2:s?1:0,o,u,p,ce.join(assert(a),e.range()));return _.flags|=l,_}else this.error(1003,e.range());return null}parseFunction(e,t,n,s){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let a=z.createIdentifierExpression(e.readIdentifier(),e.range()),l=-1,o=null;if(e.skip(72)){if(l=e.tokenPos,o=this.parseTypeParameters(e),!o)return null;t|=65536}if(!e.skip(64))return this.error(1005,e.range(e.pos),"("),null;l<0&&(l=e.tokenPos);let u=this.parseParameters(e);if(!u)return null;let p=this.parseParametersThis,_=(t&4096)!=0;_&&(u.length!=1&&this.error(1049,a.range),u.length>0&&u[0].initializer&&this.error(1052,a.range)),t&2048&&u.length&&this.error(1054,a.range);let f=null;if(e.skip(100)&&(f=this.parseType(e,!0,_),!f))return null;f||(f=z.createOmittedType(e.range(e.pos)),_||this.error(1110,f.range));let d=z.createFunctionType(u,f,p,!1,e.range(l,e.pos)),h=null;if(e.skip(62)){if(t&32768&&this.error(1183,e.range()),h=this.parseBlockStatement(e,!1),!h)return null}else t&32768||this.error(2391,e.range(e.pos));let g=z.createFunctionDeclaration(a,n,t,o,d,h,0,e.range(s,e.pos));return g.overriddenModuleName=this.currentModuleName,e.skip(70),g}parseFunctionExpression(e){let t=e.tokenPos,n,s=0;if(e.token==24){if(e.skipIdentifier()?n=z.createIdentifierExpression(e.readIdentifier(),e.range()):n=z.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(64))return this.error(1005,e.range(e.pos),"("),null}else s=1,assert(e.token==64),n=z.createEmptyIdentifierExpression(e.range(e.tokenPos));let a=e.pos,l=this.parseParameters(e);return l?this.parseFunctionExpressionCommon(e,n,l,this.parseParametersThis,s,t,a):null}parseFunctionExpressionCommon(e,t,n,s,a,l=-1,o=-1){l<0&&(l=t.range.start),o<0&&(o=l);let u=null;if(a!=2&&e.skip(100)){if(u=this.parseType(e),!u)return null}else u=z.createOmittedType(e.range(e.pos));if(a&&!e.skip(80))return this.error(1005,e.range(e.pos),"=>"),null;let p=z.createFunctionType(n,u,s,!1,e.range(o,e.pos)),_=null;if(a)if(e.skip(62))_=this.parseBlockStatement(e,!1);else{let d=this.parseExpression(e,2);d&&(_=z.createExpressionStatement(d))}else{if(!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(!_)return null;let f=z.createFunctionDeclaration(t,null,0,null,p,_,a,e.range(l,e.pos));return z.createFunctionExpression(f)}parseClassOrInterface(e,t,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=z.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(72)){if(o=this.parseTypeParameters(e),!o)return null;t|=65536}let u=null;if(e.skip(19)){let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;u=d}let p=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;a||(p||(p=[]),p.push(d))}while(e.skip(71))}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;let _=new Array,f;if(a?(assert(!p),f=z.createInterfaceDeclaration(l,n,t,o,u,null,_,e.range(s,e.pos))):f=z.createClassDeclaration(l,n,t,o,u,p,_,e.range(s,e.pos)),!e.skip(63))do{let d=this.parseClassMember(e,f);if(d)d.kind==66?f.indexSignature=d:(assert(d instanceof je),_.push(d));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));if(f.range.end=e.pos,f.overriddenModuleName=this.currentModuleName,!a&&n!=null)for(let d=0,h=n.length;d<h;++d){let g=n[d].decoratorKind;g==15?this.injectDataCodec(f):g==29?(this.injectDataCodec(f),this.injectUserBinding(f)):g==18?this.injectRestController(f,n[d]):g==31?this.injectDatabaseBinding(f):g==39?this.injectDaemonHandler(f):g==41&&this.injectStreamHandler(f)}return f}injectDatabaseBinding(e){let t=e.name.text,n=e.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=55)continue;let o=l;if(!this.hasDecoratorKind(o.decorators,32))continue;let u=o.type;if(u==null||!(u instanceof ae))continue;let p=u;o.is(32)&&(o.flags&=-33),o.flags|=16384;let _=p.name.identifier.text,f=o.name.text,d=p.typeArguments,h=_;if(d!=null&&d.length>0){let T="";for(let S=0,v=d.length;S<v;++S){S>0&&(T+=", ");let F=d[S];F instanceof ae&&(T+=F.name.identifier.text)}h=_+"<"+T+">"}let g=t+"/"+f,m="__db_"+f;this.injectClassMember(e,"private static "+m+": "+h+" | null = null;"),this.injectClassMember(e,"static get "+f+"(): "+h+" { if ("+t+"."+m+" == null) "+t+"."+m+" = new "+h+'(__toildbResolve("'+g+'")); return '+t+"."+m+"!; }")}this.injectTopLevelStatements(e,`// @ts-ignore: injected
|
|
24
|
+
`)}}addMigrationImport(e,t,n,s,a){if(s.length==0||s==a)return;let l=e.indexOf(s);l<0&&(e.push(s),t.push(new Array),l=e.length-1);let o=t[l];o.indexOf(n)<0&&o.push(n)}typeSourcePath(e){return this.toildbCodecClasses.has(e)?this.toildbCodecClasses.get(e).range.source.internalPath:""}relativeModulePath(e,t){let n=e.split("/");n.pop();let s=t.split("/"),a=0;for(;a<n.length&&a+1<s.length&&n[a]==s[a];)a++;let l="";for(let o=a,u=n.length;o<u;++o)l+="../";l.length==0&&(l="./");for(let o=a,u=s.length;o<u;++o)l+=s[o],o+1<u&&(l+="/");return l}migrationCarry(e,t,n,s,a){let l=a.has(e)?a.get(e):new Array,o=a.has(t)?a.get(t):new Array,u="";for(let p=0,_=o.length;p<_;++p){let f=o[p];for(let d=0,h=l.length;d<h;++d){let g=l[d];if(g.name==f.name&&g.typeName==f.typeName&&g.isArray==f.isArray){u+=s+"."+f.name+"="+n+"."+f.name+";";break}}}return u}checkToilDbKinds(){let e=new Map;for(let t=0,n=this.sources.length;t<n;++t)this.collectDbCollections(this.sources[t].statements,e);if(e.size)for(let t=0,n=this.sources.length;t<n;++t)this.checkDbFunctions(this.sources[t].statements,e)}collectDbCollections(e,t){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==52){let l=a;if(this.hasDecoratorKind(l.decorators,31)){let o=new Map,u=l.members;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=55)continue;let d=f;if(!this.hasDecoratorKind(d.decorators,32))continue;let h=d.type;h==null||!(h instanceof ae)||o.set(d.name.text,h.name.identifier.text)}o.size&&t.set(l.name.text,o)}}else a.kind==60&&this.collectDbCollections(a.members,t)}}checkDbFunctions(e,t){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==56||a.kind==59){let l=a,o=this.dbFunctionKind(l.decorators);o==-1&&this.hasDecoratorKind(l.decorators,16)&&(o=33);let u=l.body;o!=-1&&u!=null&&this.walkDbStmt(u,o,t)}else a.kind==60?this.checkDbFunctions(a.members,t):a.kind==52&&this.checkDbFunctions(a.members,t)}}dbFunctionKind(e){if(e==null)return-1;for(let t=0,n=e.length;t<n;++t){let s=e[t].decoratorKind;if(s==33||s==34||s==35||s==36||s==38||s==37)return s}return-1}walkDbStmt(e,t,n){switch(e.kind){case 31:{let s=e.statements;for(let a=0,l=s.length;a<l;++a)this.walkDbStmt(s[a],t,n);break}case 39:this.walkDbExpr(e.expression,t,n);break;case 44:{let s=e.value;s&&this.walkDbExpr(s,t,n);break}case 48:{let s=e.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;o&&this.walkDbExpr(o,t,n)}break}case 42:{let s=e;this.walkDbExpr(s.condition,t,n),this.walkDbStmt(s.ifTrue,t,n),s.ifFalse&&this.walkDbStmt(s.ifFalse,t,n);break}case 40:{let s=e;s.initializer&&this.walkDbStmt(s.initializer,t,n),s.condition&&this.walkDbExpr(s.condition,t,n),s.incrementor&&this.walkDbExpr(s.incrementor,t,n),this.walkDbStmt(s.body,t,n);break}case 41:{let s=e;this.walkDbExpr(s.iterable,t,n),this.walkDbStmt(s.body,t,n);break}case 50:{let s=e;this.walkDbExpr(s.condition,t,n),this.walkDbStmt(s.body,t,n);break}case 34:{let s=e;this.walkDbStmt(s.body,t,n),this.walkDbExpr(s.condition,t,n);break}case 45:{let s=e;this.walkDbExpr(s.condition,t,n);let a=s.cases;for(let l=0,o=a.length;l<o;++l){let u=a[l].statements;for(let p=0,_=u.length;p<_;++p)this.walkDbStmt(u[p],t,n)}break}case 46:this.walkDbExpr(e.value,t,n);break;case 47:{let s=e;this.walkDbStmtList(s.bodyStatements,t,n),s.catchStatements&&this.walkDbStmtList(s.catchStatements,t,n),s.finallyStatements&&this.walkDbStmtList(s.finallyStatements,t,n);break}default:break}}walkDbStmtList(e,t,n){for(let s=0,a=e.length;s<a;++s)this.walkDbStmt(e[s],t,n)}walkDbExpr(e,t,n){switch(e.kind){case 10:{let s=e;this.checkDbCall(s,t,n),this.walkDbExpr(s.expression,t,n);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkDbExpr(a[l],t,n);break}case 18:{let s=e.args;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],t,n);break}case 22:this.walkDbExpr(e.expression,t,n);break;case 13:{let s=e;this.walkDbExpr(s.expression,t,n),this.walkDbExpr(s.elementExpression,t,n);break}case 9:{let s=e;this.walkDbExpr(s.left,t,n),this.walkDbExpr(s.right,t,n);break}case 29:this.walkDbExpr(e.operand,t,n);break;case 28:this.walkDbExpr(e.operand,t,n);break;case 21:this.walkDbExpr(e.expression,t,n);break;case 8:this.walkDbExpr(e.expression,t,n);break;case 16:this.walkDbExpr(e.expression,t,n);break;case 23:{let s=e;this.walkDbExpr(s.condition,t,n),this.walkDbExpr(s.ifThen,t,n),this.walkDbExpr(s.ifElse,t,n);break}case 12:{let s=e.expressions;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],t,n);break}default:break}}checkDbCall(e,t,n){let s=e.expression;if(s.kind!=22)return;let a=s,l=a.expression;if(l.kind!=22)return;let o=l,u=o.expression;if(u.kind!=7)return;let p=n.get(u.text);if(p==null)return;let _=p.get(o.property.text);if(_==null)return;let f=a.property.text,d=i6(_,f);d.length!=0&&(n6(t,d)||this.error(102,a.property.range,"ToilDB: a @"+s6(t)+" function may not call '."+f+"' on '"+u.text+"."+o.property.text+"' ("+a6(t)+")"))}parseTypeName(e){let t=z.createSimpleTypeName(e.readIdentifier(),e.range()),n=t;for(;e.skip(68);)if(e.skip(115)){let s=z.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return t}parseType(e,t=!0,n=!1){let s=e.next(),a=e.tokenPos,l;if(s==64){let o=e.skip(64),u=this.tryParseFunctionType(e);if(u){if(o&&!e.skip(65))return n||this.error(1005,e.range(),")"),null;l=u}else{if(o||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(t){let p=this.parseType(e,!1,n);if(!p)return null;if(!e.skip(65))return n||this.error(1005,e.range(e.pos),")"),null;l=p,l.range.start=a,l.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(s==45){let o=this.parseType(e,t,n);if(!o)return null;l=o,l.range.start=a}else if(s==66&&this.options&&this.options.hasFeature(512)){let o=[],u=[],p=!1;if(!e.skip(67)){do{let _=null,f=e.mark();if(e.skip(115)){let h=e.readIdentifier(),g=e.range();e.skip(100)?(_=z.createIdentifierExpression(h,g),p=!0):e.reset(f)}let d=this.parseType(e,!0,n);if(!d)return null;o.push(d),u.push(_)}while(e.skip(71));if(!e.skip(67))return n||this.error(1005,e.range(e.pos),"]"),null}l=z.createTupleType(o,p?u:null,!1,e.range(a,e.pos))}else if(s==58)l=z.createNamedType(z.createSimpleTypeName("void",e.range()),[],!1,e.range(a,e.pos));else if(s==51)l=z.createNamedType(z.createSimpleTypeName("this",e.range()),[],!1,e.range(a,e.pos));else if(s==53||s==20)l=z.createNamedType(z.createSimpleTypeName("bool",e.range()),[],!1,e.range(a,e.pos));else if(s==38)l=z.createNamedType(z.createSimpleTypeName("null",e.range()),[],!1,e.range(a,e.pos));else if(s==116)e.readString(),l=z.createNamedType(z.createSimpleTypeName("string",e.range()),[],!1,e.range(a,e.pos));else if(s==115){let o=this.parseTypeName(e);if(!o)return null;let u=null;if(e.skip(72)){do{let p=this.parseType(e,!0,n);if(!p)return null;u?u.push(p):u=[p]}while(e.skip(71));if(!e.skip(73))return n||this.error(1005,e.range(e.pos),">"),null}u||(u=[]),l=z.createNamedType(o,u,!1,e.range(a,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(93);){let o=this.parseType(e,!0,!1);if(!o)return null;let u=l.kind==1&&l.isNull,p=o.kind==1&&o.isNull;if(!u&&!p)return n||this.error(100,o.range,"union types"),null;p?(l.isNullable=!0,l.range.end=o.range.end):u?(o.range.start=l.range.start,o.isNullable=!0,l=o):l.range.end=o.range.end}for(;e.skip(66);){let o=e.tokenPos;if(!e.skip(67))return n||this.error(1005,e.range(),"]"),null;let u=e.range(o,e.pos),p=!1;if(e.skip(93))if(e.skip(38))p=!0;else return n||this.error(100,e.range(),"union types"),null;if(l=z.createNamedType(z.createSimpleTypeName("Array",u),[l],p,e.range(a,e.pos)),p)break}return l}tryParseFunctionType(e){let t=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(65))l=!0,e.discard(t),s=[];else{l=!1;do{let _=-1,f=0;if(e.skip(69)&&(_=e.tokenPos,l=!0,e.discard(t),f=2),e.skip(51))if(_<0&&(_=e.tokenPos),e.skip(100)){l=!0,e.discard(t);let d=this.parseType(e,!1);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),this.tryParseSignatureIsSignature=!0,null;a=d}else return e.reset(t),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){_<0&&(_=e.tokenPos);let d=z.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(99)&&(l=!0,e.discard(t),f==2?this.error(1047,e.range()):f=1),e.skip(100)){l=!0,e.discard(t);let h=this.parseType(e);if(!h)return this.tryParseSignatureIsSignature=l,null;let g=z.createParameter(f,d,h,null,e.range(_,e.pos));s?s.push(g):s=[g]}else if(l||e.peek()==71&&(l=!0,e.discard(t)),l){let h=z.createParameter(f,d,z.createOmittedType(e.range(e.pos)),null,e.range(_,e.pos));s?s.push(h):s=[h],this.error(1110,h.type.range)}else s||(o=d,u=f)}else{if(l){if(e.peek()==65)break;this.error(1003,e.range())}else e.reset(t);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(71));if(!e.skip(65))return l?this.error(1005,e.range(),")"):e.reset(t),this.tryParseSignatureIsSignature=l,null}let p;if(e.skip(80)){if(!l&&(l=!0,e.discard(t),o)){let _=z.createParameter(u,o,z.createOmittedType(o.range.atEnd),null,o.range);s?s.push(_):s=[_],this.error(1110,_.type.range)}if(p=this.parseType(e),!p)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(t),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),z.createFunctionType(s,p,a,!1,e.range(n,e.pos))}parseDecorator(e){let t=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=z.createIdentifierExpression(n,e.range(t,e.pos));for(;e.skip(68);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=z.createPropertyAccessExpression(s,z.createIdentifierExpression(n,e.range()),e.range(t,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(64)){if(a=this.parseArguments(e),a)return z.createDecorator(s,a,e.range(t,e.pos))}else return z.createDecorator(s,null,e.range(t,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,t,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,t,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(71));let o=z.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(70)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,t,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=z.createIdentifierExpression(e.readIdentifier(),e.range());Kc(a.text)&&this.error(1003,a.range);let l=t;e.skip(95)&&(l|=16384);let o=null;e.skip(100)&&(o=this.parseType(e,!0));let u=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;l&16384&&this.error(1263,u.range)}else s||(l&8?l&32768||this.error(1155,a.range):o||this.error(1110,e.range(e.pos)));let p=ce.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,p),z.createVariableDeclaration(a,n,l,o,u,p)}parseEnum(e,t,n,s){if(e.next()!=115)return this.error(1003,e.range()),null;let a=z.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=62)return this.error(1005,e.range(),"{"),null;let l=new Array;for(;!e.skip(63);){let u=this.parseEnumValue(e,0);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}let o=z.createEnumDeclaration(a,n,t,l,e.range(s,e.pos));return o.overriddenModuleName=this.currentModuleName,e.skip(70),o}parseEnumValue(e,t){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=z.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(101)&&(s=this.parseExpression(e,2),!s)?null:z.createEnumValueDeclaration(n,t,s,ce.join(n.range,e.range()))}parseReturn(e){let t=e.tokenPos,n=null,s=e.peek();if(s!=70&&s!=63&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=z.createReturnStatement(n,e.range(t,e.pos));return e.skip(70)||this.checkASI(e),a}parseTypeParameters(e){let t=new Array,n=!1,s=e.tokenPos;for(;!e.skip(73);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),t.push(a),!e.skip(71)){if(e.skip(73))break;return this.error(1005,e.range(),">"),null}}return t.length||this.error(1098,e.range(s,e.pos)),t}parseTypeParameter(e){if(e.next()==115){let t=z.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(19)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;n=a}let s=null;if(e.skip(101)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return z.createTypeParameter(t,n,s,ce.join(t.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,t=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(51)){if(e.skip(100)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(71))return e.skip(65)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(65);){let u=this.parseParameter(e,t);if(!u)return null;switch(s&&!l&&(this.error(1014,s.name.range),l=!0),u.parameterKind){default:{a&&this.error(1016,u.name.range);break}case 1:{a=!0;break}case 2:{s=u;break}}if(n.push(u),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,t=!1){let n=!1,s=!1,a=null,l=0;if(t&&(e.skip(44)?(a=e.range(),l|=256):e.skip(43)?(a=e.range(),l|=1024):e.skip(42)&&(a=e.range(),l|=512),e.peek()==45)){let o=e.mark();e.next(),e.peek()!=100?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(69)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=z.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(99))&&n&&this.error(1047,o.range),e.skip(100)){if(u=this.parseType(e),!u)return null}else u=z.createOmittedType(e.range(e.pos));let p=null;if(e.skip(101)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,p=this.parseExpression(e,2),!p))return null;let _=z.createParameter(n?2:s?1:0,o,u,p,ce.join(assert(a),e.range()));return _.flags|=l,_}else this.error(1003,e.range());return null}parseFunction(e,t,n,s){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let a=z.createIdentifierExpression(e.readIdentifier(),e.range()),l=-1,o=null;if(e.skip(72)){if(l=e.tokenPos,o=this.parseTypeParameters(e),!o)return null;t|=65536}if(!e.skip(64))return this.error(1005,e.range(e.pos),"("),null;l<0&&(l=e.tokenPos);let u=this.parseParameters(e);if(!u)return null;let p=this.parseParametersThis,_=(t&4096)!=0;_&&(u.length!=1&&this.error(1049,a.range),u.length>0&&u[0].initializer&&this.error(1052,a.range)),t&2048&&u.length&&this.error(1054,a.range);let f=null;if(e.skip(100)&&(f=this.parseType(e,!0,_),!f))return null;f||(f=z.createOmittedType(e.range(e.pos)),_||this.error(1110,f.range));let d=z.createFunctionType(u,f,p,!1,e.range(l,e.pos)),h=null;if(e.skip(62)){if(t&32768&&this.error(1183,e.range()),h=this.parseBlockStatement(e,!1),!h)return null}else t&32768||this.error(2391,e.range(e.pos));let g=z.createFunctionDeclaration(a,n,t,o,d,h,0,e.range(s,e.pos));return g.overriddenModuleName=this.currentModuleName,e.skip(70),g}parseFunctionExpression(e){let t=e.tokenPos,n,s=0;if(e.token==24){if(e.skipIdentifier()?n=z.createIdentifierExpression(e.readIdentifier(),e.range()):n=z.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(64))return this.error(1005,e.range(e.pos),"("),null}else s=1,assert(e.token==64),n=z.createEmptyIdentifierExpression(e.range(e.tokenPos));let a=e.pos,l=this.parseParameters(e);return l?this.parseFunctionExpressionCommon(e,n,l,this.parseParametersThis,s,t,a):null}parseFunctionExpressionCommon(e,t,n,s,a,l=-1,o=-1){l<0&&(l=t.range.start),o<0&&(o=l);let u=null;if(a!=2&&e.skip(100)){if(u=this.parseType(e),!u)return null}else u=z.createOmittedType(e.range(e.pos));if(a&&!e.skip(80))return this.error(1005,e.range(e.pos),"=>"),null;let p=z.createFunctionType(n,u,s,!1,e.range(o,e.pos)),_=null;if(a)if(e.skip(62))_=this.parseBlockStatement(e,!1);else{let d=this.parseExpression(e,2);d&&(_=z.createExpressionStatement(d))}else{if(!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(!_)return null;let f=z.createFunctionDeclaration(t,null,0,null,p,_,a,e.range(l,e.pos));return z.createFunctionExpression(f)}parseClassOrInterface(e,t,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=z.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(72)){if(o=this.parseTypeParameters(e),!o)return null;t|=65536}let u=null;if(e.skip(19)){let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;u=d}let p=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;a||(p||(p=[]),p.push(d))}while(e.skip(71))}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;let _=new Array,f;if(a?(assert(!p),f=z.createInterfaceDeclaration(l,n,t,o,u,null,_,e.range(s,e.pos))):f=z.createClassDeclaration(l,n,t,o,u,p,_,e.range(s,e.pos)),!e.skip(63))do{let d=this.parseClassMember(e,f);if(d)d.kind==66?f.indexSignature=d:(assert(d instanceof je),_.push(d));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));if(f.range.end=e.pos,f.overriddenModuleName=this.currentModuleName,!a&&n!=null)for(let d=0,h=n.length;d<h;++d){let g=n[d].decoratorKind;g==15?this.injectDataCodec(f):g==29?(this.injectDataCodec(f),this.injectUserBinding(f)):g==18?this.injectRestController(f,n[d]):g==31?this.injectDatabaseBinding(f):g==39?this.injectDaemonHandler(f):g==41&&this.injectStreamHandler(f)}return f}injectDatabaseBinding(e){let t=e.name.text,n=e.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=55)continue;let o=l;if(!this.hasDecoratorKind(o.decorators,32))continue;let u=o.type;if(u==null||!(u instanceof ae))continue;let p=u;o.is(32)&&(o.flags&=-33),o.flags|=16384;let _=p.name.identifier.text,f=o.name.text,d=p.typeArguments,h=_;if(d!=null&&d.length>0){let T="";for(let S=0,E=d.length;S<E;++S){S>0&&(T+=", ");let F=d[S];F instanceof ae&&(T+=F.name.identifier.text)}h=_+"<"+T+">"}let g=t+"/"+f,m="__db_"+f;this.injectClassMember(e,"private static "+m+": "+h+" | null = null;"),this.injectClassMember(e,"static get "+f+"(): "+h+" { if ("+t+"."+m+" == null) "+t+"."+m+" = new "+h+'(__toildbResolve("'+g+'")); return '+t+"."+m+"!; }")}this.injectTopLevelStatements(e,`// @ts-ignore: injected
|
|
25
25
|
import { __toildbResolve } from "toildb";
|
|
26
|
-
`)}injectDataCodec(e){let t=e.name.text,n=e.members,s="",a="",l="",o="";for(let _=0,f=n.length;_<f;++_){let d=n[_];if(d.kind!=55)continue;let h=d;if(h.is(32))continue;let g=h.type;if(g==null||!(g instanceof ae))continue;let m=h.name.text,T='"'+m+'"',S=g,
|
|
26
|
+
`)}injectDataCodec(e){let t=e.name.text,n=e.members,s="",a="",l="",o="";for(let _=0,f=n.length;_<f;++_){let d=n[_];if(d.kind!=55)continue;let h=d;if(h.is(32))continue;let g=h.type;if(g==null||!(g instanceof ae))continue;let m=h.name.text,T='"'+m+'"',S=g,E=S.name.identifier.text,F=S.typeArguments;if(E=="Array"&&F!=null&&F.length==1&&F[0]instanceof ae){let k=F[0].name.identifier.text,R="__a"+_.toString(),C="__c"+_.toString(),D="__j"+_.toString();s+="{const "+R+"=this."+m+";__w.writeU32(<u32>"+R+".length);for(let "+D+"=0,"+C+"="+R+".length;"+D+"<"+C+";++"+D+"){"+po(k,R+"["+D+"]")+"}}",a+="{const "+C+"=__r.readU32();const "+R+"=new Array<"+k+">();for(let "+D+":u32=0;"+D+"<"+C+"&&__r.ok;++"+D+"){"+R+".push("+_o(k)+");}__o."+m+"="+R+";}",l+="{const "+R+"=this."+m+";const "+R+"j=JSON.arr();for(let "+D+"=0,"+C+"="+R+".length;"+D+"<"+C+";++"+D+"){"+R+"j.push("+Hg(k,R+"["+D+"]")+");}__j.set("+T+","+R+"j);}",o+="{const "+R+"v=__v.get("+T+");const "+R+"=new Array<"+k+">();for(let "+D+"=0,"+C+"="+R+"v.length();"+D+"<"+C+";++"+D+"){"+R+".push("+Qg(k,R+"v.at("+D+")")+");}__o."+m+"="+R+";}"}else if(E=="Uint8Array"){let k="__a"+_.toString(),R="__c"+_.toString(),C="__j"+_.toString();s+="__w.writeBytes(this."+m+");",a+="__o."+m+"=__r.readBytes();",l+="{const "+k+"=this."+m+";const "+k+"j=JSON.arr();for(let "+C+":i32=0,"+R+"="+k+".length;"+C+"<"+R+";++"+C+"){"+k+"j.push(JSON.of<u8>("+k+"["+C+"]));}__j.set("+T+","+k+"j);}",o+="{const "+k+"v=__v.get("+T+");const "+k+"=new Uint8Array("+k+"v.length());for(let "+C+":i32=0,"+R+"="+k+"v.length();"+C+"<"+R+";++"+C+"){"+k+"["+C+"]=<u8>"+k+"v.at("+C+").asU64();}__o."+m+"="+k+";}"}else s+=po(E,"this."+m),a+="__o."+m+"="+_o(E)+";",l+="__j.set("+T+","+Hg(E,"this."+m)+");",o+="__o."+m+"="+Qg(E,"__v.get("+T+")")+";"}let u=_s(t).toString();this.injectClassMember(e,"encodeInto(__w: DataWriter): void{"+s+"}"),this.injectClassMember(e,"encode(): Uint8Array{const __w=new DataWriter();__w.writeU32("+u+");this.encodeInto(__w);return __w.toBytes();}"),this.injectClassMember(e,"static decodeFrom(__r: DataReader): "+t+"{const __o=new "+t+"();"+a+"return __o;}"),this.injectClassMember(e,"static decode(__buf: Uint8Array): "+t+"{const __r=new DataReader(__buf);__r.readU32();return "+t+".decodeFrom(__r);}");let p="const __r=new DataReader(__buf);__r.readU32();"+a.replace(/__o\./g,"this.");this.injectClassMember(e,"decodeIntoVersioned(__buf: Uint8Array, __v: i64): void{"+p+"}"),this.injectClassMember(e,"decodeInto(__buf: Uint8Array): void{this.decodeIntoVersioned(__buf, -1);}"),this.toildbCodecReads.set(t,a),this.toildbCodecClasses.set(t,e),this.injectClassMember(e,"static dataId(): u32{return "+u+";}"),this.injectClassMember(e,"toJSON(): JSON{const __j=JSON.obj();"+l+"return __j;}"),this.injectClassMember(e,"static fromJSON(__v: JSON): "+t+"{const __o=new "+t+"();"+o+"return __o;}")}injectClassMember(e,t){let n=e.range.source,s=new fe(n.sourceKind,n.normalizedPath,t),a=new Lr(s,this.diagnostics),l=this.parseClassMember(a,e);l!=null&&l instanceof je&&e.members.push(l)}injectTopLevelStatements(e,t){let n=e.range.source,s=new fe(n.sourceKind,n.normalizedPath,t),a=new Lr(s,this.diagnostics);for(;!a.skip(121);){let l=this.parseTopLevelStatement(a,null);if(l!=null)n.statements.push(l);else{this.skipStatement(a);break}}}injectRestController(e,t){let n=e.name.text,s=e.members,a=this.restPrefixOf(t),l=this.restStreamOf(t),o=this.hasDecoratorKind(e.decorators,28),u="";for(let d=0,h=s.length;d<h;++d){let g=s[d];if(g.kind!=59)continue;let m=g,T=this.routeDecoratorOf(m);if(T==null)continue;let S=this.buildRouteBlock(a,l,m,T,o);S!=null&&(u+=S)}if(u.length==0)return;this.injectClassMember(e,"__tryRoute(__req: __toilReq): __toilResp | null{"+u+"return null;}");let p=this.restRuntimePath(e),f=e.range.source.normalizedPath;this.restImportedSources.has(f)||(this.restImportedSources.add(f),this.injectTopLevelStatements(e,"import { Rest as __toilRest, Request as __toilReq, Response as __toilResp, matchRoute as __toilMatch } from "+JSON.stringify(p)+`;
|
|
27
27
|
`)),this.injectTopLevelStatements(e,"__toilRest.register((__q: __toilReq): __toilResp | null => new "+n+`().__tryRoute(__q));
|
|
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
|
|
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
|
|
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)+`;
|
|
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)
|
|
34
34
|
let `+o+": "+t+` | null = null;
|
|
35
35
|
`),this.injectTopLevelStatements(e,"export function daemon_start(): i32{let __inst = new "+t+"();"+o+" = __inst;"+u+`return 0;}
|
|
36
36
|
`),this.injectTopLevelStatements(e,"export function scheduled_tick(__task_id: i32): i64{let __inst = "+o+";if (__inst == null){__inst = new "+t+"();"+o+` = __inst;}__inst.__tick(__task_id);return 0;}
|
|
37
|
-
`)}injectStreamHandler(e){let t=e.name.text,n=e.members,s=this.streamMessageType(e),a=null,l=null,o=null,u=null,p=0,_=0,f=0;for(let T=0,S=n.length;T<S;++T){let
|
|
37
|
+
`)}injectStreamHandler(e){let t=e.name.text,n=e.members,s=this.streamMessageType(e),a=null,l=null,o=null,u=null,p=0,_=0,f=0;for(let T=0,S=n.length;T<S;++T){let E=n[T];if(E.kind!=59)continue;let F=E,k=F.decorators;if(k==null)continue;let R=F.name.text,C=F.signature.parameters.length==0;for(let D=0,U=k.length;D<U;++D)switch(k[D].decoratorKind){case 42:{if(a==null){++f;let G=this.isNamedType(F.signature.returnType,"StreamOutbound");C?(a=R,_=G?2:0):F.signature.parameters.length==1&&this.isNamedType(F.signature.parameters[0].type,"StreamInbound")&&G?(a=R,_=1):this.error(9014,F.name.range,R)}break}case 43:{if(l==null){++f;let G=this.isNamedType(F.signature.returnType,"StreamOutbound"),O=F.signature.parameters;C?(l=R,p=G?2:0):O.length==1&&this.isNamedType(O[0].type,"StreamPacket")?(l=R,p=G?1:5):O.length==1&&s.length>0&&this.isNamedType(O[0].type,s)?(l=R,p=G?3:4):this.error(9015,F.name.range,R)}break}case 44:{o==null&&(++f,C?o=R:this.error(9016,F.name.range,R));break}case 45:{u==null&&(++f,C?u=R:this.error(9017,F.name.range,R));break}}}f==0&&this.warning(9007,e.name.range,t);let d="";if(a!=null&&(d+=_==1?"if (__ev == 1) { return this."+a+"(new StreamInbound()).__encode(); }":_==2?"if (__ev == 1) { return this."+a+"().__encode(); }":"if (__ev == 1) { this."+a+"(); return 0; }"),l!=null){let T=p==1||p==5?"new StreamPacket()":p==3||p==4?s+".decode(new StreamPacket().bytes())":"",S=p==1||p==2||p==3;d+=S?"if (__ev == 2) { return this."+l+"("+T+").__encode(); }":"if (__ev == 2) { this."+l+"("+T+"); return 0; }"}o!=null&&(d+="if (__ev == 3) { this."+o+"(); return 0; }"),u!=null&&(d+="if (__ev == 4) { this."+u+"(); return 0; }"),this.injectClassMember(e,"__streamDispatch(__ev: i32): i64{"+d+"return 0;}");let g=e.range.source.normalizedPath;this.streamExportedSources.has(g)||(this.streamExportedSources.add(g),this.injectTopLevelStatements(e,this.streamRuntimeSource()),this.injectTopLevelStatements(e,`// @ts-ignore: injected stream registry + entry (spec 03 section 5.1)
|
|
38
38
|
let __toilStreamHandlers: Array<(__ev: i32) => i64> = [];
|
|
39
39
|
`),this.injectTopLevelStatements(e,`let __toilStreamActive: i32 = 0;
|
|
40
40
|
`),this.injectTopLevelStatements(e,`export function stream_dispatch(__event_kind: i32, __stream_id_lo: i32, __stream_id_hi: i32): i64{__toilStreamConnId = (<u64>(<u32>__stream_id_hi) << 32) | <u64>(<u32>__stream_id_lo);let __i = __toilStreamActive;if (__i < 0 || __i >= __toilStreamHandlers.length) return 0;return __toilStreamHandlers[__i](__event_kind);}
|
|
@@ -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+")",v=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+v+";":T=="void"?F+=S+";return __toilResp.empty(204)"+v+";":p=="Binary"?F+="const __res="+S+";return __toilResp.bytes(__res.encode())"+v+";":F+="const __res="+S+";return __toilResp.json(__res.toJSON().toString())"+v+";",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 v=0,F=0;if(e.peek()==45){let te=e.mark();e.next(),e.peek()!=100?(e.discard(te),l|=64,v=e.tokenPos,F=e.pos,s||(s=v)):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(v,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(v,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(v,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(v,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)),v=S.localIdentifier.text,F=S.foreignPath;if(F){let k=assert(this.lookupForeignFile(F,assert(S.foreignPathAlt))),R=this.lookupForeign(v,k,n);R?f.ensureExport(T,R):this.error(2305,S.localIdentifier.range,F,v)}else{let k=f.getMember(v);if(k)f.ensureExport(T,k);else{let R=this.lookup(v);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,v=!1;for(;S;){let F=S.instanceMembers;if(F&&F.has(m.name)){v=!0;break}S=S.basePrototype}if(!v){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),v=e.runExpression(S,1);v?S=v: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 e4(r){return I(r),r.typeArguments=[c.v128],r.contextualType=c.v128,r.contextIsExact=!0,yt(r)}x.set(y.v128_store,e4);function t4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,qr(r)}x.set(y.i8x16_splat,t4);function r4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Qt(r)}x.set(y.i8x16_extract_lane_s,r4);function i4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.i32,Qt(r)}x.set(y.i8x16_extract_lane_u,i4);function n4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Wr(r)}x.set(y.i8x16_replace_lane,n4);function s4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Hr(r)}x.set(y.i8x16_add,s4);function a4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Qr(r)}x.set(y.i8x16_sub,a4);function l4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Xt(r)}x.set(y.i8x16_min_s,l4);function o4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Xt(r)}x.set(y.i8x16_min_u,o4);function u4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Jt(r)}x.set(y.i8x16_max_s,u4);function c4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Jt(r)}x.set(y.i8x16_max_u,c4);function p4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,i_(r)}x.set(y.i8x16_avgr_u,p4);function _4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Yr(r)}x.set(y.i8x16_abs,_4);function f4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Zr(r)}x.set(y.i8x16_neg,f4);function d4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Bs(r)}x.set(y.i8x16_add_sat_s,d4);function h4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Bs(r)}x.set(y.i8x16_add_sat_u,h4);function m4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Ls(r)}x.set(y.i8x16_sub_sat_s,m4);function y4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Ls(r)}x.set(y.i8x16_sub_sat_u,y4);function g4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Ms(r)}x.set(y.i8x16_shl,g4);function b4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Zt(r)}x.set(y.i8x16_shr_s,b4);function x4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Zt(r)}x.set(y.i8x16_shr_u,x4);function T4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Ds(r)}x.set(y.i8x16_all_true,T4);function A4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.i32,Gs(r)}x.set(y.i8x16_bitmask,A4);function v4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,sb(r)}x.set(y.i8x16_popcnt,v4);function E4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Xr(r)}x.set(y.i8x16_eq,E4);function S4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Jr(r)}x.set(y.i8x16_ne,S4);function I4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,kt(r)}x.set(y.i8x16_lt_s,I4);function k4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,kt(r)}x.set(y.i8x16_lt_u,k4);function R4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Rt(r)}x.set(y.i8x16_le_s,R4);function F4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Rt(r)}x.set(y.i8x16_le_u,F4);function w4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,Ft(r)}x.set(y.i8x16_gt_s,w4);function C4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,Ft(r)}x.set(y.i8x16_gt_u,C4);function P4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,wt(r)}x.set(y.i8x16_ge_s,P4);function B4(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,wt(r)}x.set(y.i8x16_ge_u,B4);function L4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ns(r)}x.set(y.i8x16_narrow_i16x8_s,L4);function N4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ns(r)}x.set(y.i8x16_narrow_i16x8_u,N4);function M4(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,jr(r)}x.set(y.i8x16_shuffle,M4);function D4(r){return I(r),r.typeArguments=null,r.contextualType=c.v128,ib(r)}x.set(y.i8x16_swizzle,D4);function G4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,qr(r)}x.set(y.i16x8_splat,G4);function z4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Qt(r)}x.set(y.i16x8_extract_lane_s,z4);function U4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.i32,Qt(r)}x.set(y.i16x8_extract_lane_u,U4);function V4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Wr(r)}x.set(y.i16x8_replace_lane,V4);function O4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Hr(r)}x.set(y.i16x8_add,O4);function q4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Qr(r)}x.set(y.i16x8_sub,q4);function W4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ki(r)}x.set(y.i16x8_mul,W4);function j4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Xt(r)}x.set(y.i16x8_min_s,j4);function K4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Xt(r)}x.set(y.i16x8_min_u,K4);function H4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Jt(r)}x.set(y.i16x8_max_s,H4);function Q4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Jt(r)}x.set(y.i16x8_max_u,Q4);function X4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,i_(r)}x.set(y.i16x8_avgr_u,X4);function J4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Yr(r)}x.set(y.i16x8_abs,J4);function Z4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Zr(r)}x.set(y.i16x8_neg,Z4);function Y4(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Bs(r)}x.set(y.i16x8_add_sat_s,Y4);function $4(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Bs(r)}x.set(y.i16x8_add_sat_u,$4);function e0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ls(r)}x.set(y.i16x8_sub_sat_s,e0);function t0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ls(r)}x.set(y.i16x8_sub_sat_u,t0);function r0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ms(r)}x.set(y.i16x8_shl,r0);function i0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Zt(r)}x.set(y.i16x8_shr_s,i0);function n0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Zt(r)}x.set(y.i16x8_shr_u,n0);function s0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Ds(r)}x.set(y.i16x8_all_true,s0);function a0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.i32,Gs(r)}x.set(y.i16x8_bitmask,a0);function l0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Xr(r)}x.set(y.i16x8_eq,l0);function o0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Jr(r)}x.set(y.i16x8_ne,o0);function u0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,kt(r)}x.set(y.i16x8_lt_s,u0);function c0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,kt(r)}x.set(y.i16x8_lt_u,c0);function p0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Rt(r)}x.set(y.i16x8_le_s,p0);function _0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Rt(r)}x.set(y.i16x8_le_u,_0);function f0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,Ft(r)}x.set(y.i16x8_gt_s,f0);function d0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,Ft(r)}x.set(y.i16x8_gt_u,d0);function h0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,wt(r)}x.set(y.i16x8_ge_s,h0);function m0(r){return I(r),r.typeArguments=[c.u16],r.contextualType=c.v128,wt(r)}x.set(y.i16x8_ge_u,m0);function y0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ns(r)}x.set(y.i16x8_narrow_i32x4_s,y0);function g0(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Ns(r)}x.set(y.i16x8_narrow_i32x4_u,g0);function b0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,$r(r)}x.set(y.i16x8_extend_low_i8x16_s,b0);function x0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,$r(r)}x.set(y.i16x8_extend_low_i8x16_u,x0);function T0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,ei(r)}x.set(y.i16x8_extend_high_i8x16_s,T0);function A0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ei(r)}x.set(y.i16x8_extend_high_i8x16_u,A0);function v0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,zs(r)}x.set(y.i16x8_extadd_pairwise_i8x16_s,v0);function E0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,zs(r)}x.set(y.i16x8_extadd_pairwise_i8x16_u,E0);function S0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,ob(r)}x.set(y.i16x8_q15mulr_sat_s,S0);function I0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,ti(r)}x.set(y.i16x8_extmul_low_i8x16_s,I0);function k0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ti(r)}x.set(y.i16x8_extmul_low_i8x16_u,k0);function R0(r){return I(r),r.typeArguments=[c.i8],r.contextualType=c.v128,ri(r)}x.set(y.i16x8_extmul_high_i8x16_s,R0);function F0(r){return I(r),r.typeArguments=[c.u8],r.contextualType=c.v128,ri(r)}x.set(y.i16x8_extmul_high_i8x16_u,F0);function w0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,jr(r)}x.set(y.i16x8_shuffle,w0);function C0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,qr(r)}x.set(y.i32x4_splat,C0);function P0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Qt(r)}x.set(y.i32x4_extract_lane,P0);function B0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Wr(r)}x.set(y.i32x4_replace_lane,B0);function L0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Hr(r)}x.set(y.i32x4_add,L0);function N0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Qr(r)}x.set(y.i32x4_sub,N0);function M0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ki(r)}x.set(y.i32x4_mul,M0);function D0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Xt(r)}x.set(y.i32x4_min_s,D0);function G0(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Xt(r)}x.set(y.i32x4_min_u,G0);function z0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Jt(r)}x.set(y.i32x4_max_s,z0);function U0(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Jt(r)}x.set(y.i32x4_max_u,U0);function V0(r){return I(r),r.typeArguments=[c.i16],r.contextualType=c.v128,nb(r)}x.set(y.i32x4_dot_i16x8_s,V0);function O0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Yr(r)}x.set(y.i32x4_abs,O0);function q0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Zr(r)}x.set(y.i32x4_neg,q0);function W0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Ms(r)}x.set(y.i32x4_shl,W0);function j0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Zt(r)}x.set(y.i32x4_shr_s,j0);function K0(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,Zt(r)}x.set(y.i32x4_shr_u,K0);function H0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Ds(r)}x.set(y.i32x4_all_true,H0);function Q0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.i32,Gs(r)}x.set(y.i32x4_bitmask,Q0);function X0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Xr(r)}x.set(y.i32x4_eq,X0);function J0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Jr(r)}x.set(y.i32x4_ne,J0);function Z0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,kt(r)}x.set(y.i32x4_lt_s,Z0);function Y0(r){return I(r),r.typeArguments=[c.u32],r.contextualType=c.v128,kt(r)}x.set(y.i32x4_lt_u,Y0);function $0(r){return I(r),r.typeArguments=[c.i32],r.contextualType=c.v128,Rt(r)}x.set(y.i32x4_le_s,$0);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 v=T.memoryOffset;assert(v>=0),_=!0,o.push(t.call(l.internalName,[t.load(a,!1,t.local_get(0,s),s,v),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,v=T.length;S<v;++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,v=n.allocStringCached(S);if(pi(s,v)==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,v,p,d,R,g.length,n.block(null,F,d)),ie(R)}ha(s,o),fa(s,v,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),v=Mt(S);if(v==N.Unreachable)T.push(S);else if(v==N.None)T.push(S),T.push(this.makeStackOffset(+m));else{let F=this.getSharedTemp(h,v);T.push(t.local_set(F,S,!1)),T.push(this.makeStackOffset(+m)),T.push(t.local_get(F,v))}Ln(h,t.flatten(T,v))}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 v=this.getSharedTemp(d,S);m.push(t.local_set(v,T,!1)),m.push(this.makeStackOffset(+g)),m.push(t.local_get(v,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")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(`: {
|
|
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() {
|
|
@@ -92,16 +92,16 @@ let `+m+": "+t+` | null = null;
|
|
|
92
92
|
`)}W(n,--this.indentLevel),n.push(`},
|
|
93
93
|
`)}this.visitNamespace(e,t)}visitClass(e,t){}visitInterface(e,t){this.visitClass(e,t)}visitNamespace(e,t){}visitAlias(e,t,n){}getExternalCode(e){let t=Ue(10,e.decoratorNodes);if(t){let n=t.args;if(n&&n.length==1){let s=n[0];if(s.kind==17){let a=s;if(a.literalKind==2)return a.value;if(a.literalKind==3){let l=a.parts;if(l.length==1)return l[0]}}}}return null}build(){let e=this.exports,t=this.program.moduleImports,n=this.program,s=n.options,a=this.sb;a.push(""),W(a,this.indentLevel++),this.esm||a.push("export "),a.push(`async function instantiate(module, imports = {}) {
|
|
94
94
|
`);let l=a.push("")-1;W(a,this.indentLevel++),a.push(`const adaptedImports = {
|
|
95
|
-
`);let o=a.length;for(let g=Map_keys(t),m=0,T=g.length;m<T;++m){let S=g[m],
|
|
95
|
+
`);let o=a.length;for(let g=Map_keys(t),m=0,T=g.length;m<T;++m){let S=g[m],E=this.ensureModuleId(S),F=t.get(S);if(W(a,this.indentLevel),We(S)?a.push(S):(a.push('"'),a.push(ve(S,34)),a.push('"')),!gI(S)){a.push(": __module"),a.push(E.toString()),a.push(`,
|
|
96
96
|
`);continue}let k=a.length;a.push(`: Object.setPrototypeOf({
|
|
97
|
-
`),++this.indentLevel;let R=0;for(let C=Map_keys(F),D=0,U=C.length;D<U;++D){let G=C[D],O=assert(F.get(G));if(O.kind==5){let Y=O,Z=this.getExternalCode(Y);(!A_(Y.signature,0)||!We(G)||Z)&&(this.makeFunctionImport(S,G,O,Z),++R)}else if(O.kind==0){let Y=O;(!ni(Y.type,0)||!We(G))&&(this.makeGlobalImport(S,G,Y),++R)}}--this.indentLevel,R?(W(a,this.indentLevel),a.push("}, "),S=="env"?a.push("Object.assign(Object.create(globalThis), imports.env || {})"):(a.push("__module"),a.push(
|
|
98
|
-
`)):(a.length=k,S=="env"?a.push(": Object.assign(Object.create(globalThis), imports.env || {})"):(a.push(": __module"),a.push(
|
|
97
|
+
`),++this.indentLevel;let R=0;for(let C=Map_keys(F),D=0,U=C.length;D<U;++D){let G=C[D],O=assert(F.get(G));if(O.kind==5){let Y=O,Z=this.getExternalCode(Y);(!A_(Y.signature,0)||!We(G)||Z)&&(this.makeFunctionImport(S,G,O,Z),++R)}else if(O.kind==0){let Y=O;(!ni(Y.type,0)||!We(G))&&(this.makeGlobalImport(S,G,Y),++R)}}--this.indentLevel,R?(W(a,this.indentLevel),a.push("}, "),S=="env"?a.push("Object.assign(Object.create(globalThis), imports.env || {})"):(a.push("__module"),a.push(E.toString())),a.push(`),
|
|
98
|
+
`)):(a.length=k,S=="env"?a.push(": Object.assign(Object.create(globalThis), imports.env || {})"):(a.push(": __module"),a.push(E.toString())),a.push(`,
|
|
99
99
|
`))}--this.indentLevel;let u=a.length>o;u?(W(a,this.indentLevel),a.push(`};
|
|
100
100
|
`)):a.length=o-2;let p=this.importMappings,_=new Array;for(let g=Map_keys(p),m=0,T=g.length;m<T;++m){let S=g[m];if(S=="env")_.push(` const env = imports.env;
|
|
101
|
-
`);else{let
|
|
101
|
+
`);else{let E=p.get(S);S=="rtrace"&&(_.push(` ((rtrace) => {
|
|
102
102
|
`),_.push(` delete imports.rtrace;
|
|
103
103
|
`),_.push(" new rtrace.Rtrace({ getMemory() { return memory; }, onerror(err) { console.log(`RTRACE: ${err.stack}`); } }).install(imports);\n"),_.push(` })(imports.rtrace);
|
|
104
|
-
`)),_.push(" const __module"),_.push(
|
|
104
|
+
`)),_.push(" const __module"),_.push(E.toString()),_.push(" = imports"),We(S)?(_.push("."),_.push(S)):(_.push('["'),_.push(ve(S,34)),_.push('"]')),_.push(`;
|
|
105
105
|
`)}}a[l]=_.join(""),W(a,this.indentLevel),a.push("const { exports } = await WebAssembly.instantiate(module"),u?a.push(`, adaptedImports);
|
|
106
106
|
`):a.push(`, imports);
|
|
107
107
|
`),W(a,this.indentLevel),a.push(`const memory = exports.memory || imports.env.memory;
|
|
@@ -146,14 +146,14 @@ let `+m+": "+t+` | null = null;
|
|
|
146
146
|
for (let i = 0; i < length; ++i) values[i] = liftElement(dataStart + (i << align >>> 0));
|
|
147
147
|
return values;
|
|
148
148
|
}
|
|
149
|
-
`)}if(this.needsLowerArray){let g=n.arrayBufferInstance.id,m=n.arrayBufferViewInstance,T=m.nextMemoryOffset+4,S=m.offsetof("buffer"),
|
|
149
|
+
`)}if(this.needsLowerArray){let g=n.arrayBufferInstance.id,m=n.arrayBufferViewInstance,T=m.nextMemoryOffset+4,S=m.offsetof("buffer"),E=m.offsetof("dataStart"),F=m.offsetof("byteLength"),k=F+4;this.needsSetU32=!0,a.push(` function __lowerArray(lowerElement, id, align, values) {
|
|
150
150
|
if (values == null) return 0;
|
|
151
151
|
const
|
|
152
152
|
length = values.length,
|
|
153
153
|
buffer = exports.__pin(exports.__new(length << align, ${g})) >>> 0,
|
|
154
154
|
header = exports.__pin(exports.__new(${T}, id)) >>> 0;
|
|
155
155
|
__setU32(header + ${S}, buffer);
|
|
156
|
-
__dataview.setUint32(header + ${
|
|
156
|
+
__dataview.setUint32(header + ${E}, buffer, true);
|
|
157
157
|
__dataview.setUint32(header + ${F}, length << align, true);
|
|
158
158
|
__dataview.setUint32(header + ${k}, length, true);
|
|
159
159
|
for (let i = 0; i < length; ++i) lowerElement(buffer + (i << align >>> 0), values[i]);
|
|
@@ -169,14 +169,14 @@ let `+m+": "+t+` | null = null;
|
|
|
169
169
|
__dataview.getUint32(pointer + ${T}, true) / constructor.BYTES_PER_ELEMENT
|
|
170
170
|
).slice();
|
|
171
171
|
}
|
|
172
|
-
`)}if(this.needsLowerTypedArray){let g=n.arrayBufferInstance.id,m=n.arrayBufferViewInstance,T=m.nextMemoryOffset,S=m.offsetof("buffer"),
|
|
172
|
+
`)}if(this.needsLowerTypedArray){let g=n.arrayBufferInstance.id,m=n.arrayBufferViewInstance,T=m.nextMemoryOffset,S=m.offsetof("buffer"),E=m.offsetof("dataStart"),F=m.offsetof("byteLength");this.needsSetU32=!0,a.push(` function __lowerTypedArray(constructor, id, align, values) {
|
|
173
173
|
if (values == null) return 0;
|
|
174
174
|
const
|
|
175
175
|
length = values.length,
|
|
176
176
|
buffer = exports.__pin(exports.__new(length << align, ${g})) >>> 0,
|
|
177
177
|
header = exports.__new(${T}, id) >>> 0;
|
|
178
178
|
__setU32(header + ${S}, buffer);
|
|
179
|
-
__dataview.setUint32(header + ${
|
|
179
|
+
__dataview.setUint32(header + ${E}, buffer, true);
|
|
180
180
|
__dataview.setUint32(header + ${F}, length << align, true);
|
|
181
181
|
new constructor(memory.buffer, buffer, length).set(values);
|
|
182
182
|
exports.__unpin(buffer);
|
|
@@ -254,7 +254,7 @@ let `+m+": "+t+` | null = null;
|
|
|
254
254
|
if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); }
|
|
255
255
|
else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); }
|
|
256
256
|
})(), {
|
|
257
|
-
`);let g=!1,m=new Array;for(let T=Map_keys(p),S=0,
|
|
257
|
+
`);let g=!1,m=new Array;for(let T=Map_keys(p),S=0,E=T.length;S<E;++S){let F=T[S];if(F=="env")W(a,2),a.push(`env: globalThis,
|
|
258
258
|
`);else{let k=this.ensureModuleId(F);W(a,2),We(F)?a.push(F):(a.push('"'),a.push(ve(F,34)),a.push('"')),a.push(": __maybeDefault(__import"),a.push(k.toString()),a.push(`),
|
|
259
259
|
`),m.push("import * as __import"),m.push(k.toString()),m.push(' from "'),m.push(ve(yI(F),34)),m.push(`";
|
|
260
260
|
`),g=!0}}a[0]=m.join(""),a.push(` }
|
|
@@ -297,7 +297,7 @@ let `+m+": "+t+` | null = null;
|
|
|
297
297
|
return __dataview.${i}(pointer, true);
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
|
-
`}var si="",xr="",Eo=15,Ws=class{constructor(){this.target=1;this.targetMode=null;this.runtime=2;this.debugInfo=!1;this.noAssert=!1;this.exportMemory=!0;this.importMemory=!1;this.initialMemory=0;this.maximumMemory=0;this.sharedMemory=!1;this.zeroFilledMemory=!1;this.importTable=!1;this.exportTable=!1;this.sourceMap=!1;this.uncheckedBehavior=0;this.exportStart=null;this.memoryBase=0;this.tableBase=0;this.globalAliases=null;this.features=Eo;this.noUnsafe=!1;this.pedantic=!1;this.lowMemoryLimit=0;this.exportRuntime=!1;this.stackSize=0;this.bundleMajorVersion=0;this.bundleMinorVersion=0;this.bundlePatchVersion=0;this.optimizeLevelHint=0;this.shrinkLevelHint=0;this.basenameHint="output";this.bindingsHint=!1}get isWasm64(){return this.target==2}get usizeType(){return this.target==2?c.usize64:c.usize32}get isizeType(){return this.target==2?c.isize64:c.isize32}get sizeTypeRef(){return this.target==2?N.I64:N.I32}get willOptimize(){return this.optimizeLevelHint>0||this.shrinkLevelHint>0}setFeature(i,e=!0){e?(i&32768&&(i|=1056),i&16384&&(i|=1024),i&1024&&(i|=256),i&4096&&(i|=16),this.features|=i):(i&256&&(i|=1024),i&1024&&(i|=16384),i&16&&(i|=4096),i&1056&&(i|=32768),this.features&=~i)}hasFeature(i){return(this.features&i)!=0}},to=(t=>(t[t.Default=0]="Default",t[t.Never=1]="Never",t[t.Always=2]="Always",t))(to||{}),b_=(l=>(l[l.None=0]="None",l[l.ConvImplicit=1]="ConvImplicit",l[l.ConvExplicit=2]="ConvExplicit",l[l.MustWrap=4]="MustWrap",l[l.WillDrop=8]="WillDrop",l[l.PreferStatic=16]="PreferStatic",l[l.IsThis=32]="IsThis",l))(b_||{}),x_=(o=>(o[o.None=0]="None",o[o.Data=1]="Data",o[o.Stack=2]="Stack",o[o.Heap=4]="Heap",o[o.Rtti=8]="Rtti",o[o.visitGlobals=16]="visitGlobals",o[o.visitMembers=32]="visitMembers",o[o.setArgumentsLength=64]="setArgumentsLength",o))(x_||{}),en;(t=>(t.DefaultNamespace="env",t.Memory="memory",t.Table="table"))(en||={});var qs;(n=>(n.Memory="memory",n.Table="table",n.argumentsLength="__argumentsLength",n.setArgumentsLength="__setArgumentsLength"))(qs||={});var Ji=["__new","__pin","__unpin","__collect"],Zi=["__rtti_base"],js=class r extends Je{constructor(e){super(e.diagnostics);this.currentParent=null;this.currentType=c.void;this.memorySegments=[];this.stringSegments=new Map;this.staticGcObjectOffsets=new Map;this.functionTable=[];this.builtinArgumentsLength=0;this.closureEnvironmentGlobal=0;this.runtimeFeatures=0;this.inlineStack=[];this.lazyFunctions=new Set;this.pendingInstanceOf=new Map;this.overrideStubs=new Set;this.pendingElements=new Set;this.doneModuleExports=new Set;this.hasCustomFunctionExports=!1;this.desiresExportRuntime=!1;this.exceptionTagEnsured=!1;this.f32ModInstance=null;this.f64ModInstance=null;this.f32PowInstance=null;this.f64PowInstance=null;this.i32PowInstance=null;this.i64PowInstance=null;this._reusableCallExpression=null;this.program=e;let t=e.module,n=e.options;n.memoryBase?(this.memoryOffset=i64_new(n.memoryBase),t.setLowMemoryUnused(!1)):!n.lowMemoryLimit&&n.optimizeLevelHint>=2?(this.memoryOffset=i64_new(1024),t.setLowMemoryUnused(!0)):(this.memoryOffset=i64_new(8),t.setLowMemoryUnused(!1));let s=0;n.hasFeature(1)&&(s|=32),n.hasFeature(2)&&(s|=2),n.hasFeature(4)&&(s|=4),n.hasFeature(8)&&(s|=16),n.hasFeature(16)&&(s|=8),n.hasFeature(32)&&(s|=1),n.hasFeature(64)&&(s|=64),n.hasFeature(128)&&(s|=128),n.hasFeature(256)&&(s|=256),n.hasFeature(512)&&(s|=512),n.hasFeature(1024)&&(s|=1024),n.hasFeature(2048)&&(s|=2048),n.hasFeature(4096)&&(s|=4096),n.hasFeature(8192)&&(s|=8192),n.hasFeature(16384)&&(s|=16384),n.hasFeature(32768)&&(s|=131072),t.setFeatures(s);let a=e.makeNativeFunction(y.start,Xe.create(e,[],c.void));a.internalName=y.start,this.currentFlow=a.flow,this.currentBody=new Array,this.shadowStack=new Vs(this)}get module(){return this.program.module}get options(){return this.program.options}get resolver(){return this.program.resolver}static compile(e){return new r(e).compile()}compile(){let e=this.options,t=this.module,n=this.program,s=this.resolver,a=e.stackSize>0;this.initDummyMemory(),this.program.initialize(),t.setClosedWorld(!0);let l=this.currentFlow.targetFunction;assert(l.internalName==y.start);let o=this.currentBody;assert(o.length==0);let u=n.filesByName;for(let k=Map_values(u),R=0,C=k.length;R<C;++R){let D=unchecked(k[R]);D.source.sourceKind==1&&(this.compileFile(D),this.compileModuleExports(D))}if((this.options.exportRuntime||this.options.bindingsHint&&this.desiresExportRuntime)&&this.options.runtime!=3){for(let k=0,R=Ji.length;k<R;++k){let C=Ji[k],D=n.requireFunction(C);this.compileFunction(D)&&!t.hasExport(C)&&t.addFunctionExport(D.internalName,C)}for(let k=0,R=Zi.length;k<R;++k){let C=Zi[k],D=n.requireGlobal(C);this.compileGlobal(D)&&!t.hasExport(C)&&t.addGlobalExport(D.internalName,C)}}let p=this.lazyFunctions;do{let k=new Array;for(let R=Set_values(p),C=0,D=R.length;C<D;++C){let U=unchecked(R[C]);k.push(U)}p.clear();for(let R=0,C=k.length;R<C;++R)this.compileFunction(unchecked(k[R]),!0)}while(p.size);let _=this.functionTable,f=this.overrideStubs;for(let k=0,R=_.length;k<R;++k){let C=_[k];C.is(268435456)?(assert(C.is(262144)),_[k]=this.ensureOverrideStub(C)):C.signature.requiredParameters<C.signature.parameterTypes.length&&(_[k]=this.ensureVarargsStub(C))}let d=new Set;do{s.discoveredOverride=!1;for(let k=Set_values(f),R=0,C=k.length;R<C;++R){let D=unchecked(k[R]),U=s.resolveOverrides(D);if(U)for(let G=0,O=U.length;G<O;++G)this.compileFunction(U[G]);d.add(D)}}while(f.size>d.size||s.discoveredOverride);d.clear();for(let k=Set_values(f),R=0,C=k.length;R<C;++R)this.finalizeOverrideStub(k[R]);for(let k=Map_keys(this.pendingInstanceOf),R=0,C=k.length;R<C;++R){let D=k[R],U=assert(this.pendingInstanceOf.get(D));switch(D.kind){case 7:case 9:{this.finalizeInstanceOf(D,U);break}case 6:case 8:{this.finalizeAnyInstanceOf(D,U);break}default:assert(!1)}}t.removeGlobal(y.rtti_base),this.runtimeFeatures&8&&mb(this);let h=i64_align(this.memoryOffset,e.usizeType.byteSize);t.removeGlobal(y.data_end),((this.runtimeFeatures&1)!=0||a)&&(e.isWasm64?t.addGlobal(y.data_end,N.I64,!1,t.i64(i64_low(h),i64_high(h))):t.addGlobal(y.data_end,N.I32,!1,t.i32(i64_low(h)))),t.removeGlobal(y.stack_pointer),((this.runtimeFeatures&2)!=0||a)&&(h=i64_align(i64_add(h,i64_new(e.stackSize)),e.usizeType.byteSize),e.isWasm64?t.addGlobal(y.stack_pointer,N.I64,!0,t.i64(i64_low(h),i64_high(h))):t.addGlobal(y.stack_pointer,N.I32,!0,t.i32(i64_low(h)))),t.removeGlobal(y.heap_base),((this.runtimeFeatures&4)!=0||a)&&(e.isWasm64?t.addGlobal(y.heap_base,N.I64,!1,t.i64(i64_low(h),i64_high(h))):t.addGlobal(y.heap_base,N.I32,!1,t.i32(i64_low(h)))),this.initDefaultMemory(h),this.initDefaultTable(),this.runtimeFeatures&64&&(t.addFunction(y.setArgumentsLength,N.I32,N.None,null,t.global_set(this.ensureArgumentsLength(),t.local_get(0,N.I32))),t.addFunctionExport(y.setArgumentsLength,qs.setArgumentsLength));let g=this.program.mainFunction;if(g){let k=this.resolver.resolveFunction(g,null);k&&this.compileFunction(k)&&(t.hasExport("main")?this.error(110,g.declaration.range,"main"):t.addFunctionExport(k.internalName,"main"))}let m=!o.length,T=e.exportStart;if(!m||T!=null){let k=l.signature;!m&&T!=null&&(t.addGlobal(y.started,N.I32,!0,t.i32(0)),o.unshift(t.global_set(y.started,t.i32(1))),o.unshift(t.if(t.global_get(y.started,N.I32),t.return())));let R=t.addFunction(l.internalName,k.paramRefs,k.resultRefs,Vr(l.getNonParameterLocalTypes()),t.flatten(o));l.finalize(t,R),T==null?t.setStart(R):!We(T)||t.hasExport(T)?this.error(110,fe.native.range,T):t.addFunctionExport(l.internalName,T)}a&&this.shadowStack.walkModule(),this.runtimeFeatures&16&&fb(this),this.runtimeFeatures&32&&hb(this),a&&this.runtimeFeatures&48&&new Vs(this).walkModule(),n.lookup("ASC_RTRACE")!=null&&new Ao(this).walkModule();let S=Ng(n);if(S!=null){t.addCustomSection("toildb.catalog",S);let k=Mg(n);k!=null&&t.addCustomSection("toildb.types",k)}let v=this.options.targetMode,F=Kg(n,v);if(F!=null&&t.addCustomSection("toil.surface",F),v!="cold"){let k=Gg(n);k!=null&&t.addCustomSection("toildb.route_kinds",k);let R=zg(n);R!=null&&t.addCustomSection("toildb.rpc_kinds",R);let C=qg(n);C!=null&&t.addCustomSection("toilstream.catalog",C);let D=jg(n);D!=null&&t.addCustomSection("toildb.derives",D)}if(v=="cold"){let k=Wg(n);k!=null&&t.addCustomSection("toildaemon.catalog",k)}return t}initDummyMemory(){let e=this.options;this.module.setMemory(0,Ot.UNLIMITED_MEMORY,[],e.target,null,P.DefaultMemory,e.sharedMemory)}initDefaultMemory(e){this.memoryOffset=e;let t=this.options,n=this.module,s=this.memorySegments,a=0,l=Ot.UNLIMITED_MEMORY,o=!1;(t.memoryBase||s.length)&&(a=u32(i64_low(i64_shr_u(i64_align(e,65536),i64_new(16))))),t.initialMemory&&(t.initialMemory<a?this.error(105,null,a.toString()):a=t.initialMemory),t.maximumMemory&&(t.maximumMemory<a?this.error(106,null,a.toString()):l=t.maximumMemory),t.sharedMemory&&(o=!0,t.maximumMemory||(this.error(107,null),o=!1),t.hasFeature(32)||(this.error(108,null),o=!1));let u=t.lowMemoryLimit;if(u){let p=i64_new(u&-16);i64_gt(e,p)&&this.error(104,null,i64_to_string(e),i64_to_string(p))}n.setMemory(a,l,s,t.target,t.exportMemory?qs.Memory:null,P.DefaultMemory,o),t.importMemory&&n.addMemoryImport(P.DefaultMemory,en.DefaultNamespace,en.Memory,o)}initDefaultTable(){let e=this.options,t=this.module;e.importTable&&(t.addTableImport(P.DefaultTable,en.DefaultNamespace,en.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(901,null)),e.exportTable&&(t.addTableExport(P.DefaultTable,qs.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(902,null));let n=e.tableBase;n||(n=1);let s=this.functionTable,a=new Array(s.length);for(let u=0,p=s.length;u<p;++u)a[u]=s[u].internalName;let l=n+s.length,o=Ot.UNLIMITED_TABLE;e.importTable||e.exportTable||(o=l,e.willOptimize&&t.setPassArgument("directize-initial-contents-immutable","true")),t.addFunctionTable(P.DefaultTable,l,o,a,t.i32(n))}compileModuleExports(e){let t=e.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));this.compileModuleExport(o,u)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.compileModuleExports(n[s])}compileModuleExport(e,t,n=""){let s=this.module;switch(t.kind){case 4:{let a=t;if(!a.is(65536)){let l=this.resolver.resolveFunction(a,null);l&&this.compileModuleExport(e,l,n);return}break}case 5:{let a=t;if(!a.hasDecorator(512)){let l=a.signature;if(l.requiredParameters<l.parameterTypes.length&&(a=this.ensureVarargsStub(a),this.runtimeFeatures|=64),this.compileFunction(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addFunctionExport(a.internalName,o),this.hasCustomFunctionExports=!0,l.hasManagedOperands&&this.shadowStack.noteExport(o,l.getManagedOperandIndices()),!this.desiresExportRuntime){let p=l.thisType;if(p&&$i(p)||Yi(l.returnType))this.desiresExportRuntime=!0;else{let _=l.parameterTypes;for(let f=0,d=_.length;f<d;++f)if($i(_[f])){this.desiresExportRuntime=!0;break}}}a.signature.returnType.kind==15&&this.module.setClosedWorld(!1)}return}}break}case 0:{let a=t;if(!(a.is(8)||a.is(96))&&!this.options.hasFeature(2)){this.warning(103,a.identifierNode.range,"mutable-globals");return}if(this.compileGlobal(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addGlobalExport(t.internalName,o),!this.desiresExportRuntime){let u=a.type;(Yi(u)||!a.is(8)&&$i(u))&&(this.desiresExportRuntime=!0)}a.type.kind==15&&this.module.setClosedWorld(!1)}a.type==c.v128&&this.warning(112,a.typeNode?assert(a.typeNode).range:a.identifierNode.range,"v128");return}break}case 2:{this.compileEnum(t);let a=t.members;if(a){let l=n+e+Nn;for(let o=Map_keys(a),u=0,p=o.length;u<p;++u){let _=unchecked(o[u]),f=assert(a.get(_));f.is(512)||this.compileModuleExport(_,f,l)}}return}case 3:{let a=t;if(!a.isImmutable&&!this.options.hasFeature(2)){this.error(103,a.identifierNode.range,"mutable-globals");return}if(a.is(8388608)){let l=n+e;s.hasExport(l)||s.addGlobalExport(t.internalName,l);return}break}}this.warning(235,t.identifierNode.range)}compileFileByPath(e,t){let n,s=this.program.filesByName,a;if(s.has(e))n=assert(s.get(e));else if(s.has(a=e+qe))n=assert(s.get(a));else{this.error(6054,t.range,e);return}this.compileFile(n)}compileFile(e){if(e.is(8388608))return;e.set(8388608);let t=e.startFunction,n=t.signature,s=this.currentBody,a=new Array;this.currentBody=a;let l=this.currentFlow,o=t.flow;this.currentFlow=o;for(let u=e.source.statements,p=0,_=u.length;p<_;++p)this.compileTopLevelStatement(u[p],a);if(this.currentFlow=l,this.currentBody=s,a.length){let u=this.module,p=t.localsByIndex,_=p.length,f=new Array(_);for(let h=0;h<_;++h)f[h]=p[h].type.toRef();let d=u.addFunction(t.internalName,n.paramRefs,n.resultRefs,f,u.flatten(a));t.finalize(u,d),s.push(u.call(t.internalName,null,N.None))}}compileGlobalLazy(e,t){return e.is(8388608)?!e.is(16777216):e.hasAnyDecorator(1536)||e.is(32768)?this.compileGlobal(e):(this.errorRelated(2448,t.range,e.identifierNode.range,e.internalName),!1)}compileGlobal(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.pendingElements;t.add(e);let n=this.module,s=0,a=e.typeNode,l=e.initializerNode;if(!e.is(4194304))if(a){let h=this.resolver.resolveType(a,null,e.parent);if(!h)return e.set(16777216),t.delete(e),!1;if(h==c.void)return this.error(1110,a.range),e.set(16777216),t.delete(e),!1;e.setType(h),this.program.checkTypeSupported(h,a)}else if(l){let h=this.currentFlow;if(e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,c.auto,20),this.currentFlow=h,this.currentType==c.void)return this.error(2322,l.range,this.currentType.toString(),"<auto>"),e.set(16777216),t.delete(e),!1;e.setType(this.currentType)}else return this.error(1110,e.identifierNode.range.atEnd),e.set(16777216),t.delete(e),!1;if(e.hasDecorator(512)){let h=e.internalName;return Ht.has(h)&&assert(Ht.get(h))(new As(this,e)),t.delete(e),!0}let o=e.type;!l&&!e.is(16384)&&o.isReference&&!o.isNullableReference&&this.error(238,e.identifierNode.range);let u=o.toRef(),p=e.is(8)||e.is(96),_=e.hasDecorator(64);if(e.is(32768))return p||this.options.hasFeature(2)?(Tb(e,e.declaration),this.program.markModuleImport(si,xr,e),n.addGlobalImport(e.internalName,si,xr,u,!p),t.delete(e),!this.desiresExportRuntime&&$i(o)&&(this.desiresExportRuntime=!0),!0):(this.error(103,e.declaration.range,"mutable-globals"),e.set(16777216),t.delete(e),!1);let f=!1;if(l){if(!s){let h=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,o,21),this.currentFlow=h}if(!n.isConstExpression(s))if(p){let h=n.runExpression(s,1);h?s=h:f=!0}else f=!0;if(f&&re(s)==10){let h=assert(Zn(s));if(!_p(n.getGlobal(h))){let g=this.program.elementsByName;g.has(h)&&assert(g.get(h)).is(32768)&&(f=!1)}}if(_)if(f)this.warning(206,l.range);else{switch(assert(re(s)==14),le(s)){case N.I32:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ne(s),0);break}case N.I64:{e.constantValueKind=1,e.constantIntegerValue=i64_new(Ie(s),Le(s));break}case N.F32:{e.constantValueKind=2,e.constantFloatValue=Ee(s);break}case N.F64:{e.constantValueKind=2,e.constantFloatValue=Se(s);break}default:return assert(!1),e.set(16777216),t.delete(e),!1}e.set(33554432)}}else e.is(33554432)?s=this.compileInlineConstant(e,e.type,16):s=this.makeZero(o);let d=e.internalName;if(f){_&&this.error(212,Ue(8,e.decoratorNodes).range,"inline");let h=o;o.isExternalReference&&!o.is(512)&&(e.set(-2147483648),h=o.asNullable()),n.addGlobal(d,h.toRef(),!0,this.makeZero(h)),this.currentBody.push(n.global_set(d,s))}else _||n.addGlobal(d,u,!p,s);return t.delete(e),!0}compileEnum(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.pendingElements;t.add(e);let n=this.module,s=this.currentParent;this.currentParent=e;let a=null,l=!1,o=e.is(8)||e.hasDecorator(64),u=e.members;if(u)for(let p=Map_values(u),_=0,f=p.length;_<f;++_){let d=unchecked(p[_]);if(d.kind!=3)continue;let h=!1,g=d,m=g.valueNode;g.set(8388608);let T=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow);let S;if(m){if(S=this.compileExpression(m,c.i32,1),re(S)!=14){let v=n.runExpression(S,1);v?S=v:(e.is(8)&&this.error(2474,m.range),h=!0)}}else if(a==null)S=n.i32(0);else if(l&&this.error(1061,g.identifierNode.range.atEnd),o){let v=i64_add(a.constantIntegerValue,i64_new(1));assert(!i64_high(v)),S=n.i32(i64_low(v))}else{S=n.binary(0,n.global_get(a.internalName,N.I32),n.i32(1));let v=n.runExpression(S,1);v?S=v:(e.is(8)&&this.error(2474,d.declaration.range),h=!0)}this.currentFlow=T,h?(n.addGlobal(g.internalName,N.I32,!0,n.i32(0)),this.currentBody.push(this.makeGlobalAssignment(g,S,c.i32,!1)),l=!0):(o?(g.setConstantIntegerValue(i64_new(ne(S)),c.i32),g.is(1048576)&&n.addGlobal(g.internalName,N.I32,!1,S)):n.addGlobal(g.internalName,N.I32,!1,S),g.isImmutable=!0,l=!1),a=g}return this.currentParent=s,t.delete(e),!0}ensureEnumToString(e,t){if(e.toStringFunctionName)return e.toStringFunctionName;if(!this.compileEnum(e))return null;if(e.is(8))return this.errorRelated(2476,t.range,e.identifierNode.range),null;let n=e.members;if(!n)return null;let s=this.module,a=e.hasDecorator(64),l=`${e.internalName}#${P.EnumToString}`;e.toStringFunctionName=l;let o=new Array;for(let u=Map_keys(n),p=Map_values(n),_=1,f=u.length;_<=f;++_){let d=unchecked(u[f-_]),h=unchecked(p[f-_]);if(h.kind!=3)continue;let g=h,m=a?s.i32(i64_low(g.constantIntegerValue)):s.global_get(g.internalName,N.I32),T=s.if(s.binary(15,m,s.local_get(0,N.I32)),s.return(this.ensureStaticString(d)));o.push(T)}return o.push(s.unreachable()),s.addFunction(l,N.I32,N.I32,null,s.block(null,o,N.I32)),l}compileFunction(e,t=!1){if(e.is(16777216))return!1;if(e.is(8388608))return!0;if(!t){if(e.hasDecorator(512))return!0;if(e.hasDecorator(1024))return this.lazyFunctions.add(e),!0}let n=e.prototype.functionTypeNode.parameters,s=n.length;if(s>=2){let d=new Set;d.add(n[0].name.text);for(let h=1;h<s;h++){let g=n[h].name,m=g.text;d.has(m)?this.error(2300,g.range,m):d.add(m)}}e.set(8388608);let a=this.pendingElements;a.add(e);let l=this.currentType,o=this.module,u=e.signature,p=e.prototype.bodyNode,_=e.declaration;assert(_.kind==56||_.kind==59),this.checkSignatureSupported(e.signature,_.signature);let f=0;if(p){if(e.is(32768)&&this.error(1183,e.identifierNode.range),e.hasAnyDecorator(384)){let m=e.decoratorNodes,T;(T=Ue(9,m))&&this.error(212,T.range,"external"),(T=Ue(10,m))&&this.error(212,T.range,"external.js")}let d=this.currentFlow,h=e.flow;this.currentFlow=h;let g=new Array;this.compileFunctionBody(e,g)||g.push(o.unreachable()),this.currentFlow=d,f=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,Vr(e.getNonParameterLocalTypes()),o.flatten(g,e.signature.returnType.toRef()))}else if(e.is(32768)){if(Tb(e,_),this.program.markModuleImport(si,xr,e),o.addFunctionImport(e.internalName,si,xr,u.paramRefs,u.resultRefs),f=o.getFunction(e.internalName),!this.desiresExportRuntime){let d=u.thisType;if(d&&Yi(d)||$i(u.returnType))this.desiresExportRuntime=!0;else{let h=u.parameterTypes;for(let g=0,m=h.length;g<m;++g)if(Yi(h[g])){this.desiresExportRuntime=!0;break}}}}else if(e.is(128)||e.parent.kind==9)f=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,null,o.unreachable());else{if(e.isAny(6144)){let d=e.declaration.name.text,h=assert(e.parent.getMember(d));assert(h.kind==10);let g=h.instance;g&&g.isField&&(f=e.is(2048)?this.makeBuiltinFieldGetter(g):this.makeBuiltinFieldSetter(g),assert(e.is(8388608)))}f||(this.error(2391,e.identifierNode.range),e.set(16777216))}if((e.is(32768)||e.is(2))&&u.hasVectorValueOperands){let h,g=e.prototype.functionTypeNode;if(u.returnType==c.v128)h=g.returnType.range;else{let m=u.getVectorValueOperandIndices()[0];h=g.parameters[m].range}this.warning(112,h,"v128")}return e.finalize(o,f),this.currentType=l,a.delete(e),!0}compileFunctionBody(e,t){let n=this.module,s=assert(e.prototype.bodyNode),a=e.signature.returnType,l=this.currentFlow,o=e.signature.thisType?assert(l.lookupLocal(P.this_)):null,u=t.length,p=e.localsByIndex.length,_=e.nextAnonymousId;e.outerFunction&&!e.closureEnvLocal&&(e.closureEnvLocal=l.addScopedLocal("$closureEnv",this.options.usizeType));let f=e.capturedLocals;if(f&&f.size>0){let h=!1;for(let g=Map_keys(f),m=0,T=g.length;m<T;m++){let S=g[m];if(S.parent==e){let v=l.lookupLocal(S.name);v&&!v.isCaptured&&(v.isCaptured=!0,v.envSlotIndex=S.envSlotIndex,v.envOwner=S.envOwner)}S.envOwner==e&&(h=!0)}h&&!e.envLocal&&(e.envLocal=l.addScopedLocal("$env",this.options.usizeType))}if(s.kind==31)t=this.compileStatements(s.statements,t);else{assert(s.kind==39),assert(e.prototype.arrowKind),assert(!e.isAny(530432));let h=this.compileExpression(s.expression,a,1);l.canOverflow(h,a)||l.set(2),l.isNonnull(h,a)&&l.set(4),t?t.push(h):t=[h],l.is(256)||(l.canOverflow(h,a)||l.set(2),l.isNonnull(h,a)&&l.set(4),l.set(257))}if(e.needsCaptureRecompile){e.needsCaptureRecompile=!1,t.length=u;let h=e.localsByIndex;for(let m=p,T=h.length;m<T;m++)h[m].wasAccessedAsLocal=!1;h.length=p,l.localFlags.length=p,l.unset(25079);let g=l.scopedLocals;if(g){let m=e.signature,T=m.parameterTypes.length,S=m.thisType!=null,v=new Array;for(let F=Map_keys(g),k=0,R=F.length;k<R;k++){let C=F[k],D=assert(g.get(C)),U=D.index>=(S?1:0)&&D.index<T+(S?1:0),G=S&&D.index==0,O=D==e.envLocal||D==e.closureEnvLocal;!U&&!G&&!O&&v.push(C)}for(let F=0,k=v.length;F<k;F++)g.delete(v[F])}if(e.envLocal){let m=l.scopedLocals;m&&m.has("$env")&&m.delete("$env"),e.envLocal=null}if(e.closureEnvLocal){let m=l.scopedLocals;m&&m.has("$closureEnv")&&m.delete("$closureEnv"),e.closureEnvLocal=null}if(f=e.capturedLocals,f)for(let m=Map_keys(f),T=0,S=m.length;T<S;T++)m[T].wasAccessedAsLocal=!1;return e.nextAnonymousId=_,this.compileFunctionBody(e,t)}if(f=e.capturedLocals,e.envLocal&&f&&f.size>0){let h=this.compileClosureEnvironmentAllocation(e);for(let g=t.length-1;g>=u;--g)t[g+1]=t[g];t[u]=h}let d=e.closureEnvLocal;if(d){let h=this.ensureClosureEnvironmentGlobal(),g=this.options.sizeTypeRef,m=n.local_set(d.index,n.global_get(h,g),!1);for(let T=t.length-1;T>=u;--T)t[T+1]=t[T];t[u]=m}if(e.is(524288)){assert(e.is(262144)),o=assert(o);let h=assert(e.parent);assert(h.kind==7);let g=h;if(l.isAny(8256)||!l.is(256)){let m=new Array;m.push(this.makeConditionalAllocation(g,o.index)),this.makeFieldInitializationInConstructor(g,m);for(let T=t.length-1;T>=u;--T)t[T+1]=t[T];t[u]=n.flatten(m,N.None),l.is(16384)&&this.options.pedantic&&this.pedantic(905,e.identifierNode.range)}l.is(16384)&&!g.hasDecorator(32)&&this.error(231,g.identifierNode.range),l.is(256)||(t.push(n.local_get(o.index,o.type.toRef())),l.set(261)),g.base&&!g.prototype.implicitlyExtendsObject&&!l.is(128)&&this.error(2377,e.prototype.declaration.range)}else if(a!=c.void&&!l.is(256))return this.error(2355,e.prototype.functionTypeNode.returnType.range),!1;return!0}makeBuiltinFieldGetter(e){let t=assert(e.getterInstance),n=this.module,s=e.type,a=s.toRef(),l=this.options.sizeTypeRef;t.set(8388608);let o=n.load(s.byteSize,s.isSignedIntegerValue,n.local_get(0,l),a,e.memoryOffset),u=this.currentFlow;return this.currentFlow=t.flow,e.is(16384)&&s.isReference&&!s.isNullableReference&&(o=this.makeRuntimeNonNullCheck(o,s,t.identifierNode)),this.currentFlow=u,n.addFunction(t.internalName,l,a,Vr(t.getNonParameterLocalTypes()),o)}makeBuiltinFieldSetter(e){let t=assert(e.setterInstance),n=this.module,s=e.type,a=this.options.sizeTypeRef,l=s.toRef(),o=n.store(s.byteSize,n.local_get(0,a),n.local_get(1,l),l,e.memoryOffset);if(s.isManaged&&this.options.runtime!=3){let u=t.parent;if(assert(u.kind==7),u.type.isManaged){let p=this.program.linkInstance;this.compileFunction(p),o=n.block(null,[o,n.call(p.internalName,[n.local_get(0,a),n.local_get(1,l),n.i32(0)],N.None)],N.None)}}return t.set(8388608),n.addFunction(t.internalName,Ze([a,l]),N.None,null,o)}addAlignedMemorySegment(e,t=16){assert(zt(t));let n=i64_align(this.memoryOffset,t),s=new Li(e,n);return this.memorySegments.push(s),this.memoryOffset=i64_add(n,i64_new(e.length)),s}addRuntimeMemorySegment(e){let t=this.program.computeBlockStart64(this.memoryOffset),n=new Li(e,t);return this.memorySegments.push(n),this.memoryOffset=i64_add(t,i64_new(e.length)),n}ensureStaticString(e){let t=this.ensureStaticStringPtr(e);return this.currentType=this.program.stringInstance.type,this.module.usize(t)}ensureStaticStringPtr(e){let t=this.program,n=t.totalOverhead,s=assert(t.stringInstance),a,l=this.stringSegments;if(l.has(e))a=assert(l.get(e));else{let p=e.length,_=s.createBuffer(p<<1);for(let f=0;f<p;++f)rr(e.charCodeAt(f),_,n+(f<<1));a=this.addRuntimeMemorySegment(_),l.set(e,a)}let o=i64_add(a.offset,i64_new(n)),u=this.staticGcObjectOffsets;if(u.has(i64_high(o)))assert(u.get(i64_high(o))).add(i64_low(o));else{let p=new Set;p.add(i64_low(o)),u.set(i64_high(o),p)}return o}writeStaticBuffer(e,t,n,s){let a=s.length,l=n.byteSize,o=n.toRef();switch(o){case N.I32:{switch(l){case 1:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),de(ne(p),e,t),t+=1}break}case 2:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),rr(ne(p),e,t),t+=2}break}case 4:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),ge(ne(p),e,t),t+=4}break}default:assert(!1)}break}case N.I64:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),xi(i64_new(Ie(p),Le(p)),e,t),t+=8}break}case N.F32:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),Sr(Ee(p),e,t),t+=4}break}case N.F64:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),Ir(Se(p),e,t),t+=8}break}case N.V128:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),Pc(ap(p),e,t),t+=16}break}case N.None:break;default:assert(!1)}return t}addStaticBuffer(e,t,n=this.program.arrayBufferInstance.id){let s=this.program,l=s.arrayBufferInstance.createBuffer(t.length*e.byteSize);return this.program.OBJECTInstance.writeField("rtId",n,l,0),this.writeStaticBuffer(l,s.totalOverhead,e,t),this.addRuntimeMemorySegment(l)}addStaticArrayHeader(e,t,n=null){let s=this.program;n||(n=assert(this.resolver.resolveClass(this.program.arrayPrototype,[e])));let a=bi(t.buffer,s.OBJECTInstance.offsetof("rtSize")),l=i32(a/e.byteSize),o=i64_add(t.offset,i64_new(s.totalOverhead)),u=n.createBuffer();return assert(n.writeField("buffer",o,u)),assert(n.writeField("dataStart",o,u)),assert(n.writeField("byteLength",a,u)),assert(n.writeField("length_",l,u)),this.addRuntimeMemorySegment(u)}ensureRuntimeFunction(e){assert(e.is(8388608)&&!e.is(134217728));let t=this.program,n=e.memorySegment;if(!n){this.options.importTable||this.module.ensureFunctionTable(P.DefaultTable);let s=this.functionTable,a=this.options.tableBase;a||(a=1);let l=a+s.length;s.push(e);let o=assert(this.resolver.resolveClass(t.functionPrototype,[e.type])),u=o.createBuffer();assert(o.writeField("_index",l,u)),assert(o.writeField("_env",0,u)),e.memorySegment=n=this.addRuntimeMemorySegment(u)}return i64_add(n.offset,i64_new(t.totalOverhead))}compileTopLevelStatement(e,t){switch(e.kind){case 52:{let n=e.members;for(let s=0,a=n.length;s<a;++s)this.compileTopLevelStatement(n[s],t);break}case 53:{let n=this.program.getElementByDeclaration(e);n&&(assert(n.kind==2),n.hasDecorator(1024)||this.compileEnum(n));break}case 60:{let n=e,s=this.program.getElementByDeclaration(n);if(s){let a=this.currentParent;this.currentParent=s;let l=n.members;for(let o=0,u=l.length;o<u;++o)this.compileTopLevelStatement(l[o],t);this.currentParent=a}break}case 48:{let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=this.program.getElementByDeclaration(n[s]);l&&(assert(l.kind==0),!l.is(32768)&&!l.hasDecorator(1024)&&this.compileGlobal(l))}break}case 55:{let n=this.program.getElementByDeclaration(e);n&&n.kind==0&&(n.hasDecorator(1024)||this.compileGlobal(n));break}case 36:{let n=e,s=n.internalPath;s!=null&&this.compileFileByPath(s,assert(n.path));break}case 37:{this.compileTopLevelStatement(e.declaration,t);break}case 43:{let n=e;this.compileFileByPath(n.internalPath,n.path);break}case 56:case 59:case 58:case 66:case 61:break;default:{let n=this.compileStatement(e);re(n)!=22&&t.push(n);break}}}compileStatement(e){let t=this.module,n;switch(e.kind){case 31:{n=this.compileBlockStatement(e);break}case 32:{n=this.compileBreakStatement(e);break}case 33:{n=this.compileContinueStatement(e);break}case 34:{n=this.compileDoStatement(e);break}case 35:{n=this.compileEmptyStatement(e);break}case 39:{n=this.compileExpressionStatement(e);break}case 40:{n=this.compileForStatement(e);break}case 41:{n=this.compileForOfStatement(e);break}case 42:{n=this.compileIfStatement(e);break}case 44:{n=this.compileReturnStatement(e);break}case 45:{n=this.compileSwitchStatement(e);break}case 46:{n=this.compileThrowStatement(e);break}case 47:{n=this.compileTryStatement(e);break}case 48:{n=this.compileVariableStatement(e),n||(n=t.nop());break}case 49:{n=this.compileVoidStatement(e);break}case 50:{n=this.compileWhileStatement(e);break}case 61:{n=this.compileTypeDeclaration(e);break}case 51:{n=t.nop();break}default:assert(!1),n=t.unreachable()}return this.options.sourceMap&&this.addDebugLocation(n,e.range),n}compileStatements(e,t=null){let n=e.length;t||(t=new Array(n),t.length=0);let s=this.currentFlow;for(let a=0;a<n;++a){let l=this.compileStatement(e[a]);switch(re(l)){case 1:if(!$n(l)){for(let o=0,u=es(l);o<u;++o)t.push(ts(l,o));break}default:t.push(l);case 22:}if(s.isAny(272))break}return t}compileBlockStatement(e){let t=e.statements,n=this.currentFlow,s=n.fork();this.currentFlow=s;let a=this.compileStatements(t);return n.inherit(s),this.currentFlow=n,this.module.flatten(a)}compileTypeDeclaration(e){let t=this.currentFlow,n=e.name.text,s=t.lookupScopedTypeAlias(n);if(s)return this.errorRelated(2300,e.range,s.declaration.range,n),this.module.unreachable();let a=new nt(n,t.sourceFunction,e,0);return t.addScopedTypeAlias(n,a),this.module.nop()}compileBreakStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Break label"),t.unreachable();let s=this.currentFlow,a=s.breakLabel;return a==null?(this.error(1105,e.range),t.unreachable()):(s.set(16),t.br(a))}compileContinueStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Continue label"),t.unreachable();let s=this.currentFlow,a=s.continueLabel;return a==null?(this.error(1104,e.range),t.unreachable()):(s.set(288),t.br(a))}compileDoStatement(e){return this.doCompileDoStatement(e)}doCompileDoStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork(!0),l=a.pushControlFlowLabel(),o=`do-break|${l}`;a.breakLabel=o;let u=`do-continue|${l}`;a.continueLabel=u;let p=`do-loop|${l}`;this.currentFlow=a;let _=new Array,f=e.body;f.kind==31?this.compileStatements(f.statements,_):_.push(this.compileStatement(f)),a.popControlFlowLabel(l);let d=a.isAny(4128),h=a.isAny(2064),g=!a.isAny(272);if(!g&&!d)_.push(t.unreachable()),n.inherit(a),h||n.set(256);else{let T=this.compileExpression(e.condition,c.bool),S=this.makeIsTrueish(T,this.currentType,e.condition),v=this.evaluateCondition(S);if(v!=2&&(d||g)&&n.resetIfNeedsRecompile(a.forkThen(T),s))return this.currentFlow=n,this.doCompileDoStatement(e);d&&(_[0]=t.block(u,_),_.length=1,a.unset(256)),_.push(t.br(p,S)),n.inherit(a),v==1&&!h&&n.set(256)}this.currentFlow=n;let m=t.loop(p,t.flatten(_));return h&&(m=t.block(o,[m])),n.is(256)&&(m=t.block(null,[m,t.unreachable()])),m}compileEmptyStatement(e){return this.module.nop()}compileExpressionStatement(e){return this.compileExpression(e.expression,c.void,1)}compileForStatement(e){return this.doCompileForStatement(e)}doCompileForStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork();this.currentFlow=a;let l=new Array,o=e.initializer;o&&(assert(o.kind==39||o.kind==48),l.push(this.compileStatement(o)));let u,p,_,f=e.condition;if(f){if(u=this.compileExpression(f,c.bool),p=this.makeIsTrueish(u,this.currentType,f),_=this.evaluateCondition(p),_==2)return l.push(t.drop(p)),n.inherit(a),this.currentFlow=n,t.flatten(l)}else u=t.i32(1),p=u,_=1;let d=a.forkThen(u,!0),h=d.pushControlFlowLabel(),g=`for-break${h}`;d.breakLabel=g;let m=`for-continue|${h}`;d.continueLabel=m;let T=`for-loop|${h}`;this.currentFlow=d;let S=new Array,v=e.body;v.kind==31?this.compileStatements(v.statements,S):S.push(this.compileStatement(v)),d.popControlFlowLabel(h),d.breakLabel=null,d.continueLabel=null;let F=!d.isAny(272),k=d.isAny(4128),R=d.isAny(2064);k&&(S[0]=t.block(m,S),S.length=1),_==1?a.inherit(d):a.mergeBranch(d);let C=k||F;if(C){let U=e.incrementor;if(U&&(this.currentFlow=a,S.push(this.compileExpression(U,c.void,9))),S.push(t.br(T)),n.resetIfNeedsRecompile(d.forkThen(u),s))return this.currentFlow=n,this.doCompileForStatement(e)}n.inherit(a),this.currentFlow=n;let D=t.if(p,t.flatten(S));return C&&(D=t.loop(T,D)),R&&(D=t.block(g,[D])),l.push(D),n.is(256)&&l.push(t.unreachable()),t.flatten(l)}compileForOfStatement(e){return this.error(100,e.range,"Iterators"),this.module.unreachable()}compileIfStatement(e){let t=this.module,n=e.ifTrue,s=e.ifFalse,a=this.compileExpression(e.condition,c.bool),l=this.makeIsTrueish(a,this.currentType,e.condition);switch(this.evaluateCondition(l)){case 1:return t.block(null,[t.drop(l),this.compileStatement(n)]);case 2:return s?t.block(null,[t.drop(l),this.compileStatement(s)]):t.drop(l)}let u=this.currentFlow,p=new Array,_=u.forkThen(a);this.currentFlow=_,n.kind==31?this.compileStatements(n.statements,p):p.push(this.compileStatement(n)),this.currentFlow=u;let f=u.forkElse(a);if(s){this.currentFlow=f;let d=new Array;return s.kind==31?this.compileStatements(s.statements,d):d.push(this.compileStatement(s)),u.inheritAlternatives(_,f),this.currentFlow=u,t.if(l,t.flatten(p),t.flatten(d))}else return _.isAny(272)?(u.inherit(f),u.mergeSideEffects(_)):u.inheritAlternatives(_,f),this.currentFlow=u,t.if(l,t.flatten(p))}compileReturnStatement(e){let t=this.module,n=0,s=this.currentFlow,a=s.returnType,l=e.value;if(l){let u=1;s.sourceFunction.is(1048576)&&(u|=4),n=this.compileExpression(l,a,u),s.canOverflow(n,a)||s.set(2),s.isNonnull(n,a)&&s.set(4),s.sourceFunction.is(524288)&&l.kind!=25&&s.set(16384)}else if(a!=c.void)return this.error(2322,e.range,"void",a.toString()),this.currentType=a,t.unreachable();s.set(257);let o=s.getTryFinallyContext();if(o){let u=o.tryFinallyPendingActionLocal,p=o.tryFinallyPendingValueLocal,_=assert(o.tryFinallyDispatchLabel),f=new Array;return n&&a!=c.void&&f.push(t.local_set(p,n,a.isManaged)),f.push(t.local_set(u,t.i32(1),!1)),f.push(t.br(_)),t.flatten(f)}if(s.isInline){let u=assert(s.inlineReturnLabel);return n?this.currentType==c.void?t.block(null,[n,t.br(u)]):t.br(u,0,n):t.br(u)}return n?this.currentType==c.void?t.block(null,[n,t.return()]):t.return(n):t.return()}compileSwitchStatement(e){let t=this.module,n=e.cases,s=n.length,a=this.compileExpression(e.condition,c.auto),l=this.currentType;if(!s)return t.drop(a);let o=this.currentFlow,p=o.getTempLocal(l).index,_=new Array(1+s);_[0]=t.local_set(p,a,l.isManaged);let f=1,d=-1,h=o.pushControlFlowLabel();for(let S=0;S<s;++S){let v=n[S];if(v.isDefault){d=S;continue}let F=e.condition,k=t.local_get(p,l.toRef()),R=l,C=v.label,D=this.compileExpression(assert(v.label),l,1),U=this.currentType,G=this.compileCommutativeCompareBinaryExpressionFromParts(76,F,k,R,C,D,U,l,e);_[f++]=t.br(`case${S}|${h}`,G)}_[f]=t.br(d>=0?`case${d}|${h}`:`break|${h}`);let g=t.block(`case0|${h}`,_,N.None),m=null,T=null;for(let S=0;S<s;++S){let F=n[S].statements,k=F.length,R=o.fork(!0,!1);m&&R.mergeBranch(m),this.currentFlow=R;let C=`break|${h}`;R.breakLabel=C;let D=S==s-1,U=D?C:`case${S+1}|${h}`,G=new Array(1+k);G[0]=g;let O=1,Y=!0;for(let ee=0;ee<k;++ee){let K=this.compileStatement(F[ee]);if(re(K)!=22&&(G[O++]=K),R.isAny(272)){Y=!1;break}}G.length=O,m=Y?R:null;let Z=R.isAny(2064);R.unset(2064),Z||D&&Y?T?T.inheritAlternatives(T,R):T=R:Y||o.mergeSideEffects(R),this.currentFlow=o,g=t.block(U,G,N.None)}return o.popControlFlowLabel(h),d>=0?T?o.inherit(T):o.set(256):T&&o.mergeBranch(T),this.currentFlow=o,g}compileThrowStatement(e){let t=this.module;if(this.currentFlow.set(264),this.options.hasFeature(64)){let o=this.compileExpression(e.value,c.auto),u=this.currentType,p=this.program.errorInstance,_=u.getClass();if(!_||!_.isAssignableTo(p))return this.error(250,e.value.range,u.toString()),t.unreachable();let f=this.ensureExceptionTag();return t.throw(f,[o])}let s=new Array,a=e.value,l=null;if(a.kind==18){let o=a.args;o.length&&(l=o[0])}return s.push(this.makeAbort(l,e)),t.flatten(s)}compileTryStatement(e){let t=this.module,n=this.currentFlow;if(!this.options.hasFeature(64))return this.error(103,e.range,"exception-handling"),t.unreachable();let s=this.ensureExceptionTag(),a=n.pushControlFlowLabel(),l=`try|${a}`,o=n.fork();this.currentFlow=o;let u=new Array;this.compileStatements(e.bodyStatements,u);let p=t.flatten(u),_=o.isAny(256),f=[],d=[],h=null,g=!1,m=e.catchStatements,T=e.catchVariable;if(m){h=n.fork(),this.currentFlow=h;let v=new Array,F=t.pop(this.options.sizeTypeRef);if(T){let k=T.text,R=this.program.lookup(P.Error),C;if(R&&R.kind==6){let U=this.resolver.resolveClass(R,null);C=U?U.type:this.options.usizeType}else C=this.options.usizeType;let D=h.addScopedLocal(k,C);v.push(bn(t.ref,D.index,F)),h.setLocalFlag(D.index,8)}else v.push(t.drop(F));this.compileStatements(m,v),f.push(s),d.push(t.flatten(v)),g=h.isAny(256)}let S=e.finallyStatements;if(S){let v=n.returnType,F=n.targetFunction,k=F.addLocal(c.i32),R=v!=c.void?F.addLocal(v):null,C=R?R.index:-1,D=`finally_dispatch|${a}`,U=`try_finally|${a}`;n.popControlFlowLabel(a);let G=n.pushControlFlowLabel();l=`try|${G}`,o=n.fork(),o.tryFinallyPendingActionLocal=k.index,o.tryFinallyPendingValueLocal=C,o.tryFinallyDispatchLabel=D,o.tryFinallyReturnType=v,this.currentFlow=o;let O=new Array;if(this.compileStatements(e.bodyStatements,O),p=t.flatten(O),_=o.isAny(256),f=[],d=[],h=null,g=!1,m){h=n.fork(),h.tryFinallyPendingActionLocal=k.index,h.tryFinallyPendingValueLocal=C,h.tryFinallyDispatchLabel=D,h.tryFinallyReturnType=v,this.currentFlow=h;let at=new Array,Xs=t.pop(this.options.sizeTypeRef);if(T){let Q=T.text,an=this.program.lookup(P.Error),ln;if(an&&an.kind==6){let Zs=this.resolver.resolveClass(an,null);ln=Zs?Zs.type:this.options.usizeType}else ln=this.options.usizeType;let Js=h.addScopedLocal(Q,ln);at.push(bn(t.ref,Js.index,Xs)),h.setLocalFlag(Js.index,8)}else at.push(t.drop(Xs));this.compileStatements(m,at),f.push(s),d.push(t.flatten(at)),g=h.isAny(256)}this.currentFlow=n;let Y;d.length>0?Y=t.try(l,p,f,d,null):Y=p;let Z=n.fork();this.currentFlow=Z;let ee=new Array;this.compileStatements(S,ee);let K=t.flatten(ee),te=t.block(null,[K,t.rethrow(U)]),H=t.try(U,Y,[],[te],null),oe=n.fork();this.currentFlow=oe;let se=new Array;this.compileStatements(S,se);let Re=t.flatten(se),Pt=oe.isAny(256),nn=oe.isAny(1);this.currentFlow=n,n.popControlFlowLabel(G);let Oe=new Array;Oe.push(Re),Pt||(v!=c.void&&R?Oe.push(t.if(t.binary(15,t.local_get(k.index,N.I32),t.i32(1)),t.return(t.local_get(R.index,v.toRef())))):Oe.push(t.if(t.binary(15,t.local_get(k.index,N.I32),t.i32(1)),t.return())));let sn=t.block(D,[H]);!Pt&&(h?_&&g:_)&&Oe.push(t.unreachable());let Lt=new Array(1+Oe.length);Lt[0]=sn;for(let at=0;at<Oe.length;at++)Lt[1+at]=Oe[at];let Io=t.block(null,Lt);return Pt?(n.set(256),nn&&n.set(1)):h?_&&g?n.set(256):n.inheritAlternatives(o,h):n.mergeSideEffects(o),Io}return n.popControlFlowLabel(a),this.currentFlow=n,h&&(_&&g?n.set(256):m?n.inheritAlternatives(o,h):n.inherit(o)),d.length==0?p:t.try(l,p,f,d,null)}compileVariableStatement(e){let t=this.module,n=e.declarations,s=n.length,a=this.currentFlow,l=new Array,o=this.resolver;for(let u=0;u<s;++u){let p=n[u],_=p.name.text,f=null,d=0,h=null;p.is(16384)&&this.warning(239,p.name.range);let g=p.type,m=p.initializer;if(g){if(f=o.resolveType(g,a,a.sourceFunction,_e(a.contextualTypeArguments)),!f)continue;if(this.program.checkTypeSupported(f,g),m){let v=this.pendingElements,F=a.addScopedDummyLocal(_,f,e);v.add(F),d=this.compileExpression(m,f,1),h=this.currentType,v.delete(F),a.freeScopedDummyLocal(_)}}else if(m){let v=this.pendingElements,F=a.addScopedDummyLocal(_,c.auto,e);if(v.add(F),d=this.compileExpression(m,c.auto),h=this.currentType,v.delete(F),a.freeScopedDummyLocal(_),this.currentType==c.void){this.error(2322,p.range,this.currentType.toString(),"<auto>");continue}f=h}else{this.error(1110,p.name.range.atEnd);continue}let T=p.is(8),S=!1;if(T)if(d){let v=t.runExpression(d,1);if(v){d=v;let F=null;switch(le(d)){case N.I32:{F=new Qe(_,-1,f,a.targetFunction),F.setConstantIntegerValue(i64_new(ne(d),0),f);break}case N.I64:{F=new Qe(_,-1,f,a.targetFunction),F.setConstantIntegerValue(i64_new(Ie(d),Le(d)),f);break}case N.F32:{F=new Qe(_,-1,f,a.targetFunction),F.setConstantFloatValue(Ee(d),f);break}case N.F64:{F=new Qe(_,-1,f,a.targetFunction),F.setConstantFloatValue(Se(d),f);break}}if(F){let k=a.scopedLocals;if(!k)a.scopedLocals=k=new Map;else if(k.has(_)){let R=assert(k.get(_));return this.errorRelated(2300,p.name.range,R.declaration.name.range,_),this.module.unreachable()}k.set(_,F),S=!0}}}else this.error(1155,p.range);if(!S){let v;if(p.isAny(24)||a.isInline){let R=a.getScopedLocal(_);R?(R.declaration.range.source.isNative?this.error(2300,p.name.range,_):this.errorRelated(2300,p.name.range,R.declaration.name.range,_),v=R):v=a.addScopedLocal(_,f),T&&a.setLocalFlag(v.index,1)}else{let R=a.lookupLocal(_);if(R){this.errorRelated(2300,p.name.range,R.declaration.name.range,_);continue}v=a.targetFunction.addLocal(f,_,p),a.unsetLocalFlag(v.index,-1),T&&a.setLocalFlag(v.index,1)}let F=a.sourceFunction,k=F.capturedLocals;if(k)for(let R=Map_keys(k),C=0,D=R.length;C<D;++C){let U=R[C];if(U.name==_&&U.parent==F){v.isCaptured=!0,v.envSlotIndex=U.envSlotIndex,v.envOwner=U.envOwner;let G=k.get(U);k.delete(U),k.set(v,G);break}}d?l.push(this.makeLocalAssignment(v,d,h||f,!1)):v.type.isShortIntegerValue&&a.setLocalFlag(v.index,2)}}return this.currentType=c.void,l.length==0?0:t.flatten(l)}compileVoidStatement(e){return this.compileExpression(e.expression,c.void,10)}compileWhileStatement(e){return this.doCompileWhileStatement(e)}doCompileWhileStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=this.compileExpression(e.condition,c.bool),l=this.makeIsTrueish(a,this.currentType,e.condition),o=this.evaluateCondition(l);if(o==2)return t.drop(l);let u=n.forkThen(a,!0),p=u.pushControlFlowLabel(),_=`while-break|${p}`;u.breakLabel=_;let f=`while-continue|${p}`;u.continueLabel=f,this.currentFlow=u;let d=new Array,h=e.body;h.kind==31?this.compileStatements(h.statements,d):d.push(this.compileStatement(h)),d.push(t.br(f)),u.popControlFlowLabel(p);let g=u.isAny(4128),m=u.isAny(2064),T=!u.isAny(272);if((g||T)&&n.resetIfNeedsRecompile(u,s))return this.currentFlow=n,this.doCompileWhileStatement(e);let v=!1;if(o==1)n.inherit(u),m||(v=!0,n.set(256));else{let k=n.forkElse(a);!T&&!m?(n.inherit(k),n.mergeSideEffects(u)):n.inheritAlternatives(u,k)}this.currentFlow=n;let F=[t.loop(f,t.if(l,t.flatten(d)))];return v&&F.push(t.unreachable()),t.block(_,F)}compileInlineConstant(e,t,n){assert(e.is(37748736));let s=e.type;switch(this.currentType=s,s.kind){case 0:return this.module.i32(e.constantValueKind==1?i64_ne(e.constantIntegerValue,i64_zero):0);case 1:case 2:{let a=s.computeSmallIntegerShift(c.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)<<a>>a:0)}case 6:case 7:{let a=e.type.computeSmallIntegerMask(c.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)&a:0)}case 3:case 8:return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 5:case 10:if(!e.program.options.isWasm64)return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 4:case 9:return e.constantValueKind==1?this.module.i64(i64_low(e.constantIntegerValue),i64_high(e.constantIntegerValue)):this.module.i64(0);case 12:{if(!(e.hasDecorator(512)&&t==c.f32))return this.module.f64(e.constantFloatValue);this.currentType=c.f32}case 11:return this.module.f32(e.constantFloatValue);default:return assert(!1),this.module.unreachable()}}compileExpression(e,t,n=0){for(;e.kind==21;)e=e.expression;this.currentType=t,t==c.void&&(n|=8);let s;switch(e.kind){case 8:{s=this.compileAssertionExpression(e,t,n);break}case 9:{s=this.compileBinaryExpression(e,t,n);break}case 10:{s=this.compileCallExpression(e,t,n);break}case 12:{s=this.compileCommaExpression(e,t,n);break}case 13:{s=this.compileElementAccessExpression(e,t,n);break}case 15:{s=this.compileFunctionExpression(e,t,n);break}case 7:case 14:case 19:case 25:case 24:case 26:{s=this.compileIdentifierExpression(e,t,n);break}case 16:{s=this.compileInstanceOfExpression(e,t,n);break}case 17:{s=this.compileLiteralExpression(e,t,n);break}case 18:{s=this.compileNewExpression(e,t,n);break}case 22:{s=this.compilePropertyAccessExpression(e,t,n);break}case 23:{s=this.compileTernaryExpression(e,t,n);break}case 28:{s=this.compileUnaryPostfixExpression(e,t,n);break}case 29:{s=this.compileUnaryPrefixExpression(e,t,n);break}case 30:{let o=e;s=o.expr,this.currentType=o.type;break}case 11:{this.error(100,e.range,"Block-scoped class declarations or expressions"),s=this.module.unreachable();break}default:assert(!1),s=this.module.unreachable()}let a=this.currentType,l=(n&4)!=0;return a!=t.nonNullableType&&(n&2?(s=this.convertExpression(s,a,t,!0,e),this.currentType=a=t):n&1&&(s=this.convertExpression(s,a,t,!1,e),this.currentType=a=t)),l&&(s=this.ensureSmallIntegerWrap(s,a)),this.options.sourceMap&&this.addDebugLocation(s,e.range),s}convertExpression(e,t,n,s,a){let l=this.module;if(t.kind==25)return n.kind==25?e:(this.error(2322,a.range,t.toString(),n.toString()),l.unreachable());if(n.kind==25)return l.drop(e);if(t.isReference||n.isReference)return this.currentFlow.isNonnull(e,t)?t=t.nonNullableType:s&&t.isNullableReference&&!n.isNullableReference&&(this.options.noAssert||(e=this.makeRuntimeNonNullCheck(e,t,a)),t=t.nonNullableType),t.isAssignableTo(n)?(assert(n.isExternalReference||t.kind==n.kind),this.currentType=n,e):s&&n.nonNullableType.isAssignableTo(t)?n.isExternalReference?(this.error(100,a.range,"ref.cast"),this.currentType=n,l.unreachable()):(assert(t.kind==n.kind),this.options.noAssert||(e=this.makeRuntimeDowncastCheck(e,t,n,a)),this.currentType=n,e):(this.error(2322,a.range,t.toString(),n.toString()),this.currentType=n,l.unreachable());if(assert(!t.isReference&&!n.isReference),n.kind==t.kind)return this.currentType=n,e;if(!n.isBooleanValue&&(n.isVectorValue||t.isVectorValue))return this.error(2322,a.range,t.toString(),n.toString()),l.unreachable();if(t.isAssignableTo(n)||s||this.error(200,a.range,t.toString(),n.toString()),t.isFloatValue)if(n.isFloatValue)t.kind==11?n.kind==12&&(e=l.unary(43,e)):n.kind==11&&(e=l.unary(44,e));else if(n.isIntegerValue)if(t.kind==11)if(n.isBooleanValue)e=this.makeIsTrueish(e,c.f32,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?56:26,e):e=l.unary(o?52:25,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?57:28,e):e=l.unary(o?53:27,e)}else if(n.isBooleanValue)e=this.makeIsTrueish(e,c.f64,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?58:30,e):e=l.unary(o?54:29,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?59:32,e):e=l.unary(o?55:31,e)}else assert(n.flags==0,"void type expected"),e=l.drop(e);else if(t.isIntegerValue&&n.isFloatValue){e=this.ensureSmallIntegerWrap(e,t);let o;n.kind==11?t.isLongIntegerValue?t.isSignedIntegerValue?o=39:o=41:t.isSignedIntegerValue?o=35:o=37:t.isLongIntegerValue?t.isSignedIntegerValue?o=40:o=42:t.isSignedIntegerValue?o=36:o=38,e=l.unary(o,e)}else t==c.v128&&n.isBooleanValue?e=this.makeIsTrueish(e,c.v128,a):t.isLongIntegerValue?n.isBooleanValue?e=l.binary(41,e,l.i64(0)):n.isLongIntegerValue||(e=l.unary(24,e)):n.isLongIntegerValue?e=l.unary(t.isSignedIntegerValue?22:23,this.ensureSmallIntegerWrap(e,t)):t.isShortIntegerValue?t.size<n.size&&(e=this.ensureSmallIntegerWrap(e,t)):!s&&!this.options.isWasm64&&t.isVaryingIntegerValue&&!n.isVaryingIntegerValue&&this.warning(201,a.range,t.toString(),n.toString());return this.currentType=n,e}compileAssertionExpression(e,t,n){let s=n&-4;switch(e.assertionKind){case 0:case 1:{let a=this.currentFlow,l=this.resolver.resolveType(assert(e.toType),a,a.sourceFunction,_e(a.contextualTypeArguments));return l?this.compileExpression(e.expression,l,s|2):this.module.unreachable()}case 2:{assert(!e.toType);let a=this.compileExpression(e.expression,t.exceptVoid,s),l=this.currentType;return this.currentFlow.isNonnull(a,l)?this.info(210,e.expression.range):this.options.noAssert||(a=this.makeRuntimeNonNullCheck(a,l,e)),this.currentType=l.nonNullableType,a}case 3:return this.error(100,e.range,"Const assertion"),this.module.unreachable();default:assert(!1)}return this.module.unreachable()}compileCommutativeCompareBinaryExpression(e,t){let n=e.left,s=this.compileExpression(n,t),a=this.currentType,l=e.right,o=this.compileExpression(l,a),u=this.currentType;return this.compileCommutativeCompareBinaryExpressionFromParts(e.operator,n,s,a,l,o,u,t,e)}compileCommutativeCompareBinaryExpressionFromParts(e,t,n,s,a,l,o,u,p){let _=this.module,f=Fe(e),d=we.fromBinaryToken(e),h=s.lookupOverload(d,this.program),g=o.lookupOverload(d,this.program);if(h&&g&&h!=g)return this.error(240,p.range,f,h.internalName,g.internalName),this.currentType=u,_.unreachable();if(h)return this.compileCommutativeBinaryOverload(h,t,n,s,a,l,o,p);if(g)return this.compileCommutativeBinaryOverload(g,a,l,o,t,n,s,p);let T=c.commonType(s,o,u,!1);if(!T)return this.error(2365,p.range,f,s.toString(),o.toString()),this.currentType=u,_.unreachable();switch(T.isFloatValue&&((Hl(_,l)||Hl(_,n))&&this.warning(907,p.range),(Kl(l)||Kl(n))&&this.warning(908,p.range)),n=this.convertExpression(n,s,T,!1,t),s=T,l=this.convertExpression(l,o,T,!1,a),o=T,this.currentType=c.bool,e){case 78:case 76:return this.makeEq(n,l,T,p);case 79:case 77:return this.makeNe(n,l,T,p);default:return assert(!1),_.unreachable()}}compileNonCommutativeCompareBinaryExpression(e,t){let n=this.module,s=e.left,a=e.right,l,o,u,p,_,f=e.operator,d=Fe(f);l=this.compileExpression(s,t),o=this.currentType;let h=we.fromBinaryToken(f),g=o.lookupOverload(h,this.program);if(g)return this.compileBinaryOverload(g,s,l,o,a,e);if(u=this.compileExpression(a,o),p=this.currentType,_=c.commonType(o,p,t,!0),!_||!_.isNumericValue)return this.error(2365,e.range,d,o.toString(),p.toString()),this.currentType=t,n.unreachable();switch(l=this.convertExpression(l,o,_,!1,s),o=_,u=this.convertExpression(u,p,_,!1,a),p=_,this.currentType=c.bool,f){case 72:return this.makeLt(l,u,_);case 73:return this.makeGt(l,u,_);case 74:return this.makeLe(l,u,_);case 75:return this.makeGe(l,u,_);default:return assert(!1),n.unreachable()}}compileBinaryExpression(e,t,n){let s=this.module,a=e.left,l=e.right,o,u,p,_,f,d,h=!1;switch(e.operator){case 72:case 73:case 74:case 75:return this.compileNonCommutativeCompareBinaryExpression(e,t);case 78:case 76:case 79:case 77:return this.compileCommutativeCompareBinaryExpression(e,t);case 101:return this.compileAssignment(a,l,t);case 102:h=!0;case 81:{o=this.compileExpression(a,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(5);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"+",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"+",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeAdd(o,p,f);break}case 103:h=!0;case 82:{o=this.compileExpression(a,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(6);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"-",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"-",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeSub(o,p,f);break}case 104:h=!0;case 84:{o=this.compileExpression(a,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(7);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"*",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"*",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeMul(o,p,f);break}case 105:h=!0;case 83:{o=this.compileExpression(a,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(10);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"**",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"**",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makePow(o,p,f,e);break}case 106:h=!0;case 85:{o=this.compileExpression(a,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(8);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"/",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"/",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeDiv(o,p,f);break}case 107:h=!0;case 86:{o=this.compileExpression(a,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(9);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"%",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"%",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeRem(o,p,f,e);break}case 108:h=!0;case 89:{o=this.compileExpression(a,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(14);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,"<<",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=this.currentType,d=this.makeShl(o,p,_);break}case 109:h=!0;case 90:{o=this.compileExpression(a,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(15);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>",u.toString()),this.module.unreachable();p=this.compileExpression(l,u,1),_=this.currentType,d=this.makeShr(o,p,_);break}case 110:h=!0;case 91:{o=this.compileExpression(a,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(16);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>>",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=this.currentType,d=this.makeShru(o,p,_);break}case 111:h=!0;case 92:{o=this.compileExpression(a,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(11);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isIntegerValue)return this.error(2469,e.range,"&",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isIntegerValue)return this.error(2365,e.range,"&",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeAnd(o,p,f);break}case 112:h=!0;case 93:{o=this.compileExpression(a,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(12);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isIntegerValue)return this.error(2469,e.range,"|",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isIntegerValue)return this.error(2365,e.range,"|",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeOr(o,p,f);break}case 113:h=!0;case 94:{o=this.compileExpression(a,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let F=v.lookupOverload(13);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isIntegerValue)return this.error(2469,e.range,"^",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isIntegerValue)return this.error(2365,e.range,"^",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeXor(o,p,f);break}case 97:{let v=this.currentFlow,F=n&4;o=this.compileExpression(a,t.exceptVoid,F),u=this.currentType;let k=v.forkThen(o);if(this.currentFlow=k,t==c.bool||t==c.void){o=this.makeIsTrueish(o,u,a);let R=this.evaluateCondition(o);R==2?d=o:(p=this.compileExpression(l,u,F),_=this.currentType,p=this.makeIsTrueish(p,_,l),R==1?(d=p,v.inherit(k)):(d=s.if(o,p,s.i32(0)),v.mergeBranch(k),v.noteThen(d,k))),this.currentFlow=v,this.currentType=c.bool}else{if(p=this.compileExpression(l,u,F),_=this.currentType,f=c.commonType(u,_,t),!f)return this.error(2365,e.range,"&&",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f;let R=s.runExpression(o,1);R&&(o=R),p=this.convertExpression(p,_,f,!1,l),_=f;let C=this.makeIsTrueish(o,this.currentType,a),D=this.evaluateCondition(C);if(D!=0)d=D==1?p:o;else if(d=s.tryCopyTrivialExpression(o))d=s.if(C,p,d);else{let U=v.getTempLocal(u);v.canOverflow(o,u)||v.setLocalFlag(U.index,2),v.isNonnull(o,u)&&v.setLocalFlag(U.index,4),d=s.if(this.makeIsTrueish(s.local_tee(U.index,o,u.isManaged),u,a),p,s.local_get(U.index,u.toRef()))}v.mergeBranch(k),v.noteThen(d,k),this.currentFlow=v,this.currentType=f}break}case 98:{let v=this.currentFlow,F=n&4;o=this.compileExpression(a,t.exceptVoid,F),u=this.currentType;let k=v.forkElse(o);if(this.currentFlow=k,t==c.bool||t==c.void){o=this.makeIsTrueish(o,u,a);let R=this.evaluateCondition(o);R==1?d=o:(p=this.compileExpression(l,u,F),_=this.currentType,p=this.makeIsTrueish(p,_,l),R==2?(d=p,v.inherit(k)):(d=s.if(o,s.i32(1),p),v.mergeBranch(k),v.noteElse(d,k))),this.currentFlow=v,this.currentType=c.bool}else{if(p=this.compileExpression(l,u,F),_=this.currentType,f=c.commonType(u,_,t),!f)return this.error(2365,e.range,"||",u.toString(),_.toString()),this.currentType=t,s.unreachable();let R=u.is(512)&&_.is(512);o=this.convertExpression(o,u,f,!1,a),u=f;let C=s.runExpression(o,1);C&&(o=C),p=this.convertExpression(p,_,f,!1,l),_=f;let D=this.makeIsTrueish(o,this.currentType,a),U=this.evaluateCondition(D);if(U!=0)d=U==1?o:p;else if(d=s.tryCopyTrivialExpression(o))d=s.if(D,d,p);else{let O=v.getTempLocal(u).index;v.canOverflow(o,u)||v.setLocalFlag(O,2),v.isNonnull(o,u)&&v.setLocalFlag(O,4),d=s.if(this.makeIsTrueish(s.local_tee(O,o,u.isManaged),u,a),s.local_get(O,u.toRef()),p)}v.mergeBranch(k),v.noteElse(d,k),this.currentFlow=v,this.currentType=R?f:f.nonNullableType}break}case 29:return this.error(100,e.range,"'in' operator"),this.currentType=c.bool,s.unreachable();default:{assert(!1),d=this.module.unreachable();break}}if(!h)return d;let m=this.resolver,T=m.lookupExpression(a,this.currentFlow);if(!T)return s.unreachable();let S=m.getTypeOfElement(T);return S||(S=c.void),this.currentType.isStrictlyAssignableTo(S)?this.makeAssignment(T,d,this.currentType,l,m.currentThisExpression,m.currentElementExpression,t!=c.void):(this.error(2322,e.range,this.currentType.toString(),S.toString()),s.unreachable())}makeLt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(17,e,t);case 4:return s.binary(42,e,t);case 5:return s.binary(234,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(18,e,t);case 9:return s.binary(43,e,t);case 10:return s.binary(235,e,t);case 11:return s.binary(59,e,t);case 12:return s.binary(72,e,t)}return assert(!1),s.unreachable()}makeGt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(21,e,t);case 4:return s.binary(46,e,t);case 5:return s.binary(238,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(22,e,t);case 9:return s.binary(47,e,t);case 10:return s.binary(239,e,t);case 11:return s.binary(61,e,t);case 12:return s.binary(74,e,t)}return assert(!1),s.unreachable()}makeLe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(19,e,t);case 4:return s.binary(44,e,t);case 5:return s.binary(236,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(20,e,t);case 9:return s.binary(45,e,t);case 10:return s.binary(237,e,t);case 11:return s.binary(60,e,t);case 12:return s.binary(73,e,t)}return assert(!1),s.unreachable()}makeGe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(23,e,t);case 4:return s.binary(48,e,t);case 5:return s.binary(240,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(24,e,t);case 9:return s.binary(49,e,t);case 10:return s.binary(241,e,t);case 11:return s.binary(62,e,t);case 12:return s.binary(75,e,t)}return assert(!1),s.unreachable()}makeEq(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(15,e,t);case 4:case 9:return a.binary(40,e,t);case 5:case 10:return a.binary(232,e,t);case 11:return a.binary(57,e,t);case 12:return a.binary(70,e,t);case 13:return a.unary(70,a.binary(76,e,t));case 17:case 18:case 19:case 20:return a.ref_eq(e,t);case 21:return a.string_eq(e,t);case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeNe(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(16,e,t);case 4:case 9:return a.binary(41,e,t);case 5:case 10:return a.binary(233,e,t);case 11:return a.binary(58,e,t);case 12:return a.binary(71,e,t);case 13:return a.unary(67,a.binary(77,e,t));case 17:case 18:case 19:case 20:return a.unary(20,a.ref_eq(e,t));case 21:return a.unary(20,a.string_eq(e,t));case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeAdd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(0,e,t);case 4:case 9:return s.binary(25,e,t);case 5:case 10:return s.binary(217,e,t);case 11:return s.binary(50,e,t);case 12:return s.binary(63,e,t)}return assert(!1),s.unreachable()}makeSub(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(1,e,t);case 4:case 9:return s.binary(26,e,t);case 5:case 10:return s.binary(218,e,t);case 11:return s.binary(51,e,t);case 12:return s.binary(64,e,t)}return assert(!1),s.unreachable()}makeMul(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(2,e,t);case 4:case 9:return s.binary(27,e,t);case 5:case 10:return s.binary(219,e,t);case 11:return s.binary(52,e,t);case 12:return s.binary(65,e,t)}return assert(!1),s.unreachable()}makePow(e,t,n,s){let a=this.module;switch(n.kind){case 0:return a.select(a.i32(1),a.binary(15,t,a.i32(0)),e);case 1:case 6:case 2:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let u=ne(e),p=ne(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(p))))}let l=this.i32PowInstance;if(!l){let u=this.program.lookup(P.ipow32);if(!u)return this.error(2304,s.range,"ipow32"),a.unreachable();assert(u.kind==4),this.i32PowInstance=l=this.resolver.resolveFunction(u,null)}if(!l||!this.compileFunction(l))return a.unreachable();let o=this.makeCallDirect(l,[e,t],s);return n.size<32&&(o=this.ensureSmallIntegerWrap(o,n)),o}case 4:case 9:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=i64_new(Ie(e),Le(e)),u=i64_new(Ie(t),Le(t)),p=i64_pow(o,u);return this.currentType=n,a.i64(i64_low(p),i64_high(p))}let l=this.i64PowInstance;if(!l){let o=this.program.lookup(P.ipow64);if(!o)return this.error(2304,s.range,"ipow64"),a.unreachable();assert(o.kind==4),this.i64PowInstance=l=this.resolver.resolveFunction(o,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 5:case 10:{let l=this.options.isWasm64;if(this.options.willOptimize&&re(e)==14&&re(t)==14)if(l){let u=i64_new(Ie(e),Le(e)),p=i64_new(Ie(t),Le(t)),_=i64_pow(u,p);return this.currentType=n,a.i64(i64_low(_),i64_high(_))}else{let u=ne(e),p=ne(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(p))))}let o=l?this.i64PowInstance:this.i32PowInstance;if(!o){let u=this.program.lookup(l?P.ipow64:P.ipow32);if(!u)return this.error(2304,s.range,l?"ipow64":"ipow32"),a.unreachable();assert(u.kind==4),o=this.resolver.resolveFunction(u,null),l?this.i64PowInstance=o:this.i32PowInstance=o}return!o||!this.compileFunction(o)?a.unreachable():this.makeCallDirect(o,[e,t],s)}case 11:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Ee(e),u=Ee(t);return this.currentType=n,a.f32(f32(Ia(o,u)))}let l=this.f32PowInstance;if(!l){let o=this.program.lookup(P.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(P.pow);if(!u)return this.error(2304,s.range,"Mathf.pow"),a.unreachable();assert(u.kind==4),this.f32PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Se(e),u=Se(t);return this.currentType=n,a.f64(Ia(o,u))}let l=this.f64PowInstance;if(!l){let o=this.program.lookup(P.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(P.pow);if(!u)return this.error(2304,s.range,"Math.pow"),a.unreachable();assert(u.kind==4),this.f64PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeDiv(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(3,e,t);case 4:return s.binary(28,e,t);case 5:return s.binary(220,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(4,e,t);case 9:return s.binary(29,e,t);case 10:return s.binary(221,e,t);case 11:return s.binary(53,e,t);case 12:return s.binary(66,e,t)}return assert(!1),s.unreachable()}makeRem(e,t,n,s){let a=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return a.binary(5,e,t);case 4:return a.binary(30,e,t);case 5:return a.binary(222,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return a.binary(6,e,t);case 9:return a.binary(31,e,t);case 10:return a.binary(223,e,t);case 11:{let l=this.f32ModInstance;if(!l){let o=this.program.lookup(P.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(P.mod);if(!u)return this.error(2304,s.range,"Mathf.mod"),a.unreachable();assert(u.kind==4),this.f32ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{let l=this.f64ModInstance;if(!l){let o=this.program.lookup(P.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(P.mod);if(!u)return this.error(2304,s.range,"Math.mod"),a.unreachable();assert(u.kind==4),this.f64ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeShl(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(10,e,s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(10,e,t);case 4:case 9:return s.binary(35,e,t);case 5:case 10:return s.binary(227,e,t)}return assert(!1),s.unreachable()}makeShr(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:return s.binary(11,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:return s.binary(11,e,t);case 4:return s.binary(36,e,t);case 5:return s.binary(228,e,t);case 8:return s.binary(12,e,t);case 9:return s.binary(37,e,t);case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeShru(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(12,e,t);case 4:case 9:return s.binary(37,e,t);case 5:case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeAnd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return s.binary(7,e,t);case 4:case 9:return s.binary(32,e,t);case 5:case 10:return s.binary(224,e,t)}return assert(!1),s.unreachable()}makeOr(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(8,e,t);case 3:case 8:return s.binary(8,e,t);case 4:case 9:return s.binary(33,e,t);case 5:case 10:return s.binary(225,e,t)}return assert(!1),s.unreachable()}makeXor(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(9,e,t);case 3:case 8:return s.binary(9,e,t);case 4:case 9:return s.binary(34,e,t);case 5:case 10:return s.binary(226,e,t)}return assert(!1),s.unreachable()}compileUnaryOverload(e,t,n,s){return this.makeCallDirect(e,[n],s,!1)}compileBinaryOverload(e,t,n,s,a,l){let o,u=e.signature,p=u.parameterTypes;e.is(262144)?(n=this.convertExpression(n,s,assert(u.thisType),!1,t),o=p[0]):(n=this.convertExpression(n,s,p[0],!1,t),o=p[1]);let _=this.compileExpression(a,o,1);return this.makeCallDirect(e,[n,_],l)}compileCommutativeBinaryOverload(e,t,n,s,a,l,o,u){let p=e.signature,_=p.parameterTypes;return e.is(262144)?(n=this.convertExpression(n,s,assert(p.thisType),!1,t),l=this.convertExpression(l,o,_[0],!1,a)):(n=this.convertExpression(n,s,_[0],!1,t),l=this.convertExpression(l,o,_[1],!1,a)),this.makeCallDirect(e,[n,l],u)}compileAssignment(e,t,n){let a=this.program.resolver,l=this.currentFlow,o=a.lookupExpression(e,l);if(!o)return this.module.unreachable();let u=a.currentThisExpression,p=a.currentElementExpression,_;switch(o.kind){case 0:case 1:{if(o.kind==0){if(!this.compileGlobalLazy(o,e))return this.module.unreachable()}else if(!o.declaredByFlow(l)&&(!o.isCaptured||o.envSlotIndex<0))return this.error(100,e.range,"Closures"),this.module.unreachable();if(this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();_=o.type,o.hasDecorator(2048)&&this.checkUnsafe(e);break}case 10:{let h=o,g=a.resolveProperty(h);if(!g)return this.module.unreachable();o=g}case 11:{let h=o;if(h.isField&&this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();let g=h.setterInstance;if(!g)return this.error(2540,e.range,h.internalName),this.module.unreachable();assert(g.signature.parameterTypes.length==1),_=g.signature.parameterTypes[0],g.hasDecorator(2048)&&this.checkUnsafe(e);break}case 15:{let h=o.parent;assert(h.kind==7);let g=h,m=l.is(32768),T=g.lookupOverload(2,m);if(!T)return g.lookupOverload(1,m)?this.error(2542,e.range,g.internalName):this.error(2329,e.range,g.internalName),this.module.unreachable();let S=T.signature.parameterTypes;assert(S.length==2),_=S[1],T.hasDecorator(2048)&&this.checkUnsafe(e),!m&&this.options.pedantic&&this.pedantic(904,e.range);break}default:return this.error(2540,e.range,o.internalName),this.module.unreachable()}assert(_!=c.void);let f=this.compileExpression(t,_),d=this.currentType;return _.isNullableReference&&this.currentFlow.isNonnull(f,d)&&(_=_.nonNullableType),this.makeAssignment(o,this.convertExpression(f,d,_,!1,t),_,t,u,p,n!=c.void)}makeAssignment(e,t,n,s,a,l,o){let u=this.module,p=this.currentFlow;switch(e.kind){case 1:{let _=e;return p.isLocalFlag(_.index,1,!0)?(this.error(2540,s.range,e.internalName),this.currentType=o?_.type:c.void,u.unreachable()):this.makeLocalAssignment(_,t,n,o)}case 0:{let _=e;return this.compileGlobalLazy(_,s)?e.isAny(72)?(this.error(2540,s.range,e.internalName),this.currentType=o?_.type:c.void,u.unreachable()):this.makeGlobalAssignment(_,t,n,o):u.unreachable()}case 10:{let _=this.resolver.resolveProperty(e);if(!_)return u.unreachable();e=_}case 11:{let _=e;if(_.isField){let d=p.sourceFunction.is(524288);if(_.is(64)){let h=_.initializerNode;if(!d||h)return this.error(2540,s.range,_.internalName),u.unreachable()}a=assert(a),d&&a.kind==25&&p.setThisFieldFlag(_,1)}let f=_.setterInstance;if(!f)return this.error(2540,s.range,e.internalName),u.unreachable();if(assert(f.signature.parameterTypes.length==1),assert(f.signature.returnType==c.void),_.is(262144)){let d=assert(f.signature.thisType),h=this.compileExpression(assert(a),d,33);if(!o)return this.makeCallDirect(f,[h,t],s);let g=p.getTempLocal(n),m=n.toRef(),T=u.block(null,[this.makeCallDirect(f,[h,u.local_tee(g.index,t,n.isManaged,m)],s),u.local_get(g.index,m)],m);return this.currentType=n,T}else{if(!o)return this.makeCallDirect(f,[t],s);let d=p.getTempLocal(n),h=n.toRef(),g=u.block(null,[this.makeCallDirect(f,[u.local_tee(d.index,t,n.isManaged,h)],s),u.local_get(d.index,h)],h);return this.currentType=n,g}}case 15:{let f=e.parent;assert(f.kind==7);let d=f;assert(d.kind==7);let h=p.is(32768),g=d.lookupOverload(1,h);if(!g)return this.error(2329,s.range,d.internalName),u.unreachable();let m=d.lookupOverload(2,h);if(!m)return this.error(2542,s.range,d.internalName),this.currentType=o?g.signature.returnType:c.void,u.unreachable();assert(m.signature.parameterTypes.length==2);let T=d.type,S=this.compileExpression(assert(a),T,33),v=m.signature.parameterTypes[0],F=g.signature.parameterTypes[0];if(!v.equals(F))return this.errorRelated(237,g.identifierAndSignatureRange,m.identifierAndSignatureRange,d.internalName),this.currentType=o?g.signature.returnType:c.void,u.unreachable();let k=this.compileExpression(assert(l),v,1),R=this.currentType;if(o){let C=p.getTempLocal(T),D=p.getTempLocal(R),U=g.signature.returnType;return u.block(null,[this.makeCallDirect(m,[u.local_tee(C.index,S,T.isManaged),u.local_tee(D.index,k,R.isManaged),t],s),this.makeCallDirect(g,[u.local_get(C.index,C.type.toRef()),u.local_get(D.index,D.type.toRef())],s)],U.toRef())}else return this.makeCallDirect(m,[S,k,t],s)}default:this.error(2541,s.range)}return u.unreachable()}makeLocalAssignment(e,t,n,s){let a=this.module,l=this.currentFlow,o=e.type;assert(o!=c.void);let u=e.index;if(e.isCaptured&&e.envSlotIndex>=0){let p=l.sourceFunction;if(!(e.parent==p)||p.envLocal){l.setLocalFlag(u,8),o.isNullableReference&&(!n.isNullableReference||l.isNonnull(t,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),o.isShortIntegerValue&&(l.canOverflow(t,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2));let f=this.compileClosureStore(e,t,n);if(s){let d=this.compileClosureLoad(e,e.declaration);return this.currentType=o,a.block(null,[f,d],o.toRef())}else return this.currentType=c.void,f}}return o.isNullableReference&&(!n.isNullableReference||l.isNonnull(t,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),l.setLocalFlag(u,8),o.isShortIntegerValue&&(l.canOverflow(t,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2)),e.isCaptured||(e.wasAccessedAsLocal=!0),s?(this.currentType=o,a.local_tee(u,t,o.isManaged)):(this.currentType=c.void,a.local_set(u,t,o.isManaged))}makeGlobalAssignment(e,t,n,s){let a=this.module,l=e.type;assert(l!=c.void);let o=l.toRef();return t=this.ensureSmallIntegerWrap(t,l),s?(this.currentType=l,a.block(null,[a.global_set(e.internalName,t),a.global_get(e.internalName,o)],o)):(this.currentType=c.void,a.global_set(e.internalName,t))}compileCallExpression(e,t,n){let s=this.module,a=this.currentFlow;if(e.expression.kind==24){let _=this.currentFlow,f=_.sourceFunction;if(!f.is(524288))return this.error(2337,e.range),s.unreachable();let d=assert(f.parent);assert(d.kind==7);let h=d,g=h.base;if(!g||h.prototype.implicitlyExtendsObject)return this.error(2335,e.expression.range),s.unreachable();let m=assert(_.lookupLocal(P.this_)),T=this.options.sizeTypeRef,S=this.ensureConstructor(g,e);this.checkFieldInitialization(g,e);let v=this.compileCallDirect(S,e.args,e,s.local_get(m.index,T));return _.isAny(8256)?(this.error(17009,e.range),s.unreachable()):(_.set(192),this.currentType=c.void,s.local_set(m.index,v,h.type.isManaged))}let l=this.resolver.lookupExpression(e.expression,a);if(!l)return s.unreachable();let o=this.resolver.currentThisExpression;switch(l.kind){case 4:{let _=l;if(_.hasDecorator(512))return this.compileCallExpressionBuiltin(_,e,t);let f=this.resolver.maybeInferCall(e,_,a);if(!f)return this.module.unreachable();l=f}case 5:{let _=l,f=0;return _.is(262144)&&(f=this.compileExpression(assert(o),assert(_.signature.thisType),33)),this.compileCallDirect(_,e.args,e,f,n)}}let u=this.compileExpression(e.expression,c.auto),p=this.currentType.getSignature();if(p)return this.compileCallIndirect(p,u,e.args,e,0,t==c.void);if(this.error(2349,e.range,this.currentType.toString()),l.kind==10){let _=l.getterPrototype;_&&this.infoRelated(6234,e.range,_.identifierNode.range)}return s.unreachable()}compileCallExpressionLike(e,t,n,s,a,l=0){let o=this._reusableCallExpression;return o?(o.expression=e,o.typeArguments=t,o.args=n,o.range=s):this._reusableCallExpression=o=z.createCallExpression(e,t,n,s),this.compileCallExpression(o,a,l)}compileCallExpressionBuiltin(e,t,n){e.hasDecorator(2048)&&this.checkUnsafe(t);let s=null,a=e.typeParameterNodes,l=t.typeArguments;t.typeArguments&&(e.is(65536)||this.error(2315,t.range,e.internalName),s=this.resolver.resolveTypeArguments(assert(a),l,this.currentFlow,this.currentFlow.sourceFunction.parent,_e(this.currentFlow.contextualTypeArguments),t));let o=t.expression,u=new bo(this,e,s,t.args,o.kind==22?o.expression:null,n,t,!1),p;return e.is(262144)?p=`${assert(e.getBoundClassOrInterface()).prototype.internalName}#${e.name}`:p=e.internalName,assert(x.has(p)),assert(x.get(p))(u)}checkCallSignature(e,t,n,s){let a=e.thisType;if(n!=(a!=null))return this.error(2685,s.range),!1;let l=e.hasRest,o=e.requiredParameters,u=e.parameterTypes.length;return t<o?(this.error(o<u?2555:2554,s.range,o.toString(),t.toString()),!1):t>u&&!l?(this.error(2554,s.range,u.toString(),t.toString()),!1):!0}checkUnsafe(e,t=null){this.options.noUnsafe&&!e.range.source.isLibrary&&(t?this.errorRelated(101,e.range,t.range):this.error(101,e.range))}adjustArgumentsForRestParams(e,t,n){if(!t.hasRest)return e;let s=e.length,a=t.parameterTypes.length;if(s<a)return e;let l=e.slice(a-1),o=new ce(l[0].range.start,l[l.length-1].range.end);o.source=n.range.source;let u=new Cr(l,o),p=e.slice(0,a-1);return p.push(u),p}compileCallDirect(e,t,n,s=0,a=0){let l=t.length,o=e.signature;if(!this.checkCallSignature(o,l,s!=0,n))return this.currentType=o.returnType,this.module.unreachable();e.hasDecorator(2048)&&this.checkUnsafe(n),t=this.adjustArgumentsForRestParams(t,o,n),l=t.length;let u=this.currentFlow.sourceFunction;if(u.is(524288)&&n.isAccessOnThis){let g=u.parent;assert(g.kind==7),this.checkFieldInitialization(g,n)}if((e.hasDecorator(64)||this.currentFlow.is(131072))&&(!e.is(268435456)||n.isAccessOnSuper)){assert(!e.is(134217728));let g=this.inlineStack;if(g.includes(e))this.warning(217,n.range,e.internalName);else{let m=o.parameterTypes;assert(l<=m.length);let T=new Array(l);for(let v=0;v<l;++v)T[v]=this.compileExpression(t[v],m[v],1);g.push(e);let S=this.makeCallInline(e,T,s,(a&8)!=0);return g.pop(),S}}let _=s?l+1:l,f=new Array(_),d=0;s&&(f[0]=s,d=1);let h=o.parameterTypes;for(let g=0;g<l;++g,++d){let m=h[g],T=this.compileExpression(t[g],m,1);f[d]=T}return assert(d==_),this.makeCallDirect(e,f,n,(a&8)!=0)}makeCallInline(e,t,n=0,s=!1){let a=this.module,l=t?t.length:0,u=e.signature.parameterTypes,p=u.length,_=this.currentFlow,f=qt.createInline(_.targetFunction,e),d=[];if(n){let m=assert(e.parent);assert(m.kind==7);let T=m,S=assert(e.signature.thisType),v=f.addScopedLocal(P.this_,S);d.push(a.local_set(v.index,n,S.isManaged)),f.setLocalFlag(v.index,8);let F=T.base;F&&f.addScopedAlias(P.super_,F.type,v.index)}else assert(!e.signature.thisType);for(let m=0;m<l;++m){let T=t[m],S=u[m],v=f.addScopedLocal(e.getParameterName(m),S);_.canOverflow(T,S)||f.setLocalFlag(v.index,2),f.isNonnull(T,S)&&f.setLocalFlag(v.index,4),d.push(a.local_set(v.index,T,S.isManaged)),f.setLocalFlag(v.index,8)}this.currentFlow=f;let h=e.is(524288);h&&f.set(65536);for(let m=l;m<p;++m){let T=u[m],S=this.compileExpression(assert(e.prototype.functionTypeNode.parameters[m].initializer),T,1),v=f.addScopedLocal(e.getParameterName(m),T);d.push(this.makeLocalAssignment(v,S,T,!1))}if(f.unset(65536),this.compileFunctionBody(e,d),h){let m=e.parent;assert(m.kind==7),this.checkFieldInitializationInFlow(m,f)}let g=f.returnType;return this.currentFlow=_,this.currentType=g,a.block(f.inlineReturnLabel,d,g.toRef())}ensureArgumentsLength(){let e=y.argumentsLength;if(!this.builtinArgumentsLength){let t=this.module;this.builtinArgumentsLength=t.addGlobal(e,N.I32,!0,t.i32(0))}return e}ensureClosureEnvironmentGlobal(){let e="~lib/__closure_env";if(!this.closureEnvironmentGlobal){let t=this.module,n=this.options.sizeTypeRef,s=this.options.isWasm64?t.i64(0):t.i32(0);this.closureEnvironmentGlobal=t.addGlobal(e,n,!0,s)}return e}ensureExceptionTag(){let e="error";if(!this.exceptionTagEnsured){let t=this.module,n=this.options.sizeTypeRef;t.addTag(e,n,N.None),this.exceptionTagEnsured=!0}return e}ensureVarargsStub(e){let t=e.varargsStub;if(t)return t;let n=e.signature,s=n.parameterTypes,a=e.prototype.functionTypeNode.parameters,l=n.returnType,o=e.is(262144),u=n.requiredParameters,p=u,_=s.length,f=_;o&&(++p,++f);let d=assert(f-p),h=new Array(p),g=0,m=new Array,T=this.module,S=n.thisType;S&&(h[0]=T.local_get(0,S.toRef()),g=1);for(let O=0;O<u;++O,++g){let Y=s[O];h[g]=T.local_get(g,Y.toRef())}assert(g==p),t=e.newStub("varargs",_),e.varargsStub=t;let v=this.currentFlow,F=t.flow;e.is(524288)&&F.set(65536),this.currentFlow=F;let k=d+1,R=new Array(k),C=`of${d}`;for(let O=0;O<k;++O)R[O]=`${O}${C}`;let D=this.ensureArgumentsLength(),U=T.block(R[0],[T.block("outOfRange",[T.switch(R,"outOfRange",u?T.binary(1,T.global_get(D,N.I32),T.i32(u)):T.global_get(D,N.I32))]),T.unreachable()]);for(let O=0;O<d;++O,++g){let Y=s[u+O],Z=a[u+O],ee=Z.initializer,K;if(Z.parameterKind===2){let te=new Cr([],Z.range.atEnd);K=this.compileArrayLiteral(te,Y,2),K=T.local_set(g,K,Y.isManaged)}else ee?(K=this.compileExpression(ee,Y,1),K=T.local_set(g,K,Y.isManaged)):(this.error(215,Z.range),K=T.unreachable());U=T.block(R[O+1],[U,K]),h[g]=T.local_get(g,Y.toRef())}assert(g==f),m.push(U),m.push(this.makeCallDirect(e,h,e.declaration.name)),this.currentFlow=v;let G=T.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,Vr(t.getNonParameterLocalTypes()),T.flatten(m,l.toRef()));return t.set(8388608),t.finalize(T,G),t}ensureOverrideStub(e){let t=e.overrideStub;if(t)return t;t=e.newStub("override"),e.overrideStub=t;let n=this.module;return t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,null,n.unreachable()),this.overrideStubs.add(e),t}finalizeOverrideStub(e){let t=this.ensureOverrideStub(e);if(t.is(8388608))return;assert(e.parent.kind==7||e.parent.kind==9);let n=this.module,a=this.options.usizeType.toRef(),l=e.signature.parameterTypes,o=e.signature.returnType,u=l.length,p=1+l.length,_=new Qn(this.module,n.load(4,!1,n.binary(a==N.I64?26:1,n.local_get(0,a),a==N.I64?n.i64(8):n.i32(8)),N.I32)),f=this.resolver.resolveOverrides(e);if(f){let m=new Map;for(let T=0,S=f.length;T<S;++T){let v=f[T];if(!v.is(8388608))continue;let F=v.signature,k=e.signature;if(!F.isAssignableTo(k,!0)){this.error(2322,v.identifierNode.range,F.toString(),k.toString());continue}let R=F.parameterTypes,C=R.length,D=new Array(1+C);D[0]=n.local_get(0,a);for(let K=1;K<=u;++K)D[K]=n.local_get(K,l[K-1].toRef());let U=!1;for(let K=u;K<C;++K)D[1+K]=this.makeZero(R[K]),U=!0;let G=U?this.ensureVarargsStub(v).internalName:v.internalName,O=F.returnType.toRef(),Y=new Array;U&&Y.push(n.global_set(this.ensureArgumentsLength(),n.i32(u))),o==c.void?(Y.push(n.call(G,D,O)),Y.push(n.return())):Y.push(n.return(n.call(G,D,O)));let Z=assert(v.getBoundClassOrInterface());_.addCase(Z.id,Y);let ee=Z.extenders;if(ee)for(let K=Set_values(ee),te=0,H=K.length;te<H;++te){let oe=K[te],se=oe.prototype.instanceMembers;se&&se.has(e.declaration.name.text)||(!m.has(oe)||!assert(m.get(oe)).extends(Z))&&(m.set(oe,Z),_.addOrReplaceCase(oe.id,Y))}}}let d,h=e.getBoundClassOrInterface();if(!e.is(128)&&!(h&&h.kind==9)){let m=new Array(u);m[0]=n.local_get(0,a);for(let T=0,S=l.length;T<S;++T)m[1+T]=n.local_get(1+T,l[T].toRef());d=n.call(e.internalName,m,o.toRef())}else d=n.unreachable();t.ref&&n.removeFunction(t.internalName),t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,[N.I32],n.block(null,[_.render(p),d],o.toRef())),t.set(8388608)}needToStack(e){let t=this.module.runExpression(e,0);if(t==0)return!0;let n=sp(t,this.options.isWasm64);if(i64_eq(n,i64_zero))return!1;let s=this.staticGcObjectOffsets;return!(s.has(i64_high(n))&&assert(s.get(i64_high(n))).has(i64_low(n)))}operandsTostack(e,t){if(!this.options.stackSize)return;let n=this.module,s=0,a=e.thisType;if(a){if(a.isManaged){let u=t[0];this.needToStack(u)&&(t[s]=n.tostack(u))}++s}let l=0,o=e.parameterTypes;for(assert(o.length>=t.length-s);s<t.length;){if(o[l].isManaged){let p=t[s];this.needToStack(p)&&(t[s]=n.tostack(p))}++s,++l}}makeCallDirect(e,t,n,s=!1){if(e.hasDecorator(64))if(e.is(268435456))this.warning(228,n.range,e.internalName);else{assert(!e.is(134217728));let m=this.inlineStack;if(m.includes(e))this.warning(217,n.range,e.internalName);else{m.push(e);let T;if(e.is(262144)){let S=assert(t);assert(S.length),T=this.makeCallInline(e,S.slice(1),S[0],s)}else T=this.makeCallInline(e,t,0,s);return m.pop(),T}}let a=this.module,l=t?t.length:0,o=l,p=e.signature.requiredParameters,_=e.signature.parameterTypes,f=_.length,d=f;if(e.is(262144)&&(++p,++d,--o),assert(l>=p),!this.compileFunction(e))return a.unreachable();let h=e.signature.returnType;if(l<d){t||(t=new Array(d),t.length=0);let m=e.prototype.functionTypeNode.parameters;assert(m.length==_.length);let T=!0;for(let S=o;S<f;++S){let v=m[S].initializer;if(v){if(v.compilesToConst){t.push(this.compileExpression(v,_[S],1));continue}let F=this.resolver.lookupExpression(v,e.flow,_[S],1);if(F&&F.kind==0){let k=F;if(this.compileGlobalLazy(k,v)&&k.is(33554432)){t.push(this.compileInlineConstant(k,_[S],1));continue}}}t.push(this.makeZero(_[S])),T=!1}if(!T&&!e.is(2097152)){let S=e;if(e=this.ensureVarargsStub(e),!this.compileFunction(e))return a.unreachable();e.flow.flags=S.flow.flags;let v=h.toRef(),F=t[d-1];assert(!(Gi(F,a.ref)&32));let k=_[f-1];t[d-1]=a.block(null,[a.global_set(this.ensureArgumentsLength(),a.i32(o)),F],k.toRef()),this.operandsTostack(e.signature,t);let R=a.call(e.internalName,t,v);return h!=c.void&&s?(R=a.drop(R),this.currentType=c.void):this.currentType=h,R}}e.is(268435456)&&!n.isAccessOnSuper&&(e=this.ensureOverrideStub(e)),t&&this.operandsTostack(e.signature,t);let g=a.call(e.internalName,t,h.toRef());return this.currentType=h,g}compileCallIndirect(e,t,n,s,a=0,l=!1){let o=n.length;if(!this.checkCallSignature(e,o,a!=0,s))return this.module.unreachable();n=this.adjustArgumentsForRestParams(n,e,s),o=n.length;let u=a?o+1:o,p=new Array(u),_=0;a&&(p[0]=a,_=1);let f=e.parameterTypes;for(let d=0;d<o;++d,++_)p[_]=this.compileExpression(n[d],f[d],1);return assert(_==u),this.makeCallIndirect(e,t,s,p,l)}makeCallIndirect(e,t,n,s=null,a=!1){let l=this.module,o=s?s.length:0,u=o,_=e.requiredParameters,f=e.parameterTypes,d=e.returnType,h=f.length,g=h;if(e.thisType&&(++_,++g,--u),assert(o>=_),o<g){s||(s=new Array(g),s.length=0);let C=e.parameterTypes;for(let D=u;D<h;++D)s.push(this.makeZero(C[D]))}let m=(Gi(t,l.ref)&32)==0;if(s&&m){for(let C=0;C<o;++C)if(!l.isTrivialExpression(s[C])){m=!1;break}}let T=new Array,S=this.options.sizeTypeRef;if(!m){let C=this.currentFlow.getTempLocal(this.options.usizeType),D=l.local_set(C.index,t,!0);T.push(D),t=l.local_get(C.index,S)}let v=this.ensureArgumentsLength(),F=l.block(null,[l.global_set(v,l.i32(u)),t],S);if(s&&this.operandsTostack(e,s),this.options.hasFeature(65536)){let C=this.ensureClosureEnvironmentGlobal(),D=this.options.usizeType.byteSize,U=this.options.isWasm64?8:4,Y=this.currentFlow.getTempLocal(this.options.usizeType).index,Z=[l.local_set(Y,F,!0),l.global_set(C,l.load(D,!1,l.local_get(Y,S),S,U))],ee=l.load(4,!1,l.local_get(Y,S),N.I32),K=l.call_indirect(null,l.block(null,Z.concat([ee]),N.I32),s,e.paramRefs,e.resultRefs);return this.currentType=d,T.push(K),l.flatten(T,d.toRef())}let k=l.load(4,!1,F,N.I32),R=l.call_indirect(null,k,s,e.paramRefs,e.resultRefs);return this.currentType=d,T.push(R),l.flatten(T,d.toRef())}compileCommaExpression(e,t,n){let s=e.expressions,a=s.length,l=new Array(a--);for(let o=0;o<a;++o)l[o]=this.compileExpression(s[o],c.void,9);return l[a]=this.compileExpression(s[a],t,n),this.module.flatten(l,this.currentType.toRef())}compileElementAccessExpression(e,t,n){let s=this.module,a=e.expression,l=this.resolver,o=l.lookupExpression(a,this.currentFlow,c.auto,1);if(o&&o.kind==2){let p=this.compileExpression(e.elementExpression,c.i32,1),_=this.ensureEnumToString(o,e);return this.currentType=this.program.stringInstance.type,_==null?s.unreachable():s.call(_,[p],N.I32)}let u=l.resolveExpression(a,this.currentFlow);if(u){let p=u.getClassOrWrapper(this.program);if(p){let _=this.currentFlow.is(32768),f=p.lookupOverload(1,_);if(f){let d=assert(f.signature.thisType),h=this.compileExpression(a,d,1);return!_&&this.options.pedantic&&this.pedantic(904,e.range),this.compileCallDirect(f,[e.elementExpression],e,h,n)}}this.error(2329,e.expression.range,u.toString())}return s.unreachable()}compileFunctionExpression(e,t,n){let s=e.declaration.clone();assert(!s.typeParameters);let a=this.currentFlow,l=a.sourceFunction,o=s.name.text.length>0,u=!o||t!=c.void,p=u?`${o?s.name.text:"anonymous"}|${l.nextAnonymousId++}`:s.name.text,_=Ne(p,l,!1),f=this.program.instancesByName.has(_)?this.program.instancesByName.get(_):null;if(f&&f.kind==5){let k=f;if(k.is(8388608)){let R=this.ensureRuntimeFunction(k),C=k.capturedLocals;return C&&C.size>0?this.compileClosureFunctionCreation(k,l):(this.currentType=k.signature.type,this.options.isWasm64?this.module.i64(i64_low(R),i64_high(R)):this.module.i32(i64_low(R)))}}let d;f&&f.kind==5?d=f.prototype:d=new tt(p,l,s,0);let h,g=_e(a.contextualTypeArguments),m=this.module,T=t.signatureReference;if(T){let k=d.functionTypeNode,R=k.parameters,C=R.length,D=T.parameterTypes,U=D.length;if(C>U)return this.error(2554,e.range,U.toString(),C.toString()),m.unreachable();for(let te=0;te<C;++te){let H=R[te];if(!Be(H.type)){let oe=this.resolver.resolveType(H.type,a,l.parent,g);if(!oe)return m.unreachable();if(!D[te].isStrictlyAssignableTo(oe))return this.error(2322,H.range,D[te].toString(),oe.toString()),m.unreachable()}}let G=T.returnType;if(!Be(k.returnType)){let te=this.resolver.resolveType(k.returnType,a,l.parent,g);if(!te)return m.unreachable();if(G==c.void?te!=c.void:!te.isStrictlyAssignableTo(G))return this.error(2322,k.returnType.range,te.toString(),G.toString()),m.unreachable()}let O=T.thisType,Y=k.explicitThisType;if(Y){if(!O)return this.error(2332,Y.range),m.unreachable();let te=this.resolver.resolveType(Y,a,l.parent,g);if(!te)return m.unreachable();if(!O.isStrictlyAssignableTo(te))return this.error(2322,Y.range,O.toString(),te.toString()),m.unreachable()}let Z=Xe.create(this.program,D,G,O,U);h=new St(d.name,d,null,Z,g),h.flow.outer=a;let ee=this.analyzeCapturedVariables(s,a);if(ee.size>0){if(!this.options.hasFeature(65536))return this.error(103,e.range,"closures"),m.unreachable();h.capturedLocals=ee,h.outerFunction=l,this.ensureClosureEnvironmentsForCaptures(ee,a)}let K=this.compileFunction(h);if(this.currentType=T.type,!K)return m.unreachable()}else{if(h=this.resolver.resolveFunction(d,null,g),!h)return this.module.unreachable();h.flow.outer=a;let k=this.analyzeCapturedVariables(s,a);if(k.size>0){if(!this.options.hasFeature(65536))return this.error(103,e.range,"closures"),m.unreachable();h.capturedLocals=k,h.outerFunction=l,this.ensureClosureEnvironmentsForCaptures(k,a)}let R=this.compileFunction(h);if(this.currentType=h.signature.type,!R)return m.unreachable()}let S=this.ensureRuntimeFunction(h),v=h.capturedLocals;if(v&&v.size>0)return this.compileClosureFunctionCreation(h,l);let F=this.options.isWasm64?m.i64(i64_low(S),i64_high(S)):m.i32(i64_low(S));if(!u){let k=h.name,R=a.getScopedLocal(k);if(R)R.declaration.range.source.isNative?this.error(2300,s.name.range,k):this.errorRelated(2300,s.name.range,R.declaration.name.range,k);else{let C=h.type,D=a.addScopedLocal(h.name,C);a.setLocalFlag(D.index,9),F=m.local_tee(D.index,F,C.isManaged)}}return F}scanNodeForCaptures(e,t,n,s){switch(e.kind){case 7:{let l=e.text;if(n.has(l))break;let o=t.lookupLocal(l);if(o||(o=t.lookupLocalInOuter(l)),o&&!s.has(o)){if(o.isCaptured=!0,o.envOwner||(o.envOwner=o.parent),o.wasAccessedAsLocal){let u=o.parent;u.needsCaptureRecompile=!0}if(o.envSlotIndex>=0)s.set(o,o.envSlotIndex);else{let p=this.options.usizeType.byteSize,_=o.envOwner;if(_&&_.capturedLocals){let h=changetype(_.capturedLocals);for(let g=Map_keys(h),m=0,T=g.length;m<T;++m){let S=g[m];if(S.envOwner==_&&S.envSlotIndex>=0){let v=S.envSlotIndex+S.type.byteSize;v>p&&(p=v)}}}for(let h=Map_keys(s),g=0,m=h.length;g<m;++g){let T=h[g];if(T.envOwner==_&&T.envSlotIndex>=0){let S=T.envSlotIndex+T.type.byteSize;S>p&&(p=S)}}let d=o.type.byteSize;p=p+d-1&~(d-1),o.envSlotIndex=p,s.set(o,o.envSlotIndex)}}break}case 25:{let a=t.lookupLocal(P.this_);if(a||(a=t.lookupLocalInOuter(P.this_)),a&&!s.has(a)){if(a.isCaptured=!0,a.envOwner||(a.envOwner=a.parent),a.wasAccessedAsLocal){let l=a.parent;l.needsCaptureRecompile=!0}if(a.envSlotIndex>=0)s.set(a,a.envSlotIndex);else{let o=this.options.usizeType.byteSize,u=a.envOwner;if(u&&u.capturedLocals){let f=changetype(u.capturedLocals);for(let d=Map_keys(f),h=0,g=d.length;h<g;++h){let m=d[h];if(m.envOwner==u&&m.envSlotIndex>=0){let T=m.envSlotIndex+m.type.byteSize;T>o&&(o=T)}}}for(let f=Map_keys(s),d=0,h=f.length;d<h;++d){let g=f[d];if(g.envOwner==u&&g.envSlotIndex>=0){let m=g.envSlotIndex+g.type.byteSize;m>o&&(o=m)}}let _=a.type.byteSize;o=o+_-1&~(_-1),a.envSlotIndex=o,s.set(a,a.envSlotIndex)}}break}case 15:{let l=e.declaration,o=l.signature.parameters;for(let p=0,_=o.length;p<_;p++){let f=o[p].initializer;f&&this.scanNodeForCaptures(f,t,n,s)}for(let p=0,_=o.length;p<_;p++)n.add(o[p].name.text);let u=l.body;u&&this.scanNodeForCaptures(u,t,n,s);for(let p=0,_=o.length;p<_;p++)n.delete(o[p].name.text);break}case 8:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 9:{let a=e;this.scanNodeForCaptures(a.left,t,n,s),this.scanNodeForCaptures(a.right,t,n,s);break}case 10:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);let l=a.args;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],t,n,s);break}case 12:{let l=e.expressions;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],t,n,s);break}case 17:{let a=e;if(a.literalKind==5){let o=a.elementExpressions;for(let u=0,p=o.length;u<p;u++){let _=o[u];_&&this.scanNodeForCaptures(_,t,n,s)}}else if(a.literalKind==6){let o=a.values;for(let u=0,p=o.length;u<p;u++)this.scanNodeForCaptures(o[u],t,n,s)}else if(a.literalKind==3){let o=a.expressions;for(let u=0,p=o.length;u<p;u++)this.scanNodeForCaptures(o[u],t,n,s)}break}case 13:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s),this.scanNodeForCaptures(a.elementExpression,t,n,s);break}case 18:{let a=e;this.scanNodeForCaptures(a.typeName,t,n,s);let l=a.args;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],t,n,s);break}case 21:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 22:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 23:{let a=e;this.scanNodeForCaptures(a.condition,t,n,s),this.scanNodeForCaptures(a.ifThen,t,n,s),this.scanNodeForCaptures(a.ifElse,t,n,s);break}case 28:{let a=e;this.scanNodeForCaptures(a.operand,t,n,s);break}case 29:{let a=e;this.scanNodeForCaptures(a.operand,t,n,s);break}case 16:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 31:{let l=e.statements;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],t,n,s);break}case 34:{let a=e;this.scanNodeForCaptures(a.body,t,n,s),this.scanNodeForCaptures(a.condition,t,n,s);break}case 39:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 40:{let a=e,l=a.initializer,o=a.condition,u=a.incrementor;l&&this.scanNodeForCaptures(l,t,n,s),o&&this.scanNodeForCaptures(o,t,n,s),u&&this.scanNodeForCaptures(u,t,n,s),this.scanNodeForCaptures(a.body,t,n,s);break}case 41:{let a=e;this.scanNodeForCaptures(a.variable,t,n,s),this.scanNodeForCaptures(a.iterable,t,n,s),this.scanNodeForCaptures(a.body,t,n,s);break}case 42:{let a=e;this.scanNodeForCaptures(a.condition,t,n,s),this.scanNodeForCaptures(a.ifTrue,t,n,s);let l=a.ifFalse;l&&this.scanNodeForCaptures(l,t,n,s);break}case 44:{let l=e.value;l&&this.scanNodeForCaptures(l,t,n,s);break}case 45:{let a=e;this.scanNodeForCaptures(a.condition,t,n,s);let l=a.cases;for(let o=0,u=l.length;o<u;o++){let p=l[o],_=p.label;_&&this.scanNodeForCaptures(_,t,n,s);let f=p.statements;for(let d=0,h=f.length;d<h;d++)this.scanNodeForCaptures(f[d],t,n,s)}break}case 46:{let a=e;this.scanNodeForCaptures(a.value,t,n,s);break}case 47:{let a=e,l=a.bodyStatements;for(let p=0,_=l.length;p<_;p++)this.scanNodeForCaptures(l[p],t,n,s);let o=a.catchStatements;if(o)for(let p=0,_=o.length;p<_;p++)this.scanNodeForCaptures(o[p],t,n,s);let u=a.finallyStatements;if(u)for(let p=0,_=u.length;p<_;p++)this.scanNodeForCaptures(u[p],t,n,s);break}case 48:{let l=e.declarations;for(let o=0,u=l.length;o<u;o++){let p=l[o];n.add(p.name.text);let _=p.initializer;_&&this.scanNodeForCaptures(_,t,n,s)}break}case 50:{let a=e;this.scanNodeForCaptures(a.condition,t,n,s),this.scanNodeForCaptures(a.body,t,n,s);break}case 49:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 19:case 26:case 14:case 24:case 27:case 32:case 33:case 35:case 20:case 67:case 30:break;case 11:break;case 4:case 1:case 2:case 5:case 6:break;case 0:case 52:case 53:case 54:case 56:case 58:case 60:case 61:case 43:case 36:case 37:case 38:case 51:case 63:case 66:case 55:case 57:case 64:case 59:case 62:case 65:break;default:assert(!1,"scanNodeForCaptures: unhandled node kind: "+e.kind.toString())}}analyzeCapturedVariables(e,t){let n=new Map,s=new Set,a=e.signature.parameters;for(let o=0,u=a.length;o<u;o++){let p=a[o].initializer;p&&this.scanNodeForCaptures(p,t,s,n)}for(let o=0,u=a.length;o<u;o++)s.add(a[o].name.text);let l=e.body;return l&&this.scanNodeForCaptures(l,t,s,n),n}computeEnvironmentSize(e){let t=this.options.usizeType.byteSize,n=t;for(let s=Map_keys(e),a=0,l=s.length;a<l;a++){let o=s[a],u=o.envSlotIndex+o.type.byteSize;u>n&&(n=u)}return n+t-1&~(t-1)}ensureClosureEnvironmentsForCaptures(e,t){let n=new Map;for(let s=Map_keys(e),a=0,l=s.length;a<l;a++){let o=s[a],u=assert(o.envOwner),p=n.has(u)?n.get(u):null;p||(p=new Map,n.set(u,p)),p.set(o,e.get(o))}for(let s=Map_keys(n),a=0,l=s.length;a<l;a++){let o=s[a],u=assert(n.get(o));this.ensureClosureEnvironment(o,u,t)}}ensureClosureEnvironment(e,t,n){if(e.envLocal){let a=e.capturedLocals;if(a)for(let l=Map_keys(t),o=0,u=l.length;o<u;o++){let p=l[o];a.has(p)||a.set(p,t.get(p))}return}let s=this.options.usizeType;e.envLocal=n.addScopedLocal("$env",s),e.capturedLocals=t,this.computeEnvironmentSize(t)}compileClosureFunctionCreation(e,t){let n=this.module,s=this.program,a=this.options,l=a.sizeTypeRef,o=a.usizeType,u=assert(this.resolver.resolveClass(s.functionPrototype,[e.type])),p=u.id,_=u.nextMemoryOffset,f=s.newInstance;assert(f),this.compileFunction(f);let d=n.call(f.internalName,[a.isWasm64?n.i64(_):n.i32(_),n.i32(p)],l),h=this.currentFlow,g=h.getTempLocal(o);h.setLocalFlag(g.index,2);let m,T=t.envLocal,S=t.closureEnvLocal;T?m=n.local_get(T.index,l):S?m=n.local_get(S.index,l):m=a.isWasm64?n.i64(0):n.i32(0);let v=a.tableBase;v||(v=1);let F=v+this.functionTable.indexOf(e),k=u.offsetof("_index"),R=u.offsetof("_env"),C=[n.local_set(g.index,d,!1),n.store(4,n.local_get(g.index,l),n.i32(F),N.I32,k),n.store(o.byteSize,n.local_get(g.index,l),m,l,R),n.local_get(g.index,l)];return this.currentType=e.type,n.block(null,C,l)}getClosureEnvironmentPointer(e){let t=this.module,s=this.currentFlow.sourceFunction,a=this.options.sizeTypeRef,l=e.envOwner,o=s.envLocal;if(l==s&&o)return t.local_get(o.index,a);let u,p=s.closureEnvLocal;if(p)u=t.local_get(p.index,a);else{let d=this.ensureClosureEnvironmentGlobal();u=t.global_get(d,a)}let _=s.outerFunction,f=0;for(;_&&_!=l;)_.envLocal&&f++,_=_.outerFunction;for(let d=0;d<f;d++)u=t.load(this.options.usizeType.byteSize,!1,u,a,0);return u}compileClosureLoad(e,t=null){let n=this.module,s=e.type,a=e.envSlotIndex,l=this.getClosureEnvironmentPointer(e);return this.currentType=s,n.load(s.byteSize,s.is(1),l,s.toRef(),a)}compileClosureStore(e,t,n){let s=this.module,a=e.type,l=e.envSlotIndex,o=this.getClosureEnvironmentPointer(e);return s.store(a.byteSize,o,t,a.toRef(),l)}compileClosureEnvironmentAllocation(e){let t=this.module,n=this.program,s=this.options,a=s.sizeTypeRef,l=s.usizeType,o=assert(e.capturedLocals),u=assert(e.envLocal),p=this.computeEnvironmentSize(o),_=n.allocInstance;assert(_),this.compileFunction(_);let f=t.call(_.internalName,[s.isWasm64?t.i64(p):t.i32(p)],a),d=[];d.push(t.local_set(u.index,f,!1));let h,g=e.closureEnvLocal;g?h=t.local_get(g.index,a):h=s.isWasm64?t.i64(0):t.i32(0),d.push(t.store(l.byteSize,t.local_get(u.index,a),h,a,0));let m=e.signature,T=m.parameterTypes.length,S=m.thisType!=null,v=S?1:0,F=v+T;for(let k=Map_keys(o),R=0,C=k.length;R<C;R++){let D=k[R],U=D.envSlotIndex,G=D.type,O=D.index>=v&&D.index<F,Y=S&&D.index==0;(O||Y)&&d.push(t.store(G.byteSize,t.local_get(u.index,a),t.local_get(D.index,G.toRef()),G.toRef(),U))}return this.currentFlow.setLocalFlag(u.index,8),t.flatten(d,N.None)}maybeCompileEnclosingSource(e){let t=e.range.source.internalPath,n=this.program.filesByName;assert(n.has(t)),assert(n.get(t)).is(8388608)||this.compileFileByPath(t,e)}compileIdentifierExpression(e,t,n){let s=this.module,a=this.currentFlow,l=a.sourceFunction;switch(e.kind){case 19:{let p=this.options;if(t.isReference){let _=t.getClass();if(_)return this.currentType=_.type.asNullable(),p.isWasm64?s.i64(0):s.i32(0);let f=t.getSignature();return f?(this.currentType=f.type.asNullable(),p.isWasm64?s.i64(0):s.i32(0)):this.makeZero(t)}return this.currentType=p.usizeType,this.warning(226,e.range,this.currentType.toString()),p.isWasm64?s.i64(0):s.i32(0)}case 26:return this.currentType=c.bool,s.i32(1);case 14:return this.currentType=c.bool,s.i32(0);case 25:{let p=l.signature.thisType;if(!p&&this.options.hasFeature(65536)){let f=a.lookupLocal(P.this_);if(f||(f=a.lookupLocalInOuter(P.this_)),f&&f.isCaptured&&f.envSlotIndex>=0)return a.set(64),this.currentType=f.type,this.compileClosureLoad(f,e)}if(!p)return this.error(2332,e.range),this.currentType=this.options.usizeType,s.unreachable();if(l.is(524288)&&(a.is(65536)&&this.error(2333,e.range),!(n&32))){let f=l.parent;assert(f.kind==7),this.checkFieldInitialization(f,e)}let _=assert(a.lookupLocal(P.this_));return a.set(64),this.currentType=p,s.local_get(_.index,p.toRef())}case 24:{if(l.is(524288)&&(a.is(65536)?this.error(2336,e.range):a.is(128)||this.error(17011,e.range)),a.isInline){let p=a.lookupLocal(P.this_);if(p){let f=assert(p.type.getClass()).base;if(f)return this.currentType=f.type,s.local_get(p.index,f.type.toRef())}}if(l.is(262144)){let p=assert(l.parent);assert(p.kind==7);let f=p.base;if(f){let d=f.type;return this.currentType=d,s.local_get(0,d.toRef())}}return this.error(2335,e.range),this.currentType=this.options.usizeType,s.unreachable()}}this.maybeCompileEnclosingSource(e);let o=this.currentParent;o||(o=l);let u=this.resolver.lookupIdentifierExpression(e,a,o);if(!u)return this.currentType==c.void&&(this.currentType=c.i32),s.unreachable();switch(u.kind){case 1:{let p=u,_=p.type;if(assert(_!=c.void),this.pendingElements.has(p))return this.error(2448,e.range,p.internalName),this.currentType=_,s.unreachable();if(p.is(33554432))return this.compileInlineConstant(p,t,n);let f=p.index;if(!p.declaredByFlow(a))return p.isCaptured&&p.envSlotIndex>=0?(this.currentType=_,this.compileClosureLoad(p,e)):(this.error(100,e.range,"Closures"),s.unreachable());let d=a.sourceFunction;if(p.isCaptured&&p.envSlotIndex>=0&&d.envLocal)return this.currentType=_,this.compileClosureLoad(p,e);a.isLocalFlag(f,8)||this.error(2454,e.range,p.name),assert(f>=0);let h=a.isLocalFlag(f,4,!1);_.isNullableReference&&h&&(!_.isExternalReference||this.options.hasFeature(1024))?this.currentType=_.nonNullableType:this.currentType=_,p.isCaptured||(p.wasAccessedAsLocal=!0);let g=s.local_get(f,_.toRef());return h&&_.isNullableExternalReference&&this.options.hasFeature(1024)&&(g=s.ref_as_nonnull(g)),g}case 0:{let p=u;if(!this.compileGlobalLazy(p,e))return s.unreachable();let _=p.type;if(this.pendingElements.has(p))return this.error(2448,e.range,p.internalName),this.currentType=_,s.unreachable();if(assert(_!=c.void),p.hasDecorator(512))return this.compileIdentifierExpressionBuiltin(p,e,t);if(p.is(33554432))return this.compileInlineConstant(p,t,n);let f=s.global_get(p.internalName,_.toRef());return p.is(16384)&&_.isReference&&!_.isNullableReference&&(f=this.makeRuntimeNonNullCheck(f,_,e)),this.currentType=_,f}case 3:{let p=u;return u.is(8388608)?(this.currentType=c.i32,p.is(33554432)?(assert(p.constantValueKind==1),s.i32(i64_low(p.constantIntegerValue))):s.global_get(p.internalName,N.I32)):(this.error(2651,e.range),this.currentType=c.i32,s.unreachable())}case 4:{let p=u,_=p.typeParameterNodes;if(_&&_.length!=0){this.error(1140,e.range);break}let f=this.resolver.resolveFunction(p,null,_e(a.contextualTypeArguments));if(!f||!this.compileFunction(f))return s.unreachable();if(f.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),this.currentType=f.type,s.unreachable();if(t.isExternalReference)return this.currentType=c.func,s.ref_func(f.internalName,ns(f.type));let d=this.ensureRuntimeFunction(f);return this.currentType=f.signature.type,this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),s.unreachable()}compileIdentifierExpressionBuiltin(e,t,n){e.hasDecorator(2048)&&this.checkUnsafe(t,e.identifierNode);let s=e.internalName;return assert(mt.has(s)),assert(mt.get(s))(new As(this,e,n,t))}compileInstanceOfExpression(e,t,n){let s=this.currentFlow,a=e.isType;if(a.kind==1){let o=a;if(!(o.isNullable||o.hasTypeArguments)){let u=this.resolver.resolveTypeName(o.name,s,s.sourceFunction,1);if(u&&u.kind==6){let p=u;if(p.is(65536))return this.makeInstanceofClass(e,p)}}}let l=this.resolver.resolveType(e.isType,s,s.sourceFunction,_e(s.contextualTypeArguments));return l?this.makeInstanceofType(e,l):(this.currentType=c.bool,this.module.unreachable())}makeInstanceofType(e,t){let n=this.module,s=this.currentFlow,a=this.compileExpression(e.expression,t),l=this.currentType;if(this.currentType=c.bool,t.isValue)return n.maybeDropCondition(a,n.i32(l==t?1:0));if(l.isValue)return n.maybeDropCondition(a,n.i32(0));let o=l.toRef();if(l.isNullableReference&&!t.isNullableReference){if(l.nonNullableType.isAssignableTo(t))return n.binary(o==N.I64?41:16,a,this.makeZero(l));if(l.nonNullableType.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{this.options.pedantic&&this.pedantic(903,e.range);let p=s.getTempLocal(l).index;return n.if(n.unary(o==N.I64?21:20,n.local_tee(p,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(p,o)],N.I32))}}else{if(l.isAssignableTo(t))return n.maybeDropCondition(a,n.i32(1));if(l.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{let p=s.getTempLocal(l).index;return n.if(n.unary(o==N.I64?21:20,n.local_tee(p,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(p,o)],N.I32))}}return n.maybeDropCondition(a,n.i32(0))}prepareInstanceOf(e){let t=`~instanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,N.I32,null,s.unreachable()),t}finalizeInstanceOf(e,t){let n=this.program,s=this.module,a=this.options.sizeTypeRef,l=new Array;l.push(s.local_set(1,s.load(4,!1,s.binary(a==N.I64?26:1,s.local_get(0,a),s.i32(n.totalOverhead-n.OBJECTInstance.offsetof("rtId"))),N.I32),!1));let o;if(e.isInterface)o=e.implementers;else{o=new Set,o.add(e);let u=e.extenders;if(u)for(let p=Set_values(u),_=0,f=p.length;_<f;++_){let d=p[_];o.add(d)}}if(o)for(let u=Set_values(o),p=0,_=u.length;p<_;++p){let f=u[p];l.push(s.br("is_instance",s.binary(15,s.local_get(1,N.I32),s.i32(f.id))))}l.push(s.return(s.i32(0))),l[0]=s.block("is_instance",l,N.None),l.length=1,l.push(s.i32(1)),s.removeFunction(t),s.addFunction(t,a,N.I32,[N.I32],s.block(null,l,N.I32))}makeInstanceofClass(e,t){let n=this.module,s=this.compileExpression(e.expression,c.auto),a=this.currentType,l=a.toRef();this.currentType=c.bool;let o=a.getClass();if(o){if(o.extendsPrototype(t))return a.isNullableReference?n.binary(l==N.I64?41:16,s,this.makeZero(a)):n.maybeDropCondition(s,n.i32(1));if(t.extends(o.prototype)){let _=this.currentFlow.getTempLocal(a).index;return n.if(n.unary(l==N.I64?21:20,n.local_tee(_,s,a.isManaged)),n.i32(0),n.call(this.prepareAnyInstanceOf(t),[n.local_get(_,l)],N.I32))}}return n.maybeDropCondition(s,n.i32(0))}prepareAnyInstanceOf(e){let t=`~anyinstanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,N.I32,null,s.unreachable()),t}finalizeAnyInstanceOf(e,t){let n=this.module,s=this.options.sizeTypeRef,a=new Array,l=e.instances;if(l){let o=this.program;a.push(n.local_set(1,n.load(4,!1,n.binary(s==N.I64?26:1,n.local_get(0,s),n.i32(o.totalOverhead-o.OBJECTInstance.offsetof("rtId"))),N.I32),!1));let u=new Set;for(let p=Map_values(l),_=0,f=p.length;_<f;++_){let d=p[_];if(d.isInterface){let h=d.implementers;if(h)for(let g=Set_values(h),m=0,T=g.length;m<T;++m){let S=g[m];u.add(S)}}else{u.add(d);let h=d.extenders;if(h)for(let g=Set_values(h),m=0,T=g.length;m<T;++m){let S=g[m];u.add(S)}}}for(let p=Set_values(u),_=0,f=p.length;_<f;++_){let d=p[_];a.push(n.br("is_instance",n.binary(15,n.local_get(1,N.I32),n.i32(d.id))))}}a.push(n.return(n.i32(0))),a[0]=n.block("is_instance",a,N.None),a.length=1,a.push(n.i32(1)),n.removeFunction(t),n.addFunction(t,s,N.I32,[N.I32],n.block(null,a,N.I32))}compileLiteralExpression(e,t,n,s=!1){let a=this.module;switch(e.literalKind){case 5:return assert(!s),this.compileArrayLiteral(e,t,n);case 0:{let l=e.value;return s&&(l=-l),t==c.f32?a.f32(l):(this.currentType=c.f64,a.f64(l))}case 1:{let l=e,o=this.resolver.determineIntegerLiteralType(l,s,t);this.currentType=o;let u=l.value,p=1;switch(s&&(o.isFloatValue?p=-1:u=i64_neg(u)),o.kind){case 5:if(!this.options.isWasm64)return a.i32(i64_low(u));case 4:return a.i64(i64_low(u),i64_high(u));case 10:if(!this.options.isWasm64)return a.i32(i64_low(u));case 9:return a.i64(i64_low(u),i64_high(u));case 11:return a.f32(p*i64_to_f32(u));case 12:return a.f64(p*i64_to_f64(u));default:return a.i32(i64_low(u))}}case 2:return assert(!s),this.compileStringLiteral(e,n);case 3:return assert(!s),this.compileTemplateLiteral(e,n);case 6:return assert(!s),this.compileObjectLiteral(e,t);case 4:return this.error(100,e.range,"Regular expressions"),this.currentType=t,a.unreachable()}return assert(!1),a.unreachable()}compileStringLiteral(e,t){return this.ensureStaticString(e.value)}compileTemplateLiteral(e,t){let n=e.tag,s=e.parts,a=s.length,l=e.expressions,o=l.length;assert(o==a-1);let u=this.module,p=this.program.stringInstance,_=p.type;if(!n){if(a==1)return this.ensureStaticString(s[0]);if(a==2){let Z=l[0],ee=s[0].length,K=s[1].length;if(!ee&&!K)return this.makeToString(this.compileExpression(Z,_),this.currentType,Z);let te=ee!=0;if(te^K!=0){let H,oe,se=this.makeToString(this.compileExpression(Z,_),this.currentType,Z);te?(H=this.ensureStaticString(s[0]),oe=se):(H=se,oe=this.ensureStaticString(s[1]));let Re=assert(p.getMethod("concat"));return this.makeCallDirect(Re,[H,oe],Z)}}if(a==3&&!s[0].length&&!s[1].length&&!s[2].length){let Z=l[0],ee=l[1],K=this.makeToString(this.compileExpression(Z,_),this.currentType,Z),te=this.makeToString(this.compileExpression(ee,_),this.currentType,ee),H=assert(p.getMethod("concat"));return this.makeCallDirect(H,[K,te],e)}let v=new Array(o),F=new Array;s[0].length>0&&F.push(this.ensureStaticString(s[0]));for(let Z=1;Z<a;++Z)v[Z-1]=F.length,F.push(u.usize(0)),s[Z].length>0&&F.push(this.ensureStaticString(s[Z]));let k=assert(this.resolver.resolveClass(this.program.staticArrayPrototype,[_])),R=this.addStaticBuffer(_,F,k.id);this.program.OBJECTInstance.writeField("gcInfo",3,R.buffer,0);let C=i64_add(R.offset,i64_new(this.program.totalOverhead)),D=assert(k.getMethod("join")),U=assert(k.lookupOverload(2,!0)),G=new Array(2*o+1),O=new Array(o),Y=this.currentFlow;for(let Z=0;Z<o;++Z){let ee=l[Z],K=Y.getTempLocal(_);O[Z]=K,G[Z]=u.local_set(K.index,this.makeToString(this.compileExpression(ee,_),this.currentType,ee),!0)}for(let Z=0;Z<o;++Z)G[o+Z]=this.makeCallDirect(U,[u.usize(C),u.i32(v[Z]),u.local_get(O[Z].index,_.toRef())],e);return G[2*o]=this.makeCallDirect(D,[u.usize(C),this.ensureStaticString("")],e),u.flatten(G,_.toRef())}let f=this.program.templateStringsArrayInstance,d=f,h=this.resolver.lookupExpression(n,this.currentFlow,c.auto,1);if(h)switch(h.kind){case 4:{let v=this.resolver.resolveFunction(h,null,new Map,1);if(!v)break;h=v}case 5:{let F=h.signature.parameterTypes;if(F.length){let k=F[0].getClass();k&&!k.extendsPrototype(f.prototype)&&(d=assert(this.resolver.resolveClass(this.program.arrayPrototype,[_])))}break}}let g=e.rawParts;assert(g.length==a);let m=new Array(a);for(let v=0;v<a;++v)m[v]=this.ensureStaticString(s[v]);let T;if(d==f){let v=new Array(a);for(let k=0;k<a;++k)v[k]=this.ensureStaticString(g[k]);T=this.addStaticArrayHeader(_,this.addStaticBuffer(this.options.usizeType,m),d);let F=this.addStaticArrayHeader(_,this.addStaticBuffer(this.options.usizeType,v));d.writeField("raw",i64_add(F.offset,i64_new(this.program.totalOverhead)),T.buffer)}else T=this.addStaticArrayHeader(_,this.addStaticBuffer(this.options.usizeType,m),d);let S=l.slice();return S.unshift(z.createCompiledExpression(u.usize(i64_add(T.offset,i64_new(this.program.totalOverhead))),d.type,fe.native.range)),this.error(100,e.range,"Tagged template literals"),this.compileCallExpressionLike(n,null,S,e.range,_)}compileArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=t.getClass();if(o&&o.extendsPrototype(l.staticArrayPrototype))return this.compileStaticArrayLiteral(e,t,n);let u=this.resolver.lookupExpression(e,a,this.currentType);if(!u)return s.unreachable();assert(u.kind==7);let p=u,_=p.type,f=p.getTypeArgumentsTo(l.arrayPrototype)[0],d=a.getTempLocal(this.options.usizeType),h=e.elementExpressions,g=h.length,m=new Array(g),T=!f.isExternalReference;for(let C=0;C<g;++C){let D=h[C];if(D.kind!=20){let U=this.compileExpression(D,f,1);if(le(U)!=f.toRef())T=!1;else{let G=s.runExpression(U,1);G?U=G:T=!1}m[C]=U}else m[C]=this.makeZero(f)}if(T){let C=l.totalOverhead,D=this.addStaticBuffer(f,m),U=i64_add(D.offset,i64_new(C));if(n&16){let G=this.addStaticArrayHeader(f,D),O=i64_add(G.offset,i64_new(C));return this.currentType=_,l.options.isWasm64?this.module.i64(i64_low(O),i64_high(O)):this.module.i32(i64_low(O))}else return this.makeNewArray(p,g,U,e)}let S=p.lookupOverload(2,!0);if(!S)return this.error(2542,e.range,p.internalName),this.currentType=_,s.unreachable();let v=_.toRef(),F=new Array;F.push(s.local_set(d.index,this.makeNewArray(p,g,i64_new(0),e),_.isManaged));let k=assert(p.getMember("dataStart"));assert(k.kind==10);let R=k.instance;if(!R)return s.unreachable();assert(R.isField&&R.memoryOffset>=0);for(let C=0;C<g;++C)F.push(s.call(S.internalName,[s.local_get(d.index,v),s.i32(C),m[C]],N.None));return F.push(s.local_get(d.index,v)),g&&this.compileFunction(S),this.currentType=_,s.flatten(F,v)}makeNewArray(e,t,n,s){let a=this.program,l=this.module;assert(!e.extendsPrototype(a.staticArrayPrototype));let o=e.getArrayValueType(),u=this.makeCallDirect(a.newArrayInstance,[l.i32(t),a.options.isWasm64?l.i64(o.alignLog2):l.i32(o.alignLog2),l.i32(e.id),a.options.isWasm64?l.i64(i64_low(n),i64_high(n)):l.i32(i64_low(n))],s);return this.currentType=e.type,u}compileStaticArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=assert(t.getClass()),u=o.type,_=assert(o.getTypeArgumentsTo(l.staticArrayPrototype))[0],f=a.getTempLocal(this.options.usizeType),d=e.elementExpressions,h=d.length,g=new Array(h),m=!_.isExternalReference;for(let R=0;R<h;++R){let C=d[R];if(C.kind!=20){let D=this.compileExpression(C,_,1),U=s.runExpression(D,1);U?D=U:m=!1,g[R]=D}else g[R]=this.makeZero(_)}let T=this.options.isWasm64,S=g.length<<_.alignLog2;if(m){let R=this.addStaticBuffer(_,g,o.id),C=i64_add(R.offset,i64_new(l.totalOverhead));if(n&16){let D=this.options.isWasm64?s.i64(i64_low(C),i64_high(C)):s.i32(i64_low(C));return this.currentType=u,D}else{let D=this.makeCallDirect(l.newBufferInstance,[T?s.i64(S):s.i32(S),s.i32(o.id),T?s.i64(i64_low(C),i64_high(C)):s.i32(i64_low(C))],e);return this.currentType=u,D}}let v=o.lookupOverload(2,!0);if(!v)return this.error(2542,e.range,o.internalName),this.currentType=u,s.unreachable();let F=u.toRef(),k=new Array;k.push(s.local_set(f.index,this.makeCallDirect(l.newBufferInstance,[T?s.i64(S):s.i32(S),s.i32(o.id)],e),u.isManaged));for(let R=0;R<h;++R)k.push(s.call(v.internalName,[s.local_get(f.index,F),s.i32(R),g[R]],N.None));return k.push(s.local_get(f.index,F)),h&&this.compileFunction(v),this.currentType=u,s.flatten(k,F)}compileObjectLiteral(e,t){let n=this.module,s=t.getClass();if(!s)return this.error(2322,e.range,"<object>",t.toString()),n.unreachable();let a=s.type;if(this.currentType=a.nonNullableType,s.kind==9)return this.error(100,e.range,"Interface hidden classes"),n.unreachable();if(s.is(128))return this.error(2511,e.range),n.unreachable();let l=s.prototype.constructorPrototype;if(l)return this.errorRelated(216,e.range,l.identifierNode.range,a.toString()),n.unreachable();a.isManaged||this.checkUnsafe(e,Ue(6,s.decoratorNodes));let u=e.names,p=u.length,_=e.values,f=s.members,d=!1,h=new Array,m=this.currentFlow.getTempLocal(a),T=a.toRef();assert(p==_.length);let S=new Set;if(f)for(let k=Map_keys(f),R=0,C=k.length;R<C;++R){let D=k[R],U=assert(f.get(D));if(U&&U.kind==10){let G=U.instance;G&&G.isField&&S.add(G)}}let v=new Array;for(let k=0;k<p;++k){let R=u[k].text,C=s.getMember(R);if(!C||C.kind!=10){this.error(2339,u[k].range,R,a.toString()),d=!0;continue}if(C.is(512)){this.error(2341,u[k].range,R,a.toString()),d=!0;continue}if(C.is(1024)){this.error(2445,u[k].range,R,a.toString()),d=!0;continue}let D=this.resolver.resolveProperty(C);if(!D)continue;let U=D.setterInstance;if(!U){this.error(2540,u[k].range,R,a.toString()),d=!0;continue}if(S.delete(D),!D.isField){v.push(D);continue}let G=D.type,O=this.makeCallDirect(U,[n.local_get(m.index,T),this.compileExpression(_[k],G,1)],U.identifierNode,!0);this.currentType!=c.void&&(O=n.drop(O)),h.push(O)}for(let k=0,R=v.length;k<R;++k){let C=v[k],D=assert(C.setterInstance);h.push(this.makeCallDirect(D,[n.local_get(m.index,T),this.compileExpression(_[k],C.type,1)],D.identifierNode))}if(this.currentType=a.nonNullableType,d)return n.unreachable();for(let k=Set_values(S),R=0,C=k.length;R<C;++R){let D=k[R];assert(D.isField);let U=D.type;if(!D.initializerNode){if(U.isReference&&!U.isNullableReference){this.error(2741,e.range,D.name,"<object>",a.toString()),d=!0;continue}switch(U.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:{h.push(n.store(U.byteSize,n.local_get(m.index,T),this.makeZero(U),U.toRef(),D.memoryOffset));continue}}this.error(2741,e.range,D.name,"<object>",a.toString()),d=!0}}if(d)return n.unreachable();let F=this.ensureConstructor(s,e);return h.unshift(n.local_set(m.index,this.compileInstantiate(F,[],0,e),a.isManaged)),h.push(n.local_get(m.index,T)),this.currentType=a.nonNullableType,n.flatten(h,T)}compileNewExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.resolver.resolveTypeName(e.typeName,a,a.sourceFunction);if(!l)return s.unreachable();if(l.kind!=6)return this.error(2351,e.typeName.range),this.module.unreachable();if(l.is(128))return this.error(2511,e.typeName.range),this.module.unreachable();let o=l,u=null,p=e.typeArguments,_;if(!p&&(_=t.classReference)&&_.prototype==o&&_.is(65536)?u=this.resolver.resolveClass(o,_.typeArguments,_e(a.contextualTypeArguments)):u=this.resolver.resolveClassInclTypeArguments(o,p,a,a.sourceFunction.parent,_e(a.contextualTypeArguments),e),!u)return s.unreachable();t==c.void&&(n|=8);let f=this.ensureConstructor(u,e);return f.hasDecorator(64)||this.checkFieldInitialization(u,e),this.compileInstantiate(f,e.args,n,e)}ensureConstructor(e,t){let n=e.constructorInstance;if(n){if(n.is(8388608))return n;n.hasDecorator(64)||this.compileFunction(n)}else{let s=e.base,a=_e(e.contextualTypeArguments);if(s){let v=this.ensureConstructor(s,t);this.checkFieldInitialization(s,t),n=new St(P.constructor,new tt(P.constructor,e,v.declaration.clone()),null,Xe.create(this.program,v.signature.parameterTypes,e.type,e.type,v.signature.requiredParameters,v.signature.hasRest),a)}else n=new St(P.constructor,new tt(P.constructor,e,this.program.makeNativeFunctionDeclaration(P.constructor,786432)),null,Xe.create(this.program,[],e.type,e.type),a);n.set(8388608),n.prototype.setResolvedInstance("",n),e.is(1048576)&&n.set(1048576),e.constructorInstance=n;let l=e.members;l||(e.members=l=new Map),l.set(P.constructor,n.prototype);let o=this.currentFlow,u=n.flow;this.currentFlow=u;let p=n.signature,_=this.module,f=this.options.sizeTypeRef,d=new Array;if(d.push(this.makeConditionalAllocation(e,0)),s){let v=p.parameterTypes,F=v.length,k=new Array(1+F);k[0]=_.local_get(0,f);for(let R=1;R<=F;++R)k[R]=_.local_get(R,v[R-1].toRef());d.push(_.local_set(0,this.makeCallDirect(assert(s.constructorInstance),k,t,!1),s.type.isManaged))}this.makeFieldInitializationInConstructor(e,d),d.push(_.local_get(0,f)),this.currentFlow=o;let h=n.localsByIndex,g=new Array,m=1+p.parameterTypes.length,T=h.length;if(T>m)for(let v=m;v<T;++v)g.push(h[v].type.toRef());let S=_.addFunction(n.internalName,p.paramRefs,p.resultRefs,g,_.flatten(d,f));n.finalize(_,S)}return n}checkFieldInitialization(e,t=null){if(e.didCheckFieldInitialization)return;e.didCheckFieldInitialization=!0;let n=assert(e.constructorInstance);this.checkFieldInitializationInFlow(e,n.flow,t)}checkFieldInitializationInFlow(e,t,n=null){let s=e.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind!=10||u.parent!=e)continue;let p=u.instance;!p||!p.isField||(!p.initializerNode&&!t.isThisFieldFlag(p,1)?p.is(16384)||(n?this.errorRelated(2564,p.declaration.name.range,n.range,p.internalName):this.error(2564,p.declaration.name.range,p.internalName)):p.is(16384)&&(p.type.isReference?this.warning(233,p.identifierNode.range,p.internalName):this.pedantic(906,p.identifierNode.range)))}}compileInstantiate(e,t,n,s){assert(e.is(524288));let a=e.parent;assert(a.kind==7);let l=a;(l.type.isUnmanaged||e.hasDecorator(2048))&&this.checkUnsafe(s);let o=this.compileCallDirect(e,t,s,this.makeZero(this.options.usizeType),n);return le(o)!=N.None&&(this.currentType=l.type),o}compilePropertyAccessExpression(e,t,n){let s=this.module,a=this.currentFlow;this.maybeCompileEnclosingSource(e);let l=this.resolver,o=l.lookupExpression(e,a,t);if(!o)return s.unreachable();let u=l.currentThisExpression;switch(o.hasDecorator(2048)&&this.checkUnsafe(e),o.kind){case 0:{let p=o;if(!this.compileGlobalLazy(p,e))return s.unreachable();let _=p.type;if(assert(_!=c.void),this.pendingElements.has(p))return this.error(2448,e.range,p.internalName),this.currentType=_,s.unreachable();if(p.is(33554432))return this.compileInlineConstant(p,t,n);let f=s.global_get(p.internalName,_.toRef());return p.is(16384)&&_.isReference&&!_.isNullableReference&&(f=this.makeRuntimeNonNullCheck(f,_,e)),this.currentType=_,f}case 3:{let p=o,_=assert(p.parent);assert(_.kind==2);let f=_;return this.compileEnum(f)?(this.currentType=c.i32,p.is(33554432)?(assert(p.constantValueKind==1),this.compileInlineConstant(p,t,n)):(assert(p.type==c.i32),s.global_get(p.internalName,N.I32))):(this.currentType=c.i32,this.module.unreachable())}case 10:{let p=o,_=this.resolver.resolveProperty(p);if(!_)return s.unreachable();o=_}case 11:{let p=o;p.isField&&a.sourceFunction.is(524288)&&assert(u).kind==25&&!a.isThisFieldFlag(p,1)&&!p.is(16384)&&this.errorRelated(2565,e.range,p.identifierNode.range,p.internalName);let _=p.getterInstance;if(!_)return s.unreachable();let f=0;return _.is(262144)&&(f=this.compileExpression(assert(u),assert(_.signature.thisType),33)),this.compileCallDirect(_,[],e,f)}case 4:{let p=o,_=p.typeParameterNodes;if(_&&_.length!=0){this.error(1140,e.range);break}let f=this.resolver.resolveFunction(p,null);if(!f||!this.compileFunction(f))return s.unreachable();if(this.currentType=f.type,f.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),s.unreachable();let d=this.ensureRuntimeFunction(f);return this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),this.module.unreachable()}compileTernaryExpression(e,t,n){let s=this.module,a=e.ifThen,l=e.ifElse,o=this.compileExpression(e.condition,c.bool),u=this.makeIsTrueish(o,this.currentType,e.condition),p=this.evaluateCondition(u);if(p==1)return s.maybeDropCondition(u,this.compileExpression(a,t));if(p==2)return s.maybeDropCondition(u,this.compileExpression(l,t));let _=this.currentFlow,f=_.forkThen(o);this.currentFlow=f;let d=this.compileExpression(a,t),h=this.currentType,g=_.forkElse(o);this.currentFlow=g;let m=this.compileExpression(l,t==c.auto?h:t),T=this.currentType;if(t==c.void)h!=c.void&&(d=s.drop(d),h=c.void),T!=c.void&&(m=s.drop(m),T=c.void),this.currentType=c.void;else{let S=c.commonType(h,T,t);if(!S)return this.error(2322,l.range,T.toString(),h.toString()),this.currentType=t,s.unreachable();d=this.convertExpression(d,h,S,!1,a),h=S,m=this.convertExpression(m,T,S,!1,l),T=S,this.currentType=S}return _.inheritAlternatives(f,g),this.currentFlow=_,s.if(u,d,m)}compileUnaryPostfixExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.compileExpression(e.operand,t.exceptVoid,0),o,u=null;t!=c.void?(u=a.getTempLocal(this.currentType),o=s.local_tee(u.index,l,this.currentType.isManaged)):o=l;let p;switch(e.operator){case 87:{let g=this.currentType.getClassOrWrapper(this.program);if(g){let m=g.lookupOverload(29);if(m){let T=m.is(262144);if(u&&!T&&(o=l,u=null),p=this.compileUnaryOverload(m,e.operand,o,e),T)break;return p}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{p=s.binary(0,o,s.i32(1));break}case 4:case 9:{p=s.binary(25,o,s.i64(1));break}case 5:case 10:{p=s.binary(217,o,this.makeOne(this.currentType));break}case 11:{p=s.binary(50,o,s.f32(1));break}case 12:{p=s.binary(63,o,s.f64(1));break}default:return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable()}break}case 88:{let g=this.currentType.getClassOrWrapper(this.program);if(g){let m=g.lookupOverload(30);if(m){let T=m.is(262144);if(u&&!T&&(o=l,u=null),p=this.compileUnaryOverload(m,e.operand,o,e),T)break;return p}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{p=s.binary(1,o,s.i32(1));break}case 4:case 9:{p=s.binary(26,o,s.i64(1));break}case 5:case 10:{p=s.binary(218,o,this.makeOne(this.currentType));break}case 11:{p=s.binary(51,o,s.f32(1));break}case 12:{p=s.binary(64,o,s.f64(1));break}default:return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable()}break}default:return assert(!1),s.unreachable()}let _=this.resolver,f=_.lookupExpression(e.operand,a);if(!f)return s.unreachable();if(!u)return this.makeAssignment(f,p,this.currentType,e.operand,_.currentThisExpression,_.currentElementExpression,!1);let d=this.makeAssignment(f,p,this.currentType,e.operand,_.currentThisExpression,_.currentElementExpression,!1);this.currentType=u.type;let h=u.type.toRef();return s.block(null,[d,s.local_get(u.index,h)],h)}compileUnaryPrefixExpression(e,t,n){let s=this.module,a=!1,l;switch(e.operator){case 81:{l=this.compileExpression(e.operand,t.exceptVoid,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(23);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"+",this.currentType.toString()),s.unreachable();break}case 82:{let p=e.operand;if(p.isNumericLiteral){l=this.compileLiteralExpression(p,t,0,!0),this.options.sourceMap&&this.addDebugLocation(l,e.range);break}l=this.compileExpression(e.operand,t.exceptVoid,0);let _=this.currentType.getClassOrWrapper(this.program);if(_){let f=_.lookupOverload(24);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"-",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,s.i32(0),l);break}case 4:case 9:{l=s.binary(26,s.i64(0),l);break}case 5:case 10:{l=s.binary(218,this.makeZero(this.currentType),l);break}case 11:{l=s.unary(6,l);break}case 12:{l=s.unary(7,l);break}default:this.error(2469,e.range,"-",this.currentType.toString()),l=s.unreachable()}break}case 87:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(27);if(_){if(l=this.compileUnaryOverload(_,e.operand,l,e),_.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(0,l,this.module.i32(1));break}case 4:case 9:{l=s.binary(25,l,s.i64(1));break}case 5:case 10:{l=s.binary(217,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(50,l,s.f32(1));break}case 12:{l=s.binary(63,l,s.f64(1));break}default:this.error(2469,e.range,"++",this.currentType.toString()),l=s.unreachable()}break}case 88:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(28);if(_){if(l=this.compileUnaryOverload(_,e.operand,l,e),_.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,l,s.i32(1));break}case 4:case 9:{l=s.binary(26,l,s.i64(1));break}case 5:case 10:{l=s.binary(218,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(51,l,s.f32(1));break}case 12:{l=s.binary(64,l,s.f64(1));break}default:this.error(2469,e.range,"--",this.currentType.toString()),l=s.unreachable()}break}case 95:{l=this.compileExpression(e.operand,t.exceptVoid,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(25);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}l=s.unary(20,this.makeIsTrueish(l,this.currentType,e.operand)),this.currentType=c.bool;break}case 96:{l=this.compileExpression(e.operand,t==c.void?c.i32:t.isFloatValue?c.i64:t,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(26);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"~",this.currentType.toString()),s.unreachable();switch(l=this.convertExpression(l,this.currentType,this.currentType.intType,!1,e.operand),this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(9,l,s.i32(-1));break}case 4:case 9:{l=s.binary(34,l,s.i64(-1,-1));break}case 5:case 10:{l=s.binary(226,l,this.makeNegOne(this.currentType));break}default:this.error(2469,e.range,"~",this.currentType.toString()),l=s.unreachable()}break}case 56:return this.compileTypeof(e,t,n);case 69:return this.error(100,e.range,"Spread operator"),s.unreachable();default:return assert(!1),s.unreachable()}if(!a)return l;let o=this.resolver,u=o.lookupExpression(e.operand,this.currentFlow);return u?this.makeAssignment(u,l,this.currentType,e.operand,o.currentThisExpression,o.currentElementExpression,t!=c.void):s.unreachable()}compileTypeof(e,t,n){let s=e.operand,a=0,l=this.program.stringInstance,o;if(s.kind==19)o="object";else{let u=this.resolver.lookupExpression(s,this.currentFlow,c.auto,1);if(u)switch(u.kind){case 6:case 12:case 2:{o="object";break}case 4:{o="function";break}default:{a=this.compileExpression(s,c.auto);let p=this.currentType;if(a=this.convertExpression(a,p,c.void,!0,s),p.isReference)if(p.getSignature())o="function";else{let f=p.getClass();f?f.prototype==l.prototype?o="string":o="object":o="externref"}else p==c.bool?o="boolean":p.isNumericValue?o="number":o="undefined";break}}else{switch(s.kind){case 7:break;case 22:case 13:if(s=(s.kind==22,s.expression),!this.resolver.resolveExpression(s,this.currentFlow,c.auto,0))return this.currentType=l.type,this.module.unreachable();default:a=this.compileExpression(s,c.auto),a=this.convertExpression(a,this.currentType,c.void,!0,s)}o="undefined"}}return this.currentType=l.type,a?this.module.block(null,[a,this.ensureStaticString(o)],this.options.sizeTypeRef):this.ensureStaticString(o)}ensureSmallIntegerWrap(e,t){let n=this.module,s=this.currentFlow;switch(t.kind){case 0:{s.canOverflow(e,t)&&(e=n.binary(16,e,n.i32(0)));break}case 1:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(47,e):n.binary(11,n.binary(10,e,n.i32(24)),n.i32(24)));break}case 2:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(48,e):n.binary(11,n.binary(10,e,n.i32(16)),n.i32(16)));break}case 6:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(255)));break}case 7:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(65535)));break}}return e}addDebugLocation(e,t){let n=this.currentFlow.targetFunction,s=t.source;s.debugInfoIndex<0&&(s.debugInfoIndex=this.module.addDebugInfoFile(s.normalizedPath)),n.debugLocations.set(e,t)}checkSignatureSupported(e,t){let n=!0,s=t.explicitThisType;s&&(this.program.checkTypeSupported(assert(e.thisType),s)||(n=!1));let a=e.parameterTypes,l=t.parameters;for(let o=0,u=a.length;o<u;++o){let p;l.length>o?p=l[o]:p=t,this.program.checkTypeSupported(a[o],p)||(n=!1)}return this.program.checkTypeSupported(e.returnType,t.returnType)||(n=!1),n}evaluateCondition(e){let t=le(e);if(t==N.Unreachable)return 0;assert(t==N.I32);let s=this.module.runExpression(e,0);return s?ne(s)?1:2:0}makeZero(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(0);case 5:case 10:if(e.size!=64)return t.i32(0);case 4:case 9:return t.i64(0);case 11:return t.f32(0);case 12:return t.f64(0);case 13:return t.v128(zc);case 15:case 14:case 16:case 17:case 18:case 19:case 21:case 22:case 23:case 24:return e.is(512)?t.ref_null(e.toRef()):(assert(!1),t.unreachable());case 20:return e.is(512)?t.ref_null(e.toRef()):t.i31_new(t.i32(0))}}makeOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(1);case 5:case 10:if(e.size!=64)return t.i32(1);case 4:case 9:return t.i64(1);case 11:return t.f32(1);case 12:return t.f64(1);case 20:return t.i31_new(t.i32(1))}}makeNegOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(-1);case 5:case 10:if(e.size!=64)return t.i32(-1);case 4:case 9:return t.i64(-1,-1);case 11:return t.f32(-1);case 12:return t.f64(-1);case 13:return t.v128(Uc);case 20:return t.i31_new(t.i32(-1))}}makeIsTrueish(e,t,n){let s=this.module;switch(t.kind){case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,t);case 0:case 3:case 8:return e;case 4:case 9:return s.binary(41,e,s.i64(0));case 5:case 10:return t.size==64?s.binary(41,e,s.i64(0)):e;case 11:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(53,s.unary(10,s.unary(8,e))))):s.binary(20,s.binary(1,s.binary(10,s.unary(33,e),s.i32(1)),s.i32(2)),s.i32(4278190078))}case 12:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(55,s.unary(11,s.unary(9,e))))):s.binary(45,s.binary(26,s.binary(35,s.unary(34,e),s.i64(1)),s.i64(2)),s.i64(4294967294,4292870143))}case 13:return s.unary(67,e);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return s.unary(20,s.ref_is_null(e));case 25:default:return this.error(1345,n.range,t.toString()),s.i32(0)}}makeToString(e,t,n){let s=this.module,a=this.program.stringInstance.type;if(t==a)return e;let l=t.getClassOrWrapper(this.program);if(l){let o=l.getMethod("toString");if(o){let u=o.signature;if(!this.checkCallSignature(u,0,!0,n))return this.currentType=a,s.unreachable();if(!t.isStrictlyAssignableTo(assert(u.thisType))){if(!t.is(512))return this.errorRelated(2685,n.range,o.identifierAndSignatureRange),this.currentType=a,s.unreachable();let _=this.currentFlow.getTempLocal(t);return s.if(s.local_tee(_.index,e,t.isManaged),this.makeToString(s.local_get(_.index,t.toRef()),t.nonNullableType,n),this.ensureStaticString("null"))}let p=u.returnType;return p.isStrictlyAssignableTo(a)?this.makeCallDirect(o,[e],n):(this.errorRelated(2322,n.range,o.identifierAndSignatureRange,p.toString(),a.toString()),this.currentType=a,s.unreachable())}}return this.error(2322,n.range,t.toString(),a.toString()),this.currentType=a,s.unreachable()}makeAllocation(e){let t=this.program;assert(e.program==t);let n=this.module,s=this.options;if(this.currentType=e.type,e.hasDecorator(16)){let a=t.allocInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset)],s.sizeTypeRef)}else{let a=t.newInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset),n.i32(e.id)],s.sizeTypeRef)}}makeConditionalAllocation(e,t){let n=this.module,a=e.type.toRef();return assert(a==this.options.sizeTypeRef),n.if(n.unary(a==N.I64?21:20,n.local_get(t,a)),n.local_set(t,this.makeAllocation(e),e.type.isManaged))}makeFieldInitializationInConstructor(e,t=[]){let n=e.members;if(!n)return t;let s=this.module,a=this.currentFlow,l=a.isInline,o=l?a.lookupLocal(P.this_).index:0,u=this.options.sizeTypeRef,p=null;for(let _=Map_values(n),f=0,d=_.length;f<d;++f){let h=unchecked(_[f]);if(h.kind!=10)continue;let g=h.instance;if(!g||!g.isField||g.getBoundClassOrInterface()!=e)continue;assert(!g.isAny(8));let m=g.prototype,T=m.parameterIndex;if(T<0){p||(p=new Array),p.push(g);continue}let v=g.type.toRef();assert(!m.initializerNode);let F=assert(g.setterInstance),k=this.makeCallDirect(F,[s.local_get(o,u),s.local_get(l?a.lookupLocal(g.name).index:1+T,v)],F.identifierNode,!0);this.currentType!=c.void&&(k=s.drop(k)),t.push(k)}if(p)for(let _=0,f=p.length;_<f;++_){let d=unchecked(p[_]),h=d.type,g=d.prototype,m=g.initializerNode;assert(g.parameterIndex<0);let T=assert(d.setterInstance),S=this.makeCallDirect(T,[s.local_get(o,u),m?this.compileExpression(m,h,1):this.makeZero(h)],d.identifierNode,!0);this.currentType!=c.void&&(S=s.drop(S)),t.push(S)}return this.currentType=c.void,t}makeAbort(e,t){let n=this.program,s=n.abortInstance;if(!s||!this.compileFunction(s))return this.module.unreachable();let a=n.stringInstance,l;return e?l=this.compileExpression(e,a.type,1):l=this.makeZero(a.type),this.makeStaticAbort(l,t)}makeStaticAbort(e,t){let n=this.program,s=this.module,a=n.abortInstance;if(!a||!this.compileFunction(a))return s.unreachable();let l=this.ensureStaticString(t.range.source.normalizedPath),o=t.range,u=o.source;return s.block(null,[s.call(a.internalName,[e,l,s.i32(u.lineAt(o.start)),s.i32(u.columnAt())],N.None),s.unreachable()])}makeRuntimeNonNullCheck(e,t,n){let s=this.module,a=this.currentFlow,o=a.getTempLocal(t).index;a.canOverflow(e,t)||a.setLocalFlag(o,2),a.setLocalFlag(o,4);let u=this.makeStaticAbort(this.ensureStaticString("Unexpected 'null' (not assigned or failed cast)"),n);if(t.isExternalReference){let p=s.local_get(o,t.toRef());this.options.hasFeature(1024)&&(p=s.ref_as_nonnull(p)),e=s.if(s.ref_is_null(s.local_tee(o,e,!1)),u,p)}else e=s.if(s.local_tee(o,e,t.isManaged),s.local_get(o,t.toRef()),u);return this.currentType=t.nonNullableType,e}makeRuntimeDowncastCheck(e,t,n,s){assert(n.isReference&&n.nonNullableType.isAssignableTo(t));let a=this.module,l=this.currentFlow,u=l.getTempLocal(t).index,p=this.makeStaticAbort(this.ensureStaticString("invalid downcast"),s);return!n.isNullableReference||l.isNonnull(e,t)?e=a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_tee(u,e,t.isManaged)],N.I32),a.local_get(u,t.toRef()),p):e=a.if(a.unary(20,a.local_tee(u,e,t.isManaged)),a.usize(0),a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_get(u,t.toRef())],N.I32),a.local_get(u,t.toRef()),p)),this.currentType=n,e}};function Tb(r,i){si=i.range.source.simplePath,xr=Ne(r.name,r.parent,r.is(262144),!0);let e=i.overriddenModuleName;if(e&&(si=e),!r.hasDecorator(128))return;let t=r.program,n=assert(Ue(9,i.decorators)),s=n.args;if(s&&s.length>0){let a=s[0];a.isLiteralKind(2)?(xr=a.value,s.length>=2&&(a=s[1],a.isLiteralKind(2)?(si=xr,xr=a.value,s.length>2&&t.error(2554,n.range,"2",s.length.toString())):t.error(1141,a.range))):t.error(1141,a.range)}else t.error(2555,n.range,"1","0")}var tn=class r extends Hi{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.seenObjectTypes=new Map;this.deferredTypings=new Array;this.esm=t}static build(e,t=!0){return new r(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type,a=this.toTypeScriptType(s,1);W(n,this.indentLevel),n.push("/** "),n.push(t.internalName),n.push(` */
|
|
300
|
+
`}var si="",xr="",Eo=15,Ws=class{constructor(){this.target=1;this.targetMode=null;this.runtime=2;this.debugInfo=!1;this.noAssert=!1;this.exportMemory=!0;this.importMemory=!1;this.initialMemory=0;this.maximumMemory=0;this.sharedMemory=!1;this.zeroFilledMemory=!1;this.importTable=!1;this.exportTable=!1;this.sourceMap=!1;this.uncheckedBehavior=0;this.exportStart=null;this.memoryBase=0;this.tableBase=0;this.globalAliases=null;this.features=Eo;this.noUnsafe=!1;this.pedantic=!1;this.lowMemoryLimit=0;this.exportRuntime=!1;this.stackSize=0;this.bundleMajorVersion=0;this.bundleMinorVersion=0;this.bundlePatchVersion=0;this.optimizeLevelHint=0;this.shrinkLevelHint=0;this.basenameHint="output";this.bindingsHint=!1}get isWasm64(){return this.target==2}get usizeType(){return this.target==2?c.usize64:c.usize32}get isizeType(){return this.target==2?c.isize64:c.isize32}get sizeTypeRef(){return this.target==2?N.I64:N.I32}get willOptimize(){return this.optimizeLevelHint>0||this.shrinkLevelHint>0}setFeature(i,e=!0){e?(i&32768&&(i|=1056),i&16384&&(i|=1024),i&1024&&(i|=256),i&4096&&(i|=16),this.features|=i):(i&256&&(i|=1024),i&1024&&(i|=16384),i&16&&(i|=4096),i&1056&&(i|=32768),this.features&=~i)}hasFeature(i){return(this.features&i)!=0}},to=(t=>(t[t.Default=0]="Default",t[t.Never=1]="Never",t[t.Always=2]="Always",t))(to||{}),b_=(l=>(l[l.None=0]="None",l[l.ConvImplicit=1]="ConvImplicit",l[l.ConvExplicit=2]="ConvExplicit",l[l.MustWrap=4]="MustWrap",l[l.WillDrop=8]="WillDrop",l[l.PreferStatic=16]="PreferStatic",l[l.IsThis=32]="IsThis",l))(b_||{}),x_=(o=>(o[o.None=0]="None",o[o.Data=1]="Data",o[o.Stack=2]="Stack",o[o.Heap=4]="Heap",o[o.Rtti=8]="Rtti",o[o.visitGlobals=16]="visitGlobals",o[o.visitMembers=32]="visitMembers",o[o.setArgumentsLength=64]="setArgumentsLength",o))(x_||{}),en;(t=>(t.DefaultNamespace="env",t.Memory="memory",t.Table="table"))(en||={});var qs;(n=>(n.Memory="memory",n.Table="table",n.argumentsLength="__argumentsLength",n.setArgumentsLength="__setArgumentsLength"))(qs||={});var Ji=["__new","__pin","__unpin","__collect"],Zi=["__rtti_base"],js=class r extends Je{constructor(e){super(e.diagnostics);this.currentParent=null;this.currentType=c.void;this.memorySegments=[];this.stringSegments=new Map;this.staticGcObjectOffsets=new Map;this.functionTable=[];this.builtinArgumentsLength=0;this.closureEnvironmentGlobal=0;this.runtimeFeatures=0;this.inlineStack=[];this.lazyFunctions=new Set;this.pendingInstanceOf=new Map;this.overrideStubs=new Set;this.pendingElements=new Set;this.doneModuleExports=new Set;this.hasCustomFunctionExports=!1;this.desiresExportRuntime=!1;this.exceptionTagEnsured=!1;this.f32ModInstance=null;this.f64ModInstance=null;this.f32PowInstance=null;this.f64PowInstance=null;this.i32PowInstance=null;this.i64PowInstance=null;this._reusableCallExpression=null;this.program=e;let t=e.module,n=e.options;n.memoryBase?(this.memoryOffset=i64_new(n.memoryBase),t.setLowMemoryUnused(!1)):!n.lowMemoryLimit&&n.optimizeLevelHint>=2?(this.memoryOffset=i64_new(1024),t.setLowMemoryUnused(!0)):(this.memoryOffset=i64_new(8),t.setLowMemoryUnused(!1));let s=0;n.hasFeature(1)&&(s|=32),n.hasFeature(2)&&(s|=2),n.hasFeature(4)&&(s|=4),n.hasFeature(8)&&(s|=16),n.hasFeature(16)&&(s|=8),n.hasFeature(32)&&(s|=1),n.hasFeature(64)&&(s|=64),n.hasFeature(128)&&(s|=128),n.hasFeature(256)&&(s|=256),n.hasFeature(512)&&(s|=512),n.hasFeature(1024)&&(s|=1024),n.hasFeature(2048)&&(s|=2048),n.hasFeature(4096)&&(s|=4096),n.hasFeature(8192)&&(s|=8192),n.hasFeature(16384)&&(s|=16384),n.hasFeature(32768)&&(s|=131072),t.setFeatures(s);let a=e.makeNativeFunction(y.start,Xe.create(e,[],c.void));a.internalName=y.start,this.currentFlow=a.flow,this.currentBody=new Array,this.shadowStack=new Vs(this)}get module(){return this.program.module}get options(){return this.program.options}get resolver(){return this.program.resolver}static compile(e){return new r(e).compile()}compile(){let e=this.options,t=this.module,n=this.program,s=this.resolver,a=e.stackSize>0;this.initDummyMemory(),this.program.initialize(),t.setClosedWorld(!0);let l=this.currentFlow.targetFunction;assert(l.internalName==y.start);let o=this.currentBody;assert(o.length==0);let u=n.filesByName;for(let k=Map_values(u),R=0,C=k.length;R<C;++R){let D=unchecked(k[R]);D.source.sourceKind==1&&(this.compileFile(D),this.compileModuleExports(D))}if((this.options.exportRuntime||this.options.bindingsHint&&this.desiresExportRuntime)&&this.options.runtime!=3){for(let k=0,R=Ji.length;k<R;++k){let C=Ji[k],D=n.requireFunction(C);this.compileFunction(D)&&!t.hasExport(C)&&t.addFunctionExport(D.internalName,C)}for(let k=0,R=Zi.length;k<R;++k){let C=Zi[k],D=n.requireGlobal(C);this.compileGlobal(D)&&!t.hasExport(C)&&t.addGlobalExport(D.internalName,C)}}let p=this.lazyFunctions;do{let k=new Array;for(let R=Set_values(p),C=0,D=R.length;C<D;++C){let U=unchecked(R[C]);k.push(U)}p.clear();for(let R=0,C=k.length;R<C;++R)this.compileFunction(unchecked(k[R]),!0)}while(p.size);let _=this.functionTable,f=this.overrideStubs;for(let k=0,R=_.length;k<R;++k){let C=_[k];C.is(268435456)?(assert(C.is(262144)),_[k]=this.ensureOverrideStub(C)):C.signature.requiredParameters<C.signature.parameterTypes.length&&(_[k]=this.ensureVarargsStub(C))}let d=new Set;do{s.discoveredOverride=!1;for(let k=Set_values(f),R=0,C=k.length;R<C;++R){let D=unchecked(k[R]),U=s.resolveOverrides(D);if(U)for(let G=0,O=U.length;G<O;++G)this.compileFunction(U[G]);d.add(D)}}while(f.size>d.size||s.discoveredOverride);d.clear();for(let k=Set_values(f),R=0,C=k.length;R<C;++R)this.finalizeOverrideStub(k[R]);for(let k=Map_keys(this.pendingInstanceOf),R=0,C=k.length;R<C;++R){let D=k[R],U=assert(this.pendingInstanceOf.get(D));switch(D.kind){case 7:case 9:{this.finalizeInstanceOf(D,U);break}case 6:case 8:{this.finalizeAnyInstanceOf(D,U);break}default:assert(!1)}}t.removeGlobal(y.rtti_base),this.runtimeFeatures&8&&mb(this);let h=i64_align(this.memoryOffset,e.usizeType.byteSize);t.removeGlobal(y.data_end),((this.runtimeFeatures&1)!=0||a)&&(e.isWasm64?t.addGlobal(y.data_end,N.I64,!1,t.i64(i64_low(h),i64_high(h))):t.addGlobal(y.data_end,N.I32,!1,t.i32(i64_low(h)))),t.removeGlobal(y.stack_pointer),((this.runtimeFeatures&2)!=0||a)&&(h=i64_align(i64_add(h,i64_new(e.stackSize)),e.usizeType.byteSize),e.isWasm64?t.addGlobal(y.stack_pointer,N.I64,!0,t.i64(i64_low(h),i64_high(h))):t.addGlobal(y.stack_pointer,N.I32,!0,t.i32(i64_low(h)))),t.removeGlobal(y.heap_base),((this.runtimeFeatures&4)!=0||a)&&(e.isWasm64?t.addGlobal(y.heap_base,N.I64,!1,t.i64(i64_low(h),i64_high(h))):t.addGlobal(y.heap_base,N.I32,!1,t.i32(i64_low(h)))),this.initDefaultMemory(h),this.initDefaultTable(),this.runtimeFeatures&64&&(t.addFunction(y.setArgumentsLength,N.I32,N.None,null,t.global_set(this.ensureArgumentsLength(),t.local_get(0,N.I32))),t.addFunctionExport(y.setArgumentsLength,qs.setArgumentsLength));let g=this.program.mainFunction;if(g){let k=this.resolver.resolveFunction(g,null);k&&this.compileFunction(k)&&(t.hasExport("main")?this.error(110,g.declaration.range,"main"):t.addFunctionExport(k.internalName,"main"))}let m=!o.length,T=e.exportStart;if(!m||T!=null){let k=l.signature;!m&&T!=null&&(t.addGlobal(y.started,N.I32,!0,t.i32(0)),o.unshift(t.global_set(y.started,t.i32(1))),o.unshift(t.if(t.global_get(y.started,N.I32),t.return())));let R=t.addFunction(l.internalName,k.paramRefs,k.resultRefs,Vr(l.getNonParameterLocalTypes()),t.flatten(o));l.finalize(t,R),T==null?t.setStart(R):!We(T)||t.hasExport(T)?this.error(110,fe.native.range,T):t.addFunctionExport(l.internalName,T)}a&&this.shadowStack.walkModule(),this.runtimeFeatures&16&&fb(this),this.runtimeFeatures&32&&hb(this),a&&this.runtimeFeatures&48&&new Vs(this).walkModule(),n.lookup("ASC_RTRACE")!=null&&new Ao(this).walkModule();let S=Ng(n);if(S!=null){t.addCustomSection("toildb.catalog",S);let k=Mg(n);k!=null&&t.addCustomSection("toildb.types",k)}let E=this.options.targetMode,F=Kg(n,E);if(F!=null&&t.addCustomSection("toil.surface",F),E!="cold"){let k=Gg(n);k!=null&&t.addCustomSection("toildb.route_kinds",k);let R=zg(n);R!=null&&t.addCustomSection("toildb.rpc_kinds",R);let C=qg(n);C!=null&&t.addCustomSection("toilstream.catalog",C);let D=jg(n);D!=null&&t.addCustomSection("toildb.derives",D)}if(E=="cold"){let k=Wg(n);k!=null&&t.addCustomSection("toildaemon.catalog",k)}return t}initDummyMemory(){let e=this.options;this.module.setMemory(0,Ot.UNLIMITED_MEMORY,[],e.target,null,P.DefaultMemory,e.sharedMemory)}initDefaultMemory(e){this.memoryOffset=e;let t=this.options,n=this.module,s=this.memorySegments,a=0,l=Ot.UNLIMITED_MEMORY,o=!1;(t.memoryBase||s.length)&&(a=u32(i64_low(i64_shr_u(i64_align(e,65536),i64_new(16))))),t.initialMemory&&(t.initialMemory<a?this.error(105,null,a.toString()):a=t.initialMemory),t.maximumMemory&&(t.maximumMemory<a?this.error(106,null,a.toString()):l=t.maximumMemory),t.sharedMemory&&(o=!0,t.maximumMemory||(this.error(107,null),o=!1),t.hasFeature(32)||(this.error(108,null),o=!1));let u=t.lowMemoryLimit;if(u){let p=i64_new(u&-16);i64_gt(e,p)&&this.error(104,null,i64_to_string(e),i64_to_string(p))}n.setMemory(a,l,s,t.target,t.exportMemory?qs.Memory:null,P.DefaultMemory,o),t.importMemory&&n.addMemoryImport(P.DefaultMemory,en.DefaultNamespace,en.Memory,o)}initDefaultTable(){let e=this.options,t=this.module;e.importTable&&(t.addTableImport(P.DefaultTable,en.DefaultNamespace,en.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(901,null)),e.exportTable&&(t.addTableExport(P.DefaultTable,qs.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(902,null));let n=e.tableBase;n||(n=1);let s=this.functionTable,a=new Array(s.length);for(let u=0,p=s.length;u<p;++u)a[u]=s[u].internalName;let l=n+s.length,o=Ot.UNLIMITED_TABLE;e.importTable||e.exportTable||(o=l,e.willOptimize&&t.setPassArgument("directize-initial-contents-immutable","true")),t.addFunctionTable(P.DefaultTable,l,o,a,t.i32(n))}compileModuleExports(e){let t=e.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));this.compileModuleExport(o,u)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.compileModuleExports(n[s])}compileModuleExport(e,t,n=""){let s=this.module;switch(t.kind){case 4:{let a=t;if(!a.is(65536)){let l=this.resolver.resolveFunction(a,null);l&&this.compileModuleExport(e,l,n);return}break}case 5:{let a=t;if(!a.hasDecorator(512)){let l=a.signature;if(l.requiredParameters<l.parameterTypes.length&&(a=this.ensureVarargsStub(a),this.runtimeFeatures|=64),this.compileFunction(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addFunctionExport(a.internalName,o),this.hasCustomFunctionExports=!0,l.hasManagedOperands&&this.shadowStack.noteExport(o,l.getManagedOperandIndices()),!this.desiresExportRuntime){let p=l.thisType;if(p&&$i(p)||Yi(l.returnType))this.desiresExportRuntime=!0;else{let _=l.parameterTypes;for(let f=0,d=_.length;f<d;++f)if($i(_[f])){this.desiresExportRuntime=!0;break}}}a.signature.returnType.kind==15&&this.module.setClosedWorld(!1)}return}}break}case 0:{let a=t;if(!(a.is(8)||a.is(96))&&!this.options.hasFeature(2)){this.warning(103,a.identifierNode.range,"mutable-globals");return}if(this.compileGlobal(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addGlobalExport(t.internalName,o),!this.desiresExportRuntime){let u=a.type;(Yi(u)||!a.is(8)&&$i(u))&&(this.desiresExportRuntime=!0)}a.type.kind==15&&this.module.setClosedWorld(!1)}a.type==c.v128&&this.warning(112,a.typeNode?assert(a.typeNode).range:a.identifierNode.range,"v128");return}break}case 2:{this.compileEnum(t);let a=t.members;if(a){let l=n+e+Nn;for(let o=Map_keys(a),u=0,p=o.length;u<p;++u){let _=unchecked(o[u]),f=assert(a.get(_));f.is(512)||this.compileModuleExport(_,f,l)}}return}case 3:{let a=t;if(!a.isImmutable&&!this.options.hasFeature(2)){this.error(103,a.identifierNode.range,"mutable-globals");return}if(a.is(8388608)){let l=n+e;s.hasExport(l)||s.addGlobalExport(t.internalName,l);return}break}}this.warning(235,t.identifierNode.range)}compileFileByPath(e,t){let n,s=this.program.filesByName,a;if(s.has(e))n=assert(s.get(e));else if(s.has(a=e+qe))n=assert(s.get(a));else{this.error(6054,t.range,e);return}this.compileFile(n)}compileFile(e){if(e.is(8388608))return;e.set(8388608);let t=e.startFunction,n=t.signature,s=this.currentBody,a=new Array;this.currentBody=a;let l=this.currentFlow,o=t.flow;this.currentFlow=o;for(let u=e.source.statements,p=0,_=u.length;p<_;++p)this.compileTopLevelStatement(u[p],a);if(this.currentFlow=l,this.currentBody=s,a.length){let u=this.module,p=t.localsByIndex,_=p.length,f=new Array(_);for(let h=0;h<_;++h)f[h]=p[h].type.toRef();let d=u.addFunction(t.internalName,n.paramRefs,n.resultRefs,f,u.flatten(a));t.finalize(u,d),s.push(u.call(t.internalName,null,N.None))}}compileGlobalLazy(e,t){return e.is(8388608)?!e.is(16777216):e.hasAnyDecorator(1536)||e.is(32768)?this.compileGlobal(e):(this.errorRelated(2448,t.range,e.identifierNode.range,e.internalName),!1)}compileGlobal(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.pendingElements;t.add(e);let n=this.module,s=0,a=e.typeNode,l=e.initializerNode;if(!e.is(4194304))if(a){let h=this.resolver.resolveType(a,null,e.parent);if(!h)return e.set(16777216),t.delete(e),!1;if(h==c.void)return this.error(1110,a.range),e.set(16777216),t.delete(e),!1;e.setType(h),this.program.checkTypeSupported(h,a)}else if(l){let h=this.currentFlow;if(e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,c.auto,20),this.currentFlow=h,this.currentType==c.void)return this.error(2322,l.range,this.currentType.toString(),"<auto>"),e.set(16777216),t.delete(e),!1;e.setType(this.currentType)}else return this.error(1110,e.identifierNode.range.atEnd),e.set(16777216),t.delete(e),!1;if(e.hasDecorator(512)){let h=e.internalName;return Ht.has(h)&&assert(Ht.get(h))(new As(this,e)),t.delete(e),!0}let o=e.type;!l&&!e.is(16384)&&o.isReference&&!o.isNullableReference&&this.error(238,e.identifierNode.range);let u=o.toRef(),p=e.is(8)||e.is(96),_=e.hasDecorator(64);if(e.is(32768))return p||this.options.hasFeature(2)?(Tb(e,e.declaration),this.program.markModuleImport(si,xr,e),n.addGlobalImport(e.internalName,si,xr,u,!p),t.delete(e),!this.desiresExportRuntime&&$i(o)&&(this.desiresExportRuntime=!0),!0):(this.error(103,e.declaration.range,"mutable-globals"),e.set(16777216),t.delete(e),!1);let f=!1;if(l){if(!s){let h=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,o,21),this.currentFlow=h}if(!n.isConstExpression(s))if(p){let h=n.runExpression(s,1);h?s=h:f=!0}else f=!0;if(f&&re(s)==10){let h=assert(Zn(s));if(!_p(n.getGlobal(h))){let g=this.program.elementsByName;g.has(h)&&assert(g.get(h)).is(32768)&&(f=!1)}}if(_)if(f)this.warning(206,l.range);else{switch(assert(re(s)==14),le(s)){case N.I32:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ne(s),0);break}case N.I64:{e.constantValueKind=1,e.constantIntegerValue=i64_new(Ie(s),Le(s));break}case N.F32:{e.constantValueKind=2,e.constantFloatValue=Ee(s);break}case N.F64:{e.constantValueKind=2,e.constantFloatValue=Se(s);break}default:return assert(!1),e.set(16777216),t.delete(e),!1}e.set(33554432)}}else e.is(33554432)?s=this.compileInlineConstant(e,e.type,16):s=this.makeZero(o);let d=e.internalName;if(f){_&&this.error(212,Ue(8,e.decoratorNodes).range,"inline");let h=o;o.isExternalReference&&!o.is(512)&&(e.set(-2147483648),h=o.asNullable()),n.addGlobal(d,h.toRef(),!0,this.makeZero(h)),this.currentBody.push(n.global_set(d,s))}else _||n.addGlobal(d,u,!p,s);return t.delete(e),!0}compileEnum(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.pendingElements;t.add(e);let n=this.module,s=this.currentParent;this.currentParent=e;let a=null,l=!1,o=e.is(8)||e.hasDecorator(64),u=e.members;if(u)for(let p=Map_values(u),_=0,f=p.length;_<f;++_){let d=unchecked(p[_]);if(d.kind!=3)continue;let h=!1,g=d,m=g.valueNode;g.set(8388608);let T=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow);let S;if(m){if(S=this.compileExpression(m,c.i32,1),re(S)!=14){let E=n.runExpression(S,1);E?S=E:(e.is(8)&&this.error(2474,m.range),h=!0)}}else if(a==null)S=n.i32(0);else if(l&&this.error(1061,g.identifierNode.range.atEnd),o){let E=i64_add(a.constantIntegerValue,i64_new(1));assert(!i64_high(E)),S=n.i32(i64_low(E))}else{S=n.binary(0,n.global_get(a.internalName,N.I32),n.i32(1));let E=n.runExpression(S,1);E?S=E:(e.is(8)&&this.error(2474,d.declaration.range),h=!0)}this.currentFlow=T,h?(n.addGlobal(g.internalName,N.I32,!0,n.i32(0)),this.currentBody.push(this.makeGlobalAssignment(g,S,c.i32,!1)),l=!0):(o?(g.setConstantIntegerValue(i64_new(ne(S)),c.i32),g.is(1048576)&&n.addGlobal(g.internalName,N.I32,!1,S)):n.addGlobal(g.internalName,N.I32,!1,S),g.isImmutable=!0,l=!1),a=g}return this.currentParent=s,t.delete(e),!0}ensureEnumToString(e,t){if(e.toStringFunctionName)return e.toStringFunctionName;if(!this.compileEnum(e))return null;if(e.is(8))return this.errorRelated(2476,t.range,e.identifierNode.range),null;let n=e.members;if(!n)return null;let s=this.module,a=e.hasDecorator(64),l=`${e.internalName}#${P.EnumToString}`;e.toStringFunctionName=l;let o=new Array;for(let u=Map_keys(n),p=Map_values(n),_=1,f=u.length;_<=f;++_){let d=unchecked(u[f-_]),h=unchecked(p[f-_]);if(h.kind!=3)continue;let g=h,m=a?s.i32(i64_low(g.constantIntegerValue)):s.global_get(g.internalName,N.I32),T=s.if(s.binary(15,m,s.local_get(0,N.I32)),s.return(this.ensureStaticString(d)));o.push(T)}return o.push(s.unreachable()),s.addFunction(l,N.I32,N.I32,null,s.block(null,o,N.I32)),l}compileFunction(e,t=!1){if(e.is(16777216))return!1;if(e.is(8388608))return!0;if(!t){if(e.hasDecorator(512))return!0;if(e.hasDecorator(1024))return this.lazyFunctions.add(e),!0}let n=e.prototype.functionTypeNode.parameters,s=n.length;if(s>=2){let d=new Set;d.add(n[0].name.text);for(let h=1;h<s;h++){let g=n[h].name,m=g.text;d.has(m)?this.error(2300,g.range,m):d.add(m)}}e.set(8388608);let a=this.pendingElements;a.add(e);let l=this.currentType,o=this.module,u=e.signature,p=e.prototype.bodyNode,_=e.declaration;assert(_.kind==56||_.kind==59),this.checkSignatureSupported(e.signature,_.signature);let f=0;if(p){if(e.is(32768)&&this.error(1183,e.identifierNode.range),e.hasAnyDecorator(384)){let m=e.decoratorNodes,T;(T=Ue(9,m))&&this.error(212,T.range,"external"),(T=Ue(10,m))&&this.error(212,T.range,"external.js")}let d=this.currentFlow,h=e.flow;this.currentFlow=h;let g=new Array;this.compileFunctionBody(e,g)||g.push(o.unreachable()),this.currentFlow=d,f=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,Vr(e.getNonParameterLocalTypes()),o.flatten(g,e.signature.returnType.toRef()))}else if(e.is(32768)){if(Tb(e,_),this.program.markModuleImport(si,xr,e),o.addFunctionImport(e.internalName,si,xr,u.paramRefs,u.resultRefs),f=o.getFunction(e.internalName),!this.desiresExportRuntime){let d=u.thisType;if(d&&Yi(d)||$i(u.returnType))this.desiresExportRuntime=!0;else{let h=u.parameterTypes;for(let g=0,m=h.length;g<m;++g)if(Yi(h[g])){this.desiresExportRuntime=!0;break}}}}else if(e.is(128)||e.parent.kind==9)f=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,null,o.unreachable());else{if(e.isAny(6144)){let d=e.declaration.name.text,h=assert(e.parent.getMember(d));assert(h.kind==10);let g=h.instance;g&&g.isField&&(f=e.is(2048)?this.makeBuiltinFieldGetter(g):this.makeBuiltinFieldSetter(g),assert(e.is(8388608)))}f||(this.error(2391,e.identifierNode.range),e.set(16777216))}if((e.is(32768)||e.is(2))&&u.hasVectorValueOperands){let h,g=e.prototype.functionTypeNode;if(u.returnType==c.v128)h=g.returnType.range;else{let m=u.getVectorValueOperandIndices()[0];h=g.parameters[m].range}this.warning(112,h,"v128")}return e.finalize(o,f),this.currentType=l,a.delete(e),!0}compileFunctionBody(e,t){let n=this.module,s=assert(e.prototype.bodyNode),a=e.signature.returnType,l=this.currentFlow,o=e.signature.thisType?assert(l.lookupLocal(P.this_)):null,u=t.length,p=e.localsByIndex.length,_=e.nextAnonymousId;e.outerFunction&&!e.closureEnvLocal&&(e.closureEnvLocal=l.addScopedLocal("$closureEnv",this.options.usizeType));let f=e.capturedLocals;if(f&&f.size>0){let h=!1;for(let g=Map_keys(f),m=0,T=g.length;m<T;m++){let S=g[m];if(S.parent==e){let E=l.lookupLocal(S.name);E&&!E.isCaptured&&(E.isCaptured=!0,E.envSlotIndex=S.envSlotIndex,E.envOwner=S.envOwner)}S.envOwner==e&&(h=!0)}h&&!e.envLocal&&(e.envLocal=l.addScopedLocal("$env",this.options.usizeType))}if(s.kind==31)t=this.compileStatements(s.statements,t);else{assert(s.kind==39),assert(e.prototype.arrowKind),assert(!e.isAny(530432));let h=this.compileExpression(s.expression,a,1);l.canOverflow(h,a)||l.set(2),l.isNonnull(h,a)&&l.set(4),t?t.push(h):t=[h],l.is(256)||(l.canOverflow(h,a)||l.set(2),l.isNonnull(h,a)&&l.set(4),l.set(257))}if(e.needsCaptureRecompile){e.needsCaptureRecompile=!1,t.length=u;let h=e.localsByIndex;for(let m=p,T=h.length;m<T;m++)h[m].wasAccessedAsLocal=!1;h.length=p,l.localFlags.length=p,l.unset(25079);let g=l.scopedLocals;if(g){let m=e.signature,T=m.parameterTypes.length,S=m.thisType!=null,E=new Array;for(let F=Map_keys(g),k=0,R=F.length;k<R;k++){let C=F[k],D=assert(g.get(C)),U=D.index>=(S?1:0)&&D.index<T+(S?1:0),G=S&&D.index==0,O=D==e.envLocal||D==e.closureEnvLocal;!U&&!G&&!O&&E.push(C)}for(let F=0,k=E.length;F<k;F++)g.delete(E[F])}if(e.envLocal){let m=l.scopedLocals;m&&m.has("$env")&&m.delete("$env"),e.envLocal=null}if(e.closureEnvLocal){let m=l.scopedLocals;m&&m.has("$closureEnv")&&m.delete("$closureEnv"),e.closureEnvLocal=null}if(f=e.capturedLocals,f)for(let m=Map_keys(f),T=0,S=m.length;T<S;T++)m[T].wasAccessedAsLocal=!1;return e.nextAnonymousId=_,this.compileFunctionBody(e,t)}if(f=e.capturedLocals,e.envLocal&&f&&f.size>0){let h=this.compileClosureEnvironmentAllocation(e);for(let g=t.length-1;g>=u;--g)t[g+1]=t[g];t[u]=h}let d=e.closureEnvLocal;if(d){let h=this.ensureClosureEnvironmentGlobal(),g=this.options.sizeTypeRef,m=n.local_set(d.index,n.global_get(h,g),!1);for(let T=t.length-1;T>=u;--T)t[T+1]=t[T];t[u]=m}if(e.is(524288)){assert(e.is(262144)),o=assert(o);let h=assert(e.parent);assert(h.kind==7);let g=h;if(l.isAny(8256)||!l.is(256)){let m=new Array;m.push(this.makeConditionalAllocation(g,o.index)),this.makeFieldInitializationInConstructor(g,m);for(let T=t.length-1;T>=u;--T)t[T+1]=t[T];t[u]=n.flatten(m,N.None),l.is(16384)&&this.options.pedantic&&this.pedantic(905,e.identifierNode.range)}l.is(16384)&&!g.hasDecorator(32)&&this.error(231,g.identifierNode.range),l.is(256)||(t.push(n.local_get(o.index,o.type.toRef())),l.set(261)),g.base&&!g.prototype.implicitlyExtendsObject&&!l.is(128)&&this.error(2377,e.prototype.declaration.range)}else if(a!=c.void&&!l.is(256))return this.error(2355,e.prototype.functionTypeNode.returnType.range),!1;return!0}makeBuiltinFieldGetter(e){let t=assert(e.getterInstance),n=this.module,s=e.type,a=s.toRef(),l=this.options.sizeTypeRef;t.set(8388608);let o=n.load(s.byteSize,s.isSignedIntegerValue,n.local_get(0,l),a,e.memoryOffset),u=this.currentFlow;return this.currentFlow=t.flow,e.is(16384)&&s.isReference&&!s.isNullableReference&&(o=this.makeRuntimeNonNullCheck(o,s,t.identifierNode)),this.currentFlow=u,n.addFunction(t.internalName,l,a,Vr(t.getNonParameterLocalTypes()),o)}makeBuiltinFieldSetter(e){let t=assert(e.setterInstance),n=this.module,s=e.type,a=this.options.sizeTypeRef,l=s.toRef(),o=n.store(s.byteSize,n.local_get(0,a),n.local_get(1,l),l,e.memoryOffset);if(s.isManaged&&this.options.runtime!=3){let u=t.parent;if(assert(u.kind==7),u.type.isManaged){let p=this.program.linkInstance;this.compileFunction(p),o=n.block(null,[o,n.call(p.internalName,[n.local_get(0,a),n.local_get(1,l),n.i32(0)],N.None)],N.None)}}return t.set(8388608),n.addFunction(t.internalName,Ze([a,l]),N.None,null,o)}addAlignedMemorySegment(e,t=16){assert(zt(t));let n=i64_align(this.memoryOffset,t),s=new Li(e,n);return this.memorySegments.push(s),this.memoryOffset=i64_add(n,i64_new(e.length)),s}addRuntimeMemorySegment(e){let t=this.program.computeBlockStart64(this.memoryOffset),n=new Li(e,t);return this.memorySegments.push(n),this.memoryOffset=i64_add(t,i64_new(e.length)),n}ensureStaticString(e){let t=this.ensureStaticStringPtr(e);return this.currentType=this.program.stringInstance.type,this.module.usize(t)}ensureStaticStringPtr(e){let t=this.program,n=t.totalOverhead,s=assert(t.stringInstance),a,l=this.stringSegments;if(l.has(e))a=assert(l.get(e));else{let p=e.length,_=s.createBuffer(p<<1);for(let f=0;f<p;++f)rr(e.charCodeAt(f),_,n+(f<<1));a=this.addRuntimeMemorySegment(_),l.set(e,a)}let o=i64_add(a.offset,i64_new(n)),u=this.staticGcObjectOffsets;if(u.has(i64_high(o)))assert(u.get(i64_high(o))).add(i64_low(o));else{let p=new Set;p.add(i64_low(o)),u.set(i64_high(o),p)}return o}writeStaticBuffer(e,t,n,s){let a=s.length,l=n.byteSize,o=n.toRef();switch(o){case N.I32:{switch(l){case 1:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),de(ne(p),e,t),t+=1}break}case 2:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),rr(ne(p),e,t),t+=2}break}case 4:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),ge(ne(p),e,t),t+=4}break}default:assert(!1)}break}case N.I64:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),xi(i64_new(Ie(p),Le(p)),e,t),t+=8}break}case N.F32:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),Sr(Ee(p),e,t),t+=4}break}case N.F64:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),Ir(Se(p),e,t),t+=8}break}case N.V128:{for(let u=0;u<a;++u){let p=s[u];assert(le(p)==o),assert(re(p)==14),Pc(ap(p),e,t),t+=16}break}case N.None:break;default:assert(!1)}return t}addStaticBuffer(e,t,n=this.program.arrayBufferInstance.id){let s=this.program,l=s.arrayBufferInstance.createBuffer(t.length*e.byteSize);return this.program.OBJECTInstance.writeField("rtId",n,l,0),this.writeStaticBuffer(l,s.totalOverhead,e,t),this.addRuntimeMemorySegment(l)}addStaticArrayHeader(e,t,n=null){let s=this.program;n||(n=assert(this.resolver.resolveClass(this.program.arrayPrototype,[e])));let a=bi(t.buffer,s.OBJECTInstance.offsetof("rtSize")),l=i32(a/e.byteSize),o=i64_add(t.offset,i64_new(s.totalOverhead)),u=n.createBuffer();return assert(n.writeField("buffer",o,u)),assert(n.writeField("dataStart",o,u)),assert(n.writeField("byteLength",a,u)),assert(n.writeField("length_",l,u)),this.addRuntimeMemorySegment(u)}ensureRuntimeFunction(e){assert(e.is(8388608)&&!e.is(134217728));let t=this.program,n=e.memorySegment;if(!n){this.options.importTable||this.module.ensureFunctionTable(P.DefaultTable);let s=this.functionTable,a=this.options.tableBase;a||(a=1);let l=a+s.length;s.push(e);let o=assert(this.resolver.resolveClass(t.functionPrototype,[e.type])),u=o.createBuffer();assert(o.writeField("_index",l,u)),assert(o.writeField("_env",0,u)),e.memorySegment=n=this.addRuntimeMemorySegment(u)}return i64_add(n.offset,i64_new(t.totalOverhead))}compileTopLevelStatement(e,t){switch(e.kind){case 52:{let n=e.members;for(let s=0,a=n.length;s<a;++s)this.compileTopLevelStatement(n[s],t);break}case 53:{let n=this.program.getElementByDeclaration(e);n&&(assert(n.kind==2),n.hasDecorator(1024)||this.compileEnum(n));break}case 60:{let n=e,s=this.program.getElementByDeclaration(n);if(s){let a=this.currentParent;this.currentParent=s;let l=n.members;for(let o=0,u=l.length;o<u;++o)this.compileTopLevelStatement(l[o],t);this.currentParent=a}break}case 48:{let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=this.program.getElementByDeclaration(n[s]);l&&(assert(l.kind==0),!l.is(32768)&&!l.hasDecorator(1024)&&this.compileGlobal(l))}break}case 55:{let n=this.program.getElementByDeclaration(e);n&&n.kind==0&&(n.hasDecorator(1024)||this.compileGlobal(n));break}case 36:{let n=e,s=n.internalPath;s!=null&&this.compileFileByPath(s,assert(n.path));break}case 37:{this.compileTopLevelStatement(e.declaration,t);break}case 43:{let n=e;this.compileFileByPath(n.internalPath,n.path);break}case 56:case 59:case 58:case 66:case 61:break;default:{let n=this.compileStatement(e);re(n)!=22&&t.push(n);break}}}compileStatement(e){let t=this.module,n;switch(e.kind){case 31:{n=this.compileBlockStatement(e);break}case 32:{n=this.compileBreakStatement(e);break}case 33:{n=this.compileContinueStatement(e);break}case 34:{n=this.compileDoStatement(e);break}case 35:{n=this.compileEmptyStatement(e);break}case 39:{n=this.compileExpressionStatement(e);break}case 40:{n=this.compileForStatement(e);break}case 41:{n=this.compileForOfStatement(e);break}case 42:{n=this.compileIfStatement(e);break}case 44:{n=this.compileReturnStatement(e);break}case 45:{n=this.compileSwitchStatement(e);break}case 46:{n=this.compileThrowStatement(e);break}case 47:{n=this.compileTryStatement(e);break}case 48:{n=this.compileVariableStatement(e),n||(n=t.nop());break}case 49:{n=this.compileVoidStatement(e);break}case 50:{n=this.compileWhileStatement(e);break}case 61:{n=this.compileTypeDeclaration(e);break}case 51:{n=t.nop();break}default:assert(!1),n=t.unreachable()}return this.options.sourceMap&&this.addDebugLocation(n,e.range),n}compileStatements(e,t=null){let n=e.length;t||(t=new Array(n),t.length=0);let s=this.currentFlow;for(let a=0;a<n;++a){let l=this.compileStatement(e[a]);switch(re(l)){case 1:if(!$n(l)){for(let o=0,u=es(l);o<u;++o)t.push(ts(l,o));break}default:t.push(l);case 22:}if(s.isAny(272))break}return t}compileBlockStatement(e){let t=e.statements,n=this.currentFlow,s=n.fork();this.currentFlow=s;let a=this.compileStatements(t);return n.inherit(s),this.currentFlow=n,this.module.flatten(a)}compileTypeDeclaration(e){let t=this.currentFlow,n=e.name.text,s=t.lookupScopedTypeAlias(n);if(s)return this.errorRelated(2300,e.range,s.declaration.range,n),this.module.unreachable();let a=new nt(n,t.sourceFunction,e,0);return t.addScopedTypeAlias(n,a),this.module.nop()}compileBreakStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Break label"),t.unreachable();let s=this.currentFlow,a=s.breakLabel;return a==null?(this.error(1105,e.range),t.unreachable()):(s.set(16),t.br(a))}compileContinueStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Continue label"),t.unreachable();let s=this.currentFlow,a=s.continueLabel;return a==null?(this.error(1104,e.range),t.unreachable()):(s.set(288),t.br(a))}compileDoStatement(e){return this.doCompileDoStatement(e)}doCompileDoStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork(!0),l=a.pushControlFlowLabel(),o=`do-break|${l}`;a.breakLabel=o;let u=`do-continue|${l}`;a.continueLabel=u;let p=`do-loop|${l}`;this.currentFlow=a;let _=new Array,f=e.body;f.kind==31?this.compileStatements(f.statements,_):_.push(this.compileStatement(f)),a.popControlFlowLabel(l);let d=a.isAny(4128),h=a.isAny(2064),g=!a.isAny(272);if(!g&&!d)_.push(t.unreachable()),n.inherit(a),h||n.set(256);else{let T=this.compileExpression(e.condition,c.bool),S=this.makeIsTrueish(T,this.currentType,e.condition),E=this.evaluateCondition(S);if(E!=2&&(d||g)&&n.resetIfNeedsRecompile(a.forkThen(T),s))return this.currentFlow=n,this.doCompileDoStatement(e);d&&(_[0]=t.block(u,_),_.length=1,a.unset(256)),_.push(t.br(p,S)),n.inherit(a),E==1&&!h&&n.set(256)}this.currentFlow=n;let m=t.loop(p,t.flatten(_));return h&&(m=t.block(o,[m])),n.is(256)&&(m=t.block(null,[m,t.unreachable()])),m}compileEmptyStatement(e){return this.module.nop()}compileExpressionStatement(e){return this.compileExpression(e.expression,c.void,1)}compileForStatement(e){return this.doCompileForStatement(e)}doCompileForStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork();this.currentFlow=a;let l=new Array,o=e.initializer;o&&(assert(o.kind==39||o.kind==48),l.push(this.compileStatement(o)));let u,p,_,f=e.condition;if(f){if(u=this.compileExpression(f,c.bool),p=this.makeIsTrueish(u,this.currentType,f),_=this.evaluateCondition(p),_==2)return l.push(t.drop(p)),n.inherit(a),this.currentFlow=n,t.flatten(l)}else u=t.i32(1),p=u,_=1;let d=a.forkThen(u,!0),h=d.pushControlFlowLabel(),g=`for-break${h}`;d.breakLabel=g;let m=`for-continue|${h}`;d.continueLabel=m;let T=`for-loop|${h}`;this.currentFlow=d;let S=new Array,E=e.body;E.kind==31?this.compileStatements(E.statements,S):S.push(this.compileStatement(E)),d.popControlFlowLabel(h),d.breakLabel=null,d.continueLabel=null;let F=!d.isAny(272),k=d.isAny(4128),R=d.isAny(2064);k&&(S[0]=t.block(m,S),S.length=1),_==1?a.inherit(d):a.mergeBranch(d);let C=k||F;if(C){let U=e.incrementor;if(U&&(this.currentFlow=a,S.push(this.compileExpression(U,c.void,9))),S.push(t.br(T)),n.resetIfNeedsRecompile(d.forkThen(u),s))return this.currentFlow=n,this.doCompileForStatement(e)}n.inherit(a),this.currentFlow=n;let D=t.if(p,t.flatten(S));return C&&(D=t.loop(T,D)),R&&(D=t.block(g,[D])),l.push(D),n.is(256)&&l.push(t.unreachable()),t.flatten(l)}compileForOfStatement(e){return this.error(100,e.range,"Iterators"),this.module.unreachable()}compileIfStatement(e){let t=this.module,n=e.ifTrue,s=e.ifFalse,a=this.compileExpression(e.condition,c.bool),l=this.makeIsTrueish(a,this.currentType,e.condition);switch(this.evaluateCondition(l)){case 1:return t.block(null,[t.drop(l),this.compileStatement(n)]);case 2:return s?t.block(null,[t.drop(l),this.compileStatement(s)]):t.drop(l)}let u=this.currentFlow,p=new Array,_=u.forkThen(a);this.currentFlow=_,n.kind==31?this.compileStatements(n.statements,p):p.push(this.compileStatement(n)),this.currentFlow=u;let f=u.forkElse(a);if(s){this.currentFlow=f;let d=new Array;return s.kind==31?this.compileStatements(s.statements,d):d.push(this.compileStatement(s)),u.inheritAlternatives(_,f),this.currentFlow=u,t.if(l,t.flatten(p),t.flatten(d))}else return _.isAny(272)?(u.inherit(f),u.mergeSideEffects(_)):u.inheritAlternatives(_,f),this.currentFlow=u,t.if(l,t.flatten(p))}compileReturnStatement(e){let t=this.module,n=0,s=this.currentFlow,a=s.returnType,l=e.value;if(l){let u=1;s.sourceFunction.is(1048576)&&(u|=4),n=this.compileExpression(l,a,u),s.canOverflow(n,a)||s.set(2),s.isNonnull(n,a)&&s.set(4),s.sourceFunction.is(524288)&&l.kind!=25&&s.set(16384)}else if(a!=c.void)return this.error(2322,e.range,"void",a.toString()),this.currentType=a,t.unreachable();s.set(257);let o=s.getTryFinallyContext();if(o){let u=o.tryFinallyPendingActionLocal,p=o.tryFinallyPendingValueLocal,_=assert(o.tryFinallyDispatchLabel),f=new Array;return n&&a!=c.void&&f.push(t.local_set(p,n,a.isManaged)),f.push(t.local_set(u,t.i32(1),!1)),f.push(t.br(_)),t.flatten(f)}if(s.isInline){let u=assert(s.inlineReturnLabel);return n?this.currentType==c.void?t.block(null,[n,t.br(u)]):t.br(u,0,n):t.br(u)}return n?this.currentType==c.void?t.block(null,[n,t.return()]):t.return(n):t.return()}compileSwitchStatement(e){let t=this.module,n=e.cases,s=n.length,a=this.compileExpression(e.condition,c.auto),l=this.currentType;if(!s)return t.drop(a);let o=this.currentFlow,p=o.getTempLocal(l).index,_=new Array(1+s);_[0]=t.local_set(p,a,l.isManaged);let f=1,d=-1,h=o.pushControlFlowLabel();for(let S=0;S<s;++S){let E=n[S];if(E.isDefault){d=S;continue}let F=e.condition,k=t.local_get(p,l.toRef()),R=l,C=E.label,D=this.compileExpression(assert(E.label),l,1),U=this.currentType,G=this.compileCommutativeCompareBinaryExpressionFromParts(76,F,k,R,C,D,U,l,e);_[f++]=t.br(`case${S}|${h}`,G)}_[f]=t.br(d>=0?`case${d}|${h}`:`break|${h}`);let g=t.block(`case0|${h}`,_,N.None),m=null,T=null;for(let S=0;S<s;++S){let F=n[S].statements,k=F.length,R=o.fork(!0,!1);m&&R.mergeBranch(m),this.currentFlow=R;let C=`break|${h}`;R.breakLabel=C;let D=S==s-1,U=D?C:`case${S+1}|${h}`,G=new Array(1+k);G[0]=g;let O=1,Y=!0;for(let ee=0;ee<k;++ee){let K=this.compileStatement(F[ee]);if(re(K)!=22&&(G[O++]=K),R.isAny(272)){Y=!1;break}}G.length=O,m=Y?R:null;let Z=R.isAny(2064);R.unset(2064),Z||D&&Y?T?T.inheritAlternatives(T,R):T=R:Y||o.mergeSideEffects(R),this.currentFlow=o,g=t.block(U,G,N.None)}return o.popControlFlowLabel(h),d>=0?T?o.inherit(T):o.set(256):T&&o.mergeBranch(T),this.currentFlow=o,g}compileThrowStatement(e){let t=this.module;if(this.currentFlow.set(264),this.options.hasFeature(64)){let o=this.compileExpression(e.value,c.auto),u=this.currentType,p=this.program.errorInstance,_=u.getClass();if(!_||!_.isAssignableTo(p))return this.error(250,e.value.range,u.toString()),t.unreachable();let f=this.ensureExceptionTag();return t.throw(f,[o])}let s=new Array,a=e.value,l=null;if(a.kind==18){let o=a.args;o.length&&(l=o[0])}return s.push(this.makeAbort(l,e)),t.flatten(s)}compileTryStatement(e){let t=this.module,n=this.currentFlow;if(!this.options.hasFeature(64))return this.error(103,e.range,"exception-handling"),t.unreachable();let s=this.ensureExceptionTag(),a=n.pushControlFlowLabel(),l=`try|${a}`,o=n.fork();this.currentFlow=o;let u=new Array;this.compileStatements(e.bodyStatements,u);let p=t.flatten(u),_=o.isAny(256),f=[],d=[],h=null,g=!1,m=e.catchStatements,T=e.catchVariable;if(m){h=n.fork(),this.currentFlow=h;let E=new Array,F=t.pop(this.options.sizeTypeRef);if(T){let k=T.text,R=this.program.lookup(P.Error),C;if(R&&R.kind==6){let U=this.resolver.resolveClass(R,null);C=U?U.type:this.options.usizeType}else C=this.options.usizeType;let D=h.addScopedLocal(k,C);E.push(bn(t.ref,D.index,F)),h.setLocalFlag(D.index,8)}else E.push(t.drop(F));this.compileStatements(m,E),f.push(s),d.push(t.flatten(E)),g=h.isAny(256)}let S=e.finallyStatements;if(S){let E=n.returnType,F=n.targetFunction,k=F.addLocal(c.i32),R=E!=c.void?F.addLocal(E):null,C=R?R.index:-1,D=`finally_dispatch|${a}`,U=`try_finally|${a}`;n.popControlFlowLabel(a);let G=n.pushControlFlowLabel();l=`try|${G}`,o=n.fork(),o.tryFinallyPendingActionLocal=k.index,o.tryFinallyPendingValueLocal=C,o.tryFinallyDispatchLabel=D,o.tryFinallyReturnType=E,this.currentFlow=o;let O=new Array;if(this.compileStatements(e.bodyStatements,O),p=t.flatten(O),_=o.isAny(256),f=[],d=[],h=null,g=!1,m){h=n.fork(),h.tryFinallyPendingActionLocal=k.index,h.tryFinallyPendingValueLocal=C,h.tryFinallyDispatchLabel=D,h.tryFinallyReturnType=E,this.currentFlow=h;let at=new Array,Xs=t.pop(this.options.sizeTypeRef);if(T){let Q=T.text,an=this.program.lookup(P.Error),ln;if(an&&an.kind==6){let Zs=this.resolver.resolveClass(an,null);ln=Zs?Zs.type:this.options.usizeType}else ln=this.options.usizeType;let Js=h.addScopedLocal(Q,ln);at.push(bn(t.ref,Js.index,Xs)),h.setLocalFlag(Js.index,8)}else at.push(t.drop(Xs));this.compileStatements(m,at),f.push(s),d.push(t.flatten(at)),g=h.isAny(256)}this.currentFlow=n;let Y;d.length>0?Y=t.try(l,p,f,d,null):Y=p;let Z=n.fork();this.currentFlow=Z;let ee=new Array;this.compileStatements(S,ee);let K=t.flatten(ee),te=t.block(null,[K,t.rethrow(U)]),H=t.try(U,Y,[],[te],null),oe=n.fork();this.currentFlow=oe;let se=new Array;this.compileStatements(S,se);let Re=t.flatten(se),Pt=oe.isAny(256),nn=oe.isAny(1);this.currentFlow=n,n.popControlFlowLabel(G);let Oe=new Array;Oe.push(Re),Pt||(E!=c.void&&R?Oe.push(t.if(t.binary(15,t.local_get(k.index,N.I32),t.i32(1)),t.return(t.local_get(R.index,E.toRef())))):Oe.push(t.if(t.binary(15,t.local_get(k.index,N.I32),t.i32(1)),t.return())));let sn=t.block(D,[H]);!Pt&&(h?_&&g:_)&&Oe.push(t.unreachable());let Lt=new Array(1+Oe.length);Lt[0]=sn;for(let at=0;at<Oe.length;at++)Lt[1+at]=Oe[at];let Io=t.block(null,Lt);return Pt?(n.set(256),nn&&n.set(1)):h?_&&g?n.set(256):n.inheritAlternatives(o,h):n.mergeSideEffects(o),Io}return n.popControlFlowLabel(a),this.currentFlow=n,h&&(_&&g?n.set(256):m?n.inheritAlternatives(o,h):n.inherit(o)),d.length==0?p:t.try(l,p,f,d,null)}compileVariableStatement(e){let t=this.module,n=e.declarations,s=n.length,a=this.currentFlow,l=new Array,o=this.resolver;for(let u=0;u<s;++u){let p=n[u],_=p.name.text,f=null,d=0,h=null;p.is(16384)&&this.warning(239,p.name.range);let g=p.type,m=p.initializer;if(g){if(f=o.resolveType(g,a,a.sourceFunction,_e(a.contextualTypeArguments)),!f)continue;if(this.program.checkTypeSupported(f,g),m){let E=this.pendingElements,F=a.addScopedDummyLocal(_,f,e);E.add(F),d=this.compileExpression(m,f,1),h=this.currentType,E.delete(F),a.freeScopedDummyLocal(_)}}else if(m){let E=this.pendingElements,F=a.addScopedDummyLocal(_,c.auto,e);if(E.add(F),d=this.compileExpression(m,c.auto),h=this.currentType,E.delete(F),a.freeScopedDummyLocal(_),this.currentType==c.void){this.error(2322,p.range,this.currentType.toString(),"<auto>");continue}f=h}else{this.error(1110,p.name.range.atEnd);continue}let T=p.is(8),S=!1;if(T)if(d){let E=t.runExpression(d,1);if(E){d=E;let F=null;switch(le(d)){case N.I32:{F=new Qe(_,-1,f,a.targetFunction),F.setConstantIntegerValue(i64_new(ne(d),0),f);break}case N.I64:{F=new Qe(_,-1,f,a.targetFunction),F.setConstantIntegerValue(i64_new(Ie(d),Le(d)),f);break}case N.F32:{F=new Qe(_,-1,f,a.targetFunction),F.setConstantFloatValue(Ee(d),f);break}case N.F64:{F=new Qe(_,-1,f,a.targetFunction),F.setConstantFloatValue(Se(d),f);break}}if(F){let k=a.scopedLocals;if(!k)a.scopedLocals=k=new Map;else if(k.has(_)){let R=assert(k.get(_));return this.errorRelated(2300,p.name.range,R.declaration.name.range,_),this.module.unreachable()}k.set(_,F),S=!0}}}else this.error(1155,p.range);if(!S){let E;if(p.isAny(24)||a.isInline){let R=a.getScopedLocal(_);R?(R.declaration.range.source.isNative?this.error(2300,p.name.range,_):this.errorRelated(2300,p.name.range,R.declaration.name.range,_),E=R):E=a.addScopedLocal(_,f),T&&a.setLocalFlag(E.index,1)}else{let R=a.lookupLocal(_);if(R){this.errorRelated(2300,p.name.range,R.declaration.name.range,_);continue}E=a.targetFunction.addLocal(f,_,p),a.unsetLocalFlag(E.index,-1),T&&a.setLocalFlag(E.index,1)}let F=a.sourceFunction,k=F.capturedLocals;if(k)for(let R=Map_keys(k),C=0,D=R.length;C<D;++C){let U=R[C];if(U.name==_&&U.parent==F){E.isCaptured=!0,E.envSlotIndex=U.envSlotIndex,E.envOwner=U.envOwner;let G=k.get(U);k.delete(U),k.set(E,G);break}}d?l.push(this.makeLocalAssignment(E,d,h||f,!1)):E.type.isShortIntegerValue&&a.setLocalFlag(E.index,2)}}return this.currentType=c.void,l.length==0?0:t.flatten(l)}compileVoidStatement(e){return this.compileExpression(e.expression,c.void,10)}compileWhileStatement(e){return this.doCompileWhileStatement(e)}doCompileWhileStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=this.compileExpression(e.condition,c.bool),l=this.makeIsTrueish(a,this.currentType,e.condition),o=this.evaluateCondition(l);if(o==2)return t.drop(l);let u=n.forkThen(a,!0),p=u.pushControlFlowLabel(),_=`while-break|${p}`;u.breakLabel=_;let f=`while-continue|${p}`;u.continueLabel=f,this.currentFlow=u;let d=new Array,h=e.body;h.kind==31?this.compileStatements(h.statements,d):d.push(this.compileStatement(h)),d.push(t.br(f)),u.popControlFlowLabel(p);let g=u.isAny(4128),m=u.isAny(2064),T=!u.isAny(272);if((g||T)&&n.resetIfNeedsRecompile(u,s))return this.currentFlow=n,this.doCompileWhileStatement(e);let E=!1;if(o==1)n.inherit(u),m||(E=!0,n.set(256));else{let k=n.forkElse(a);!T&&!m?(n.inherit(k),n.mergeSideEffects(u)):n.inheritAlternatives(u,k)}this.currentFlow=n;let F=[t.loop(f,t.if(l,t.flatten(d)))];return E&&F.push(t.unreachable()),t.block(_,F)}compileInlineConstant(e,t,n){assert(e.is(37748736));let s=e.type;switch(this.currentType=s,s.kind){case 0:return this.module.i32(e.constantValueKind==1?i64_ne(e.constantIntegerValue,i64_zero):0);case 1:case 2:{let a=s.computeSmallIntegerShift(c.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)<<a>>a:0)}case 6:case 7:{let a=e.type.computeSmallIntegerMask(c.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)&a:0)}case 3:case 8:return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 5:case 10:if(!e.program.options.isWasm64)return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 4:case 9:return e.constantValueKind==1?this.module.i64(i64_low(e.constantIntegerValue),i64_high(e.constantIntegerValue)):this.module.i64(0);case 12:{if(!(e.hasDecorator(512)&&t==c.f32))return this.module.f64(e.constantFloatValue);this.currentType=c.f32}case 11:return this.module.f32(e.constantFloatValue);default:return assert(!1),this.module.unreachable()}}compileExpression(e,t,n=0){for(;e.kind==21;)e=e.expression;this.currentType=t,t==c.void&&(n|=8);let s;switch(e.kind){case 8:{s=this.compileAssertionExpression(e,t,n);break}case 9:{s=this.compileBinaryExpression(e,t,n);break}case 10:{s=this.compileCallExpression(e,t,n);break}case 12:{s=this.compileCommaExpression(e,t,n);break}case 13:{s=this.compileElementAccessExpression(e,t,n);break}case 15:{s=this.compileFunctionExpression(e,t,n);break}case 7:case 14:case 19:case 25:case 24:case 26:{s=this.compileIdentifierExpression(e,t,n);break}case 16:{s=this.compileInstanceOfExpression(e,t,n);break}case 17:{s=this.compileLiteralExpression(e,t,n);break}case 18:{s=this.compileNewExpression(e,t,n);break}case 22:{s=this.compilePropertyAccessExpression(e,t,n);break}case 23:{s=this.compileTernaryExpression(e,t,n);break}case 28:{s=this.compileUnaryPostfixExpression(e,t,n);break}case 29:{s=this.compileUnaryPrefixExpression(e,t,n);break}case 30:{let o=e;s=o.expr,this.currentType=o.type;break}case 11:{this.error(100,e.range,"Block-scoped class declarations or expressions"),s=this.module.unreachable();break}default:assert(!1),s=this.module.unreachable()}let a=this.currentType,l=(n&4)!=0;return a!=t.nonNullableType&&(n&2?(s=this.convertExpression(s,a,t,!0,e),this.currentType=a=t):n&1&&(s=this.convertExpression(s,a,t,!1,e),this.currentType=a=t)),l&&(s=this.ensureSmallIntegerWrap(s,a)),this.options.sourceMap&&this.addDebugLocation(s,e.range),s}convertExpression(e,t,n,s,a){let l=this.module;if(t.kind==25)return n.kind==25?e:(this.error(2322,a.range,t.toString(),n.toString()),l.unreachable());if(n.kind==25)return l.drop(e);if(t.isReference||n.isReference)return this.currentFlow.isNonnull(e,t)?t=t.nonNullableType:s&&t.isNullableReference&&!n.isNullableReference&&(this.options.noAssert||(e=this.makeRuntimeNonNullCheck(e,t,a)),t=t.nonNullableType),t.isAssignableTo(n)?(assert(n.isExternalReference||t.kind==n.kind),this.currentType=n,e):s&&n.nonNullableType.isAssignableTo(t)?n.isExternalReference?(this.error(100,a.range,"ref.cast"),this.currentType=n,l.unreachable()):(assert(t.kind==n.kind),this.options.noAssert||(e=this.makeRuntimeDowncastCheck(e,t,n,a)),this.currentType=n,e):(this.error(2322,a.range,t.toString(),n.toString()),this.currentType=n,l.unreachable());if(assert(!t.isReference&&!n.isReference),n.kind==t.kind)return this.currentType=n,e;if(!n.isBooleanValue&&(n.isVectorValue||t.isVectorValue))return this.error(2322,a.range,t.toString(),n.toString()),l.unreachable();if(t.isAssignableTo(n)||s||this.error(200,a.range,t.toString(),n.toString()),t.isFloatValue)if(n.isFloatValue)t.kind==11?n.kind==12&&(e=l.unary(43,e)):n.kind==11&&(e=l.unary(44,e));else if(n.isIntegerValue)if(t.kind==11)if(n.isBooleanValue)e=this.makeIsTrueish(e,c.f32,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?56:26,e):e=l.unary(o?52:25,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?57:28,e):e=l.unary(o?53:27,e)}else if(n.isBooleanValue)e=this.makeIsTrueish(e,c.f64,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?58:30,e):e=l.unary(o?54:29,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?59:32,e):e=l.unary(o?55:31,e)}else assert(n.flags==0,"void type expected"),e=l.drop(e);else if(t.isIntegerValue&&n.isFloatValue){e=this.ensureSmallIntegerWrap(e,t);let o;n.kind==11?t.isLongIntegerValue?t.isSignedIntegerValue?o=39:o=41:t.isSignedIntegerValue?o=35:o=37:t.isLongIntegerValue?t.isSignedIntegerValue?o=40:o=42:t.isSignedIntegerValue?o=36:o=38,e=l.unary(o,e)}else t==c.v128&&n.isBooleanValue?e=this.makeIsTrueish(e,c.v128,a):t.isLongIntegerValue?n.isBooleanValue?e=l.binary(41,e,l.i64(0)):n.isLongIntegerValue||(e=l.unary(24,e)):n.isLongIntegerValue?e=l.unary(t.isSignedIntegerValue?22:23,this.ensureSmallIntegerWrap(e,t)):t.isShortIntegerValue?t.size<n.size&&(e=this.ensureSmallIntegerWrap(e,t)):!s&&!this.options.isWasm64&&t.isVaryingIntegerValue&&!n.isVaryingIntegerValue&&this.warning(201,a.range,t.toString(),n.toString());return this.currentType=n,e}compileAssertionExpression(e,t,n){let s=n&-4;switch(e.assertionKind){case 0:case 1:{let a=this.currentFlow,l=this.resolver.resolveType(assert(e.toType),a,a.sourceFunction,_e(a.contextualTypeArguments));return l?this.compileExpression(e.expression,l,s|2):this.module.unreachable()}case 2:{assert(!e.toType);let a=this.compileExpression(e.expression,t.exceptVoid,s),l=this.currentType;return this.currentFlow.isNonnull(a,l)?this.info(210,e.expression.range):this.options.noAssert||(a=this.makeRuntimeNonNullCheck(a,l,e)),this.currentType=l.nonNullableType,a}case 3:return this.error(100,e.range,"Const assertion"),this.module.unreachable();default:assert(!1)}return this.module.unreachable()}compileCommutativeCompareBinaryExpression(e,t){let n=e.left,s=this.compileExpression(n,t),a=this.currentType,l=e.right,o=this.compileExpression(l,a),u=this.currentType;return this.compileCommutativeCompareBinaryExpressionFromParts(e.operator,n,s,a,l,o,u,t,e)}compileCommutativeCompareBinaryExpressionFromParts(e,t,n,s,a,l,o,u,p){let _=this.module,f=Fe(e),d=we.fromBinaryToken(e),h=s.lookupOverload(d,this.program),g=o.lookupOverload(d,this.program);if(h&&g&&h!=g)return this.error(240,p.range,f,h.internalName,g.internalName),this.currentType=u,_.unreachable();if(h)return this.compileCommutativeBinaryOverload(h,t,n,s,a,l,o,p);if(g)return this.compileCommutativeBinaryOverload(g,a,l,o,t,n,s,p);let T=c.commonType(s,o,u,!1);if(!T)return this.error(2365,p.range,f,s.toString(),o.toString()),this.currentType=u,_.unreachable();switch(T.isFloatValue&&((Hl(_,l)||Hl(_,n))&&this.warning(907,p.range),(Kl(l)||Kl(n))&&this.warning(908,p.range)),n=this.convertExpression(n,s,T,!1,t),s=T,l=this.convertExpression(l,o,T,!1,a),o=T,this.currentType=c.bool,e){case 78:case 76:return this.makeEq(n,l,T,p);case 79:case 77:return this.makeNe(n,l,T,p);default:return assert(!1),_.unreachable()}}compileNonCommutativeCompareBinaryExpression(e,t){let n=this.module,s=e.left,a=e.right,l,o,u,p,_,f=e.operator,d=Fe(f);l=this.compileExpression(s,t),o=this.currentType;let h=we.fromBinaryToken(f),g=o.lookupOverload(h,this.program);if(g)return this.compileBinaryOverload(g,s,l,o,a,e);if(u=this.compileExpression(a,o),p=this.currentType,_=c.commonType(o,p,t,!0),!_||!_.isNumericValue)return this.error(2365,e.range,d,o.toString(),p.toString()),this.currentType=t,n.unreachable();switch(l=this.convertExpression(l,o,_,!1,s),o=_,u=this.convertExpression(u,p,_,!1,a),p=_,this.currentType=c.bool,f){case 72:return this.makeLt(l,u,_);case 73:return this.makeGt(l,u,_);case 74:return this.makeLe(l,u,_);case 75:return this.makeGe(l,u,_);default:return assert(!1),n.unreachable()}}compileBinaryExpression(e,t,n){let s=this.module,a=e.left,l=e.right,o,u,p,_,f,d,h=!1;switch(e.operator){case 72:case 73:case 74:case 75:return this.compileNonCommutativeCompareBinaryExpression(e,t);case 78:case 76:case 79:case 77:return this.compileCommutativeCompareBinaryExpression(e,t);case 101:return this.compileAssignment(a,l,t);case 102:h=!0;case 81:{o=this.compileExpression(a,t),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(5);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"+",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"+",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeAdd(o,p,f);break}case 103:h=!0;case 82:{o=this.compileExpression(a,t),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(6);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"-",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"-",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeSub(o,p,f);break}case 104:h=!0;case 84:{o=this.compileExpression(a,t),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(7);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"*",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"*",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeMul(o,p,f);break}case 105:h=!0;case 83:{o=this.compileExpression(a,t),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(10);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"**",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"**",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makePow(o,p,f,e);break}case 106:h=!0;case 85:{o=this.compileExpression(a,t),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(8);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"/",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"/",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeDiv(o,p,f);break}case 107:h=!0;case 86:{o=this.compileExpression(a,t),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(9);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isNumericValue)return this.error(2469,e.range,"%",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isNumericValue)return this.error(2365,e.range,"%",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeRem(o,p,f,e);break}case 108:h=!0;case 89:{o=this.compileExpression(a,t.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(14);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,"<<",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=this.currentType,d=this.makeShl(o,p,_);break}case 109:h=!0;case 90:{o=this.compileExpression(a,t.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(15);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>",u.toString()),this.module.unreachable();p=this.compileExpression(l,u,1),_=this.currentType,d=this.makeShr(o,p,_);break}case 110:h=!0;case 91:{o=this.compileExpression(a,t.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(16);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>>",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=this.currentType,d=this.makeShru(o,p,_);break}case 111:h=!0;case 92:{o=this.compileExpression(a,t.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(11);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isIntegerValue)return this.error(2469,e.range,"&",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isIntegerValue)return this.error(2365,e.range,"&",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeAnd(o,p,f);break}case 112:h=!0;case 93:{o=this.compileExpression(a,t.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(12);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isIntegerValue)return this.error(2469,e.range,"|",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isIntegerValue)return this.error(2365,e.range,"|",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeOr(o,p,f);break}case 113:h=!0;case 94:{o=this.compileExpression(a,t.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let F=E.lookupOverload(13);if(F){d=this.compileBinaryOverload(F,a,o,u,l,e);break}}if(h){if(!u.isIntegerValue)return this.error(2469,e.range,"^",u.toString()),s.unreachable();p=this.compileExpression(l,u,1),_=f=this.currentType}else{if(p=this.compileExpression(l,u),_=this.currentType,f=c.commonType(u,_,t),!f||!f.isIntegerValue)return this.error(2365,e.range,"^",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f,p=this.convertExpression(p,_,f,!1,l),_=f}d=this.makeXor(o,p,f);break}case 97:{let E=this.currentFlow,F=n&4;o=this.compileExpression(a,t.exceptVoid,F),u=this.currentType;let k=E.forkThen(o);if(this.currentFlow=k,t==c.bool||t==c.void){o=this.makeIsTrueish(o,u,a);let R=this.evaluateCondition(o);R==2?d=o:(p=this.compileExpression(l,u,F),_=this.currentType,p=this.makeIsTrueish(p,_,l),R==1?(d=p,E.inherit(k)):(d=s.if(o,p,s.i32(0)),E.mergeBranch(k),E.noteThen(d,k))),this.currentFlow=E,this.currentType=c.bool}else{if(p=this.compileExpression(l,u,F),_=this.currentType,f=c.commonType(u,_,t),!f)return this.error(2365,e.range,"&&",u.toString(),_.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,f,!1,a),u=f;let R=s.runExpression(o,1);R&&(o=R),p=this.convertExpression(p,_,f,!1,l),_=f;let C=this.makeIsTrueish(o,this.currentType,a),D=this.evaluateCondition(C);if(D!=0)d=D==1?p:o;else if(d=s.tryCopyTrivialExpression(o))d=s.if(C,p,d);else{let U=E.getTempLocal(u);E.canOverflow(o,u)||E.setLocalFlag(U.index,2),E.isNonnull(o,u)&&E.setLocalFlag(U.index,4),d=s.if(this.makeIsTrueish(s.local_tee(U.index,o,u.isManaged),u,a),p,s.local_get(U.index,u.toRef()))}E.mergeBranch(k),E.noteThen(d,k),this.currentFlow=E,this.currentType=f}break}case 98:{let E=this.currentFlow,F=n&4;o=this.compileExpression(a,t.exceptVoid,F),u=this.currentType;let k=E.forkElse(o);if(this.currentFlow=k,t==c.bool||t==c.void){o=this.makeIsTrueish(o,u,a);let R=this.evaluateCondition(o);R==1?d=o:(p=this.compileExpression(l,u,F),_=this.currentType,p=this.makeIsTrueish(p,_,l),R==2?(d=p,E.inherit(k)):(d=s.if(o,s.i32(1),p),E.mergeBranch(k),E.noteElse(d,k))),this.currentFlow=E,this.currentType=c.bool}else{if(p=this.compileExpression(l,u,F),_=this.currentType,f=c.commonType(u,_,t),!f)return this.error(2365,e.range,"||",u.toString(),_.toString()),this.currentType=t,s.unreachable();let R=u.is(512)&&_.is(512);o=this.convertExpression(o,u,f,!1,a),u=f;let C=s.runExpression(o,1);C&&(o=C),p=this.convertExpression(p,_,f,!1,l),_=f;let D=this.makeIsTrueish(o,this.currentType,a),U=this.evaluateCondition(D);if(U!=0)d=U==1?o:p;else if(d=s.tryCopyTrivialExpression(o))d=s.if(D,d,p);else{let O=E.getTempLocal(u).index;E.canOverflow(o,u)||E.setLocalFlag(O,2),E.isNonnull(o,u)&&E.setLocalFlag(O,4),d=s.if(this.makeIsTrueish(s.local_tee(O,o,u.isManaged),u,a),s.local_get(O,u.toRef()),p)}E.mergeBranch(k),E.noteElse(d,k),this.currentFlow=E,this.currentType=R?f:f.nonNullableType}break}case 29:return this.error(100,e.range,"'in' operator"),this.currentType=c.bool,s.unreachable();default:{assert(!1),d=this.module.unreachable();break}}if(!h)return d;let m=this.resolver,T=m.lookupExpression(a,this.currentFlow);if(!T)return s.unreachable();let S=m.getTypeOfElement(T);return S||(S=c.void),this.currentType.isStrictlyAssignableTo(S)?this.makeAssignment(T,d,this.currentType,l,m.currentThisExpression,m.currentElementExpression,t!=c.void):(this.error(2322,e.range,this.currentType.toString(),S.toString()),s.unreachable())}makeLt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(17,e,t);case 4:return s.binary(42,e,t);case 5:return s.binary(234,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(18,e,t);case 9:return s.binary(43,e,t);case 10:return s.binary(235,e,t);case 11:return s.binary(59,e,t);case 12:return s.binary(72,e,t)}return assert(!1),s.unreachable()}makeGt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(21,e,t);case 4:return s.binary(46,e,t);case 5:return s.binary(238,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(22,e,t);case 9:return s.binary(47,e,t);case 10:return s.binary(239,e,t);case 11:return s.binary(61,e,t);case 12:return s.binary(74,e,t)}return assert(!1),s.unreachable()}makeLe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(19,e,t);case 4:return s.binary(44,e,t);case 5:return s.binary(236,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(20,e,t);case 9:return s.binary(45,e,t);case 10:return s.binary(237,e,t);case 11:return s.binary(60,e,t);case 12:return s.binary(73,e,t)}return assert(!1),s.unreachable()}makeGe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(23,e,t);case 4:return s.binary(48,e,t);case 5:return s.binary(240,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(24,e,t);case 9:return s.binary(49,e,t);case 10:return s.binary(241,e,t);case 11:return s.binary(62,e,t);case 12:return s.binary(75,e,t)}return assert(!1),s.unreachable()}makeEq(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(15,e,t);case 4:case 9:return a.binary(40,e,t);case 5:case 10:return a.binary(232,e,t);case 11:return a.binary(57,e,t);case 12:return a.binary(70,e,t);case 13:return a.unary(70,a.binary(76,e,t));case 17:case 18:case 19:case 20:return a.ref_eq(e,t);case 21:return a.string_eq(e,t);case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeNe(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(16,e,t);case 4:case 9:return a.binary(41,e,t);case 5:case 10:return a.binary(233,e,t);case 11:return a.binary(58,e,t);case 12:return a.binary(71,e,t);case 13:return a.unary(67,a.binary(77,e,t));case 17:case 18:case 19:case 20:return a.unary(20,a.ref_eq(e,t));case 21:return a.unary(20,a.string_eq(e,t));case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeAdd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(0,e,t);case 4:case 9:return s.binary(25,e,t);case 5:case 10:return s.binary(217,e,t);case 11:return s.binary(50,e,t);case 12:return s.binary(63,e,t)}return assert(!1),s.unreachable()}makeSub(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(1,e,t);case 4:case 9:return s.binary(26,e,t);case 5:case 10:return s.binary(218,e,t);case 11:return s.binary(51,e,t);case 12:return s.binary(64,e,t)}return assert(!1),s.unreachable()}makeMul(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(2,e,t);case 4:case 9:return s.binary(27,e,t);case 5:case 10:return s.binary(219,e,t);case 11:return s.binary(52,e,t);case 12:return s.binary(65,e,t)}return assert(!1),s.unreachable()}makePow(e,t,n,s){let a=this.module;switch(n.kind){case 0:return a.select(a.i32(1),a.binary(15,t,a.i32(0)),e);case 1:case 6:case 2:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let u=ne(e),p=ne(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(p))))}let l=this.i32PowInstance;if(!l){let u=this.program.lookup(P.ipow32);if(!u)return this.error(2304,s.range,"ipow32"),a.unreachable();assert(u.kind==4),this.i32PowInstance=l=this.resolver.resolveFunction(u,null)}if(!l||!this.compileFunction(l))return a.unreachable();let o=this.makeCallDirect(l,[e,t],s);return n.size<32&&(o=this.ensureSmallIntegerWrap(o,n)),o}case 4:case 9:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=i64_new(Ie(e),Le(e)),u=i64_new(Ie(t),Le(t)),p=i64_pow(o,u);return this.currentType=n,a.i64(i64_low(p),i64_high(p))}let l=this.i64PowInstance;if(!l){let o=this.program.lookup(P.ipow64);if(!o)return this.error(2304,s.range,"ipow64"),a.unreachable();assert(o.kind==4),this.i64PowInstance=l=this.resolver.resolveFunction(o,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 5:case 10:{let l=this.options.isWasm64;if(this.options.willOptimize&&re(e)==14&&re(t)==14)if(l){let u=i64_new(Ie(e),Le(e)),p=i64_new(Ie(t),Le(t)),_=i64_pow(u,p);return this.currentType=n,a.i64(i64_low(_),i64_high(_))}else{let u=ne(e),p=ne(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(p))))}let o=l?this.i64PowInstance:this.i32PowInstance;if(!o){let u=this.program.lookup(l?P.ipow64:P.ipow32);if(!u)return this.error(2304,s.range,l?"ipow64":"ipow32"),a.unreachable();assert(u.kind==4),o=this.resolver.resolveFunction(u,null),l?this.i64PowInstance=o:this.i32PowInstance=o}return!o||!this.compileFunction(o)?a.unreachable():this.makeCallDirect(o,[e,t],s)}case 11:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Ee(e),u=Ee(t);return this.currentType=n,a.f32(f32(Ia(o,u)))}let l=this.f32PowInstance;if(!l){let o=this.program.lookup(P.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(P.pow);if(!u)return this.error(2304,s.range,"Mathf.pow"),a.unreachable();assert(u.kind==4),this.f32PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Se(e),u=Se(t);return this.currentType=n,a.f64(Ia(o,u))}let l=this.f64PowInstance;if(!l){let o=this.program.lookup(P.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(P.pow);if(!u)return this.error(2304,s.range,"Math.pow"),a.unreachable();assert(u.kind==4),this.f64PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeDiv(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(3,e,t);case 4:return s.binary(28,e,t);case 5:return s.binary(220,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(4,e,t);case 9:return s.binary(29,e,t);case 10:return s.binary(221,e,t);case 11:return s.binary(53,e,t);case 12:return s.binary(66,e,t)}return assert(!1),s.unreachable()}makeRem(e,t,n,s){let a=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return a.binary(5,e,t);case 4:return a.binary(30,e,t);case 5:return a.binary(222,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return a.binary(6,e,t);case 9:return a.binary(31,e,t);case 10:return a.binary(223,e,t);case 11:{let l=this.f32ModInstance;if(!l){let o=this.program.lookup(P.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(P.mod);if(!u)return this.error(2304,s.range,"Mathf.mod"),a.unreachable();assert(u.kind==4),this.f32ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{let l=this.f64ModInstance;if(!l){let o=this.program.lookup(P.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(P.mod);if(!u)return this.error(2304,s.range,"Math.mod"),a.unreachable();assert(u.kind==4),this.f64ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeShl(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(10,e,s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(10,e,t);case 4:case 9:return s.binary(35,e,t);case 5:case 10:return s.binary(227,e,t)}return assert(!1),s.unreachable()}makeShr(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:return s.binary(11,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:return s.binary(11,e,t);case 4:return s.binary(36,e,t);case 5:return s.binary(228,e,t);case 8:return s.binary(12,e,t);case 9:return s.binary(37,e,t);case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeShru(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(12,e,t);case 4:case 9:return s.binary(37,e,t);case 5:case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeAnd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return s.binary(7,e,t);case 4:case 9:return s.binary(32,e,t);case 5:case 10:return s.binary(224,e,t)}return assert(!1),s.unreachable()}makeOr(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(8,e,t);case 3:case 8:return s.binary(8,e,t);case 4:case 9:return s.binary(33,e,t);case 5:case 10:return s.binary(225,e,t)}return assert(!1),s.unreachable()}makeXor(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(9,e,t);case 3:case 8:return s.binary(9,e,t);case 4:case 9:return s.binary(34,e,t);case 5:case 10:return s.binary(226,e,t)}return assert(!1),s.unreachable()}compileUnaryOverload(e,t,n,s){return this.makeCallDirect(e,[n],s,!1)}compileBinaryOverload(e,t,n,s,a,l){let o,u=e.signature,p=u.parameterTypes;e.is(262144)?(n=this.convertExpression(n,s,assert(u.thisType),!1,t),o=p[0]):(n=this.convertExpression(n,s,p[0],!1,t),o=p[1]);let _=this.compileExpression(a,o,1);return this.makeCallDirect(e,[n,_],l)}compileCommutativeBinaryOverload(e,t,n,s,a,l,o,u){let p=e.signature,_=p.parameterTypes;return e.is(262144)?(n=this.convertExpression(n,s,assert(p.thisType),!1,t),l=this.convertExpression(l,o,_[0],!1,a)):(n=this.convertExpression(n,s,_[0],!1,t),l=this.convertExpression(l,o,_[1],!1,a)),this.makeCallDirect(e,[n,l],u)}compileAssignment(e,t,n){let a=this.program.resolver,l=this.currentFlow,o=a.lookupExpression(e,l);if(!o)return this.module.unreachable();let u=a.currentThisExpression,p=a.currentElementExpression,_;switch(o.kind){case 0:case 1:{if(o.kind==0){if(!this.compileGlobalLazy(o,e))return this.module.unreachable()}else if(!o.declaredByFlow(l)&&(!o.isCaptured||o.envSlotIndex<0))return this.error(100,e.range,"Closures"),this.module.unreachable();if(this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();_=o.type,o.hasDecorator(2048)&&this.checkUnsafe(e);break}case 10:{let h=o,g=a.resolveProperty(h);if(!g)return this.module.unreachable();o=g}case 11:{let h=o;if(h.isField&&this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();let g=h.setterInstance;if(!g)return this.error(2540,e.range,h.internalName),this.module.unreachable();assert(g.signature.parameterTypes.length==1),_=g.signature.parameterTypes[0],g.hasDecorator(2048)&&this.checkUnsafe(e);break}case 15:{let h=o.parent;assert(h.kind==7);let g=h,m=l.is(32768),T=g.lookupOverload(2,m);if(!T)return g.lookupOverload(1,m)?this.error(2542,e.range,g.internalName):this.error(2329,e.range,g.internalName),this.module.unreachable();let S=T.signature.parameterTypes;assert(S.length==2),_=S[1],T.hasDecorator(2048)&&this.checkUnsafe(e),!m&&this.options.pedantic&&this.pedantic(904,e.range);break}default:return this.error(2540,e.range,o.internalName),this.module.unreachable()}assert(_!=c.void);let f=this.compileExpression(t,_),d=this.currentType;return _.isNullableReference&&this.currentFlow.isNonnull(f,d)&&(_=_.nonNullableType),this.makeAssignment(o,this.convertExpression(f,d,_,!1,t),_,t,u,p,n!=c.void)}makeAssignment(e,t,n,s,a,l,o){let u=this.module,p=this.currentFlow;switch(e.kind){case 1:{let _=e;return p.isLocalFlag(_.index,1,!0)?(this.error(2540,s.range,e.internalName),this.currentType=o?_.type:c.void,u.unreachable()):this.makeLocalAssignment(_,t,n,o)}case 0:{let _=e;return this.compileGlobalLazy(_,s)?e.isAny(72)?(this.error(2540,s.range,e.internalName),this.currentType=o?_.type:c.void,u.unreachable()):this.makeGlobalAssignment(_,t,n,o):u.unreachable()}case 10:{let _=this.resolver.resolveProperty(e);if(!_)return u.unreachable();e=_}case 11:{let _=e;if(_.isField){let d=p.sourceFunction.is(524288);if(_.is(64)){let h=_.initializerNode;if(!d||h)return this.error(2540,s.range,_.internalName),u.unreachable()}a=assert(a),d&&a.kind==25&&p.setThisFieldFlag(_,1)}let f=_.setterInstance;if(!f)return this.error(2540,s.range,e.internalName),u.unreachable();if(assert(f.signature.parameterTypes.length==1),assert(f.signature.returnType==c.void),_.is(262144)){let d=assert(f.signature.thisType),h=this.compileExpression(assert(a),d,33);if(!o)return this.makeCallDirect(f,[h,t],s);let g=p.getTempLocal(n),m=n.toRef(),T=u.block(null,[this.makeCallDirect(f,[h,u.local_tee(g.index,t,n.isManaged,m)],s),u.local_get(g.index,m)],m);return this.currentType=n,T}else{if(!o)return this.makeCallDirect(f,[t],s);let d=p.getTempLocal(n),h=n.toRef(),g=u.block(null,[this.makeCallDirect(f,[u.local_tee(d.index,t,n.isManaged,h)],s),u.local_get(d.index,h)],h);return this.currentType=n,g}}case 15:{let f=e.parent;assert(f.kind==7);let d=f;assert(d.kind==7);let h=p.is(32768),g=d.lookupOverload(1,h);if(!g)return this.error(2329,s.range,d.internalName),u.unreachable();let m=d.lookupOverload(2,h);if(!m)return this.error(2542,s.range,d.internalName),this.currentType=o?g.signature.returnType:c.void,u.unreachable();assert(m.signature.parameterTypes.length==2);let T=d.type,S=this.compileExpression(assert(a),T,33),E=m.signature.parameterTypes[0],F=g.signature.parameterTypes[0];if(!E.equals(F))return this.errorRelated(237,g.identifierAndSignatureRange,m.identifierAndSignatureRange,d.internalName),this.currentType=o?g.signature.returnType:c.void,u.unreachable();let k=this.compileExpression(assert(l),E,1),R=this.currentType;if(o){let C=p.getTempLocal(T),D=p.getTempLocal(R),U=g.signature.returnType;return u.block(null,[this.makeCallDirect(m,[u.local_tee(C.index,S,T.isManaged),u.local_tee(D.index,k,R.isManaged),t],s),this.makeCallDirect(g,[u.local_get(C.index,C.type.toRef()),u.local_get(D.index,D.type.toRef())],s)],U.toRef())}else return this.makeCallDirect(m,[S,k,t],s)}default:this.error(2541,s.range)}return u.unreachable()}makeLocalAssignment(e,t,n,s){let a=this.module,l=this.currentFlow,o=e.type;assert(o!=c.void);let u=e.index;if(e.isCaptured&&e.envSlotIndex>=0){let p=l.sourceFunction;if(!(e.parent==p)||p.envLocal){l.setLocalFlag(u,8),o.isNullableReference&&(!n.isNullableReference||l.isNonnull(t,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),o.isShortIntegerValue&&(l.canOverflow(t,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2));let f=this.compileClosureStore(e,t,n);if(s){let d=this.compileClosureLoad(e,e.declaration);return this.currentType=o,a.block(null,[f,d],o.toRef())}else return this.currentType=c.void,f}}return o.isNullableReference&&(!n.isNullableReference||l.isNonnull(t,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),l.setLocalFlag(u,8),o.isShortIntegerValue&&(l.canOverflow(t,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2)),e.isCaptured||(e.wasAccessedAsLocal=!0),s?(this.currentType=o,a.local_tee(u,t,o.isManaged)):(this.currentType=c.void,a.local_set(u,t,o.isManaged))}makeGlobalAssignment(e,t,n,s){let a=this.module,l=e.type;assert(l!=c.void);let o=l.toRef();return t=this.ensureSmallIntegerWrap(t,l),s?(this.currentType=l,a.block(null,[a.global_set(e.internalName,t),a.global_get(e.internalName,o)],o)):(this.currentType=c.void,a.global_set(e.internalName,t))}compileCallExpression(e,t,n){let s=this.module,a=this.currentFlow;if(e.expression.kind==24){let _=this.currentFlow,f=_.sourceFunction;if(!f.is(524288))return this.error(2337,e.range),s.unreachable();let d=assert(f.parent);assert(d.kind==7);let h=d,g=h.base;if(!g||h.prototype.implicitlyExtendsObject)return this.error(2335,e.expression.range),s.unreachable();let m=assert(_.lookupLocal(P.this_)),T=this.options.sizeTypeRef,S=this.ensureConstructor(g,e);this.checkFieldInitialization(g,e);let E=this.compileCallDirect(S,e.args,e,s.local_get(m.index,T));return _.isAny(8256)?(this.error(17009,e.range),s.unreachable()):(_.set(192),this.currentType=c.void,s.local_set(m.index,E,h.type.isManaged))}let l=this.resolver.lookupExpression(e.expression,a);if(!l)return s.unreachable();let o=this.resolver.currentThisExpression;switch(l.kind){case 4:{let _=l;if(_.hasDecorator(512))return this.compileCallExpressionBuiltin(_,e,t);let f=this.resolver.maybeInferCall(e,_,a);if(!f)return this.module.unreachable();l=f}case 5:{let _=l,f=0;return _.is(262144)&&(f=this.compileExpression(assert(o),assert(_.signature.thisType),33)),this.compileCallDirect(_,e.args,e,f,n)}}let u=this.compileExpression(e.expression,c.auto),p=this.currentType.getSignature();if(p)return this.compileCallIndirect(p,u,e.args,e,0,t==c.void);if(this.error(2349,e.range,this.currentType.toString()),l.kind==10){let _=l.getterPrototype;_&&this.infoRelated(6234,e.range,_.identifierNode.range)}return s.unreachable()}compileCallExpressionLike(e,t,n,s,a,l=0){let o=this._reusableCallExpression;return o?(o.expression=e,o.typeArguments=t,o.args=n,o.range=s):this._reusableCallExpression=o=z.createCallExpression(e,t,n,s),this.compileCallExpression(o,a,l)}compileCallExpressionBuiltin(e,t,n){e.hasDecorator(2048)&&this.checkUnsafe(t);let s=null,a=e.typeParameterNodes,l=t.typeArguments;t.typeArguments&&(e.is(65536)||this.error(2315,t.range,e.internalName),s=this.resolver.resolveTypeArguments(assert(a),l,this.currentFlow,this.currentFlow.sourceFunction.parent,_e(this.currentFlow.contextualTypeArguments),t));let o=t.expression,u=new bo(this,e,s,t.args,o.kind==22?o.expression:null,n,t,!1),p;return e.is(262144)?p=`${assert(e.getBoundClassOrInterface()).prototype.internalName}#${e.name}`:p=e.internalName,assert(x.has(p)),assert(x.get(p))(u)}checkCallSignature(e,t,n,s){let a=e.thisType;if(n!=(a!=null))return this.error(2685,s.range),!1;let l=e.hasRest,o=e.requiredParameters,u=e.parameterTypes.length;return t<o?(this.error(o<u?2555:2554,s.range,o.toString(),t.toString()),!1):t>u&&!l?(this.error(2554,s.range,u.toString(),t.toString()),!1):!0}checkUnsafe(e,t=null){this.options.noUnsafe&&!e.range.source.isLibrary&&(t?this.errorRelated(101,e.range,t.range):this.error(101,e.range))}adjustArgumentsForRestParams(e,t,n){if(!t.hasRest)return e;let s=e.length,a=t.parameterTypes.length;if(s<a)return e;let l=e.slice(a-1),o=new ce(l[0].range.start,l[l.length-1].range.end);o.source=n.range.source;let u=new Cr(l,o),p=e.slice(0,a-1);return p.push(u),p}compileCallDirect(e,t,n,s=0,a=0){let l=t.length,o=e.signature;if(!this.checkCallSignature(o,l,s!=0,n))return this.currentType=o.returnType,this.module.unreachable();e.hasDecorator(2048)&&this.checkUnsafe(n),t=this.adjustArgumentsForRestParams(t,o,n),l=t.length;let u=this.currentFlow.sourceFunction;if(u.is(524288)&&n.isAccessOnThis){let g=u.parent;assert(g.kind==7),this.checkFieldInitialization(g,n)}if((e.hasDecorator(64)||this.currentFlow.is(131072))&&(!e.is(268435456)||n.isAccessOnSuper)){assert(!e.is(134217728));let g=this.inlineStack;if(g.includes(e))this.warning(217,n.range,e.internalName);else{let m=o.parameterTypes;assert(l<=m.length);let T=new Array(l);for(let E=0;E<l;++E)T[E]=this.compileExpression(t[E],m[E],1);g.push(e);let S=this.makeCallInline(e,T,s,(a&8)!=0);return g.pop(),S}}let _=s?l+1:l,f=new Array(_),d=0;s&&(f[0]=s,d=1);let h=o.parameterTypes;for(let g=0;g<l;++g,++d){let m=h[g],T=this.compileExpression(t[g],m,1);f[d]=T}return assert(d==_),this.makeCallDirect(e,f,n,(a&8)!=0)}makeCallInline(e,t,n=0,s=!1){let a=this.module,l=t?t.length:0,u=e.signature.parameterTypes,p=u.length,_=this.currentFlow,f=qt.createInline(_.targetFunction,e),d=[];if(n){let m=assert(e.parent);assert(m.kind==7);let T=m,S=assert(e.signature.thisType),E=f.addScopedLocal(P.this_,S);d.push(a.local_set(E.index,n,S.isManaged)),f.setLocalFlag(E.index,8);let F=T.base;F&&f.addScopedAlias(P.super_,F.type,E.index)}else assert(!e.signature.thisType);for(let m=0;m<l;++m){let T=t[m],S=u[m],E=f.addScopedLocal(e.getParameterName(m),S);_.canOverflow(T,S)||f.setLocalFlag(E.index,2),f.isNonnull(T,S)&&f.setLocalFlag(E.index,4),d.push(a.local_set(E.index,T,S.isManaged)),f.setLocalFlag(E.index,8)}this.currentFlow=f;let h=e.is(524288);h&&f.set(65536);for(let m=l;m<p;++m){let T=u[m],S=this.compileExpression(assert(e.prototype.functionTypeNode.parameters[m].initializer),T,1),E=f.addScopedLocal(e.getParameterName(m),T);d.push(this.makeLocalAssignment(E,S,T,!1))}if(f.unset(65536),this.compileFunctionBody(e,d),h){let m=e.parent;assert(m.kind==7),this.checkFieldInitializationInFlow(m,f)}let g=f.returnType;return this.currentFlow=_,this.currentType=g,a.block(f.inlineReturnLabel,d,g.toRef())}ensureArgumentsLength(){let e=y.argumentsLength;if(!this.builtinArgumentsLength){let t=this.module;this.builtinArgumentsLength=t.addGlobal(e,N.I32,!0,t.i32(0))}return e}ensureClosureEnvironmentGlobal(){let e="~lib/__closure_env";if(!this.closureEnvironmentGlobal){let t=this.module,n=this.options.sizeTypeRef,s=this.options.isWasm64?t.i64(0):t.i32(0);this.closureEnvironmentGlobal=t.addGlobal(e,n,!0,s)}return e}ensureExceptionTag(){let e="error";if(!this.exceptionTagEnsured){let t=this.module,n=this.options.sizeTypeRef;t.addTag(e,n,N.None),this.exceptionTagEnsured=!0}return e}ensureVarargsStub(e){let t=e.varargsStub;if(t)return t;let n=e.signature,s=n.parameterTypes,a=e.prototype.functionTypeNode.parameters,l=n.returnType,o=e.is(262144),u=n.requiredParameters,p=u,_=s.length,f=_;o&&(++p,++f);let d=assert(f-p),h=new Array(p),g=0,m=new Array,T=this.module,S=n.thisType;S&&(h[0]=T.local_get(0,S.toRef()),g=1);for(let O=0;O<u;++O,++g){let Y=s[O];h[g]=T.local_get(g,Y.toRef())}assert(g==p),t=e.newStub("varargs",_),e.varargsStub=t;let E=this.currentFlow,F=t.flow;e.is(524288)&&F.set(65536),this.currentFlow=F;let k=d+1,R=new Array(k),C=`of${d}`;for(let O=0;O<k;++O)R[O]=`${O}${C}`;let D=this.ensureArgumentsLength(),U=T.block(R[0],[T.block("outOfRange",[T.switch(R,"outOfRange",u?T.binary(1,T.global_get(D,N.I32),T.i32(u)):T.global_get(D,N.I32))]),T.unreachable()]);for(let O=0;O<d;++O,++g){let Y=s[u+O],Z=a[u+O],ee=Z.initializer,K;if(Z.parameterKind===2){let te=new Cr([],Z.range.atEnd);K=this.compileArrayLiteral(te,Y,2),K=T.local_set(g,K,Y.isManaged)}else ee?(K=this.compileExpression(ee,Y,1),K=T.local_set(g,K,Y.isManaged)):(this.error(215,Z.range),K=T.unreachable());U=T.block(R[O+1],[U,K]),h[g]=T.local_get(g,Y.toRef())}assert(g==f),m.push(U),m.push(this.makeCallDirect(e,h,e.declaration.name)),this.currentFlow=E;let G=T.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,Vr(t.getNonParameterLocalTypes()),T.flatten(m,l.toRef()));return t.set(8388608),t.finalize(T,G),t}ensureOverrideStub(e){let t=e.overrideStub;if(t)return t;t=e.newStub("override"),e.overrideStub=t;let n=this.module;return t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,null,n.unreachable()),this.overrideStubs.add(e),t}finalizeOverrideStub(e){let t=this.ensureOverrideStub(e);if(t.is(8388608))return;assert(e.parent.kind==7||e.parent.kind==9);let n=this.module,a=this.options.usizeType.toRef(),l=e.signature.parameterTypes,o=e.signature.returnType,u=l.length,p=1+l.length,_=new Qn(this.module,n.load(4,!1,n.binary(a==N.I64?26:1,n.local_get(0,a),a==N.I64?n.i64(8):n.i32(8)),N.I32)),f=this.resolver.resolveOverrides(e);if(f){let m=new Map;for(let T=0,S=f.length;T<S;++T){let E=f[T];if(!E.is(8388608))continue;let F=E.signature,k=e.signature;if(!F.isAssignableTo(k,!0)){this.error(2322,E.identifierNode.range,F.toString(),k.toString());continue}let R=F.parameterTypes,C=R.length,D=new Array(1+C);D[0]=n.local_get(0,a);for(let K=1;K<=u;++K)D[K]=n.local_get(K,l[K-1].toRef());let U=!1;for(let K=u;K<C;++K)D[1+K]=this.makeZero(R[K]),U=!0;let G=U?this.ensureVarargsStub(E).internalName:E.internalName,O=F.returnType.toRef(),Y=new Array;U&&Y.push(n.global_set(this.ensureArgumentsLength(),n.i32(u))),o==c.void?(Y.push(n.call(G,D,O)),Y.push(n.return())):Y.push(n.return(n.call(G,D,O)));let Z=assert(E.getBoundClassOrInterface());_.addCase(Z.id,Y);let ee=Z.extenders;if(ee)for(let K=Set_values(ee),te=0,H=K.length;te<H;++te){let oe=K[te],se=oe.prototype.instanceMembers;se&&se.has(e.declaration.name.text)||(!m.has(oe)||!assert(m.get(oe)).extends(Z))&&(m.set(oe,Z),_.addOrReplaceCase(oe.id,Y))}}}let d,h=e.getBoundClassOrInterface();if(!e.is(128)&&!(h&&h.kind==9)){let m=new Array(u);m[0]=n.local_get(0,a);for(let T=0,S=l.length;T<S;++T)m[1+T]=n.local_get(1+T,l[T].toRef());d=n.call(e.internalName,m,o.toRef())}else d=n.unreachable();t.ref&&n.removeFunction(t.internalName),t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,[N.I32],n.block(null,[_.render(p),d],o.toRef())),t.set(8388608)}needToStack(e){let t=this.module.runExpression(e,0);if(t==0)return!0;let n=sp(t,this.options.isWasm64);if(i64_eq(n,i64_zero))return!1;let s=this.staticGcObjectOffsets;return!(s.has(i64_high(n))&&assert(s.get(i64_high(n))).has(i64_low(n)))}operandsTostack(e,t){if(!this.options.stackSize)return;let n=this.module,s=0,a=e.thisType;if(a){if(a.isManaged){let u=t[0];this.needToStack(u)&&(t[s]=n.tostack(u))}++s}let l=0,o=e.parameterTypes;for(assert(o.length>=t.length-s);s<t.length;){if(o[l].isManaged){let p=t[s];this.needToStack(p)&&(t[s]=n.tostack(p))}++s,++l}}makeCallDirect(e,t,n,s=!1){if(e.hasDecorator(64))if(e.is(268435456))this.warning(228,n.range,e.internalName);else{assert(!e.is(134217728));let m=this.inlineStack;if(m.includes(e))this.warning(217,n.range,e.internalName);else{m.push(e);let T;if(e.is(262144)){let S=assert(t);assert(S.length),T=this.makeCallInline(e,S.slice(1),S[0],s)}else T=this.makeCallInline(e,t,0,s);return m.pop(),T}}let a=this.module,l=t?t.length:0,o=l,p=e.signature.requiredParameters,_=e.signature.parameterTypes,f=_.length,d=f;if(e.is(262144)&&(++p,++d,--o),assert(l>=p),!this.compileFunction(e))return a.unreachable();let h=e.signature.returnType;if(l<d){t||(t=new Array(d),t.length=0);let m=e.prototype.functionTypeNode.parameters;assert(m.length==_.length);let T=!0;for(let S=o;S<f;++S){let E=m[S].initializer;if(E){if(E.compilesToConst){t.push(this.compileExpression(E,_[S],1));continue}let F=this.resolver.lookupExpression(E,e.flow,_[S],1);if(F&&F.kind==0){let k=F;if(this.compileGlobalLazy(k,E)&&k.is(33554432)){t.push(this.compileInlineConstant(k,_[S],1));continue}}}t.push(this.makeZero(_[S])),T=!1}if(!T&&!e.is(2097152)){let S=e;if(e=this.ensureVarargsStub(e),!this.compileFunction(e))return a.unreachable();e.flow.flags=S.flow.flags;let E=h.toRef(),F=t[d-1];assert(!(Gi(F,a.ref)&32));let k=_[f-1];t[d-1]=a.block(null,[a.global_set(this.ensureArgumentsLength(),a.i32(o)),F],k.toRef()),this.operandsTostack(e.signature,t);let R=a.call(e.internalName,t,E);return h!=c.void&&s?(R=a.drop(R),this.currentType=c.void):this.currentType=h,R}}e.is(268435456)&&!n.isAccessOnSuper&&(e=this.ensureOverrideStub(e)),t&&this.operandsTostack(e.signature,t);let g=a.call(e.internalName,t,h.toRef());return this.currentType=h,g}compileCallIndirect(e,t,n,s,a=0,l=!1){let o=n.length;if(!this.checkCallSignature(e,o,a!=0,s))return this.module.unreachable();n=this.adjustArgumentsForRestParams(n,e,s),o=n.length;let u=a?o+1:o,p=new Array(u),_=0;a&&(p[0]=a,_=1);let f=e.parameterTypes;for(let d=0;d<o;++d,++_)p[_]=this.compileExpression(n[d],f[d],1);return assert(_==u),this.makeCallIndirect(e,t,s,p,l)}makeCallIndirect(e,t,n,s=null,a=!1){let l=this.module,o=s?s.length:0,u=o,_=e.requiredParameters,f=e.parameterTypes,d=e.returnType,h=f.length,g=h;if(e.thisType&&(++_,++g,--u),assert(o>=_),o<g){s||(s=new Array(g),s.length=0);let C=e.parameterTypes;for(let D=u;D<h;++D)s.push(this.makeZero(C[D]))}let m=(Gi(t,l.ref)&32)==0;if(s&&m){for(let C=0;C<o;++C)if(!l.isTrivialExpression(s[C])){m=!1;break}}let T=new Array,S=this.options.sizeTypeRef;if(!m){let C=this.currentFlow.getTempLocal(this.options.usizeType),D=l.local_set(C.index,t,!0);T.push(D),t=l.local_get(C.index,S)}let E=this.ensureArgumentsLength(),F=l.block(null,[l.global_set(E,l.i32(u)),t],S);if(s&&this.operandsTostack(e,s),this.options.hasFeature(65536)){let C=this.ensureClosureEnvironmentGlobal(),D=this.options.usizeType.byteSize,U=this.options.isWasm64?8:4,Y=this.currentFlow.getTempLocal(this.options.usizeType).index,Z=[l.local_set(Y,F,!0),l.global_set(C,l.load(D,!1,l.local_get(Y,S),S,U))],ee=l.load(4,!1,l.local_get(Y,S),N.I32),K=l.call_indirect(null,l.block(null,Z.concat([ee]),N.I32),s,e.paramRefs,e.resultRefs);return this.currentType=d,T.push(K),l.flatten(T,d.toRef())}let k=l.load(4,!1,F,N.I32),R=l.call_indirect(null,k,s,e.paramRefs,e.resultRefs);return this.currentType=d,T.push(R),l.flatten(T,d.toRef())}compileCommaExpression(e,t,n){let s=e.expressions,a=s.length,l=new Array(a--);for(let o=0;o<a;++o)l[o]=this.compileExpression(s[o],c.void,9);return l[a]=this.compileExpression(s[a],t,n),this.module.flatten(l,this.currentType.toRef())}compileElementAccessExpression(e,t,n){let s=this.module,a=e.expression,l=this.resolver,o=l.lookupExpression(a,this.currentFlow,c.auto,1);if(o&&o.kind==2){let p=this.compileExpression(e.elementExpression,c.i32,1),_=this.ensureEnumToString(o,e);return this.currentType=this.program.stringInstance.type,_==null?s.unreachable():s.call(_,[p],N.I32)}let u=l.resolveExpression(a,this.currentFlow);if(u){let p=u.getClassOrWrapper(this.program);if(p){let _=this.currentFlow.is(32768),f=p.lookupOverload(1,_);if(f){let d=assert(f.signature.thisType),h=this.compileExpression(a,d,1);return!_&&this.options.pedantic&&this.pedantic(904,e.range),this.compileCallDirect(f,[e.elementExpression],e,h,n)}}this.error(2329,e.expression.range,u.toString())}return s.unreachable()}compileFunctionExpression(e,t,n){let s=e.declaration.clone();assert(!s.typeParameters);let a=this.currentFlow,l=a.sourceFunction,o=s.name.text.length>0,u=!o||t!=c.void,p=u?`${o?s.name.text:"anonymous"}|${l.nextAnonymousId++}`:s.name.text,_=Ne(p,l,!1),f=this.program.instancesByName.has(_)?this.program.instancesByName.get(_):null;if(f&&f.kind==5){let k=f;if(k.is(8388608)){let R=this.ensureRuntimeFunction(k),C=k.capturedLocals;return C&&C.size>0?this.compileClosureFunctionCreation(k,l):(this.currentType=k.signature.type,this.options.isWasm64?this.module.i64(i64_low(R),i64_high(R)):this.module.i32(i64_low(R)))}}let d;f&&f.kind==5?d=f.prototype:d=new tt(p,l,s,0);let h,g=_e(a.contextualTypeArguments),m=this.module,T=t.signatureReference;if(T){let k=d.functionTypeNode,R=k.parameters,C=R.length,D=T.parameterTypes,U=D.length;if(C>U)return this.error(2554,e.range,U.toString(),C.toString()),m.unreachable();for(let te=0;te<C;++te){let H=R[te];if(!Be(H.type)){let oe=this.resolver.resolveType(H.type,a,l.parent,g);if(!oe)return m.unreachable();if(!D[te].isStrictlyAssignableTo(oe))return this.error(2322,H.range,D[te].toString(),oe.toString()),m.unreachable()}}let G=T.returnType;if(!Be(k.returnType)){let te=this.resolver.resolveType(k.returnType,a,l.parent,g);if(!te)return m.unreachable();if(G==c.void?te!=c.void:!te.isStrictlyAssignableTo(G))return this.error(2322,k.returnType.range,te.toString(),G.toString()),m.unreachable()}let O=T.thisType,Y=k.explicitThisType;if(Y){if(!O)return this.error(2332,Y.range),m.unreachable();let te=this.resolver.resolveType(Y,a,l.parent,g);if(!te)return m.unreachable();if(!O.isStrictlyAssignableTo(te))return this.error(2322,Y.range,O.toString(),te.toString()),m.unreachable()}let Z=Xe.create(this.program,D,G,O,U);h=new St(d.name,d,null,Z,g),h.flow.outer=a;let ee=this.analyzeCapturedVariables(s,a);if(ee.size>0){if(!this.options.hasFeature(65536))return this.error(103,e.range,"closures"),m.unreachable();h.capturedLocals=ee,h.outerFunction=l,this.ensureClosureEnvironmentsForCaptures(ee,a)}let K=this.compileFunction(h);if(this.currentType=T.type,!K)return m.unreachable()}else{if(h=this.resolver.resolveFunction(d,null,g),!h)return this.module.unreachable();h.flow.outer=a;let k=this.analyzeCapturedVariables(s,a);if(k.size>0){if(!this.options.hasFeature(65536))return this.error(103,e.range,"closures"),m.unreachable();h.capturedLocals=k,h.outerFunction=l,this.ensureClosureEnvironmentsForCaptures(k,a)}let R=this.compileFunction(h);if(this.currentType=h.signature.type,!R)return m.unreachable()}let S=this.ensureRuntimeFunction(h),E=h.capturedLocals;if(E&&E.size>0)return this.compileClosureFunctionCreation(h,l);let F=this.options.isWasm64?m.i64(i64_low(S),i64_high(S)):m.i32(i64_low(S));if(!u){let k=h.name,R=a.getScopedLocal(k);if(R)R.declaration.range.source.isNative?this.error(2300,s.name.range,k):this.errorRelated(2300,s.name.range,R.declaration.name.range,k);else{let C=h.type,D=a.addScopedLocal(h.name,C);a.setLocalFlag(D.index,9),F=m.local_tee(D.index,F,C.isManaged)}}return F}scanNodeForCaptures(e,t,n,s){switch(e.kind){case 7:{let l=e.text;if(n.has(l))break;let o=t.lookupLocal(l);if(o||(o=t.lookupLocalInOuter(l)),o&&!s.has(o)){if(o.isCaptured=!0,o.envOwner||(o.envOwner=o.parent),o.wasAccessedAsLocal){let u=o.parent;u.needsCaptureRecompile=!0}if(o.envSlotIndex>=0)s.set(o,o.envSlotIndex);else{let p=this.options.usizeType.byteSize,_=o.envOwner;if(_&&_.capturedLocals){let h=changetype(_.capturedLocals);for(let g=Map_keys(h),m=0,T=g.length;m<T;++m){let S=g[m];if(S.envOwner==_&&S.envSlotIndex>=0){let E=S.envSlotIndex+S.type.byteSize;E>p&&(p=E)}}}for(let h=Map_keys(s),g=0,m=h.length;g<m;++g){let T=h[g];if(T.envOwner==_&&T.envSlotIndex>=0){let S=T.envSlotIndex+T.type.byteSize;S>p&&(p=S)}}let d=o.type.byteSize;p=p+d-1&~(d-1),o.envSlotIndex=p,s.set(o,o.envSlotIndex)}}break}case 25:{let a=t.lookupLocal(P.this_);if(a||(a=t.lookupLocalInOuter(P.this_)),a&&!s.has(a)){if(a.isCaptured=!0,a.envOwner||(a.envOwner=a.parent),a.wasAccessedAsLocal){let l=a.parent;l.needsCaptureRecompile=!0}if(a.envSlotIndex>=0)s.set(a,a.envSlotIndex);else{let o=this.options.usizeType.byteSize,u=a.envOwner;if(u&&u.capturedLocals){let f=changetype(u.capturedLocals);for(let d=Map_keys(f),h=0,g=d.length;h<g;++h){let m=d[h];if(m.envOwner==u&&m.envSlotIndex>=0){let T=m.envSlotIndex+m.type.byteSize;T>o&&(o=T)}}}for(let f=Map_keys(s),d=0,h=f.length;d<h;++d){let g=f[d];if(g.envOwner==u&&g.envSlotIndex>=0){let m=g.envSlotIndex+g.type.byteSize;m>o&&(o=m)}}let _=a.type.byteSize;o=o+_-1&~(_-1),a.envSlotIndex=o,s.set(a,a.envSlotIndex)}}break}case 15:{let l=e.declaration,o=l.signature.parameters;for(let p=0,_=o.length;p<_;p++){let f=o[p].initializer;f&&this.scanNodeForCaptures(f,t,n,s)}for(let p=0,_=o.length;p<_;p++)n.add(o[p].name.text);let u=l.body;u&&this.scanNodeForCaptures(u,t,n,s);for(let p=0,_=o.length;p<_;p++)n.delete(o[p].name.text);break}case 8:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 9:{let a=e;this.scanNodeForCaptures(a.left,t,n,s),this.scanNodeForCaptures(a.right,t,n,s);break}case 10:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);let l=a.args;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],t,n,s);break}case 12:{let l=e.expressions;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],t,n,s);break}case 17:{let a=e;if(a.literalKind==5){let o=a.elementExpressions;for(let u=0,p=o.length;u<p;u++){let _=o[u];_&&this.scanNodeForCaptures(_,t,n,s)}}else if(a.literalKind==6){let o=a.values;for(let u=0,p=o.length;u<p;u++)this.scanNodeForCaptures(o[u],t,n,s)}else if(a.literalKind==3){let o=a.expressions;for(let u=0,p=o.length;u<p;u++)this.scanNodeForCaptures(o[u],t,n,s)}break}case 13:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s),this.scanNodeForCaptures(a.elementExpression,t,n,s);break}case 18:{let a=e;this.scanNodeForCaptures(a.typeName,t,n,s);let l=a.args;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],t,n,s);break}case 21:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 22:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 23:{let a=e;this.scanNodeForCaptures(a.condition,t,n,s),this.scanNodeForCaptures(a.ifThen,t,n,s),this.scanNodeForCaptures(a.ifElse,t,n,s);break}case 28:{let a=e;this.scanNodeForCaptures(a.operand,t,n,s);break}case 29:{let a=e;this.scanNodeForCaptures(a.operand,t,n,s);break}case 16:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 31:{let l=e.statements;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],t,n,s);break}case 34:{let a=e;this.scanNodeForCaptures(a.body,t,n,s),this.scanNodeForCaptures(a.condition,t,n,s);break}case 39:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 40:{let a=e,l=a.initializer,o=a.condition,u=a.incrementor;l&&this.scanNodeForCaptures(l,t,n,s),o&&this.scanNodeForCaptures(o,t,n,s),u&&this.scanNodeForCaptures(u,t,n,s),this.scanNodeForCaptures(a.body,t,n,s);break}case 41:{let a=e;this.scanNodeForCaptures(a.variable,t,n,s),this.scanNodeForCaptures(a.iterable,t,n,s),this.scanNodeForCaptures(a.body,t,n,s);break}case 42:{let a=e;this.scanNodeForCaptures(a.condition,t,n,s),this.scanNodeForCaptures(a.ifTrue,t,n,s);let l=a.ifFalse;l&&this.scanNodeForCaptures(l,t,n,s);break}case 44:{let l=e.value;l&&this.scanNodeForCaptures(l,t,n,s);break}case 45:{let a=e;this.scanNodeForCaptures(a.condition,t,n,s);let l=a.cases;for(let o=0,u=l.length;o<u;o++){let p=l[o],_=p.label;_&&this.scanNodeForCaptures(_,t,n,s);let f=p.statements;for(let d=0,h=f.length;d<h;d++)this.scanNodeForCaptures(f[d],t,n,s)}break}case 46:{let a=e;this.scanNodeForCaptures(a.value,t,n,s);break}case 47:{let a=e,l=a.bodyStatements;for(let p=0,_=l.length;p<_;p++)this.scanNodeForCaptures(l[p],t,n,s);let o=a.catchStatements;if(o)for(let p=0,_=o.length;p<_;p++)this.scanNodeForCaptures(o[p],t,n,s);let u=a.finallyStatements;if(u)for(let p=0,_=u.length;p<_;p++)this.scanNodeForCaptures(u[p],t,n,s);break}case 48:{let l=e.declarations;for(let o=0,u=l.length;o<u;o++){let p=l[o];n.add(p.name.text);let _=p.initializer;_&&this.scanNodeForCaptures(_,t,n,s)}break}case 50:{let a=e;this.scanNodeForCaptures(a.condition,t,n,s),this.scanNodeForCaptures(a.body,t,n,s);break}case 49:{let a=e;this.scanNodeForCaptures(a.expression,t,n,s);break}case 19:case 26:case 14:case 24:case 27:case 32:case 33:case 35:case 20:case 67:case 30:break;case 11:break;case 4:case 1:case 2:case 5:case 6:break;case 0:case 52:case 53:case 54:case 56:case 58:case 60:case 61:case 43:case 36:case 37:case 38:case 51:case 63:case 66:case 55:case 57:case 64:case 59:case 62:case 65:break;default:assert(!1,"scanNodeForCaptures: unhandled node kind: "+e.kind.toString())}}analyzeCapturedVariables(e,t){let n=new Map,s=new Set,a=e.signature.parameters;for(let o=0,u=a.length;o<u;o++){let p=a[o].initializer;p&&this.scanNodeForCaptures(p,t,s,n)}for(let o=0,u=a.length;o<u;o++)s.add(a[o].name.text);let l=e.body;return l&&this.scanNodeForCaptures(l,t,s,n),n}computeEnvironmentSize(e){let t=this.options.usizeType.byteSize,n=t;for(let s=Map_keys(e),a=0,l=s.length;a<l;a++){let o=s[a],u=o.envSlotIndex+o.type.byteSize;u>n&&(n=u)}return n+t-1&~(t-1)}ensureClosureEnvironmentsForCaptures(e,t){let n=new Map;for(let s=Map_keys(e),a=0,l=s.length;a<l;a++){let o=s[a],u=assert(o.envOwner),p=n.has(u)?n.get(u):null;p||(p=new Map,n.set(u,p)),p.set(o,e.get(o))}for(let s=Map_keys(n),a=0,l=s.length;a<l;a++){let o=s[a],u=assert(n.get(o));this.ensureClosureEnvironment(o,u,t)}}ensureClosureEnvironment(e,t,n){if(e.envLocal){let a=e.capturedLocals;if(a)for(let l=Map_keys(t),o=0,u=l.length;o<u;o++){let p=l[o];a.has(p)||a.set(p,t.get(p))}return}let s=this.options.usizeType;e.envLocal=n.addScopedLocal("$env",s),e.capturedLocals=t,this.computeEnvironmentSize(t)}compileClosureFunctionCreation(e,t){let n=this.module,s=this.program,a=this.options,l=a.sizeTypeRef,o=a.usizeType,u=assert(this.resolver.resolveClass(s.functionPrototype,[e.type])),p=u.id,_=u.nextMemoryOffset,f=s.newInstance;assert(f),this.compileFunction(f);let d=n.call(f.internalName,[a.isWasm64?n.i64(_):n.i32(_),n.i32(p)],l),h=this.currentFlow,g=h.getTempLocal(o);h.setLocalFlag(g.index,2);let m,T=t.envLocal,S=t.closureEnvLocal;T?m=n.local_get(T.index,l):S?m=n.local_get(S.index,l):m=a.isWasm64?n.i64(0):n.i32(0);let E=a.tableBase;E||(E=1);let F=E+this.functionTable.indexOf(e),k=u.offsetof("_index"),R=u.offsetof("_env"),C=[n.local_set(g.index,d,!1),n.store(4,n.local_get(g.index,l),n.i32(F),N.I32,k),n.store(o.byteSize,n.local_get(g.index,l),m,l,R),n.local_get(g.index,l)];return this.currentType=e.type,n.block(null,C,l)}getClosureEnvironmentPointer(e){let t=this.module,s=this.currentFlow.sourceFunction,a=this.options.sizeTypeRef,l=e.envOwner,o=s.envLocal;if(l==s&&o)return t.local_get(o.index,a);let u,p=s.closureEnvLocal;if(p)u=t.local_get(p.index,a);else{let d=this.ensureClosureEnvironmentGlobal();u=t.global_get(d,a)}let _=s.outerFunction,f=0;for(;_&&_!=l;)_.envLocal&&f++,_=_.outerFunction;for(let d=0;d<f;d++)u=t.load(this.options.usizeType.byteSize,!1,u,a,0);return u}compileClosureLoad(e,t=null){let n=this.module,s=e.type,a=e.envSlotIndex,l=this.getClosureEnvironmentPointer(e);return this.currentType=s,n.load(s.byteSize,s.is(1),l,s.toRef(),a)}compileClosureStore(e,t,n){let s=this.module,a=e.type,l=e.envSlotIndex,o=this.getClosureEnvironmentPointer(e);return s.store(a.byteSize,o,t,a.toRef(),l)}compileClosureEnvironmentAllocation(e){let t=this.module,n=this.program,s=this.options,a=s.sizeTypeRef,l=s.usizeType,o=assert(e.capturedLocals),u=assert(e.envLocal),p=this.computeEnvironmentSize(o),_=n.allocInstance;assert(_),this.compileFunction(_);let f=t.call(_.internalName,[s.isWasm64?t.i64(p):t.i32(p)],a),d=[];d.push(t.local_set(u.index,f,!1));let h,g=e.closureEnvLocal;g?h=t.local_get(g.index,a):h=s.isWasm64?t.i64(0):t.i32(0),d.push(t.store(l.byteSize,t.local_get(u.index,a),h,a,0));let m=e.signature,T=m.parameterTypes.length,S=m.thisType!=null,E=S?1:0,F=E+T;for(let k=Map_keys(o),R=0,C=k.length;R<C;R++){let D=k[R],U=D.envSlotIndex,G=D.type,O=D.index>=E&&D.index<F,Y=S&&D.index==0;(O||Y)&&d.push(t.store(G.byteSize,t.local_get(u.index,a),t.local_get(D.index,G.toRef()),G.toRef(),U))}return this.currentFlow.setLocalFlag(u.index,8),t.flatten(d,N.None)}maybeCompileEnclosingSource(e){let t=e.range.source.internalPath,n=this.program.filesByName;assert(n.has(t)),assert(n.get(t)).is(8388608)||this.compileFileByPath(t,e)}compileIdentifierExpression(e,t,n){let s=this.module,a=this.currentFlow,l=a.sourceFunction;switch(e.kind){case 19:{let p=this.options;if(t.isReference){let _=t.getClass();if(_)return this.currentType=_.type.asNullable(),p.isWasm64?s.i64(0):s.i32(0);let f=t.getSignature();return f?(this.currentType=f.type.asNullable(),p.isWasm64?s.i64(0):s.i32(0)):this.makeZero(t)}return this.currentType=p.usizeType,this.warning(226,e.range,this.currentType.toString()),p.isWasm64?s.i64(0):s.i32(0)}case 26:return this.currentType=c.bool,s.i32(1);case 14:return this.currentType=c.bool,s.i32(0);case 25:{let p=l.signature.thisType;if(!p&&this.options.hasFeature(65536)){let f=a.lookupLocal(P.this_);if(f||(f=a.lookupLocalInOuter(P.this_)),f&&f.isCaptured&&f.envSlotIndex>=0)return a.set(64),this.currentType=f.type,this.compileClosureLoad(f,e)}if(!p)return this.error(2332,e.range),this.currentType=this.options.usizeType,s.unreachable();if(l.is(524288)&&(a.is(65536)&&this.error(2333,e.range),!(n&32))){let f=l.parent;assert(f.kind==7),this.checkFieldInitialization(f,e)}let _=assert(a.lookupLocal(P.this_));return a.set(64),this.currentType=p,s.local_get(_.index,p.toRef())}case 24:{if(l.is(524288)&&(a.is(65536)?this.error(2336,e.range):a.is(128)||this.error(17011,e.range)),a.isInline){let p=a.lookupLocal(P.this_);if(p){let f=assert(p.type.getClass()).base;if(f)return this.currentType=f.type,s.local_get(p.index,f.type.toRef())}}if(l.is(262144)){let p=assert(l.parent);assert(p.kind==7);let f=p.base;if(f){let d=f.type;return this.currentType=d,s.local_get(0,d.toRef())}}return this.error(2335,e.range),this.currentType=this.options.usizeType,s.unreachable()}}this.maybeCompileEnclosingSource(e);let o=this.currentParent;o||(o=l);let u=this.resolver.lookupIdentifierExpression(e,a,o);if(!u)return this.currentType==c.void&&(this.currentType=c.i32),s.unreachable();switch(u.kind){case 1:{let p=u,_=p.type;if(assert(_!=c.void),this.pendingElements.has(p))return this.error(2448,e.range,p.internalName),this.currentType=_,s.unreachable();if(p.is(33554432))return this.compileInlineConstant(p,t,n);let f=p.index;if(!p.declaredByFlow(a))return p.isCaptured&&p.envSlotIndex>=0?(this.currentType=_,this.compileClosureLoad(p,e)):(this.error(100,e.range,"Closures"),s.unreachable());let d=a.sourceFunction;if(p.isCaptured&&p.envSlotIndex>=0&&d.envLocal)return this.currentType=_,this.compileClosureLoad(p,e);a.isLocalFlag(f,8)||this.error(2454,e.range,p.name),assert(f>=0);let h=a.isLocalFlag(f,4,!1);_.isNullableReference&&h&&(!_.isExternalReference||this.options.hasFeature(1024))?this.currentType=_.nonNullableType:this.currentType=_,p.isCaptured||(p.wasAccessedAsLocal=!0);let g=s.local_get(f,_.toRef());return h&&_.isNullableExternalReference&&this.options.hasFeature(1024)&&(g=s.ref_as_nonnull(g)),g}case 0:{let p=u;if(!this.compileGlobalLazy(p,e))return s.unreachable();let _=p.type;if(this.pendingElements.has(p))return this.error(2448,e.range,p.internalName),this.currentType=_,s.unreachable();if(assert(_!=c.void),p.hasDecorator(512))return this.compileIdentifierExpressionBuiltin(p,e,t);if(p.is(33554432))return this.compileInlineConstant(p,t,n);let f=s.global_get(p.internalName,_.toRef());return p.is(16384)&&_.isReference&&!_.isNullableReference&&(f=this.makeRuntimeNonNullCheck(f,_,e)),this.currentType=_,f}case 3:{let p=u;return u.is(8388608)?(this.currentType=c.i32,p.is(33554432)?(assert(p.constantValueKind==1),s.i32(i64_low(p.constantIntegerValue))):s.global_get(p.internalName,N.I32)):(this.error(2651,e.range),this.currentType=c.i32,s.unreachable())}case 4:{let p=u,_=p.typeParameterNodes;if(_&&_.length!=0){this.error(1140,e.range);break}let f=this.resolver.resolveFunction(p,null,_e(a.contextualTypeArguments));if(!f||!this.compileFunction(f))return s.unreachable();if(f.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),this.currentType=f.type,s.unreachable();if(t.isExternalReference)return this.currentType=c.func,s.ref_func(f.internalName,ns(f.type));let d=this.ensureRuntimeFunction(f);return this.currentType=f.signature.type,this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),s.unreachable()}compileIdentifierExpressionBuiltin(e,t,n){e.hasDecorator(2048)&&this.checkUnsafe(t,e.identifierNode);let s=e.internalName;return assert(mt.has(s)),assert(mt.get(s))(new As(this,e,n,t))}compileInstanceOfExpression(e,t,n){let s=this.currentFlow,a=e.isType;if(a.kind==1){let o=a;if(!(o.isNullable||o.hasTypeArguments)){let u=this.resolver.resolveTypeName(o.name,s,s.sourceFunction,1);if(u&&u.kind==6){let p=u;if(p.is(65536))return this.makeInstanceofClass(e,p)}}}let l=this.resolver.resolveType(e.isType,s,s.sourceFunction,_e(s.contextualTypeArguments));return l?this.makeInstanceofType(e,l):(this.currentType=c.bool,this.module.unreachable())}makeInstanceofType(e,t){let n=this.module,s=this.currentFlow,a=this.compileExpression(e.expression,t),l=this.currentType;if(this.currentType=c.bool,t.isValue)return n.maybeDropCondition(a,n.i32(l==t?1:0));if(l.isValue)return n.maybeDropCondition(a,n.i32(0));let o=l.toRef();if(l.isNullableReference&&!t.isNullableReference){if(l.nonNullableType.isAssignableTo(t))return n.binary(o==N.I64?41:16,a,this.makeZero(l));if(l.nonNullableType.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{this.options.pedantic&&this.pedantic(903,e.range);let p=s.getTempLocal(l).index;return n.if(n.unary(o==N.I64?21:20,n.local_tee(p,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(p,o)],N.I32))}}else{if(l.isAssignableTo(t))return n.maybeDropCondition(a,n.i32(1));if(l.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{let p=s.getTempLocal(l).index;return n.if(n.unary(o==N.I64?21:20,n.local_tee(p,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(p,o)],N.I32))}}return n.maybeDropCondition(a,n.i32(0))}prepareInstanceOf(e){let t=`~instanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,N.I32,null,s.unreachable()),t}finalizeInstanceOf(e,t){let n=this.program,s=this.module,a=this.options.sizeTypeRef,l=new Array;l.push(s.local_set(1,s.load(4,!1,s.binary(a==N.I64?26:1,s.local_get(0,a),s.i32(n.totalOverhead-n.OBJECTInstance.offsetof("rtId"))),N.I32),!1));let o;if(e.isInterface)o=e.implementers;else{o=new Set,o.add(e);let u=e.extenders;if(u)for(let p=Set_values(u),_=0,f=p.length;_<f;++_){let d=p[_];o.add(d)}}if(o)for(let u=Set_values(o),p=0,_=u.length;p<_;++p){let f=u[p];l.push(s.br("is_instance",s.binary(15,s.local_get(1,N.I32),s.i32(f.id))))}l.push(s.return(s.i32(0))),l[0]=s.block("is_instance",l,N.None),l.length=1,l.push(s.i32(1)),s.removeFunction(t),s.addFunction(t,a,N.I32,[N.I32],s.block(null,l,N.I32))}makeInstanceofClass(e,t){let n=this.module,s=this.compileExpression(e.expression,c.auto),a=this.currentType,l=a.toRef();this.currentType=c.bool;let o=a.getClass();if(o){if(o.extendsPrototype(t))return a.isNullableReference?n.binary(l==N.I64?41:16,s,this.makeZero(a)):n.maybeDropCondition(s,n.i32(1));if(t.extends(o.prototype)){let _=this.currentFlow.getTempLocal(a).index;return n.if(n.unary(l==N.I64?21:20,n.local_tee(_,s,a.isManaged)),n.i32(0),n.call(this.prepareAnyInstanceOf(t),[n.local_get(_,l)],N.I32))}}return n.maybeDropCondition(s,n.i32(0))}prepareAnyInstanceOf(e){let t=`~anyinstanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,N.I32,null,s.unreachable()),t}finalizeAnyInstanceOf(e,t){let n=this.module,s=this.options.sizeTypeRef,a=new Array,l=e.instances;if(l){let o=this.program;a.push(n.local_set(1,n.load(4,!1,n.binary(s==N.I64?26:1,n.local_get(0,s),n.i32(o.totalOverhead-o.OBJECTInstance.offsetof("rtId"))),N.I32),!1));let u=new Set;for(let p=Map_values(l),_=0,f=p.length;_<f;++_){let d=p[_];if(d.isInterface){let h=d.implementers;if(h)for(let g=Set_values(h),m=0,T=g.length;m<T;++m){let S=g[m];u.add(S)}}else{u.add(d);let h=d.extenders;if(h)for(let g=Set_values(h),m=0,T=g.length;m<T;++m){let S=g[m];u.add(S)}}}for(let p=Set_values(u),_=0,f=p.length;_<f;++_){let d=p[_];a.push(n.br("is_instance",n.binary(15,n.local_get(1,N.I32),n.i32(d.id))))}}a.push(n.return(n.i32(0))),a[0]=n.block("is_instance",a,N.None),a.length=1,a.push(n.i32(1)),n.removeFunction(t),n.addFunction(t,s,N.I32,[N.I32],n.block(null,a,N.I32))}compileLiteralExpression(e,t,n,s=!1){let a=this.module;switch(e.literalKind){case 5:return assert(!s),this.compileArrayLiteral(e,t,n);case 0:{let l=e.value;return s&&(l=-l),t==c.f32?a.f32(l):(this.currentType=c.f64,a.f64(l))}case 1:{let l=e,o=this.resolver.determineIntegerLiteralType(l,s,t);this.currentType=o;let u=l.value,p=1;switch(s&&(o.isFloatValue?p=-1:u=i64_neg(u)),o.kind){case 5:if(!this.options.isWasm64)return a.i32(i64_low(u));case 4:return a.i64(i64_low(u),i64_high(u));case 10:if(!this.options.isWasm64)return a.i32(i64_low(u));case 9:return a.i64(i64_low(u),i64_high(u));case 11:return a.f32(p*i64_to_f32(u));case 12:return a.f64(p*i64_to_f64(u));default:return a.i32(i64_low(u))}}case 2:return assert(!s),this.compileStringLiteral(e,n);case 3:return assert(!s),this.compileTemplateLiteral(e,n);case 6:return assert(!s),this.compileObjectLiteral(e,t);case 4:return this.error(100,e.range,"Regular expressions"),this.currentType=t,a.unreachable()}return assert(!1),a.unreachable()}compileStringLiteral(e,t){return this.ensureStaticString(e.value)}compileTemplateLiteral(e,t){let n=e.tag,s=e.parts,a=s.length,l=e.expressions,o=l.length;assert(o==a-1);let u=this.module,p=this.program.stringInstance,_=p.type;if(!n){if(a==1)return this.ensureStaticString(s[0]);if(a==2){let Z=l[0],ee=s[0].length,K=s[1].length;if(!ee&&!K)return this.makeToString(this.compileExpression(Z,_),this.currentType,Z);let te=ee!=0;if(te^K!=0){let H,oe,se=this.makeToString(this.compileExpression(Z,_),this.currentType,Z);te?(H=this.ensureStaticString(s[0]),oe=se):(H=se,oe=this.ensureStaticString(s[1]));let Re=assert(p.getMethod("concat"));return this.makeCallDirect(Re,[H,oe],Z)}}if(a==3&&!s[0].length&&!s[1].length&&!s[2].length){let Z=l[0],ee=l[1],K=this.makeToString(this.compileExpression(Z,_),this.currentType,Z),te=this.makeToString(this.compileExpression(ee,_),this.currentType,ee),H=assert(p.getMethod("concat"));return this.makeCallDirect(H,[K,te],e)}let E=new Array(o),F=new Array;s[0].length>0&&F.push(this.ensureStaticString(s[0]));for(let Z=1;Z<a;++Z)E[Z-1]=F.length,F.push(u.usize(0)),s[Z].length>0&&F.push(this.ensureStaticString(s[Z]));let k=assert(this.resolver.resolveClass(this.program.staticArrayPrototype,[_])),R=this.addStaticBuffer(_,F,k.id);this.program.OBJECTInstance.writeField("gcInfo",3,R.buffer,0);let C=i64_add(R.offset,i64_new(this.program.totalOverhead)),D=assert(k.getMethod("join")),U=assert(k.lookupOverload(2,!0)),G=new Array(2*o+1),O=new Array(o),Y=this.currentFlow;for(let Z=0;Z<o;++Z){let ee=l[Z],K=Y.getTempLocal(_);O[Z]=K,G[Z]=u.local_set(K.index,this.makeToString(this.compileExpression(ee,_),this.currentType,ee),!0)}for(let Z=0;Z<o;++Z)G[o+Z]=this.makeCallDirect(U,[u.usize(C),u.i32(E[Z]),u.local_get(O[Z].index,_.toRef())],e);return G[2*o]=this.makeCallDirect(D,[u.usize(C),this.ensureStaticString("")],e),u.flatten(G,_.toRef())}let f=this.program.templateStringsArrayInstance,d=f,h=this.resolver.lookupExpression(n,this.currentFlow,c.auto,1);if(h)switch(h.kind){case 4:{let E=this.resolver.resolveFunction(h,null,new Map,1);if(!E)break;h=E}case 5:{let F=h.signature.parameterTypes;if(F.length){let k=F[0].getClass();k&&!k.extendsPrototype(f.prototype)&&(d=assert(this.resolver.resolveClass(this.program.arrayPrototype,[_])))}break}}let g=e.rawParts;assert(g.length==a);let m=new Array(a);for(let E=0;E<a;++E)m[E]=this.ensureStaticString(s[E]);let T;if(d==f){let E=new Array(a);for(let k=0;k<a;++k)E[k]=this.ensureStaticString(g[k]);T=this.addStaticArrayHeader(_,this.addStaticBuffer(this.options.usizeType,m),d);let F=this.addStaticArrayHeader(_,this.addStaticBuffer(this.options.usizeType,E));d.writeField("raw",i64_add(F.offset,i64_new(this.program.totalOverhead)),T.buffer)}else T=this.addStaticArrayHeader(_,this.addStaticBuffer(this.options.usizeType,m),d);let S=l.slice();return S.unshift(z.createCompiledExpression(u.usize(i64_add(T.offset,i64_new(this.program.totalOverhead))),d.type,fe.native.range)),this.error(100,e.range,"Tagged template literals"),this.compileCallExpressionLike(n,null,S,e.range,_)}compileArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=t.getClass();if(o&&o.extendsPrototype(l.staticArrayPrototype))return this.compileStaticArrayLiteral(e,t,n);let u=this.resolver.lookupExpression(e,a,this.currentType);if(!u)return s.unreachable();assert(u.kind==7);let p=u,_=p.type,f=p.getTypeArgumentsTo(l.arrayPrototype)[0],d=a.getTempLocal(this.options.usizeType),h=e.elementExpressions,g=h.length,m=new Array(g),T=!f.isExternalReference;for(let C=0;C<g;++C){let D=h[C];if(D.kind!=20){let U=this.compileExpression(D,f,1);if(le(U)!=f.toRef())T=!1;else{let G=s.runExpression(U,1);G?U=G:T=!1}m[C]=U}else m[C]=this.makeZero(f)}if(T){let C=l.totalOverhead,D=this.addStaticBuffer(f,m),U=i64_add(D.offset,i64_new(C));if(n&16){let G=this.addStaticArrayHeader(f,D),O=i64_add(G.offset,i64_new(C));return this.currentType=_,l.options.isWasm64?this.module.i64(i64_low(O),i64_high(O)):this.module.i32(i64_low(O))}else return this.makeNewArray(p,g,U,e)}let S=p.lookupOverload(2,!0);if(!S)return this.error(2542,e.range,p.internalName),this.currentType=_,s.unreachable();let E=_.toRef(),F=new Array;F.push(s.local_set(d.index,this.makeNewArray(p,g,i64_new(0),e),_.isManaged));let k=assert(p.getMember("dataStart"));assert(k.kind==10);let R=k.instance;if(!R)return s.unreachable();assert(R.isField&&R.memoryOffset>=0);for(let C=0;C<g;++C)F.push(s.call(S.internalName,[s.local_get(d.index,E),s.i32(C),m[C]],N.None));return F.push(s.local_get(d.index,E)),g&&this.compileFunction(S),this.currentType=_,s.flatten(F,E)}makeNewArray(e,t,n,s){let a=this.program,l=this.module;assert(!e.extendsPrototype(a.staticArrayPrototype));let o=e.getArrayValueType(),u=this.makeCallDirect(a.newArrayInstance,[l.i32(t),a.options.isWasm64?l.i64(o.alignLog2):l.i32(o.alignLog2),l.i32(e.id),a.options.isWasm64?l.i64(i64_low(n),i64_high(n)):l.i32(i64_low(n))],s);return this.currentType=e.type,u}compileStaticArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=assert(t.getClass()),u=o.type,_=assert(o.getTypeArgumentsTo(l.staticArrayPrototype))[0],f=a.getTempLocal(this.options.usizeType),d=e.elementExpressions,h=d.length,g=new Array(h),m=!_.isExternalReference;for(let R=0;R<h;++R){let C=d[R];if(C.kind!=20){let D=this.compileExpression(C,_,1),U=s.runExpression(D,1);U?D=U:m=!1,g[R]=D}else g[R]=this.makeZero(_)}let T=this.options.isWasm64,S=g.length<<_.alignLog2;if(m){let R=this.addStaticBuffer(_,g,o.id),C=i64_add(R.offset,i64_new(l.totalOverhead));if(n&16){let D=this.options.isWasm64?s.i64(i64_low(C),i64_high(C)):s.i32(i64_low(C));return this.currentType=u,D}else{let D=this.makeCallDirect(l.newBufferInstance,[T?s.i64(S):s.i32(S),s.i32(o.id),T?s.i64(i64_low(C),i64_high(C)):s.i32(i64_low(C))],e);return this.currentType=u,D}}let E=o.lookupOverload(2,!0);if(!E)return this.error(2542,e.range,o.internalName),this.currentType=u,s.unreachable();let F=u.toRef(),k=new Array;k.push(s.local_set(f.index,this.makeCallDirect(l.newBufferInstance,[T?s.i64(S):s.i32(S),s.i32(o.id)],e),u.isManaged));for(let R=0;R<h;++R)k.push(s.call(E.internalName,[s.local_get(f.index,F),s.i32(R),g[R]],N.None));return k.push(s.local_get(f.index,F)),h&&this.compileFunction(E),this.currentType=u,s.flatten(k,F)}compileObjectLiteral(e,t){let n=this.module,s=t.getClass();if(!s)return this.error(2322,e.range,"<object>",t.toString()),n.unreachable();let a=s.type;if(this.currentType=a.nonNullableType,s.kind==9)return this.error(100,e.range,"Interface hidden classes"),n.unreachable();if(s.is(128))return this.error(2511,e.range),n.unreachable();let l=s.prototype.constructorPrototype;if(l)return this.errorRelated(216,e.range,l.identifierNode.range,a.toString()),n.unreachable();a.isManaged||this.checkUnsafe(e,Ue(6,s.decoratorNodes));let u=e.names,p=u.length,_=e.values,f=s.members,d=!1,h=new Array,m=this.currentFlow.getTempLocal(a),T=a.toRef();assert(p==_.length);let S=new Set;if(f)for(let k=Map_keys(f),R=0,C=k.length;R<C;++R){let D=k[R],U=assert(f.get(D));if(U&&U.kind==10){let G=U.instance;G&&G.isField&&S.add(G)}}let E=new Array;for(let k=0;k<p;++k){let R=u[k].text,C=s.getMember(R);if(!C||C.kind!=10){this.error(2339,u[k].range,R,a.toString()),d=!0;continue}if(C.is(512)){this.error(2341,u[k].range,R,a.toString()),d=!0;continue}if(C.is(1024)){this.error(2445,u[k].range,R,a.toString()),d=!0;continue}let D=this.resolver.resolveProperty(C);if(!D)continue;let U=D.setterInstance;if(!U){this.error(2540,u[k].range,R,a.toString()),d=!0;continue}if(S.delete(D),!D.isField){E.push(D);continue}let G=D.type,O=this.makeCallDirect(U,[n.local_get(m.index,T),this.compileExpression(_[k],G,1)],U.identifierNode,!0);this.currentType!=c.void&&(O=n.drop(O)),h.push(O)}for(let k=0,R=E.length;k<R;++k){let C=E[k],D=assert(C.setterInstance);h.push(this.makeCallDirect(D,[n.local_get(m.index,T),this.compileExpression(_[k],C.type,1)],D.identifierNode))}if(this.currentType=a.nonNullableType,d)return n.unreachable();for(let k=Set_values(S),R=0,C=k.length;R<C;++R){let D=k[R];assert(D.isField);let U=D.type;if(!D.initializerNode){if(U.isReference&&!U.isNullableReference){this.error(2741,e.range,D.name,"<object>",a.toString()),d=!0;continue}switch(U.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:{h.push(n.store(U.byteSize,n.local_get(m.index,T),this.makeZero(U),U.toRef(),D.memoryOffset));continue}}this.error(2741,e.range,D.name,"<object>",a.toString()),d=!0}}if(d)return n.unreachable();let F=this.ensureConstructor(s,e);return h.unshift(n.local_set(m.index,this.compileInstantiate(F,[],0,e),a.isManaged)),h.push(n.local_get(m.index,T)),this.currentType=a.nonNullableType,n.flatten(h,T)}compileNewExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.resolver.resolveTypeName(e.typeName,a,a.sourceFunction);if(!l)return s.unreachable();if(l.kind!=6)return this.error(2351,e.typeName.range),this.module.unreachable();if(l.is(128))return this.error(2511,e.typeName.range),this.module.unreachable();let o=l,u=null,p=e.typeArguments,_;if(!p&&(_=t.classReference)&&_.prototype==o&&_.is(65536)?u=this.resolver.resolveClass(o,_.typeArguments,_e(a.contextualTypeArguments)):u=this.resolver.resolveClassInclTypeArguments(o,p,a,a.sourceFunction.parent,_e(a.contextualTypeArguments),e),!u)return s.unreachable();t==c.void&&(n|=8);let f=this.ensureConstructor(u,e);return f.hasDecorator(64)||this.checkFieldInitialization(u,e),this.compileInstantiate(f,e.args,n,e)}ensureConstructor(e,t){let n=e.constructorInstance;if(n){if(n.is(8388608))return n;n.hasDecorator(64)||this.compileFunction(n)}else{let s=e.base,a=_e(e.contextualTypeArguments);if(s){let E=this.ensureConstructor(s,t);this.checkFieldInitialization(s,t),n=new St(P.constructor,new tt(P.constructor,e,E.declaration.clone()),null,Xe.create(this.program,E.signature.parameterTypes,e.type,e.type,E.signature.requiredParameters,E.signature.hasRest),a)}else n=new St(P.constructor,new tt(P.constructor,e,this.program.makeNativeFunctionDeclaration(P.constructor,786432)),null,Xe.create(this.program,[],e.type,e.type),a);n.set(8388608),n.prototype.setResolvedInstance("",n),e.is(1048576)&&n.set(1048576),e.constructorInstance=n;let l=e.members;l||(e.members=l=new Map),l.set(P.constructor,n.prototype);let o=this.currentFlow,u=n.flow;this.currentFlow=u;let p=n.signature,_=this.module,f=this.options.sizeTypeRef,d=new Array;if(d.push(this.makeConditionalAllocation(e,0)),s){let E=p.parameterTypes,F=E.length,k=new Array(1+F);k[0]=_.local_get(0,f);for(let R=1;R<=F;++R)k[R]=_.local_get(R,E[R-1].toRef());d.push(_.local_set(0,this.makeCallDirect(assert(s.constructorInstance),k,t,!1),s.type.isManaged))}this.makeFieldInitializationInConstructor(e,d),d.push(_.local_get(0,f)),this.currentFlow=o;let h=n.localsByIndex,g=new Array,m=1+p.parameterTypes.length,T=h.length;if(T>m)for(let E=m;E<T;++E)g.push(h[E].type.toRef());let S=_.addFunction(n.internalName,p.paramRefs,p.resultRefs,g,_.flatten(d,f));n.finalize(_,S)}return n}checkFieldInitialization(e,t=null){if(e.didCheckFieldInitialization)return;e.didCheckFieldInitialization=!0;let n=assert(e.constructorInstance);this.checkFieldInitializationInFlow(e,n.flow,t)}checkFieldInitializationInFlow(e,t,n=null){let s=e.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind!=10||u.parent!=e)continue;let p=u.instance;!p||!p.isField||(!p.initializerNode&&!t.isThisFieldFlag(p,1)?p.is(16384)||(n?this.errorRelated(2564,p.declaration.name.range,n.range,p.internalName):this.error(2564,p.declaration.name.range,p.internalName)):p.is(16384)&&(p.type.isReference?this.warning(233,p.identifierNode.range,p.internalName):this.pedantic(906,p.identifierNode.range)))}}compileInstantiate(e,t,n,s){assert(e.is(524288));let a=e.parent;assert(a.kind==7);let l=a;(l.type.isUnmanaged||e.hasDecorator(2048))&&this.checkUnsafe(s);let o=this.compileCallDirect(e,t,s,this.makeZero(this.options.usizeType),n);return le(o)!=N.None&&(this.currentType=l.type),o}compilePropertyAccessExpression(e,t,n){let s=this.module,a=this.currentFlow;this.maybeCompileEnclosingSource(e);let l=this.resolver,o=l.lookupExpression(e,a,t);if(!o)return s.unreachable();let u=l.currentThisExpression;switch(o.hasDecorator(2048)&&this.checkUnsafe(e),o.kind){case 0:{let p=o;if(!this.compileGlobalLazy(p,e))return s.unreachable();let _=p.type;if(assert(_!=c.void),this.pendingElements.has(p))return this.error(2448,e.range,p.internalName),this.currentType=_,s.unreachable();if(p.is(33554432))return this.compileInlineConstant(p,t,n);let f=s.global_get(p.internalName,_.toRef());return p.is(16384)&&_.isReference&&!_.isNullableReference&&(f=this.makeRuntimeNonNullCheck(f,_,e)),this.currentType=_,f}case 3:{let p=o,_=assert(p.parent);assert(_.kind==2);let f=_;return this.compileEnum(f)?(this.currentType=c.i32,p.is(33554432)?(assert(p.constantValueKind==1),this.compileInlineConstant(p,t,n)):(assert(p.type==c.i32),s.global_get(p.internalName,N.I32))):(this.currentType=c.i32,this.module.unreachable())}case 10:{let p=o,_=this.resolver.resolveProperty(p);if(!_)return s.unreachable();o=_}case 11:{let p=o;p.isField&&a.sourceFunction.is(524288)&&assert(u).kind==25&&!a.isThisFieldFlag(p,1)&&!p.is(16384)&&this.errorRelated(2565,e.range,p.identifierNode.range,p.internalName);let _=p.getterInstance;if(!_)return s.unreachable();let f=0;return _.is(262144)&&(f=this.compileExpression(assert(u),assert(_.signature.thisType),33)),this.compileCallDirect(_,[],e,f)}case 4:{let p=o,_=p.typeParameterNodes;if(_&&_.length!=0){this.error(1140,e.range);break}let f=this.resolver.resolveFunction(p,null);if(!f||!this.compileFunction(f))return s.unreachable();if(this.currentType=f.type,f.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),s.unreachable();let d=this.ensureRuntimeFunction(f);return this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),this.module.unreachable()}compileTernaryExpression(e,t,n){let s=this.module,a=e.ifThen,l=e.ifElse,o=this.compileExpression(e.condition,c.bool),u=this.makeIsTrueish(o,this.currentType,e.condition),p=this.evaluateCondition(u);if(p==1)return s.maybeDropCondition(u,this.compileExpression(a,t));if(p==2)return s.maybeDropCondition(u,this.compileExpression(l,t));let _=this.currentFlow,f=_.forkThen(o);this.currentFlow=f;let d=this.compileExpression(a,t),h=this.currentType,g=_.forkElse(o);this.currentFlow=g;let m=this.compileExpression(l,t==c.auto?h:t),T=this.currentType;if(t==c.void)h!=c.void&&(d=s.drop(d),h=c.void),T!=c.void&&(m=s.drop(m),T=c.void),this.currentType=c.void;else{let S=c.commonType(h,T,t);if(!S)return this.error(2322,l.range,T.toString(),h.toString()),this.currentType=t,s.unreachable();d=this.convertExpression(d,h,S,!1,a),h=S,m=this.convertExpression(m,T,S,!1,l),T=S,this.currentType=S}return _.inheritAlternatives(f,g),this.currentFlow=_,s.if(u,d,m)}compileUnaryPostfixExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.compileExpression(e.operand,t.exceptVoid,0),o,u=null;t!=c.void?(u=a.getTempLocal(this.currentType),o=s.local_tee(u.index,l,this.currentType.isManaged)):o=l;let p;switch(e.operator){case 87:{let g=this.currentType.getClassOrWrapper(this.program);if(g){let m=g.lookupOverload(29);if(m){let T=m.is(262144);if(u&&!T&&(o=l,u=null),p=this.compileUnaryOverload(m,e.operand,o,e),T)break;return p}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{p=s.binary(0,o,s.i32(1));break}case 4:case 9:{p=s.binary(25,o,s.i64(1));break}case 5:case 10:{p=s.binary(217,o,this.makeOne(this.currentType));break}case 11:{p=s.binary(50,o,s.f32(1));break}case 12:{p=s.binary(63,o,s.f64(1));break}default:return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable()}break}case 88:{let g=this.currentType.getClassOrWrapper(this.program);if(g){let m=g.lookupOverload(30);if(m){let T=m.is(262144);if(u&&!T&&(o=l,u=null),p=this.compileUnaryOverload(m,e.operand,o,e),T)break;return p}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{p=s.binary(1,o,s.i32(1));break}case 4:case 9:{p=s.binary(26,o,s.i64(1));break}case 5:case 10:{p=s.binary(218,o,this.makeOne(this.currentType));break}case 11:{p=s.binary(51,o,s.f32(1));break}case 12:{p=s.binary(64,o,s.f64(1));break}default:return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable()}break}default:return assert(!1),s.unreachable()}let _=this.resolver,f=_.lookupExpression(e.operand,a);if(!f)return s.unreachable();if(!u)return this.makeAssignment(f,p,this.currentType,e.operand,_.currentThisExpression,_.currentElementExpression,!1);let d=this.makeAssignment(f,p,this.currentType,e.operand,_.currentThisExpression,_.currentElementExpression,!1);this.currentType=u.type;let h=u.type.toRef();return s.block(null,[d,s.local_get(u.index,h)],h)}compileUnaryPrefixExpression(e,t,n){let s=this.module,a=!1,l;switch(e.operator){case 81:{l=this.compileExpression(e.operand,t.exceptVoid,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(23);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"+",this.currentType.toString()),s.unreachable();break}case 82:{let p=e.operand;if(p.isNumericLiteral){l=this.compileLiteralExpression(p,t,0,!0),this.options.sourceMap&&this.addDebugLocation(l,e.range);break}l=this.compileExpression(e.operand,t.exceptVoid,0);let _=this.currentType.getClassOrWrapper(this.program);if(_){let f=_.lookupOverload(24);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"-",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,s.i32(0),l);break}case 4:case 9:{l=s.binary(26,s.i64(0),l);break}case 5:case 10:{l=s.binary(218,this.makeZero(this.currentType),l);break}case 11:{l=s.unary(6,l);break}case 12:{l=s.unary(7,l);break}default:this.error(2469,e.range,"-",this.currentType.toString()),l=s.unreachable()}break}case 87:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(27);if(_){if(l=this.compileUnaryOverload(_,e.operand,l,e),_.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(0,l,this.module.i32(1));break}case 4:case 9:{l=s.binary(25,l,s.i64(1));break}case 5:case 10:{l=s.binary(217,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(50,l,s.f32(1));break}case 12:{l=s.binary(63,l,s.f64(1));break}default:this.error(2469,e.range,"++",this.currentType.toString()),l=s.unreachable()}break}case 88:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(28);if(_){if(l=this.compileUnaryOverload(_,e.operand,l,e),_.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,l,s.i32(1));break}case 4:case 9:{l=s.binary(26,l,s.i64(1));break}case 5:case 10:{l=s.binary(218,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(51,l,s.f32(1));break}case 12:{l=s.binary(64,l,s.f64(1));break}default:this.error(2469,e.range,"--",this.currentType.toString()),l=s.unreachable()}break}case 95:{l=this.compileExpression(e.operand,t.exceptVoid,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(25);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}l=s.unary(20,this.makeIsTrueish(l,this.currentType,e.operand)),this.currentType=c.bool;break}case 96:{l=this.compileExpression(e.operand,t==c.void?c.i32:t.isFloatValue?c.i64:t,0);let p=this.currentType.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(26);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"~",this.currentType.toString()),s.unreachable();switch(l=this.convertExpression(l,this.currentType,this.currentType.intType,!1,e.operand),this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(9,l,s.i32(-1));break}case 4:case 9:{l=s.binary(34,l,s.i64(-1,-1));break}case 5:case 10:{l=s.binary(226,l,this.makeNegOne(this.currentType));break}default:this.error(2469,e.range,"~",this.currentType.toString()),l=s.unreachable()}break}case 56:return this.compileTypeof(e,t,n);case 69:return this.error(100,e.range,"Spread operator"),s.unreachable();default:return assert(!1),s.unreachable()}if(!a)return l;let o=this.resolver,u=o.lookupExpression(e.operand,this.currentFlow);return u?this.makeAssignment(u,l,this.currentType,e.operand,o.currentThisExpression,o.currentElementExpression,t!=c.void):s.unreachable()}compileTypeof(e,t,n){let s=e.operand,a=0,l=this.program.stringInstance,o;if(s.kind==19)o="object";else{let u=this.resolver.lookupExpression(s,this.currentFlow,c.auto,1);if(u)switch(u.kind){case 6:case 12:case 2:{o="object";break}case 4:{o="function";break}default:{a=this.compileExpression(s,c.auto);let p=this.currentType;if(a=this.convertExpression(a,p,c.void,!0,s),p.isReference)if(p.getSignature())o="function";else{let f=p.getClass();f?f.prototype==l.prototype?o="string":o="object":o="externref"}else p==c.bool?o="boolean":p.isNumericValue?o="number":o="undefined";break}}else{switch(s.kind){case 7:break;case 22:case 13:if(s=(s.kind==22,s.expression),!this.resolver.resolveExpression(s,this.currentFlow,c.auto,0))return this.currentType=l.type,this.module.unreachable();default:a=this.compileExpression(s,c.auto),a=this.convertExpression(a,this.currentType,c.void,!0,s)}o="undefined"}}return this.currentType=l.type,a?this.module.block(null,[a,this.ensureStaticString(o)],this.options.sizeTypeRef):this.ensureStaticString(o)}ensureSmallIntegerWrap(e,t){let n=this.module,s=this.currentFlow;switch(t.kind){case 0:{s.canOverflow(e,t)&&(e=n.binary(16,e,n.i32(0)));break}case 1:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(47,e):n.binary(11,n.binary(10,e,n.i32(24)),n.i32(24)));break}case 2:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(48,e):n.binary(11,n.binary(10,e,n.i32(16)),n.i32(16)));break}case 6:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(255)));break}case 7:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(65535)));break}}return e}addDebugLocation(e,t){let n=this.currentFlow.targetFunction,s=t.source;s.debugInfoIndex<0&&(s.debugInfoIndex=this.module.addDebugInfoFile(s.normalizedPath)),n.debugLocations.set(e,t)}checkSignatureSupported(e,t){let n=!0,s=t.explicitThisType;s&&(this.program.checkTypeSupported(assert(e.thisType),s)||(n=!1));let a=e.parameterTypes,l=t.parameters;for(let o=0,u=a.length;o<u;++o){let p;l.length>o?p=l[o]:p=t,this.program.checkTypeSupported(a[o],p)||(n=!1)}return this.program.checkTypeSupported(e.returnType,t.returnType)||(n=!1),n}evaluateCondition(e){let t=le(e);if(t==N.Unreachable)return 0;assert(t==N.I32);let s=this.module.runExpression(e,0);return s?ne(s)?1:2:0}makeZero(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(0);case 5:case 10:if(e.size!=64)return t.i32(0);case 4:case 9:return t.i64(0);case 11:return t.f32(0);case 12:return t.f64(0);case 13:return t.v128(zc);case 15:case 14:case 16:case 17:case 18:case 19:case 21:case 22:case 23:case 24:return e.is(512)?t.ref_null(e.toRef()):(assert(!1),t.unreachable());case 20:return e.is(512)?t.ref_null(e.toRef()):t.i31_new(t.i32(0))}}makeOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(1);case 5:case 10:if(e.size!=64)return t.i32(1);case 4:case 9:return t.i64(1);case 11:return t.f32(1);case 12:return t.f64(1);case 20:return t.i31_new(t.i32(1))}}makeNegOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(-1);case 5:case 10:if(e.size!=64)return t.i32(-1);case 4:case 9:return t.i64(-1,-1);case 11:return t.f32(-1);case 12:return t.f64(-1);case 13:return t.v128(Uc);case 20:return t.i31_new(t.i32(-1))}}makeIsTrueish(e,t,n){let s=this.module;switch(t.kind){case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,t);case 0:case 3:case 8:return e;case 4:case 9:return s.binary(41,e,s.i64(0));case 5:case 10:return t.size==64?s.binary(41,e,s.i64(0)):e;case 11:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(53,s.unary(10,s.unary(8,e))))):s.binary(20,s.binary(1,s.binary(10,s.unary(33,e),s.i32(1)),s.i32(2)),s.i32(4278190078))}case 12:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(55,s.unary(11,s.unary(9,e))))):s.binary(45,s.binary(26,s.binary(35,s.unary(34,e),s.i64(1)),s.i64(2)),s.i64(4294967294,4292870143))}case 13:return s.unary(67,e);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return s.unary(20,s.ref_is_null(e));case 25:default:return this.error(1345,n.range,t.toString()),s.i32(0)}}makeToString(e,t,n){let s=this.module,a=this.program.stringInstance.type;if(t==a)return e;let l=t.getClassOrWrapper(this.program);if(l){let o=l.getMethod("toString");if(o){let u=o.signature;if(!this.checkCallSignature(u,0,!0,n))return this.currentType=a,s.unreachable();if(!t.isStrictlyAssignableTo(assert(u.thisType))){if(!t.is(512))return this.errorRelated(2685,n.range,o.identifierAndSignatureRange),this.currentType=a,s.unreachable();let _=this.currentFlow.getTempLocal(t);return s.if(s.local_tee(_.index,e,t.isManaged),this.makeToString(s.local_get(_.index,t.toRef()),t.nonNullableType,n),this.ensureStaticString("null"))}let p=u.returnType;return p.isStrictlyAssignableTo(a)?this.makeCallDirect(o,[e],n):(this.errorRelated(2322,n.range,o.identifierAndSignatureRange,p.toString(),a.toString()),this.currentType=a,s.unreachable())}}return this.error(2322,n.range,t.toString(),a.toString()),this.currentType=a,s.unreachable()}makeAllocation(e){let t=this.program;assert(e.program==t);let n=this.module,s=this.options;if(this.currentType=e.type,e.hasDecorator(16)){let a=t.allocInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset)],s.sizeTypeRef)}else{let a=t.newInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset),n.i32(e.id)],s.sizeTypeRef)}}makeConditionalAllocation(e,t){let n=this.module,a=e.type.toRef();return assert(a==this.options.sizeTypeRef),n.if(n.unary(a==N.I64?21:20,n.local_get(t,a)),n.local_set(t,this.makeAllocation(e),e.type.isManaged))}makeFieldInitializationInConstructor(e,t=[]){let n=e.members;if(!n)return t;let s=this.module,a=this.currentFlow,l=a.isInline,o=l?a.lookupLocal(P.this_).index:0,u=this.options.sizeTypeRef,p=null;for(let _=Map_values(n),f=0,d=_.length;f<d;++f){let h=unchecked(_[f]);if(h.kind!=10)continue;let g=h.instance;if(!g||!g.isField||g.getBoundClassOrInterface()!=e)continue;assert(!g.isAny(8));let m=g.prototype,T=m.parameterIndex;if(T<0){p||(p=new Array),p.push(g);continue}let E=g.type.toRef();assert(!m.initializerNode);let F=assert(g.setterInstance),k=this.makeCallDirect(F,[s.local_get(o,u),s.local_get(l?a.lookupLocal(g.name).index:1+T,E)],F.identifierNode,!0);this.currentType!=c.void&&(k=s.drop(k)),t.push(k)}if(p)for(let _=0,f=p.length;_<f;++_){let d=unchecked(p[_]),h=d.type,g=d.prototype,m=g.initializerNode;assert(g.parameterIndex<0);let T=assert(d.setterInstance),S=this.makeCallDirect(T,[s.local_get(o,u),m?this.compileExpression(m,h,1):this.makeZero(h)],d.identifierNode,!0);this.currentType!=c.void&&(S=s.drop(S)),t.push(S)}return this.currentType=c.void,t}makeAbort(e,t){let n=this.program,s=n.abortInstance;if(!s||!this.compileFunction(s))return this.module.unreachable();let a=n.stringInstance,l;return e?l=this.compileExpression(e,a.type,1):l=this.makeZero(a.type),this.makeStaticAbort(l,t)}makeStaticAbort(e,t){let n=this.program,s=this.module,a=n.abortInstance;if(!a||!this.compileFunction(a))return s.unreachable();let l=this.ensureStaticString(t.range.source.normalizedPath),o=t.range,u=o.source;return s.block(null,[s.call(a.internalName,[e,l,s.i32(u.lineAt(o.start)),s.i32(u.columnAt())],N.None),s.unreachable()])}makeRuntimeNonNullCheck(e,t,n){let s=this.module,a=this.currentFlow,o=a.getTempLocal(t).index;a.canOverflow(e,t)||a.setLocalFlag(o,2),a.setLocalFlag(o,4);let u=this.makeStaticAbort(this.ensureStaticString("Unexpected 'null' (not assigned or failed cast)"),n);if(t.isExternalReference){let p=s.local_get(o,t.toRef());this.options.hasFeature(1024)&&(p=s.ref_as_nonnull(p)),e=s.if(s.ref_is_null(s.local_tee(o,e,!1)),u,p)}else e=s.if(s.local_tee(o,e,t.isManaged),s.local_get(o,t.toRef()),u);return this.currentType=t.nonNullableType,e}makeRuntimeDowncastCheck(e,t,n,s){assert(n.isReference&&n.nonNullableType.isAssignableTo(t));let a=this.module,l=this.currentFlow,u=l.getTempLocal(t).index,p=this.makeStaticAbort(this.ensureStaticString("invalid downcast"),s);return!n.isNullableReference||l.isNonnull(e,t)?e=a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_tee(u,e,t.isManaged)],N.I32),a.local_get(u,t.toRef()),p):e=a.if(a.unary(20,a.local_tee(u,e,t.isManaged)),a.usize(0),a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_get(u,t.toRef())],N.I32),a.local_get(u,t.toRef()),p)),this.currentType=n,e}};function Tb(r,i){si=i.range.source.simplePath,xr=Ne(r.name,r.parent,r.is(262144),!0);let e=i.overriddenModuleName;if(e&&(si=e),!r.hasDecorator(128))return;let t=r.program,n=assert(Ue(9,i.decorators)),s=n.args;if(s&&s.length>0){let a=s[0];a.isLiteralKind(2)?(xr=a.value,s.length>=2&&(a=s[1],a.isLiteralKind(2)?(si=xr,xr=a.value,s.length>2&&t.error(2554,n.range,"2",s.length.toString())):t.error(1141,a.range))):t.error(1141,a.range)}else t.error(2555,n.range,"1","0")}var tn=class r extends Hi{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.seenObjectTypes=new Map;this.deferredTypings=new Array;this.esm=t}static build(e,t=!0){return new r(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type,a=this.toTypeScriptType(s,1);W(n,this.indentLevel),n.push("/** "),n.push(t.internalName),n.push(` */
|
|
301
301
|
`),W(n,this.indentLevel),n.push("export "),this.esm&&n.push("declare "),n.push("const "),n.push(e),n.push(`: {
|
|
302
302
|
`),W(n,++this.indentLevel),n.push("/** @type `"),n.push(s.toString()),n.push("` */\n"),W(n,this.indentLevel),n.push("get value(): "),n.push(a),t.is(8)?n.push(`
|
|
303
303
|
`):(n.push(`;
|