"use strict";/* Human homepage: author: ' */ var Human=(()=>{var _f=Object.defineProperty;var iR=Object.getOwnPropertyDescriptor;var lR=Object.getOwnPropertyNames;var uR=Object.prototype.hasOwnProperty;var cR=(e,t,n)=>t in e?_f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ra=(e,t)=>{for(var n in t)_f(e,n,{get:t[n],enumerable:!0})},dR=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of lR(t))!uR.call(e,r)&&r!==n&&_f(e,r,{get:()=>t[r],enumerable:!(s=iR(t,r))||s.enumerable});return e};var pR=e=>dR(_f({},"__esModule",{value:!0}),e);var ge=(e,t,n)=>(cR(e,typeof t!="symbol"?t+"":t,n),n),N4=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var Gd=(e,t,n)=>(N4(e,t,"read from private field"),n?n.call(e):t.get(e)),Hd=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},jd=(e,t,n,s)=>(N4(e,t,"write to private field"),s?s.call(e,n):t.set(e,n),n);var Q5e={};ra(Q5e,{Human:()=>o4,default:()=>o4,defaults:()=>Oa,draw:()=>Qb,env:()=>me,match:()=>a4,models:()=>n1});function oe(...e){let t=new Date,n=`${t.getHours().toString().padStart(2,"0")}:${t.getMinutes().toString().padStart(2,"0")}:${t.getSeconds().toString().padStart(2,"0")}.${t.getMilliseconds().toString().padStart(3,"0")}`;e&&console.log(n,"Human:",...e)}function E4(e,t){let n=e.endsWith("/")?"":"/",r=t.startsWith(".")||t.startsWith("/")||t.startsWith("http:")||t.startsWith("https:")||t.startsWith("file:")?`${t}`:`${e}${n}${t}`;if(!r.toLocaleLowerCase().includes(".json"))throw new Error(`modelpath error: expecting json file: ${r}`);return r}var ue=()=>typeof performance!="undefined"?performance.now():parseInt((Number(process.hrtime.bigint())/1e3/1e3).toString());function zg(e,t,n="config",s=[]){for(let r of Object.keys(t))if(typeof t[r]=="object")zg(e[r],t[r],r,s);else{let a=e&&typeof e[r]!="undefined";a||s.push({reason:"unknown property",where:`${n}.${r} = ${t[r]}`});let o=e&&typeof e[r]==typeof t[r];a&&!o&&s.push({reason:"property type mismatch",where:`${n}.${r} = ${t[r]}`,expected:typeof e[r]})}return t.debug&&n==="config"&&s.length>0&&oe("invalid configuration",s),s}function Kt(...e){let t=n=>n&&typeof n=="object";return e.reduce((n,s)=>(Object.keys(s||{}).forEach(r=>{let a=n[r],o=s[r];Array.isArray(a)&&Array.isArray(o)?n[r]=a.concat(...o):t(a)&&t(o)?n[r]=Kt(a,o):n[r]=o}),n),{})}var Oa={backend:"",modelBasePath:"",cacheModels:!0,wasmPath:"",wasmPlatformFetch:!1,debug:!1,async:!0,warmup:"full",cacheSensitivity:.7,skipAllowed:!1,deallocate:!1,filter:{enabled:!0,equalization:!1,width:0,height:0,flip:!1,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"blazeface.json",rotation:!0,maxDetected:1,skipFrames:99,skipTime:2500,minConfidence:.2,iouThreshold:.1,mask:!1,return:!1},mesh:{enabled:!0,modelPath:"facemesh.json",keepInvalid:!1},attention:{enabled:!1,modelPath:"facemesh-attention.json"},iris:{enabled:!0,modelPath:"iris.json"},emotion:{enabled:!0,minConfidence:.1,skipFrames:99,skipTime:1500,modelPath:"emotion.json"},description:{enabled:!0,modelPath:"faceres.json",skipFrames:99,skipTime:3e3,minConfidence:.1},antispoof:{enabled:!1,skipFrames:99,skipTime:4e3,modelPath:"antispoof.json"},liveness:{enabled:!1,skipFrames:99,skipTime:4e3,modelPath:"liveness.json"}},body:{enabled:!0,modelPath:"movenet-lightning.json",maxDetected:-1,minConfidence:.3,skipFrames:1,skipTime:200},hand:{enabled:!0,rotation:!0,skipFrames:99,skipTime:1e3,minConfidence:.5,iouThreshold:.2,maxDetected:-1,landmarks:!0,detector:{modelPath:"handtrack.json"},skeleton:{modelPath:"handlandmark-full.json"}},object:{enabled:!1,modelPath:"mb3-centernet.json",minConfidence:.2,iouThreshold:.4,maxDetected:10,skipFrames:99,skipTime:2e3},segmentation:{enabled:!1,modelPath:"selfie.json",blur:8}};var He={};ra(He,{Abs:()=>ol,Acos:()=>uc,Acosh:()=>cc,AdadeltaOptimizer:()=>P0,AdagradOptimizer:()=>O0,AdamOptimizer:()=>M0,AdamaxOptimizer:()=>z0,Add:()=>ya,AddN:()=>oo,All:()=>dc,Any:()=>pc,ArgMax:()=>io,ArgMin:()=>hc,Asin:()=>fc,Asinh:()=>mc,Atan:()=>gc,Atan2:()=>Ac,Atanh:()=>yc,AvgPool:()=>lo,AvgPool3D:()=>Rp,AvgPool3DGrad:()=>Mm,AvgPoolGrad:()=>Om,BackendWasm:()=>oC,BatchMatMul:()=>uo,BatchToSpaceND:()=>il,Bincount:()=>zm,BroadcastArgs:()=>Lm,BroadcastTo:()=>P7,Callback:()=>B8,CallbackList:()=>Gw,Cast:()=>co,Ceil:()=>po,ClipByValue:()=>Aa,Complex:()=>_p,ComplexAbs:()=>Dp,Concat:()=>ll,Conv2D:()=>ho,Conv2DBackpropFilter:()=>Bm,Conv2DBackpropInput:()=>fo,Conv3D:()=>$p,Conv3DBackpropFilterV2:()=>Wm,Conv3DBackpropInputV2:()=>Vm,Cos:()=>mo,Cosh:()=>go,CropAndResize:()=>cl,Cumprod:()=>ul,Cumsum:()=>yo,CustomCallback:()=>jw,DataStorage:()=>Ep,DenseBincount:()=>Um,DepthToSpace:()=>dl,DepthwiseConv2dNative:()=>Ao,DepthwiseConv2dNativeBackpropFilter:()=>Gm,DepthwiseConv2dNativeBackpropInput:()=>Hm,Diag:()=>jm,Dilation2D:()=>Fp,Dilation2DBackpropFilter:()=>im,Dilation2DBackpropInput:()=>om,ENV:()=>Rr,EarlyStopping:()=>W8,Einsum:()=>Pp,Elu:()=>bo,EluGrad:()=>qm,Environment:()=>$7,Equal:()=>pl,Erf:()=>xc,Exp:()=>vo,ExpandDims:()=>hl,Expm1:()=>fl,FFT:()=>Xm,Fill:()=>bc,FlipLeftRight:()=>ml,Floor:()=>wo,FloorDiv:()=>ko,FromPixels:()=>pp,FusedBatchNorm:()=>Io,FusedConv2D:()=>Ka,FusedDepthwiseConv2D:()=>Za,GPGPUContext:()=>Gu,GatherNd:()=>yl,GatherV2:()=>gl,GraphModel:()=>Ih,Greater:()=>Al,GreaterEqual:()=>So,History:()=>Hw,IFFT:()=>Km,Identity:()=>Co,Imag:()=>Op,InputSpec:()=>rn,IsFinite:()=>vc,IsInf:()=>wc,IsNan:()=>kc,KernelBackend:()=>ic,LRN:()=>zp,LRNGrad:()=>Ym,LayerVariable:()=>Mw,LayersModel:()=>ca,LeakyRelu:()=>To,Less:()=>xl,LessEqual:()=>bl,LinSpace:()=>Zm,Log:()=>No,Log1p:()=>Ic,LogSoftmax:()=>O7,LogicalAnd:()=>vl,LogicalNot:()=>Sc,LogicalOr:()=>Mp,LowerBound:()=>l_,MathBackendWebGL:()=>sd,Max:()=>Eo,MaxPool:()=>_o,MaxPool3D:()=>Lp,MaxPool3DGrad:()=>Qm,MaxPoolGrad:()=>Jm,MaxPoolWithArgmax:()=>e0,Maximum:()=>Ro,Mean:()=>Do,Min:()=>$o,Minimum:()=>Fo,MirrorPad:()=>Po,Mod:()=>Cc,MomentumOptimizer:()=>L0,Multinomial:()=>t0,Multiply:()=>Oo,Neg:()=>wl,NonMaxSuppressionV3:()=>Il,NonMaxSuppressionV4:()=>Tc,NonMaxSuppressionV5:()=>Sl,NotEqual:()=>kl,OP_SCOPE_SUFFIX:()=>j7,OneHot:()=>Tl,OnesLike:()=>Cl,Optimizer:()=>va,OptimizerConstructors:()=>Ma,Pack:()=>Nl,PadV2:()=>Mo,Pool:()=>u_,Pow:()=>zo,Prelu:()=>Lo,Prod:()=>Bo,RMSPropOptimizer:()=>B0,RNN:()=>Zr,Range:()=>Nc,Rank:()=>t3,Real:()=>Bp,RealDiv:()=>xo,Reciprocal:()=>Ec,Reduction:()=>Kn,Relu:()=>Wo,Relu6:()=>Uo,Reshape:()=>El,ResizeBilinear:()=>Vo,ResizeBilinearGrad:()=>s0,ResizeNearestNeighbor:()=>Rc,ResizeNearestNeighborGrad:()=>n0,Reverse:()=>Rl,RotateWithOffset:()=>Gl,Round:()=>_l,Rsqrt:()=>Go,SGDOptimizer:()=>ph,ScatterNd:()=>Dl,SearchSorted:()=>r0,Select:()=>$l,Selu:()=>_c,Sequential:()=>ec,Sigmoid:()=>jo,Sign:()=>Dc,Sin:()=>Ho,Sinh:()=>Pl,Slice:()=>Fl,Softmax:()=>Ko,Softplus:()=>$c,SpaceToBatchND:()=>Ol,SparseFillEmptyRows:()=>Wp,SparseReshape:()=>Fc,SparseSegmentMean:()=>Vp,SparseSegmentSum:()=>Up,SparseToDense:()=>Gp,SplitV:()=>Ml,Sqrt:()=>qo,Square:()=>Pc,SquaredDifference:()=>Zo,Step:()=>Qo,StridedSlice:()=>zl,StringNGrams:()=>Hp,StringSplit:()=>a0,StringToHashBucketFast:()=>o0,Sub:()=>Yo,Sum:()=>Xo,SymbolicTensor:()=>wr,Tan:()=>Ll,Tanh:()=>Jo,Tensor:()=>st,TensorBuffer:()=>fn,Tile:()=>xa,TopK:()=>Bl,Transform:()=>Wl,Transpose:()=>Vr,Unique:()=>i0,Unpack:()=>Vl,UnsortedSegmentSum:()=>jp,UpperBound:()=>c_,Variable:()=>mp,ZerosLike:()=>Ul,_FusedMatMul:()=>Xa,abs:()=>nn,acos:()=>Sy,acosh:()=>Cy,add:()=>ce,addN:()=>u0,all:()=>c0,any:()=>Ap,argMax:()=>Cs,argMin:()=>Ty,asin:()=>Ny,asinh:()=>Ey,atan:()=>Ry,atan2:()=>_y,atanh:()=>Dy,avgPool:()=>eh,avgPool3d:()=>Fy,backend:()=>qs,backend_util:()=>T,basicLSTMCell:()=>eF,batchNorm:()=>qi,batchNorm2d:()=>R6,batchNorm3d:()=>_6,batchNorm4d:()=>D6,batchToSpaceND:()=>th,bincount:()=>Py,booleanMaskAsync:()=>iM,broadcastArgs:()=>$6,broadcastTo:()=>Vu,broadcast_util:()=>jl,browser:()=>Xs,buffer:()=>We,callbacks:()=>MH,cast:()=>he,ceil:()=>Oy,clipByValue:()=>ps,clone:()=>Jn,complex:()=>da,concat:()=>St,concat1d:()=>F6,concat2d:()=>zc,concat3d:()=>P6,concat4d:()=>O6,constraints:()=>Bw,conv1d:()=>d0,conv2d:()=>pa,conv2dTranspose:()=>p0,conv3d:()=>zy,conv3dTranspose:()=>z6,copyRegisteredKernels:()=>f_,cos:()=>nh,cosh:()=>h0,cosineWindow:()=>pA,cumprod:()=>xp,cumsum:()=>f0,customGrad:()=>jr,data:()=>dk,denseBincount:()=>L6,deprecationWarn:()=>my,depthToSpace:()=>Ly,depthwiseConv2d:()=>Lc,deregisterOp:()=>BH,device_util:()=>Zp,diag:()=>_F,dilation2d:()=>By,disableDeprecationWarnings:()=>WD,dispose:()=>ne,disposeVariables:()=>VD,div:()=>pe,divNoNan:()=>Wy,dot:()=>B6,dropout:()=>uw,einsum:()=>W6,elu:()=>Bc,enableDebugMode:()=>BD,enableProdMode:()=>fy,enclosingPowerOfTwo:()=>cw,engine:()=>sn,env:()=>Y,equal:()=>Ts,erf:()=>Vy,euclideanNorm:()=>Hy,exp:()=>Ns,expandDims:()=>Zt,expm1:()=>jy,eye:()=>qy,fft:()=>ch,fill:()=>Wc,findBackend:()=>yy,findBackendFactory:()=>jD,floor:()=>Vc,floorDiv:()=>Mc,forceHalfFloat:()=>TS,fused:()=>Ja,gather:()=>Ki,gatherND:()=>lw,gather_util:()=>Ay,getBackend:()=>ts,getGradient:()=>Qg,getKernel:()=>lm,getKernelsForBackend:()=>Gr,getThreadsCount:()=>Jfe,gpgpu_util:()=>aS,grad:()=>mP,grads:()=>gP,greater:()=>ms,greaterEqual:()=>ni,ifft:()=>Yu,imag:()=>Jp,image:()=>Se,inTopKAsync:()=>yM,initializers:()=>Ww,input:()=>o8,io:()=>$n,irfft:()=>N0,isFinite:()=>j6,isInf:()=>q6,isNaN:()=>Xy,keep:()=>bn,kernel_impls:()=>ir,layers:()=>Vw,leakyRelu:()=>rh,less:()=>m0,lessEqual:()=>si,linalg:()=>bw,linspace:()=>X6,loadGraphModel:()=>Uj,loadGraphModelSync:()=>Gj,loadLayersModel:()=>qU,localResponseNormalization:()=>Ky,log:()=>Es,log1p:()=>ah,logSigmoid:()=>Z6,logSoftmax:()=>y0,logSumExp:()=>Zy,logicalAnd:()=>rr,logicalNot:()=>oh,logicalOr:()=>A0,logicalXor:()=>Y6,losses:()=>Qz,lowerBound:()=>J6,matMul:()=>Je,math:()=>l6,max:()=>mn,maxPool:()=>ih,maxPool3d:()=>Jy,maxPoolWithArgmax:()=>Q6,maximum:()=>Kr,mean:()=>Wt,memory:()=>dm,meshgrid:()=>FP,metrics:()=>M8,min:()=>ha,minimum:()=>Uc,mirrorPad:()=>Qy,mod:()=>Xl,model:()=>HU,models:()=>z8,moments:()=>x0,movingAverage:()=>uM,mul:()=>L,multiRNNCell:()=>BP,multinomial:()=>ew,neg:()=>Ft,nextFrame:()=>mA,norm:()=>sh,notEqual:()=>Zi,oneHot:()=>Xu,ones:()=>Ss,onesLike:()=>Rs,op:()=>G,outerProduct:()=>HP,pad:()=>Ks,pad1d:()=>XP,pad2d:()=>ZP,pad3d:()=>JP,pad4d:()=>eO,pool:()=>tw,pow:()=>fa,prelu:()=>uh,print:()=>n6,prod:()=>b0,profile:()=>UD,rand:()=>lO,randomGamma:()=>pO,randomNormal:()=>nw,randomUniform:()=>Gc,range:()=>Zu,ready:()=>Oc,real:()=>Ku,reciprocal:()=>nA,registerBackend:()=>Hl,registerCallbackConstructor:()=>XU,registerGradient:()=>M7,registerKernel:()=>or,registerOp:()=>LH,regularizers:()=>L8,relu:()=>_r,relu6:()=>v0,removeBackend:()=>HD,reshape:()=>U,reverse:()=>_s,reverse1d:()=>bO,reverse2d:()=>wO,reverse3d:()=>IO,reverse4d:()=>CO,rfft:()=>dh,round:()=>w0,rsqrt:()=>k0,scalar:()=>Ce,scatterND:()=>iw,scatter_util:()=>xy,searchSorted:()=>Yy,selu:()=>I0,separableConv2d:()=>sA,sequential:()=>jU,serialization:()=>de,setBackend:()=>gy,setPlatform:()=>qD,setThreadsCount:()=>Yfe,setWasmPath:()=>Zfe,setWasmPaths:()=>vx,setWebGLContext:()=>l2,setdiff1dAsync:()=>sw,sigmoid:()=>Cn,sign:()=>rA,signal:()=>Jz,sin:()=>S0,sinh:()=>C0,slice:()=>Oe,slice1d:()=>T0,slice2d:()=>aA,slice3d:()=>Kl,slice4d:()=>Yi,slice_util:()=>Gt,softmax:()=>Zl,softplus:()=>ql,spaceToBatchND:()=>lh,sparse:()=>Qd,sparseToDense:()=>dA,spectral:()=>Yz,split:()=>Yt,sqrt:()=>Tn,square:()=>vt,squaredDifference:()=>E0,squeeze:()=>et,stack:()=>ln,step:()=>Hc,stridedSlice:()=>oA,string:()=>qf,sub:()=>fe,sum:()=>ke,sumOutType:()=>Kp,tan:()=>iA,tanh:()=>ji,tensor:()=>yt,tensor1d:()=>$t,tensor2d:()=>Ir,tensor3d:()=>c6,tensor4d:()=>YO,tensor5d:()=>JO,tensor6d:()=>QO,tensor_util:()=>kr,test_util:()=>I6,tidy:()=>K,tile:()=>Us,time:()=>GD,topk:()=>lA,train:()=>Ri,transpose:()=>rt,truncatedNormal:()=>R0,unique:()=>hm,unregisterGradient:()=>h_,unregisterKernel:()=>p_,unsortedSegmentSum:()=>uA,unstack:()=>Qn,upcastType:()=>Fn,upperBound:()=>rw,util:()=>v,valueAndGrad:()=>yP,valueAndGrads:()=>AP,variable:()=>aw,variableGrads:()=>K6,version:()=>Oh,version_converter:()=>jj,version_core:()=>Iy,version_layers:()=>MA,version_wasm:()=>Qfe,version_webgl:()=>ine,webgl:()=>lne,webgl_util:()=>EI,webgpu:()=>_C,where:()=>Pn,whereAsync:()=>cA,zeros:()=>Vt,zerosLike:()=>lt});var hR=Object.create,ty=Object.defineProperty,fR=Object.getOwnPropertyDescriptor,A7=Object.getOwnPropertyNames,mR=Object.getPrototypeOf,gR=Object.prototype.hasOwnProperty,Tt=(e,t)=>function(){return t||(0,e[A7(e)[0]])((t={exports:{}}).exports,t),t.exports},Ve=(e,t)=>{for(var n in t)ty(e,n,{get:t[n],enumerable:!0})},yR=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of A7(t))!gR.call(e,r)&&r!==n&&ty(e,r,{get:()=>t[r],enumerable:!(s=fR(t,r))||s.enumerable});return e},rl=(e,t,n)=>(n=e!=null?hR(mR(e)):{},yR(t||!e||!e.__esModule?ty(n,"default",{value:e,enumerable:!0}):n,e)),AR=Tt({"node_modules/.pnpm/long@4.0.0/node_modules/long/src/long.js"(e,t){t.exports=s;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(D){}function s(D,C,P){this.low=D|0,this.high=C|0,this.unsigned=!!P}s.prototype.__isLong__,Object.defineProperty(s.prototype,"__isLong__",{value:!0});function r(D){return(D&&D.__isLong__)===!0}s.isLong=r;var a={},o={};function i(D,C){var P,V,j;return C?(D>>>=0,(j=0<=D&&D<256)&&(V=o[D],V)?V:(P=u(D,(D|0)<0?-1:0,!0),j&&(o[D]=P),P)):(D|=0,(j=-128<=D&&D<128)&&(V=a[D],V)?V:(P=u(D,D<0?-1:0,!1),j&&(a[D]=P),P))}s.fromInt=i;function l(D,C){if(isNaN(D))return C?b:A;if(C){if(D<0)return b;if(D>=g)return R}else{if(D<=-y)return $;if(D+1>=y)return E}return D<0?l(-D,C).neg():u(D%m|0,D/m|0,C)}s.fromNumber=l;function u(D,C,P){return new s(D,C,P)}s.fromBits=u;var c=Math.pow;function p(D,C,P){if(D.length===0)throw Error("empty string");if(D==="NaN"||D==="Infinity"||D==="+Infinity"||D==="-Infinity")return A;if(typeof C=="number"?(P=C,C=!1):C=!!C,P=P||10,P<2||360)throw Error("interior hyphen");if(V===0)return p(D.substring(1),C,P).neg();for(var j=l(c(P,8)),z=A,Z=0;Z>>0:this.low},_.toNumber=function(){return this.unsigned?(this.high>>>0)*m+(this.low>>>0):this.high*m+(this.low>>>0)},_.toString=function(C){if(C=C||10,C<2||36>>0,ie=Q.toString(C);if(Z=ee,Z.isZero())return ie+W;for(;ie.length<6;)ie="0"+ie;W=""+ie+W}},_.getHighBits=function(){return this.high},_.getHighBitsUnsigned=function(){return this.high>>>0},_.getLowBits=function(){return this.low},_.getLowBitsUnsigned=function(){return this.low>>>0},_.getNumBitsAbs=function(){if(this.isNegative())return this.eq($)?64:this.neg().getNumBitsAbs();for(var C=this.high!=0?this.high:this.low,P=31;P>0&&(C&1<=0},_.isOdd=function(){return(this.low&1)===1},_.isEven=function(){return(this.low&1)===0},_.equals=function(C){return r(C)||(C=d(C)),this.unsigned!==C.unsigned&&this.high>>>31===1&&C.high>>>31===1?!1:this.high===C.high&&this.low===C.low},_.eq=_.equals,_.notEquals=function(C){return!this.eq(C)},_.neq=_.notEquals,_.ne=_.notEquals,_.lessThan=function(C){return this.comp(C)<0},_.lt=_.lessThan,_.lessThanOrEqual=function(C){return this.comp(C)<=0},_.lte=_.lessThanOrEqual,_.le=_.lessThanOrEqual,_.greaterThan=function(C){return this.comp(C)>0},_.gt=_.greaterThan,_.greaterThanOrEqual=function(C){return this.comp(C)>=0},_.gte=_.greaterThanOrEqual,_.ge=_.greaterThanOrEqual,_.compare=function(C){if(r(C)||(C=d(C)),this.eq(C))return 0;var P=this.isNegative(),V=C.isNegative();return P&&!V?-1:!P&&V?1:this.unsigned?C.high>>>0>this.high>>>0||C.high===this.high&&C.low>>>0>this.low>>>0?-1:1:this.sub(C).isNegative()?-1:1},_.comp=_.compare,_.negate=function(){return!this.unsigned&&this.eq($)?$:this.not().add(w)},_.neg=_.negate,_.add=function(C){r(C)||(C=d(C));var P=this.high>>>16,V=this.high&65535,j=this.low>>>16,z=this.low&65535,Z=C.high>>>16,W=C.high&65535,ee=C.low>>>16,Q=C.low&65535,ie=0,J=0,ae=0,le=0;return le+=z+Q,ae+=le>>>16,le&=65535,ae+=j+ee,J+=ae>>>16,ae&=65535,J+=V+W,ie+=J>>>16,J&=65535,ie+=P+Z,ie&=65535,u(ae<<16|le,ie<<16|J,this.unsigned)},_.subtract=function(C){return r(C)||(C=d(C)),this.add(C.neg())},_.sub=_.subtract,_.multiply=function(C){if(this.isZero())return A;if(r(C)||(C=d(C)),n){var P=n.mul(this.low,this.high,C.low,C.high);return u(P,n.get_high(),this.unsigned)}if(C.isZero())return A;if(this.eq($))return C.isOdd()?$:A;if(C.eq($))return this.isOdd()?$:A;if(this.isNegative())return C.isNegative()?this.neg().mul(C.neg()):this.neg().mul(C).neg();if(C.isNegative())return this.mul(C.neg()).neg();if(this.lt(x)&&C.lt(x))return l(this.toNumber()*C.toNumber(),this.unsigned);var V=this.high>>>16,j=this.high&65535,z=this.low>>>16,Z=this.low&65535,W=C.high>>>16,ee=C.high&65535,Q=C.low>>>16,ie=C.low&65535,J=0,ae=0,le=0,ye=0;return ye+=Z*ie,le+=ye>>>16,ye&=65535,le+=z*ie,ae+=le>>>16,le&=65535,le+=Z*Q,ae+=le>>>16,le&=65535,ae+=j*ie,J+=ae>>>16,ae&=65535,ae+=z*Q,J+=ae>>>16,ae&=65535,ae+=Z*ee,J+=ae>>>16,ae&=65535,J+=V*ie+j*Q+z*ee+Z*W,J&=65535,u(le<<16|ye,J<<16|ae,this.unsigned)},_.mul=_.multiply,_.divide=function(C){if(r(C)||(C=d(C)),C.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&C.low===-1&&C.high===-1)return this;var P=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,C.low,C.high);return u(P,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?b:A;var V,j,z;if(this.unsigned){if(C.unsigned||(C=C.toUnsigned()),C.gt(this))return b;if(C.gt(this.shru(1)))return k;z=b}else{if(this.eq($)){if(C.eq(w)||C.eq(S))return $;if(C.eq($))return w;var Z=this.shr(1);return V=Z.div(C).shl(1),V.eq(A)?C.isNegative()?w:S:(j=this.sub(C.mul(V)),z=V.add(j.div(C)),z)}else if(C.eq($))return this.unsigned?b:A;if(this.isNegative())return C.isNegative()?this.neg().div(C.neg()):this.neg().div(C).neg();if(C.isNegative())return this.div(C.neg()).neg();z=A}for(j=this;j.gte(C);){V=Math.max(1,Math.floor(j.toNumber()/C.toNumber()));for(var W=Math.ceil(Math.log(V)/Math.LN2),ee=W<=48?1:c(2,W-48),Q=l(V),ie=Q.mul(C);ie.isNegative()||ie.gt(j);)V-=ee,Q=l(V,this.unsigned),ie=Q.mul(C);Q.isZero()&&(Q=w),z=z.add(Q),j=j.sub(ie)}return z},_.div=_.divide,_.modulo=function(C){if(r(C)||(C=d(C)),n){var P=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,C.low,C.high);return u(P,n.get_high(),this.unsigned)}return this.sub(this.div(C).mul(C))},_.mod=_.modulo,_.rem=_.modulo,_.not=function(){return u(~this.low,~this.high,this.unsigned)},_.and=function(C){return r(C)||(C=d(C)),u(this.low&C.low,this.high&C.high,this.unsigned)},_.or=function(C){return r(C)||(C=d(C)),u(this.low|C.low,this.high|C.high,this.unsigned)},_.xor=function(C){return r(C)||(C=d(C)),u(this.low^C.low,this.high^C.high,this.unsigned)},_.shiftLeft=function(C){return r(C)&&(C=C.toInt()),(C&=63)===0?this:C<32?u(this.low<>>32-C,this.unsigned):u(0,this.low<>>C|this.high<<32-C,this.high>>C,this.unsigned):u(this.high>>C-32,this.high>=0?0:-1,this.unsigned)},_.shr=_.shiftRight,_.shiftRightUnsigned=function(C){if(r(C)&&(C=C.toInt()),C&=63,C===0)return this;var P=this.high;if(C<32){var V=this.low;return u(V>>>C|P<<32-C,P>>>C,this.unsigned)}else return C===32?u(P,0,this.unsigned):u(P>>>C-32,0,this.unsigned)},_.shru=_.shiftRightUnsigned,_.shr_u=_.shiftRightUnsigned,_.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},_.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},_.toBytes=function(C){return C?this.toBytesLE():this.toBytesBE()},_.toBytesLE=function(){var C=this.high,P=this.low;return[P&255,P>>>8&255,P>>>16&255,P>>>24,C&255,C>>>8&255,C>>>16&255,C>>>24]},_.toBytesBE=function(){var C=this.high,P=this.low;return[C>>>24,C>>>16&255,C>>>8&255,C&255,P>>>24,P>>>16&255,P>>>8&255,P&255]},s.fromBytes=function(C,P,V){return V?s.fromBytesLE(C,P):s.fromBytesBE(C,P)},s.fromBytesLE=function(C,P){return new s(C[0]|C[1]<<8|C[2]<<16|C[3]<<24,C[4]|C[5]<<8|C[6]<<16|C[7]<<24,P)},s.fromBytesBE=function(C,P){return new s(C[4]<<24|C[5]<<16|C[6]<<8|C[7],C[0]<<24|C[1]<<16|C[2]<<8|C[3],P)}}}),xR=Tt({"(disabled):node_modules/.pnpm/node-fetch@2.6.7/node_modules/node-fetch/browser.js"(){}}),bR=Tt({"(disabled):util"(){}}),vR=Tt({"node_modules/.pnpm/seedrandom@2.4.3/node_modules/seedrandom/lib/alea.js"(e,t){(function(n,s,r){function a(u){var c=this,p=l();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=p(" "),c.s1=p(" "),c.s2=p(" "),c.s0-=p(u),c.s0<0&&(c.s0+=1),c.s1-=p(u),c.s1<0&&(c.s1+=1),c.s2-=p(u),c.s2<0&&(c.s2+=1),p=null}function o(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function i(u,c){var p=new a(u),d=c&&c.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&o(d,p),h.state=function(){return o(p,{})}),h}function l(){var u=4022871197,c=function(p){p=p.toString();for(var d=0;d>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return c}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.alea=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),wR=Tt({"node_modules/.pnpm/seedrandom@2.4.3/node_modules/seedrandom/lib/xor128.js"(e,t){(function(n,s,r){function a(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.xor128=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),kR=Tt({"node_modules/.pnpm/seedrandom@2.4.3/node_modules/seedrandom/lib/xorwow.js"(e,t){(function(n,s,r){function a(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var p=0;p>>4),u.next()}function o(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function i(l,u){var c=new a(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.xorwow=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),IR=Tt({"node_modules/.pnpm/seedrandom@2.4.3/node_modules/seedrandom/lib/xorshift7.js"(e,t){(function(n,s,r){function a(l){var u=this;u.next=function(){var p=u.x,d=u.i,h,f,m;return h=p[d],h^=h>>>7,f=h^h<<24,h=p[d+1&7],f^=h^h>>>10,h=p[d+3&7],f^=h^h>>>3,h=p[d+4&7],f^=h^h<<7,h=p[d+7&7],h=h^h<<13,f^=h^h<<9,p[d]=f,u.i=d+1&7,f};function c(p,d){var h,f,m=[];if(d===(d|0))f=m[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}c(u,l)}function o(l,u){return u.x=l.x.slice(),u.i=l.i,u}function i(l,u){l==null&&(l=+new Date);var c=new a(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(p.x&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.xorshift7=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),SR=Tt({"node_modules/.pnpm/seedrandom@2.4.3/node_modules/seedrandom/lib/xor4096.js"(e,t){(function(n,s,r){function a(l){var u=this;u.next=function(){var p=u.w,d=u.X,h=u.i,f,m;return u.w=p=p+1640531527|0,m=d[h+34&127],f=d[h=h+1&127],m^=m<<13,f^=f<<17,m^=m>>>15,f^=f>>>12,m=d[h]=m^f,u.i=h,m+(p^p>>>16)|0};function c(p,d){var h,f,m,g,y,x=[],A=128;for(d===(d|0)?(f=d,d=null):(d=d+"\0",f=0,A=Math.max(A,d.length)),m=0,g=-32;g>>15,f^=f<<4,f^=f>>>13,g>=0&&(y=y+1640531527|0,h=x[g&127]^=f+y,m=h==0?m+1:0);for(m>=128&&(x[(d&&d.length||0)&127]=-1),m=127,g=4*128;g>0;--g)f=x[m+34&127],h=x[m=m+1&127],f^=f<<13,h^=h<<17,f^=f>>>15,h^=h>>>12,x[m]=f^h;p.w=y,p.X=x,p.i=m}c(u,l)}function o(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function i(l,u){l==null&&(l=+new Date);var c=new a(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(p.X&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.xor4096=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),CR=Tt({"node_modules/.pnpm/seedrandom@2.4.3/node_modules/seedrandom/lib/tychei.js"(e,t){(function(n,s,r){function a(l){var u=this,c="";u.next=function(){var d=u.b,h=u.c,f=u.d,m=u.a;return d=d<<25^d>>>7^h,h=h-f|0,f=f<<24^f>>>8^m,m=m-d|0,u.b=d=d<<20^d>>>12^h,u.c=h=h-f|0,u.d=f<<16^h>>>16^m,u.a=m-d|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.tychei=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),x7=Tt({"(disabled):crypto"(){}}),TR=Tt({"node_modules/.pnpm/seedrandom@2.4.3/node_modules/seedrandom/seedrandom.js"(e,t){(function(n,s){var r=this,a=256,o=6,i=52,l="random",u=s.pow(a,o),c=s.pow(2,i),p=c*2,d=a-1,h;function f(w,k,S){var E=[];k=k==!0?{entropy:!0}:k||{};var R=x(y(k.entropy?[w,b(n)]:w==null?A():w,3),E),$=new m(E),_=function(){for(var D=$.g(o),C=u,P=0;D=p;)D/=2,C/=2,P>>>=1;return(D+P)/C};return _.int32=function(){return $.g(4)|0},_.quick=function(){return $.g(4)/4294967296},_.double=_,x(b($.S),n),(k.pass||S||function(D,C,P,V){return V&&(V.S&&g(V,$),D.state=function(){return g($,{})}),P?(s[l]=D,C):D})(_,R,"global"in k?k.global:this==s,k.state)}s["seed"+l]=f;function m(w){var k,S=w.length,E=this,R=0,$=E.i=E.j=0,_=E.S=[];for(S||(w=[S++]);R>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return c}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.alea=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),ER=Tt({"node_modules/.pnpm/seedrandom@3.0.5/node_modules/seedrandom/lib/xor128.js"(e,t){(function(n,s,r){function a(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.xor128=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),RR=Tt({"node_modules/.pnpm/seedrandom@3.0.5/node_modules/seedrandom/lib/xorwow.js"(e,t){(function(n,s,r){function a(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var p=0;p>>4),u.next()}function o(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function i(l,u){var c=new a(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.xorwow=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),_R=Tt({"node_modules/.pnpm/seedrandom@3.0.5/node_modules/seedrandom/lib/xorshift7.js"(e,t){(function(n,s,r){function a(l){var u=this;u.next=function(){var p=u.x,d=u.i,h,f,m;return h=p[d],h^=h>>>7,f=h^h<<24,h=p[d+1&7],f^=h^h>>>10,h=p[d+3&7],f^=h^h>>>3,h=p[d+4&7],f^=h^h<<7,h=p[d+7&7],h=h^h<<13,f^=h^h<<9,p[d]=f,u.i=d+1&7,f};function c(p,d){var h,f,m=[];if(d===(d|0))f=m[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}c(u,l)}function o(l,u){return u.x=l.x.slice(),u.i=l.i,u}function i(l,u){l==null&&(l=+new Date);var c=new a(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(p.x&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.xorshift7=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),DR=Tt({"node_modules/.pnpm/seedrandom@3.0.5/node_modules/seedrandom/lib/xor4096.js"(e,t){(function(n,s,r){function a(l){var u=this;u.next=function(){var p=u.w,d=u.X,h=u.i,f,m;return u.w=p=p+1640531527|0,m=d[h+34&127],f=d[h=h+1&127],m^=m<<13,f^=f<<17,m^=m>>>15,f^=f>>>12,m=d[h]=m^f,u.i=h,m+(p^p>>>16)|0};function c(p,d){var h,f,m,g,y,x=[],A=128;for(d===(d|0)?(f=d,d=null):(d=d+"\0",f=0,A=Math.max(A,d.length)),m=0,g=-32;g>>15,f^=f<<4,f^=f>>>13,g>=0&&(y=y+1640531527|0,h=x[g&127]^=f+y,m=h==0?m+1:0);for(m>=128&&(x[(d&&d.length||0)&127]=-1),m=127,g=4*128;g>0;--g)f=x[m+34&127],h=x[m=m+1&127],f^=f<<13,h^=h<<17,f^=f>>>15,h^=h>>>12,x[m]=f^h;p.w=y,p.X=x,p.i=m}c(u,l)}function o(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function i(l,u){l==null&&(l=+new Date);var c=new a(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(p.X&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.xor4096=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),$R=Tt({"node_modules/.pnpm/seedrandom@3.0.5/node_modules/seedrandom/lib/tychei.js"(e,t){(function(n,s,r){function a(l){var u=this,c="";u.next=function(){var d=u.b,h=u.c,f=u.d,m=u.a;return d=d<<25^d>>>7^h,h=h-f|0,f=f<<24^f>>>8^m,m=m-d|0,u.b=d=d<<20^d>>>12^h,u.c=h=h-f|0,u.d=f<<16^h>>>16^m,u.a=m-d|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,m=(h+f)/(1<<21);while(m===0);return m},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&o(p,c),d.state=function(){return o(c,{})}),d}s&&s.exports?s.exports=i:r&&r.amd?r(function(){return i}):this.tychei=i})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),FR=Tt({"node_modules/.pnpm/seedrandom@3.0.5/node_modules/seedrandom/seedrandom.js"(e,t){(function(n,s,r){var a=256,o=6,i=52,l="random",u=r.pow(a,o),c=r.pow(2,i),p=c*2,d=a-1,h;function f(w,k,S){var E=[];k=k==!0?{entropy:!0}:k||{};var R=x(y(k.entropy?[w,b(s)]:w==null?A():w,3),E),$=new m(E),_=function(){for(var D=$.g(o),C=u,P=0;D=p;)D/=2,C/=2,P>>>=1;return(D+P)/C};return _.int32=function(){return $.g(4)|0},_.quick=function(){return $.g(4)/4294967296},_.double=_,x(b($.S),s),(k.pass||S||function(D,C,P,V){return V&&(V.S&&g(V,$),D.state=function(){return g($,{})}),P?(r[l]=D,C):D})(_,R,"global"in k?k.global:this==r,k.state)}function m(w){var k,S=w.length,E=this,R=0,$=E.i=E.j=0,_=E.S=[];for(S||(w=[S++]);R{var s=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(s=s||__filename),function(r){r=r||{};function a(){return $e.buffer!=Gn&&hr($e.buffer),Zh}function o(){return $e.buffer!=Gn&&hr($e.buffer),Yh}function i(){return $e.buffer!=Gn&&hr($e.buffer),Dd}function l(){return $e.buffer!=Gn&&hr($e.buffer),Jh}function u(){return $e.buffer!=Gn&&hr($e.buffer),Qh}function c(){return $e.buffer!=Gn&&hr($e.buffer),ef}function p(){return $e.buffer!=Gn&&hr($e.buffer),tf}var d=typeof r!="undefined"?r:{},h,f;d.ready=new Promise(function(N,O){h=N,f=O});var m;typeof process!="undefined"&&process.listeners&&(m={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},d),y=[],x="./this.program",A=(N,O)=>{throw O},b=typeof window=="object",w=typeof importScripts=="function",k=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",S=d.ENVIRONMENT_IS_PTHREAD||!1,E="";function R(N){return d.locateFile?d.locateFile(N,E):E+N}var $,_,D,C;function P(N){if(N instanceof Vd)return;Q("exiting due to exception: "+N)}var V,j,z;if(k){w?E=sm().dirname(E)+"/":E=__dirname+"/",z=()=>{j||(V=ny(),j=sm())},$=function(H,te){return z(),H=j.normalize(H),V.readFileSync(H,te?void 0:"utf8")},D=O=>{var H=$(O,!0);return H.buffer||(H=new Uint8Array(H)),H},_=(O,H,te)=>{z(),O=j.normalize(O),V.readFile(O,function(Ae,be){Ae?te(Ae):H(be.buffer)})},process.argv.length>1&&(x=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function(O){if(!(O instanceof Vd))throw O}),process.on("unhandledRejection",function(O){throw O}),A=(O,H)=>{if(wi())throw process.exitCode=O,H;P(H),process.exit(O)},d.inspect=function(){return"[Emscripten Module object]"};let N;try{N=PR()}catch(O){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),O}global.Worker=N.Worker}else(b||w)&&(w?E=self.location.href:typeof document!="undefined"&&document.currentScript&&(E=document.currentScript.src),typeof s!="undefined"&&s&&(E=s),E.indexOf("blob:")!==0?E=E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):E="",k||($=N=>{var O=new XMLHttpRequest;return O.open("GET",N,!1),O.send(null),O.responseText},w&&(D=N=>{var O=new XMLHttpRequest;return O.open("GET",N,!1),O.responseType="arraybuffer",O.send(null),new Uint8Array(O.response)}),_=(N,O,H)=>{var te=new XMLHttpRequest;te.open("GET",N,!0),te.responseType="arraybuffer",te.onload=()=>{if(te.status==200||te.status==0&&te.response){O(te.response);return}H()},te.onerror=H,te.send(null)}),C=N=>document.title=N);k&&typeof performance=="undefined"&&(global.performance=OR().performance);var Z=console.log.bind(console),W=console.warn.bind(console);k&&(z(),Z=N=>V.writeSync(1,N+` `),W=N=>V.writeSync(2,N+` `));var ee=d.print||Z,Q=d.printErr||W;Object.assign(d,g),g=null,d.arguments&&(y=d.arguments),d.thisProgram&&(x=d.thisProgram),d.quit&&(A=d.quit);var ie=4;function J(N){J.shown||(J.shown={}),J.shown[N]||(J.shown[N]=1,Q(N))}function ae(N,O){if(typeof WebAssembly.Function=="function"){for(var H={i:"i32",j:"i64",f:"f32",d:"f64"},te={parameters:[],results:O[0]=="v"?[]:[H[O[0]]]},Ae=1;Ae{_e=N},Ue=Atomics.load,it=Atomics.store,dt=Atomics.compareExchange,pt;d.wasmBinary&&(pt=d.wasmBinary);var At=d.noExitRuntime||!0;typeof WebAssembly!="object"&&xu("no native wasm support detected");var $e,Nt,kt=!1,Wn;function en(N,O){N||xu(O)}function As(N){var O=d["_"+N];return O}function pn(N,O,H,te,Ae){var be={string:function(vs){var Eu=0;if(vs!=null&&vs!==0){var T4=(vs.length<<2)+1;Eu=Nu(T4),na(vs,Eu,T4)}return Eu},array:function(vs){var Eu=Nu(vs.length);return sa(vs,Eu),Eu}};function Ne(vs){return O==="string"?Un(vs):O==="boolean"?Boolean(vs):vs}var Me=As(N),Bt=[],yr=0;if(te)for(var Ar=0;Ar(H.buffer instanceof SharedArrayBuffer&&(H=new Uint8Array(H)),O.decode.call(O,H))}var _n=typeof TextDecoder!="undefined"?new bs("utf8"):void 0;function Ls(N,O,H){for(var te=O+H,Ae=O;N[Ae]&&!(Ae>=te);)++Ae;if(Ae-O>16&&N.subarray&&_n)return _n.decode(N.subarray(O,Ae));for(var be="";O>10,56320|yr&1023)}}return be}function Un(N,O){return N?Ls(o(),N,O):""}function ta(N,O,H,te){if(!(te>0))return 0;for(var Ae=H,be=H+te-1,Ne=0;Ne=55296&&Me<=57343){var Bt=N.charCodeAt(++Ne);Me=65536+((Me&1023)<<10)|Bt&1023}if(Me<=127){if(H>=be)break;O[H++]=Me}else if(Me<=2047){if(H+1>=be)break;O[H++]=192|Me>>6,O[H++]=128|Me&63}else if(Me<=65535){if(H+2>=be)break;O[H++]=224|Me>>12,O[H++]=128|Me>>6&63,O[H++]=128|Me&63}else{if(H+3>=be)break;O[H++]=240|Me>>18,O[H++]=128|Me>>12&63,O[H++]=128|Me>>6&63,O[H++]=128|Me&63}}return O[H]=0,H-Ae}function na(N,O,H){return ta(N,o(),O,H)}function gu(N){for(var O=0,H=0;H=55296&&te<=57343&&(te=65536+((te&1023)<<10)|N.charCodeAt(++H)&1023),te<=127?++O:te<=2047?O+=2:te<=65535?O+=3:O+=4}return O}var Da=typeof TextDecoder!="undefined"?new bs("utf-16le"):void 0;function sa(N,O){a().set(N,O)}function _d(N,O,H){for(var te=0;te>0]=N.charCodeAt(te);H||(a()[O>>0]=0)}function yu(N,O){return N%O>0&&(N+=O-N%O),N}var Gn,Zh,Yh,Dd,Jh,Qh,i4,ef,tf;S&&(Gn=d.buffer);function hr(N){Gn=N,d.HEAP8=Zh=new Int8Array(N),d.HEAP16=Dd=new Int16Array(N),d.HEAP32=Qh=new Int32Array(N),d.HEAPU8=Yh=new Uint8Array(N),d.HEAPU16=Jh=new Uint16Array(N),d.HEAPU32=i4=new Uint32Array(N),d.HEAPF32=ef=new Float32Array(N),d.HEAPF64=tf=new Float64Array(N)}var nf=d.INITIAL_MEMORY||16777216;if(S)$e=d.wasmMemory,Gn=d.buffer;else if(d.wasmMemory)$e=d.wasmMemory;else if($e=new WebAssembly.Memory({initial:nf/65536,maximum:32768,shared:!0}),!($e.buffer instanceof SharedArrayBuffer))throw Q("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),k&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");$e&&(Gn=$e.buffer),nf=Gn.byteLength,hr(Gn);var Bs,Au=[],$a=[],i1=[],sf=[],vi=!1,l1=!1,rf=0;function wi(){return At||rf>0}function Hn(){if(d.preRun)for(typeof d.preRun=="function"&&(d.preRun=[d.preRun]);d.preRun.length;)l4(d.preRun.shift());uf(Au)}function $d(){vi=!0,!S&&uf($a)}function u1(){S||(ze.terminateAllThreads(),l1=!0)}function c1(){if(!S){if(d.postRun)for(typeof d.postRun=="function"&&(d.postRun=[d.postRun]);d.postRun.length;)Fd(d.postRun.shift());uf(sf)}}function l4(N){Au.unshift(N)}function u4(N){$a.unshift(N)}function Fd(N){sf.unshift(N)}var Fa=0,af=null,fr=null;function Pd(N){Fa++,d.monitorRunDependencies&&d.monitorRunDependencies(Fa)}function c4(N){if(Fa--,d.monitorRunDependencies&&d.monitorRunDependencies(Fa),Fa==0&&(af!==null&&(clearInterval(af),af=null),fr)){var O=fr;fr=null,O()}}d.preloadedImages={},d.preloadedAudios={};function xu(N){S?postMessage({cmd:"onAbort",arg:N}):d.onAbort&&d.onAbort(N),N="Aborted("+N+")",Q(N),kt=!0,Wn=1,N+=". Build with -s ASSERTIONS=1 for more info.";var O=new WebAssembly.RuntimeError(N);throw f(O),O}var d1="data:application/octet-stream;base64,";function Od(N){return N.startsWith(d1)}function of(N){return N.startsWith("file://")}var jn;jn="tfjs-backend-wasm-threaded-simd.wasm",Od(jn)||(jn=R(jn));function lf(N){try{if(N==jn&&pt)return new Uint8Array(pt);if(D)return D(N);throw"both async and sync fetching of the wasm failed"}catch(O){xu(O)}}function bu(){if(!pt&&(b||w)){if(typeof fetch=="function"&&!of(jn))return fetch(jn,{credentials:"same-origin"}).then(function(N){if(!N.ok)throw"failed to load wasm binary file at '"+jn+"'";return N.arrayBuffer()}).catch(function(){return lf(jn)});if(_)return new Promise(function(N,O){_(jn,function(H){N(new Uint8Array(H))},O)})}return Promise.resolve().then(function(){return lf(jn)})}function p1(){var N={env:vf,wasi_snapshot_preview1:vf};function O(Ne,Me){var Bt=Ne.exports;if(d.asm=Bt,x1(d.asm.emscripten_tls_init),Bs=d.asm.__indirect_function_table,u4(d.asm.__wasm_call_ctors),Nt=Me,!S){var yr=ze.unusedWorkers.length;ze.unusedWorkers.forEach(function(Ar){ze.loadWasmModuleToWorker(Ar,function(){--yr||c4("wasm-instantiate")})})}}S||Pd("wasm-instantiate");function H(Ne){O(Ne.instance,Ne.module)}function te(Ne){return bu().then(function(Me){return WebAssembly.instantiate(Me,N)}).then(function(Me){return Me}).then(Ne,function(Me){Q("failed to asynchronously prepare wasm: "+Me),xu(Me)})}function Ae(){return!pt&&typeof WebAssembly.instantiateStreaming=="function"&&!Od(jn)&&!of(jn)&&typeof fetch=="function"?fetch(jn,{credentials:"same-origin"}).then(function(Ne){var Me=WebAssembly.instantiateStreaming(Ne,N);return Me.then(H,function(Bt){return Q("wasm streaming compile failed: "+Bt),Q("falling back to ArrayBuffer instantiation"),te(H)})}):te(H)}if(d.instantiateWasm)try{var be=d.instantiateWasm(N,O);return be}catch(Ne){return Q("Module.instantiateWasm callback failed with error: "+Ne),!1}return Ae().catch(f),{}}var d4,p4,h1={};function uf(N){for(;N.length>0;){var O=N.shift();if(typeof O=="function"){O(d);continue}var H=O.func;typeof H=="number"?O.arg===void 0?wu(H)():wu(H)(O.arg):H(O.arg===void 0?null:O.arg)}}function vu(N){var O=Og(),H=N();return Cf(O),H}function fE(N){return N}function h4(N){var O=/\b_Z[\w\d_]+/g;return N.replace(O,function(H){var te=H;return H===te?H:te+" ["+H+"]"})}function f1(N){u()[N>>2]=0;var O=ze.pthreads[N];delete ze.pthreads[N],O.worker.terminate(),Pg(N),ze.runningWorkers.splice(ze.runningWorkers.indexOf(O.worker),1),O.worker.pthread=void 0}function m1(N){var O=ze.pthreads[N];O.worker.postMessage({cmd:"cancel"})}function cf(N){var O=ze.pthreads[N];if(O){u()[N>>2]=0;var H=O.worker;ze.returnWorkerToPool(H)}}function df(N){sR(N)}function g1(N){if(N instanceof Vd||N=="unwind")return Wn;A(1,N)}var ze={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],init:function(){S?ze.initWorker():ze.initMainThread()},initMainThread:function(){for(var N=8,O=0;O>2]=0;try{N()}finally{u()[C4>>2]=1}},receiveObjectTransfer:function(N){},threadInit:function(){for(var N in ze.tlsInitFunctions)ze.tlsInitFunctions[N]()},loadWasmModuleToWorker:function(N,O){N.onmessage=H=>{var te=H.data,Ae=te.cmd;if(N.pthread&&(ze.currentProxiedOperationCallerThread=N.pthread.threadInfoStruct),te.targetThread&&te.targetThread!=Sf()){var be=ze.pthreads[te.targetThread];be?be.worker.postMessage(te,te.transferList):Q('Internal error! Worker sent a message "'+Ae+'" to target pthread '+te.targetThread+", but that thread no longer exists!"),ze.currentProxiedOperationCallerThread=void 0;return}Ae==="processQueuedMainThreadWork"?v4():Ae==="spawnThread"?hf(te):Ae==="cleanupThread"?cf(te.thread):Ae==="killThread"?f1(te.thread):Ae==="cancelThread"?m1(te.thread):Ae==="loaded"?(N.loaded=!0,O&&O(N),N.runPthread&&(N.runPthread(),delete N.runPthread)):Ae==="print"?ee("Thread "+te.threadId+": "+te.text):Ae==="printErr"?Q("Thread "+te.threadId+": "+te.text):Ae==="alert"?alert("Thread "+te.threadId+": "+te.text):te.target==="setimmediate"?N.postMessage(te):Ae==="onAbort"?d.onAbort&&d.onAbort(te.arg):Q("worker sent an unknown command "+Ae),ze.currentProxiedOperationCallerThread=void 0},N.onerror=H=>{var te="worker sent an error!";throw Q(te+" "+H.filename+":"+H.lineno+": "+H.message),H},k&&(N.on("message",function(H){N.onmessage({data:H})}),N.on("error",function(H){N.onerror(H)}),N.on("detachedExit",function(){})),N.postMessage({cmd:"load",urlOrBlob:d.mainScriptUrlOrBlob||s,wasmMemory:$e,wasmModule:Nt})},allocateUnusedWorker:function(){var N=R("tfjs-backend-wasm-threaded-simd.worker.js");ze.unusedWorkers.push(new Worker(N))},getNewWorker:function(){return ze.unusedWorkers.length==0&&(ze.allocateUnusedWorker(),ze.loadWasmModuleToWorker(ze.unusedWorkers[0])),ze.unusedWorkers.pop()}};function y1(){var N=Sf(),O=u()[N+44>>2],H=u()[N+48>>2],te=O-H;S4(O,te),Cf(O)}d.establishStackSpace=y1;function pf(N){if(S)return Si(1,0,N);try{df(N)}catch(O){g1(O)}}var ki=[];function wu(N){var O=ki[N];return O||(N>=ki.length&&(ki.length=N+1),ki[N]=O=Bs.get(N)),O}function A1(N,O){return wu(N)(O)}d.invokeEntryPoint=A1;function f4(){var N=new Error;if(!N.stack){try{throw new Error}catch(O){N=O}if(!N.stack)return"(no stack trace available)"}return N.stack.toString()}function x1(N,O,H){ze.tlsInitFunctions.push(N)}function m4(N,O){Bs.set(N,O),ki[N]=O}var Ii;k?Ii=()=>{var N=process.hrtime();return N[0]*1e3+N[1]/1e6}:S?Ii=()=>performance.now()-d.__performance_now_clock_drift:Ii=()=>performance.now();var b1=!0;function v1(N){return u()[b4()>>2]=N,N}function w1(N,O){var H;if(N===0)H=Date.now();else if((N===1||N===4)&&b1)H=Ii();else return v1(28),-1;return u()[O>>2]=H/1e3|0,u()[O+4>>2]=H%1e3*1e3*1e3|0,0}function k1(N,O){return w1(N,O)}function I1(N){w4(N,!w,1,!b),ze.threadInit()}function S1(N){S?postMessage({cmd:"cleanupThread",thread:N}):cf(N)}function hf(N){var O=ze.getNewWorker();if(!O)return 6;ze.runningWorkers.push(O);var H=ze.pthreads[N.pthread_ptr]={worker:O,threadInfoStruct:N.pthread_ptr};O.pthread=H;var te={cmd:"run",start_routine:N.startRoutine,arg:N.arg,threadInfoStruct:N.pthread_ptr};return O.runPthread=()=>{te.time=performance.now(),O.postMessage(te,N.transferList)},O.loaded&&(O.runPthread(),delete O.runPthread),0}function C1(N,O,H,te){if(typeof SharedArrayBuffer=="undefined")return Q("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Ae=[],be=0;if(S&&(Ae.length===0||be))return k4(687865856,N,O,H,te);if(be)return be;var Ne={startRoutine:H,pthread_ptr:N,arg:te,transferList:Ae};return S?(Ne.cmd="spawnThread",postMessage(Ne,Ae),0):hf(Ne)}function T1(){return 2097152}function N1(N,O){if(N==O)postMessage({cmd:"processQueuedMainThreadWork"});else if(S)postMessage({targetThread:N,cmd:"processThreadQueue"});else{var H=ze.pthreads[N],te=H&&H.worker;if(!te)return;te.postMessage({cmd:"processThreadQueue"})}return 1}function E1(){xu("")}function R1(){k||w||J("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function ff(){return 2147483648}function _1(N,O,H){o().copyWithin(N,O,O+H)}function D1(){return k?MR().cpus().length:navigator.hardwareConcurrency}function Si(N,O){var H=arguments.length-2,te=arguments;return vu(function(){for(var Ae=H,be=Nu(Ae*8),Ne=be>>3,Me=0;Me>3,Ae=0;Ae>>16),hr($e.buffer),1}catch(O){}}function P1(N){var O=o().length;if(N=N>>>0,N<=O)return!1;var H=ff();if(N>H)return!1;for(var te=1;te<=4;te*=2){var Ae=O*(1+.2/te);Ae=Math.min(Ae,N+100663296);var be=Math.min(H,yu(Math.max(N,Ae),65536)),Ne=F1(be);if(Ne)return!0}return!1}var Ye={inEventHandler:0,removeAllEventListeners:function(){for(var N=Ye.eventHandlers.length-1;N>=0;--N)Ye._removeHandler(N);Ye.eventHandlers=[],Ye.deferredCalls=[]},registerRemoveEventListeners:function(){Ye.removeEventListenersRegistered||(i1.push(Ye.removeAllEventListeners),Ye.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(N,O,H){function te(Ne,Me){if(Ne.length!=Me.length)return!1;for(var Bt in Ne)if(Ne[Bt]!=Me[Bt])return!1;return!0}for(var Ae in Ye.deferredCalls){var be=Ye.deferredCalls[Ae];if(be.targetFunction==N&&te(be.argsList,H))return}Ye.deferredCalls.push({targetFunction:N,precedence:O,argsList:H}),Ye.deferredCalls.sort(function(Ne,Me){return Ne.precedence>2]=H,u()[be+4>>2]=te,u()[be+8>>2]=Ae,Fg(N,637534208,O,te,be)})},getTargetThreadForEventCallback:function(N){switch(N){case 1:return 0;case 2:return ze.currentProxiedOperationCallerThread;default:return N}},getNodeNameForTarget:function(N){return N?N==window?"#window":N==screen?"#screen":N&&N.nodeName?N.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function O1(N){var O=gu(N)+1,H=$g(O);return na(N,H,O),H}function M1(N,O,H,te){vu(function(){var Ae=Nu(12),be=0;O&&(be=O1(O)),u()[Ae>>2]=be,u()[Ae+4>>2]=H,u()[Ae+8>>2]=te,Fg(N,657457152,0,be,Ae)})}function z1(N,O,H,te){O=O?Un(O):"",M1(N,O,H,te)}function L1(N){return N>2?Un(N):N}var B1=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function W1(N){N=L1(N);var O=B1[N]||(typeof document!="undefined"?document.querySelector(N):void 0);return O}function zd(N){return W1(N)}function mf(N,O,H){var te=zd(N);if(!te)return-4;if(te.canvasSharedPtr&&(u()[te.canvasSharedPtr>>2]=O,u()[te.canvasSharedPtr+4>>2]=H),te.offscreenCanvas||!te.controlTransferredOffscreen){te.offscreenCanvas&&(te=te.offscreenCanvas);var Ae=!1;if(te.GLctxObject&&te.GLctxObject.GLctx){var be=te.GLctxObject.GLctx.getParameter(2978);Ae=be[0]===0&&be[1]===0&&be[2]===te.width&&be[3]===te.height}te.width=O,te.height=H,Ae&&te.GLctxObject.GLctx.viewport(0,0,O,H)}else if(te.canvasSharedPtr){var Ne=u()[te.canvasSharedPtr+8>>2];return z1(Ne,N,O,H),1}else return-4;return 0}function gf(N,O,H){return S?Si(2,1,N,O,H):mf(N,O,H)}function V1(N,O,H){var te=zd(N);return te?mf(N,O,H):gf(N,O,H)}function U1(){throw"unwind"}function G1(N){var O=N.getExtension("ANGLE_instanced_arrays");if(O)return N.vertexAttribDivisor=function(H,te){O.vertexAttribDivisorANGLE(H,te)},N.drawArraysInstanced=function(H,te,Ae,be){O.drawArraysInstancedANGLE(H,te,Ae,be)},N.drawElementsInstanced=function(H,te,Ae,be,Ne){O.drawElementsInstancedANGLE(H,te,Ae,be,Ne)},1}function H1(N){var O=N.getExtension("OES_vertex_array_object");if(O)return N.createVertexArray=function(){return O.createVertexArrayOES()},N.deleteVertexArray=function(H){O.deleteVertexArrayOES(H)},N.bindVertexArray=function(H){O.bindVertexArrayOES(H)},N.isVertexArray=function(H){return O.isVertexArrayOES(H)},1}function j1(N){var O=N.getExtension("WEBGL_draw_buffers");if(O)return N.drawBuffers=function(H,te){O.drawBuffersWEBGL(H,te)},1}function q1(N){return!!(N.multiDrawWebgl=N.getExtension("WEBGL_multi_draw"))}var Lt={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function(O){Lt.lastError||(Lt.lastError=O)},getNewId:function(N){for(var O=Lt.counter++,H=N.length;H>2]:-1;Ae+=Un(u()[H+be*4>>2],Ne<0?void 0:Ne)}return Ae},createContext:function(N,O){N.getContextSafariWebGL2Fixed||(N.getContextSafariWebGL2Fixed=N.getContext,N.getContext=function(Ae,be){var Ne=N.getContextSafariWebGL2Fixed(Ae,be);return Ae=="webgl"==Ne instanceof WebGLRenderingContext?Ne:null});var H=N.getContext("webgl",O);if(!H)return 0;var te=Lt.registerContext(H,O);return te},registerContext:function(N,O){var H=$g(8);u()[H+4>>2]=Sf();var te={handle:H,attributes:O,version:O.majorVersion,GLctx:N};return N.canvas&&(N.canvas.GLctxObject=te),Lt.contexts[H]=te,(typeof O.enableExtensionsByDefault=="undefined"||O.enableExtensionsByDefault)&&Lt.initExtensions(te),H},makeContextCurrent:function(N){return Lt.currentContext=Lt.contexts[N],d.ctx=bf=Lt.currentContext&&Lt.currentContext.GLctx,!(N&&!bf)},getContext:function(N){return Lt.contexts[N]},deleteContext:function(N){Lt.currentContext===Lt.contexts[N]&&(Lt.currentContext=null),typeof Ye=="object"&&Ye.removeAllHandlersOnTarget(Lt.contexts[N].GLctx.canvas),Lt.contexts[N]&&Lt.contexts[N].GLctx.canvas&&(Lt.contexts[N].GLctx.canvas.GLctxObject=void 0),x4(Lt.contexts[N].handle),Lt.contexts[N]=null},initExtensions:function(N){if(N||(N=Lt.currentContext),!N.initExtensionsDone){N.initExtensionsDone=!0;var O=N.GLctx;G1(O),H1(O),j1(O),O.disjointTimerQueryExt=O.getExtension("EXT_disjoint_timer_query"),q1(O);var H=O.getSupportedExtensions()||[];H.forEach(function(te){!te.includes("lose_context")&&!te.includes("debug")&&O.getExtension(te)})}}},X1=["default","low-power","high-performance"];function K1(N,O){var H=O>>2,te=u()[H+6],Ae={alpha:!!u()[H+0],depth:!!u()[H+1],stencil:!!u()[H+2],antialias:!!u()[H+3],premultipliedAlpha:!!u()[H+4],preserveDrawingBuffer:!!u()[H+5],powerPreference:X1[te],failIfMajorPerformanceCaveat:!!u()[H+7],majorVersion:u()[H+8],minorVersion:u()[H+9],enableExtensionsByDefault:u()[H+10],explicitSwapControl:u()[H+11],proxyContextToMainThread:u()[H+12],renderViaOffscreenBackBuffer:u()[H+13]},be=zd(N);if(!be||Ae.explicitSwapControl)return 0;var Ne=Lt.createContext(be,Ae);return Ne}function Z1(N,O){return K1(N,O)}var ku={mappings:{},buffers:[null,[],[]],printChar:function(N,O){var H=ku.buffers[N];O===0||O===10?((N===1?ee:Q)(Ls(H,0)),H.length=0):H.push(O)},varargs:void 0,get:function(){ku.varargs+=4;var N=u()[ku.varargs-4>>2];return N},getStr:function(N){var O=Un(N);return O},get64:function(N,O){return N}};function yf(N){return S?Si(3,1,N):0}function Af(N,O,H,te,Ae){if(S)return Si(4,1,N,O,H,te,Ae)}function xf(N,O,H,te){if(S)return Si(5,1,N,O,H,te);for(var Ae=0,be=0;be>2],Me=u()[O+4>>2];O+=8;for(var Bt=0;Bt>2]=Ae,0}function Y1(N){Be(N)}ze.init();var bf,J1=[null,pf,gf,yf,Af,xf],g4=!1,vf={__clock_gettime:k1,__emscripten_init_main_thread_js:I1,__emscripten_thread_cleanup:S1,__pthread_create_js:C1,_emscripten_default_pthread_stack_size:T1,_emscripten_notify_thread_queue:N1,abort:E1,emscripten_check_blocking_allowed:R1,emscripten_get_heap_max:ff,emscripten_get_now:Ii,emscripten_memcpy_big:_1,emscripten_num_logical_cores:D1,emscripten_receive_on_main_thread_js:$1,emscripten_resize_heap:P1,emscripten_set_canvas_element_size:V1,emscripten_unwind_to_js_event_loop:U1,emscripten_webgl_create_context:Z1,exit:df,fd_close:yf,fd_seek:Af,fd_write:xf,memory:$e||d.wasmMemory,setTempRet0:Y1},y4=p1(),Q1=d.___wasm_call_ctors=function(){return(Q1=d.___wasm_call_ctors=d.asm.__wasm_call_ctors).apply(null,arguments)},eg=d._init=function(){return(eg=d._init=d.asm.init).apply(null,arguments)},tg=d._init_with_threads_count=function(){return(tg=d._init_with_threads_count=d.asm.init_with_threads_count).apply(null,arguments)},ng=d._get_threads_count=function(){return(ng=d._get_threads_count=d.asm.get_threads_count).apply(null,arguments)},sg=d._register_tensor=function(){return(sg=d._register_tensor=d.asm.register_tensor).apply(null,arguments)},rg=d._dispose_data=function(){return(rg=d._dispose_data=d.asm.dispose_data).apply(null,arguments)},ag=d._dispose=function(){return(ag=d._dispose=d.asm.dispose).apply(null,arguments)},og=d._Abs=function(){return(og=d._Abs=d.asm.Abs).apply(null,arguments)},ig=d._Add=function(){return(ig=d._Add=d.asm.Add).apply(null,arguments)},lg=d._AddN=function(){return(lg=d._AddN=d.asm.AddN).apply(null,arguments)},ug=d._All=function(){return(ug=d._All=d.asm.All).apply(null,arguments)},cg=d._Any=function(){return(cg=d._Any=d.asm.Any).apply(null,arguments)},dg=d._ArgMax=function(){return(dg=d._ArgMax=d.asm.ArgMax).apply(null,arguments)},pg=d._AvgPool=function(){return(pg=d._AvgPool=d.asm.AvgPool).apply(null,arguments)},hg=d._BatchMatMul=function(){return(hg=d._BatchMatMul=d.asm.BatchMatMul).apply(null,arguments)},fg=d._Ceil=function(){return(fg=d._Ceil=d.asm.Ceil).apply(null,arguments)},mg=d._ClipByValue=function(){return(mg=d._ClipByValue=d.asm.ClipByValue).apply(null,arguments)},gg=d._Conv2D=function(){return(gg=d._Conv2D=d.asm.Conv2D).apply(null,arguments)},yg=d._Conv2DBackpropInput=function(){return(yg=d._Conv2DBackpropInput=d.asm.Conv2DBackpropInput).apply(null,arguments)},Ag=d._Cos=function(){return(Ag=d._Cos=d.asm.Cos).apply(null,arguments)},xg=d._Cosh=function(){return(xg=d._Cosh=d.asm.Cosh).apply(null,arguments)},bg=d._CropAndResize=function(){return(bg=d._CropAndResize=d.asm.CropAndResize).apply(null,arguments)},vg=d._Cumprod=function(){return(vg=d._Cumprod=d.asm.Cumprod).apply(null,arguments)},wg=d._Cumsum=function(){return(wg=d._Cumsum=d.asm.Cumsum).apply(null,arguments)},kg=d._DepthToSpace=function(){return(kg=d._DepthToSpace=d.asm.DepthToSpace).apply(null,arguments)},Ig=d._DepthwiseConv2dNative=function(){return(Ig=d._DepthwiseConv2dNative=d.asm.DepthwiseConv2dNative).apply(null,arguments)},Sg=d._Elu=function(){return(Sg=d._Elu=d.asm.Elu).apply(null,arguments)},Cg=d._Equal=function(){return(Cg=d._Equal=d.asm.Equal).apply(null,arguments)},Tg=d._Exp=function(){return(Tg=d._Exp=d.asm.Exp).apply(null,arguments)},Ng=d._FlipLeftRight=function(){return(Ng=d._FlipLeftRight=d.asm.FlipLeftRight).apply(null,arguments)},wf=d._Floor=function(){return(wf=d._Floor=d.asm.Floor).apply(null,arguments)},kf=d._FloorDiv=function(){return(kf=d._FloorDiv=d.asm.FloorDiv).apply(null,arguments)},Ld=d._FusedBatchNorm=function(){return(Ld=d._FusedBatchNorm=d.asm.FusedBatchNorm).apply(null,arguments)},Eg=d._FusedConv2D=function(){return(Eg=d._FusedConv2D=d.asm.FusedConv2D).apply(null,arguments)},Rg=d._FusedDepthwiseConv2D=function(){return(Rg=d._FusedDepthwiseConv2D=d.asm.FusedDepthwiseConv2D).apply(null,arguments)},Iu=d._Gather=function(){return(Iu=d._Gather=d.asm.Gather).apply(null,arguments)},Bd=d._GatherNd=function(){return(Bd=d._GatherNd=d.asm.GatherNd).apply(null,arguments)},Wd=d._Greater=function(){return(Wd=d._Greater=d.asm.Greater).apply(null,arguments)},A4=d._GreaterEqual=function(){return(A4=d._GreaterEqual=d.asm.GreaterEqual).apply(null,arguments)},Su=d._LeakyRelu=function(){return(Su=d._LeakyRelu=d.asm.LeakyRelu).apply(null,arguments)},Cu=d._Less=function(){return(Cu=d._Less=d.asm.Less).apply(null,arguments)},_g=d._LessEqual=function(){return(_g=d._LessEqual=d.asm.LessEqual).apply(null,arguments)},X=d._Log=function(){return(X=d._Log=d.asm.Log).apply(null,arguments)},se=d._LogicalAnd=function(){return(se=d._LogicalAnd=d.asm.LogicalAnd).apply(null,arguments)},xe=d._Max=function(){return(xe=d._Max=d.asm.Max).apply(null,arguments)},De=d._MaxPool=function(){return(De=d._MaxPool=d.asm.MaxPool).apply(null,arguments)},ht=d._Maximum=function(){return(ht=d._Maximum=d.asm.Maximum).apply(null,arguments)},gt=d._Mean=function(){return(gt=d._Mean=d.asm.Mean).apply(null,arguments)},Qe=d._Min=function(){return(Qe=d._Min=d.asm.Min).apply(null,arguments)},Ke=d._Minimum=function(){return(Ke=d._Minimum=d.asm.Minimum).apply(null,arguments)},tn=d._MirrorPad=function(){return(tn=d._MirrorPad=d.asm.MirrorPad).apply(null,arguments)},mr=d._Multiply=function(){return(mr=d._Multiply=d.asm.Multiply).apply(null,arguments)},gr=d._Neg=function(){return(gr=d._Neg=d.asm.Neg).apply(null,arguments)},Tu=d._NonMaxSuppressionV3=function(){return(Tu=d._NonMaxSuppressionV3=d.asm.NonMaxSuppressionV3).apply(null,arguments)},Ci=d._NonMaxSuppressionV4=function(){return(Ci=d._NonMaxSuppressionV4=d.asm.NonMaxSuppressionV4).apply(null,arguments)},Dg=d._NonMaxSuppressionV5=function(){return(Dg=d._NonMaxSuppressionV5=d.asm.NonMaxSuppressionV5).apply(null,arguments)},qn=d._NotEqual=function(){return(qn=d._NotEqual=d.asm.NotEqual).apply(null,arguments)},Pa=d._OneHot=function(){return(Pa=d._OneHot=d.asm.OneHot).apply(null,arguments)},If=d._PadV2=function(){return(If=d._PadV2=d.asm.PadV2).apply(null,arguments)},mE=d._Pow=function(){return(mE=d._Pow=d.asm.Pow).apply(null,arguments)},gE=d._Prelu=function(){return(gE=d._Prelu=d.asm.Prelu).apply(null,arguments)},yE=d._Prod=function(){return(yE=d._Prod=d.asm.Prod).apply(null,arguments)},AE=d._RealDiv=function(){return(AE=d._RealDiv=d.asm.RealDiv).apply(null,arguments)},xE=d._Relu=function(){return(xE=d._Relu=d.asm.Relu).apply(null,arguments)},bE=d._Relu6=function(){return(bE=d._Relu6=d.asm.Relu6).apply(null,arguments)},vE=d._ResizeBilinear=function(){return(vE=d._ResizeBilinear=d.asm.ResizeBilinear).apply(null,arguments)},wE=d._Reverse=function(){return(wE=d._Reverse=d.asm.Reverse).apply(null,arguments)},kE=d._RotateWithOffset=function(){return(kE=d._RotateWithOffset=d.asm.RotateWithOffset).apply(null,arguments)},IE=d._Round=function(){return(IE=d._Round=d.asm.Round).apply(null,arguments)},SE=d._Rsqrt=function(){return(SE=d._Rsqrt=d.asm.Rsqrt).apply(null,arguments)},CE=d._ScatterNd=function(){return(CE=d._ScatterNd=d.asm.ScatterNd).apply(null,arguments)},TE=d._SelectV2=function(){return(TE=d._SelectV2=d.asm.SelectV2).apply(null,arguments)},NE=d._Sigmoid=function(){return(NE=d._Sigmoid=d.asm.Sigmoid).apply(null,arguments)},EE=d._Sin=function(){return(EE=d._Sin=d.asm.Sin).apply(null,arguments)},RE=d._Softmax=function(){return(RE=d._Softmax=d.asm.Softmax).apply(null,arguments)},_E=d._SparseFillEmptyRows=function(){return(_E=d._SparseFillEmptyRows=d.asm.SparseFillEmptyRows).apply(null,arguments)},DE=d._SparseReshape=function(){return(DE=d._SparseReshape=d.asm.SparseReshape).apply(null,arguments)},$E=d._SparseSegmentReduction=function(){return($E=d._SparseSegmentReduction=d.asm.SparseSegmentReduction).apply(null,arguments)},FE=d._Sqrt=function(){return(FE=d._Sqrt=d.asm.Sqrt).apply(null,arguments)},PE=d._Square=function(){return(PE=d._Square=d.asm.Square).apply(null,arguments)},OE=d._SquaredDifference=function(){return(OE=d._SquaredDifference=d.asm.SquaredDifference).apply(null,arguments)},ME=d._Step=function(){return(ME=d._Step=d.asm.Step).apply(null,arguments)},zE=d._StridedSlice=function(){return(zE=d._StridedSlice=d.asm.StridedSlice).apply(null,arguments)},LE=d._Sub=function(){return(LE=d._Sub=d.asm.Sub).apply(null,arguments)},BE=d._Sum=function(){return(BE=d._Sum=d.asm.Sum).apply(null,arguments)},WE=d._Tan=function(){return(WE=d._Tan=d.asm.Tan).apply(null,arguments)},VE=d._Tanh=function(){return(VE=d._Tanh=d.asm.Tanh).apply(null,arguments)},UE=d._Tile=function(){return(UE=d._Tile=d.asm.Tile).apply(null,arguments)},GE=d._TopK=function(){return(GE=d._TopK=d.asm.TopK).apply(null,arguments)},HE=d._Transform=function(){return(HE=d._Transform=d.asm.Transform).apply(null,arguments)},jE=d._Transpose=function(){return(jE=d._Transpose=d.asm.Transpose).apply(null,arguments)},qE=d.__FusedMatMul=function(){return(qE=d.__FusedMatMul=d.asm._FusedMatMul).apply(null,arguments)},$g=d._malloc=function(){return($g=d._malloc=d.asm.malloc).apply(null,arguments)},x4=d._free=function(){return(x4=d._free=d.asm.free).apply(null,arguments)},XE=d._emscripten_tls_init=function(){return(XE=d._emscripten_tls_init=d.asm.emscripten_tls_init).apply(null,arguments)},b4=d.___errno_location=function(){return(b4=d.___errno_location=d.asm.__errno_location).apply(null,arguments)},Sf=d._pthread_self=function(){return(Sf=d._pthread_self=d.asm.pthread_self).apply(null,arguments)},v4=d._emscripten_main_thread_process_queued_calls=function(){return(v4=d._emscripten_main_thread_process_queued_calls=d.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},KE=d.__emscripten_thread_crashed=function(){return(KE=d.__emscripten_thread_crashed=d.asm._emscripten_thread_crashed).apply(null,arguments)},w4=d.__emscripten_thread_init=function(){return(w4=d.__emscripten_thread_init=d.asm._emscripten_thread_init).apply(null,arguments)},ZE=d._emscripten_current_thread_process_queued_calls=function(){return(ZE=d._emscripten_current_thread_process_queued_calls=d.asm.emscripten_current_thread_process_queued_calls).apply(null,arguments)},YE=d._emscripten_main_browser_thread_id=function(){return(YE=d._emscripten_main_browser_thread_id=d.asm.emscripten_main_browser_thread_id).apply(null,arguments)},JE=d._emscripten_sync_run_in_main_thread_2=function(){return(JE=d._emscripten_sync_run_in_main_thread_2=d.asm.emscripten_sync_run_in_main_thread_2).apply(null,arguments)},k4=d._emscripten_sync_run_in_main_thread_4=function(){return(k4=d._emscripten_sync_run_in_main_thread_4=d.asm.emscripten_sync_run_in_main_thread_4).apply(null,arguments)},I4=d._emscripten_run_in_main_runtime_thread_js=function(){return(I4=d._emscripten_run_in_main_runtime_thread_js=d.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},Fg=d._emscripten_dispatch_to_thread_=function(){return(Fg=d._emscripten_dispatch_to_thread_=d.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Pg=d.__emscripten_thread_free_data=function(){return(Pg=d.__emscripten_thread_free_data=d.asm._emscripten_thread_free_data).apply(null,arguments)},QE=d.__emscripten_thread_exit=function(){return(QE=d.__emscripten_thread_exit=d.asm._emscripten_thread_exit).apply(null,arguments)},eR=d._memalign=function(){return(eR=d._memalign=d.asm.memalign).apply(null,arguments)},S4=d._emscripten_stack_set_limits=function(){return(S4=d._emscripten_stack_set_limits=d.asm.emscripten_stack_set_limits).apply(null,arguments)},Og=d.stackSave=function(){return(Og=d.stackSave=d.asm.stackSave).apply(null,arguments)},Cf=d.stackRestore=function(){return(Cf=d.stackRestore=d.asm.stackRestore).apply(null,arguments)},Nu=d.stackAlloc=function(){return(Nu=d.stackAlloc=d.asm.stackAlloc).apply(null,arguments)},tR=d.dynCall_iijjiiii=function(){return(tR=d.dynCall_iijjiiii=d.asm.dynCall_iijjiiii).apply(null,arguments)},nR=d.dynCall_jiji=function(){return(nR=d.dynCall_jiji=d.asm.dynCall_jiji).apply(null,arguments)},C4=d.__emscripten_allow_main_runtime_queued_calls=21464;d.cwrap=Vn,d.keepRuntimeAlive=wi,d.PThread=ze,d.PThread=ze,d.wasmMemory=$e,d.ExitStatus=Vd;var Tf;function Vd(N){this.name="ExitStatus",this.message="Program terminated with exit("+N+")",this.status=N}fr=function N(){Tf||Mg(),Tf||(fr=N)};function Mg(N){if(N=N||y,Fa>0)return;if(S){h(d),$d(),postMessage({cmd:"loaded"});return}if(Hn(),Fa>0)return;function O(){Tf||(Tf=!0,d.calledRun=!0,!kt&&($d(),h(d),d.onRuntimeInitialized&&d.onRuntimeInitialized(),c1()))}d.setStatus?(d.setStatus("Running..."),setTimeout(function(){setTimeout(function(){d.setStatus("")},1),O()},1)):O()}d.run=Mg;function sR(N,O){if(Wn=N,!O&&S)throw pf(N),"unwind";wi()||u1(),rR(N)}function rR(N){Wn=N,wi()||(ze.terminateAllThreads(),d.onExit&&d.onExit(N),kt=!0),A(N,new Vd(N))}if(d.preInit)for(typeof d.preInit=="function"&&(d.preInit=[d.preInit]);d.preInit.length>0;)d.preInit.pop()();Mg();var Nf;m&&(Nf={uncaughtException:process.listeners("uncaughtException").filter(function(N){return!m.uncaughtException.indexOf(N)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(N){return!m.unhandledRejection.indexOf(N)>-1})});var Ef;if(typeof WasmBackendModule!="undefined")Ef=WasmBackendModule;else if(typeof r!="undefined")Ef=r;else throw new Error("Could not find wasm module in post.js");if(Nf){var aR=Ef._dispose;Ef._dispose=function(){aR(),Nf.uncaughtException.forEach(function(N){process.removeListener("uncaughtException",N)}),Nf.unhandledRejection.forEach(function(N){process.removeListener("unhandledRejection",N)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}}),LR=Tt({"node_modules/.pnpm/@tensorflow+tfjs-backend-wasm@3.18.0_br26fteayl44zj43fz4bazb7oq/node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js"(e,t){var n=(()=>{var s=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(s=s||__filename),function(r){r=r||{};var a=typeof r!="undefined"?r:{},o,i;a.ready=new Promise(function(X,se){o=X,i=se});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},a),c=[],p="./this.program",d=(X,se)=>{throw se},h=typeof window=="object",f=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(X){return a.locateFile?a.locateFile(X,g):g+X}var x,A,b,w;function k(X){if(X instanceof Bd)return;_("exiting due to exception: "+X)}var S,E,R;m?(f?g=sm().dirname(g)+"/":g=__dirname+"/",R=()=>{E||(S=ny(),E=sm())},x=function(se,xe){return R(),se=E.normalize(se),S.readFileSync(se,xe?void 0:"utf8")},b=X=>{var se=x(X,!0);return se.buffer||(se=new Uint8Array(se)),se},A=(X,se,xe)=>{R(),X=E.normalize(X),S.readFile(X,function(De,ht){De?xe(De):se(ht.buffer)})},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),c=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof Bd))throw X}),process.on("unhandledRejection",function(X){throw X}),d=(X,se)=>{if(Dd())throw process.exitCode=X,se;k(se),process.exit(X)},a.inspect=function(){return"[Emscripten Module object]"}):(h||f)&&(f?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),s&&(g=s),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",x=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.send(null),se.responseText},f&&(b=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),A=(X,se,xe)=>{var De=new XMLHttpRequest;De.open("GET",X,!0),De.responseType="arraybuffer",De.onload=()=>{if(De.status==200||De.status==0&&De.response){se(De.response);return}xe()},De.onerror=xe,De.send(null)},w=X=>document.title=X);var $=a.print||console.log.bind(console),_=a.printErr||console.warn.bind(console);Object.assign(a,u),u=null,a.arguments&&(c=a.arguments),a.thisProgram&&(p=a.thisProgram),a.quit&&(d=a.quit);var D=4;function C(X){C.shown||(C.shown={}),C.shown[X]||(C.shown[X]=1,_(X))}function P(X,se){if(typeof WebAssembly.Function=="function"){for(var xe={i:"i32",j:"i64",f:"f32",d:"f64"},De={parameters:[],results:se[0]=="v"?[]:[xe[se[0]]]},ht=1;ht{W=X},Q;a.wasmBinary&&(Q=a.wasmBinary);var ie=a.noExitRuntime||!0;typeof WebAssembly!="object"&&vi("no native wasm support detected");var J,ae=!1,le;function ye(X,se){X||vi(se)}function we(X){var se=a["_"+X];return se}function Re(X,se,xe,De,ht){var gt={string:function(qn){var Pa=0;if(qn!=null&&qn!==0){var If=(qn.length<<2)+1;Pa=Ld(If),At(qn,Pa,If)}return Pa},array:function(qn){var Pa=Ld(qn.length);return kt(qn,Pa),Pa}};function Qe(qn){return se==="string"?dt(qn):se==="boolean"?Boolean(qn):qn}var Ke=we(X),tn=[],mr=0;if(De)for(var gr=0;gr=De);)++ht;if(ht-se>16&&X.subarray&&Ue)return Ue.decode(X.subarray(se,ht));for(var gt="";se>10,56320|mr&1023)}}return gt}function dt(X,se){return X?it(Vn,X,se):""}function pt(X,se,xe,De){if(!(De>0))return 0;for(var ht=xe,gt=xe+De-1,Qe=0;Qe=55296&&Ke<=57343){var tn=X.charCodeAt(++Qe);Ke=65536+((Ke&1023)<<10)|tn&1023}if(Ke<=127){if(xe>=gt)break;se[xe++]=Ke}else if(Ke<=2047){if(xe+1>=gt)break;se[xe++]=192|Ke>>6,se[xe++]=128|Ke&63}else if(Ke<=65535){if(xe+2>=gt)break;se[xe++]=224|Ke>>12,se[xe++]=128|Ke>>6&63,se[xe++]=128|Ke&63}else{if(xe+3>=gt)break;se[xe++]=240|Ke>>18,se[xe++]=128|Ke>>12&63,se[xe++]=128|Ke>>6&63,se[xe++]=128|Ke&63}}return se[xe]=0,xe-ht}function At(X,se,xe){return pt(X,Vn,se,xe)}function $e(X){for(var se=0,xe=0;xe=55296&&De<=57343&&(De=65536+((De&1023)<<10)|X.charCodeAt(++xe)&1023),De<=127?++se:De<=2047?se+=2:De<=65535?se+=3:se+=4}return se}var Nt=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function kt(X,se){pn.set(X,se)}function Wn(X,se,xe){for(var De=0;De>0]=X.charCodeAt(De);xe||(pn[se>>0]=0)}function en(X,se){return X%se>0&&(X+=se-X%se),X}var As,pn,Vn,xs,bs,_n,Ls,Un,ta;function na(X){As=X,a.HEAP8=pn=new Int8Array(X),a.HEAP16=xs=new Int16Array(X),a.HEAP32=_n=new Int32Array(X),a.HEAPU8=Vn=new Uint8Array(X),a.HEAPU16=bs=new Uint16Array(X),a.HEAPU32=Ls=new Uint32Array(X),a.HEAPF32=Un=new Float32Array(X),a.HEAPF64=ta=new Float64Array(X)}var gu=a.INITIAL_MEMORY||16777216,Da,sa=[],_d=[],yu=[],Gn=!1,Zh=!1,Yh=0;function Dd(){return ie||Yh>0}function Jh(){if(a.preRun)for(typeof a.preRun=="function"&&(a.preRun=[a.preRun]);a.preRun.length;)tf(a.preRun.shift());Fd(sa)}function Qh(){Gn=!0,Fd(_d)}function i4(){Zh=!0}function ef(){if(a.postRun)for(typeof a.postRun=="function"&&(a.postRun=[a.postRun]);a.postRun.length;)nf(a.postRun.shift());Fd(yu)}function tf(X){sa.unshift(X)}function hr(X){_d.unshift(X)}function nf(X){yu.unshift(X)}var Bs=0,Au=null,$a=null;function i1(X){Bs++,a.monitorRunDependencies&&a.monitorRunDependencies(Bs)}function sf(X){if(Bs--,a.monitorRunDependencies&&a.monitorRunDependencies(Bs),Bs==0&&(Au!==null&&(clearInterval(Au),Au=null),$a)){var se=$a;$a=null,se()}}a.preloadedImages={},a.preloadedAudios={};function vi(X){a.onAbort&&a.onAbort(X),X="Aborted("+X+")",_(X),ae=!0,le=1,X+=". Build with -s ASSERTIONS=1 for more info.";var se=new WebAssembly.RuntimeError(X);throw i(se),se}var l1="data:application/octet-stream;base64,";function rf(X){return X.startsWith(l1)}function wi(X){return X.startsWith("file://")}var Hn;Hn="tfjs-backend-wasm.wasm",rf(Hn)||(Hn=y(Hn));function $d(X){try{if(X==Hn&&Q)return new Uint8Array(Q);if(b)return b(X);throw"both async and sync fetching of the wasm failed"}catch(se){vi(se)}}function u1(){if(!Q&&(h||f)){if(typeof fetch=="function"&&!wi(Hn))return fetch(Hn,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Hn+"'";return X.arrayBuffer()}).catch(function(){return $d(Hn)});if(A)return new Promise(function(X,se){A(Hn,function(xe){X(new Uint8Array(xe))},se)})}return Promise.resolve().then(function(){return $d(Hn)})}function c1(){var X={env:vu,wasi_snapshot_preview1:vu};function se(Qe,Ke){var tn=Qe.exports;a.asm=tn,J=a.asm.memory,na(J.buffer),Da=a.asm.__indirect_function_table,hr(a.asm.__wasm_call_ctors),sf("wasm-instantiate")}i1("wasm-instantiate");function xe(Qe){se(Qe.instance)}function De(Qe){return u1().then(function(Ke){return WebAssembly.instantiate(Ke,X)}).then(function(Ke){return Ke}).then(Qe,function(Ke){_("failed to asynchronously prepare wasm: "+Ke),vi(Ke)})}function ht(){return!Q&&typeof WebAssembly.instantiateStreaming=="function"&&!rf(Hn)&&!wi(Hn)&&typeof fetch=="function"?fetch(Hn,{credentials:"same-origin"}).then(function(Qe){var Ke=WebAssembly.instantiateStreaming(Qe,X);return Ke.then(xe,function(tn){return _("wasm streaming compile failed: "+tn),_("falling back to ArrayBuffer instantiation"),De(xe)})}):De(xe)}if(a.instantiateWasm)try{var gt=a.instantiateWasm(X,se);return gt}catch(Qe){return _("Module.instantiateWasm callback failed with error: "+Qe),!1}return ht().catch(i),{}}var l4,u4;function Fd(X){for(;X.length>0;){var se=X.shift();if(typeof se=="function"){se(a);continue}var xe=se.func;typeof xe=="number"?se.arg===void 0?Pd(xe)():Pd(xe)(se.arg):xe(se.arg===void 0?null:se.arg)}}function Fa(X){return X}function af(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(xe){var De=xe;return xe===De?xe:De+" ["+xe+"]"})}var fr=[];function Pd(X){var se=fr[X];return se||(X>=fr.length&&(fr.length=X+1),fr[X]=se=Da.get(X)),se}function c4(){var X=new Error;if(!X.stack){try{throw new Error}catch(se){X=se}if(!X.stack)return"(no stack trace available)"}return X.stack.toString()}function xu(X,se){Da.set(X,se),fr[X]=se}function d1(){vi("")}function Od(){return 2147483648}function of(X,se,xe){Vn.copyWithin(X,se,se+xe)}function jn(X){try{return J.grow(X-As.byteLength+65535>>>16),na(J.buffer),1}catch(se){}}function lf(X){var se=Vn.length;X=X>>>0;var xe=Od();if(X>xe)return!1;for(var De=1;De<=4;De*=2){var ht=se*(1+.2/De);ht=Math.min(ht,X+100663296);var gt=Math.min(xe,en(Math.max(X,ht),65536)),Qe=jn(gt);if(Qe)return!0}return!1}var bu={mappings:{},buffers:[null,[],[]],printChar:function(X,se){var xe=bu.buffers[X];se===0||se===10?((X===1?$:_)(it(xe,0)),xe.length=0):xe.push(se)},varargs:void 0,get:function(){bu.varargs+=4;var X=_n[bu.varargs-4>>2];return X},getStr:function(X){var se=dt(X);return se},get64:function(X,se){return X}};function p1(X){return 0}function d4(X,se,xe,De,ht){}function p4(X,se,xe,De){for(var ht=0,gt=0;gt>2],Ke=_n[se+4>>2];se+=8;for(var tn=0;tn>2]=ht,0}function h1(X){ee(X)}var uf=!1,vu={abort:d1,emscripten_get_heap_max:Od,emscripten_memcpy_big:of,emscripten_resize_heap:lf,fd_close:p1,fd_seek:d4,fd_write:p4,setTempRet0:h1},fE=c1(),h4=a.___wasm_call_ctors=function(){return(h4=a.___wasm_call_ctors=a.asm.__wasm_call_ctors).apply(null,arguments)},f1=a._init=function(){return(f1=a._init=a.asm.init).apply(null,arguments)},m1=a._init_with_threads_count=function(){return(m1=a._init_with_threads_count=a.asm.init_with_threads_count).apply(null,arguments)},cf=a._get_threads_count=function(){return(cf=a._get_threads_count=a.asm.get_threads_count).apply(null,arguments)},df=a._register_tensor=function(){return(df=a._register_tensor=a.asm.register_tensor).apply(null,arguments)},g1=a._dispose_data=function(){return(g1=a._dispose_data=a.asm.dispose_data).apply(null,arguments)},ze=a._dispose=function(){return(ze=a._dispose=a.asm.dispose).apply(null,arguments)},y1=a._Abs=function(){return(y1=a._Abs=a.asm.Abs).apply(null,arguments)},pf=a._Add=function(){return(pf=a._Add=a.asm.Add).apply(null,arguments)},ki=a._AddN=function(){return(ki=a._AddN=a.asm.AddN).apply(null,arguments)},wu=a._All=function(){return(wu=a._All=a.asm.All).apply(null,arguments)},A1=a._Any=function(){return(A1=a._Any=a.asm.Any).apply(null,arguments)},f4=a._ArgMax=function(){return(f4=a._ArgMax=a.asm.ArgMax).apply(null,arguments)},x1=a._AvgPool=function(){return(x1=a._AvgPool=a.asm.AvgPool).apply(null,arguments)},m4=a._BatchMatMul=function(){return(m4=a._BatchMatMul=a.asm.BatchMatMul).apply(null,arguments)},Ii=a._Ceil=function(){return(Ii=a._Ceil=a.asm.Ceil).apply(null,arguments)},b1=a._ClipByValue=function(){return(b1=a._ClipByValue=a.asm.ClipByValue).apply(null,arguments)},v1=a._Conv2D=function(){return(v1=a._Conv2D=a.asm.Conv2D).apply(null,arguments)},w1=a._Conv2DBackpropInput=function(){return(w1=a._Conv2DBackpropInput=a.asm.Conv2DBackpropInput).apply(null,arguments)},k1=a._Cos=function(){return(k1=a._Cos=a.asm.Cos).apply(null,arguments)},I1=a._Cosh=function(){return(I1=a._Cosh=a.asm.Cosh).apply(null,arguments)},S1=a._CropAndResize=function(){return(S1=a._CropAndResize=a.asm.CropAndResize).apply(null,arguments)},hf=a._Cumprod=function(){return(hf=a._Cumprod=a.asm.Cumprod).apply(null,arguments)},C1=a._Cumsum=function(){return(C1=a._Cumsum=a.asm.Cumsum).apply(null,arguments)},T1=a._DepthToSpace=function(){return(T1=a._DepthToSpace=a.asm.DepthToSpace).apply(null,arguments)},N1=a._DepthwiseConv2dNative=function(){return(N1=a._DepthwiseConv2dNative=a.asm.DepthwiseConv2dNative).apply(null,arguments)},E1=a._Elu=function(){return(E1=a._Elu=a.asm.Elu).apply(null,arguments)},R1=a._Equal=function(){return(R1=a._Equal=a.asm.Equal).apply(null,arguments)},ff=a._Exp=function(){return(ff=a._Exp=a.asm.Exp).apply(null,arguments)},_1=a._FlipLeftRight=function(){return(_1=a._FlipLeftRight=a.asm.FlipLeftRight).apply(null,arguments)},D1=a._Floor=function(){return(D1=a._Floor=a.asm.Floor).apply(null,arguments)},Si=a._FloorDiv=function(){return(Si=a._FloorDiv=a.asm.FloorDiv).apply(null,arguments)},Md=a._FusedBatchNorm=function(){return(Md=a._FusedBatchNorm=a.asm.FusedBatchNorm).apply(null,arguments)},$1=a._FusedConv2D=function(){return($1=a._FusedConv2D=a.asm.FusedConv2D).apply(null,arguments)},F1=a._FusedDepthwiseConv2D=function(){return(F1=a._FusedDepthwiseConv2D=a.asm.FusedDepthwiseConv2D).apply(null,arguments)},P1=a._Gather=function(){return(P1=a._Gather=a.asm.Gather).apply(null,arguments)},Ye=a._GatherNd=function(){return(Ye=a._GatherNd=a.asm.GatherNd).apply(null,arguments)},O1=a._Greater=function(){return(O1=a._Greater=a.asm.Greater).apply(null,arguments)},M1=a._GreaterEqual=function(){return(M1=a._GreaterEqual=a.asm.GreaterEqual).apply(null,arguments)},z1=a._LeakyRelu=function(){return(z1=a._LeakyRelu=a.asm.LeakyRelu).apply(null,arguments)},L1=a._Less=function(){return(L1=a._Less=a.asm.Less).apply(null,arguments)},B1=a._LessEqual=function(){return(B1=a._LessEqual=a.asm.LessEqual).apply(null,arguments)},W1=a._Log=function(){return(W1=a._Log=a.asm.Log).apply(null,arguments)},zd=a._LogicalAnd=function(){return(zd=a._LogicalAnd=a.asm.LogicalAnd).apply(null,arguments)},mf=a._Max=function(){return(mf=a._Max=a.asm.Max).apply(null,arguments)},gf=a._MaxPool=function(){return(gf=a._MaxPool=a.asm.MaxPool).apply(null,arguments)},V1=a._Maximum=function(){return(V1=a._Maximum=a.asm.Maximum).apply(null,arguments)},U1=a._Mean=function(){return(U1=a._Mean=a.asm.Mean).apply(null,arguments)},G1=a._Min=function(){return(G1=a._Min=a.asm.Min).apply(null,arguments)},H1=a._Minimum=function(){return(H1=a._Minimum=a.asm.Minimum).apply(null,arguments)},j1=a._MirrorPad=function(){return(j1=a._MirrorPad=a.asm.MirrorPad).apply(null,arguments)},q1=a._Multiply=function(){return(q1=a._Multiply=a.asm.Multiply).apply(null,arguments)},Lt=a._Neg=function(){return(Lt=a._Neg=a.asm.Neg).apply(null,arguments)},X1=a._NonMaxSuppressionV3=function(){return(X1=a._NonMaxSuppressionV3=a.asm.NonMaxSuppressionV3).apply(null,arguments)},K1=a._NonMaxSuppressionV4=function(){return(K1=a._NonMaxSuppressionV4=a.asm.NonMaxSuppressionV4).apply(null,arguments)},Z1=a._NonMaxSuppressionV5=function(){return(Z1=a._NonMaxSuppressionV5=a.asm.NonMaxSuppressionV5).apply(null,arguments)},ku=a._NotEqual=function(){return(ku=a._NotEqual=a.asm.NotEqual).apply(null,arguments)},yf=a._OneHot=function(){return(yf=a._OneHot=a.asm.OneHot).apply(null,arguments)},Af=a._PadV2=function(){return(Af=a._PadV2=a.asm.PadV2).apply(null,arguments)},xf=a._Pow=function(){return(xf=a._Pow=a.asm.Pow).apply(null,arguments)},Y1=a._Prelu=function(){return(Y1=a._Prelu=a.asm.Prelu).apply(null,arguments)},bf=a._Prod=function(){return(bf=a._Prod=a.asm.Prod).apply(null,arguments)},J1=a._RealDiv=function(){return(J1=a._RealDiv=a.asm.RealDiv).apply(null,arguments)},g4=a._Relu=function(){return(g4=a._Relu=a.asm.Relu).apply(null,arguments)},vf=a._Relu6=function(){return(vf=a._Relu6=a.asm.Relu6).apply(null,arguments)},y4=a._ResizeBilinear=function(){return(y4=a._ResizeBilinear=a.asm.ResizeBilinear).apply(null,arguments)},Q1=a._Reverse=function(){return(Q1=a._Reverse=a.asm.Reverse).apply(null,arguments)},eg=a._RotateWithOffset=function(){return(eg=a._RotateWithOffset=a.asm.RotateWithOffset).apply(null,arguments)},tg=a._Round=function(){return(tg=a._Round=a.asm.Round).apply(null,arguments)},ng=a._Rsqrt=function(){return(ng=a._Rsqrt=a.asm.Rsqrt).apply(null,arguments)},sg=a._ScatterNd=function(){return(sg=a._ScatterNd=a.asm.ScatterNd).apply(null,arguments)},rg=a._SelectV2=function(){return(rg=a._SelectV2=a.asm.SelectV2).apply(null,arguments)},ag=a._Sigmoid=function(){return(ag=a._Sigmoid=a.asm.Sigmoid).apply(null,arguments)},og=a._Sin=function(){return(og=a._Sin=a.asm.Sin).apply(null,arguments)},ig=a._Softmax=function(){return(ig=a._Softmax=a.asm.Softmax).apply(null,arguments)},lg=a._SparseFillEmptyRows=function(){return(lg=a._SparseFillEmptyRows=a.asm.SparseFillEmptyRows).apply(null,arguments)},ug=a._SparseReshape=function(){return(ug=a._SparseReshape=a.asm.SparseReshape).apply(null,arguments)},cg=a._SparseSegmentReduction=function(){return(cg=a._SparseSegmentReduction=a.asm.SparseSegmentReduction).apply(null,arguments)},dg=a._Sqrt=function(){return(dg=a._Sqrt=a.asm.Sqrt).apply(null,arguments)},pg=a._Square=function(){return(pg=a._Square=a.asm.Square).apply(null,arguments)},hg=a._SquaredDifference=function(){return(hg=a._SquaredDifference=a.asm.SquaredDifference).apply(null,arguments)},fg=a._Step=function(){return(fg=a._Step=a.asm.Step).apply(null,arguments)},mg=a._StridedSlice=function(){return(mg=a._StridedSlice=a.asm.StridedSlice).apply(null,arguments)},gg=a._Sub=function(){return(gg=a._Sub=a.asm.Sub).apply(null,arguments)},yg=a._Sum=function(){return(yg=a._Sum=a.asm.Sum).apply(null,arguments)},Ag=a._Tan=function(){return(Ag=a._Tan=a.asm.Tan).apply(null,arguments)},xg=a._Tanh=function(){return(xg=a._Tanh=a.asm.Tanh).apply(null,arguments)},bg=a._Tile=function(){return(bg=a._Tile=a.asm.Tile).apply(null,arguments)},vg=a._TopK=function(){return(vg=a._TopK=a.asm.TopK).apply(null,arguments)},wg=a._Transform=function(){return(wg=a._Transform=a.asm.Transform).apply(null,arguments)},kg=a._Transpose=function(){return(kg=a._Transpose=a.asm.Transpose).apply(null,arguments)},Ig=a.__FusedMatMul=function(){return(Ig=a.__FusedMatMul=a.asm._FusedMatMul).apply(null,arguments)},Sg=a._malloc=function(){return(Sg=a._malloc=a.asm.malloc).apply(null,arguments)},Cg=a._free=function(){return(Cg=a._free=a.asm.free).apply(null,arguments)},Tg=a.___errno_location=function(){return(Tg=a.___errno_location=a.asm.__errno_location).apply(null,arguments)},Ng=a._emscripten_main_thread_process_queued_calls=function(){return(Ng=a._emscripten_main_thread_process_queued_calls=a.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},wf=a.stackSave=function(){return(wf=a.stackSave=a.asm.stackSave).apply(null,arguments)},kf=a.stackRestore=function(){return(kf=a.stackRestore=a.asm.stackRestore).apply(null,arguments)},Ld=a.stackAlloc=function(){return(Ld=a.stackAlloc=a.asm.stackAlloc).apply(null,arguments)},Eg=a.dynCall_iijjiiii=function(){return(Eg=a.dynCall_iijjiiii=a.asm.dynCall_iijjiiii).apply(null,arguments)},Rg=a.dynCall_jiji=function(){return(Rg=a.dynCall_jiji=a.asm.dynCall_jiji).apply(null,arguments)};a.cwrap=_e;var Iu;function Bd(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}$a=function X(){Iu||Wd(),Iu||($a=X)};function Wd(X){if(X=X||c,Bs>0||(Jh(),Bs>0))return;function se(){Iu||(Iu=!0,a.calledRun=!0,!ae&&(Qh(),o(a),a.onRuntimeInitialized&&a.onRuntimeInitialized(),ef()))}a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),se()},1)):se()}a.run=Wd;function A4(X){le=X,Dd()||(a.onExit&&a.onExit(X),ae=!0),d(X,new Bd(X))}if(a.preInit)for(typeof a.preInit=="function"&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();Wd();var Su;l&&(Su={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!l.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!l.unhandledRejection.indexOf(X)>-1})});var Cu;if(typeof r!="undefined")Cu=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Cu=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Su){var _g=Cu._dispose;Cu._dispose=function(){_g(),Su.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),Su.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}}),BR=1e-7,WR=1e-4,Ep=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},ic=class{refCount(e){return Ws("refCount")}incRef(e){return Ws("incRef")}timerAvailable(){return!0}time(e){return Ws("time")}read(e){return Ws("read")}readSync(e){return Ws("readSync")}readToGPU(e,t){return Ws("readToGPU")}numDataIds(){return Ws("numDataIds")}disposeData(e,t){return Ws("disposeData")}write(e,t,n){return Ws("write")}move(e,t,n,s,r){return Ws("move")}memory(){return Ws("memory")}floatPrecision(){return Ws("floatPrecision")}epsilon(){return this.floatPrecision()===32?BR:WR}dispose(){return Ws("dispose")}};function Ws(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function k7(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,rm(e,t,n)}function VR(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,s=0;for(;n>0;)s=Math.random()*n|0,n--,rm(e,n,s),rm(t,n,s)}function dp(e,t,n){return Math.max(e,Math.min(t,n))}function UR(e){return e%2===0?e:e+1}function rm(e,t,n){let s=e[t];e[t]=e[n],e[n]=s}function GR(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function al(e){M(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Ui(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||Dn(e)&&!n)for(let s=0;s0,n){return new Promise((s,r)=>{let a=0,o=()=>{if(e()){s();return}a++;let i=t(a);if(n!=null&&a>=n){r();return}setTimeout(o,i)};o()})}function JR(e,t){let n=1,s=-1;for(let a=0;a=0)n*=e[a];else if(e[a]===-1){if(s!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${s} and dim ${a}`);s=a}else if(e[a]<0)throw Error(`Shapes can not be < 0. Found ${e[a]} at dim ${a}`);if(s===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[s]=t/n,r}function ar(e,t){let n=t.length;return e=e==null?t.map((s,r)=>r):[].concat(e),M(e.every(s=>s>=-n&&s`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),M(e.every(s=>Hu(s)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(s=>s<0?n+s:s)}function I7(e,t){let n=[],s=[],r=t!=null&&Array.isArray(t)&&t.length===0,a=t==null||r?null:ar(t,e).sort(),o=0;for(let i=0;ii)&&e[i]===1&&(n.push(e[i]),s.push(i)),a[o]<=i&&o++}e[i]!==1&&(n.push(e[i]),s.push(i))}return{newShape:n,keptDims:s}}function S7(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function C7(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function T7(e,t){for(let n=0;nt+=n.length),t}function Ba(e){return typeof e=="string"||e instanceof String}function R7(e){return typeof e=="boolean"}function _7(e){return typeof e=="number"}function Fm(e){return Array.isArray(e)?Fm(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":_7(e)?"float32":Ba(e)?"string":R7(e)?"bool":"float32"}function qa(e){return!!(e&&e.constructor&&e.call&&e.apply)}function am(e,t){for(let n=t;n=0;--s)n[s]=n[s+1]*e[s+1];return n}function D7(e,t,n,s=!1){let r=new Array;if(t.length===1){let a=t[0]*(s?2:1);for(let o=0;ol*u)*(s?2:1);for(let l=0;lr*a)*(n?2:1);if(s===0)return[];if(s!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return D7(0,e,t,n)}function sy(e,t){let n=Pm(e,t);for(let s=0;ss*r,1);if(t==null||t==="float32")return Lu(e,new Float32Array(n));if(t==="int32")return Lu(e,new Int32Array(n));if(t==="bool")return Lu(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ry(e){e.forEach(t=>{M(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function t_(e,t,n){if(t===0)return 0;if(t===1)return e[0];let s=e[e.length-1];for(let r=0;r{let[s,r]=n.split(":");this.urlFlags[s]=a_(s,r)})}};function s_(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...s)=>(r_(t,s[0],s[1]),s.join("="))),t}function r_(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function a_(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function Y(){return Rr}var Rr=null;function o_(e){Rr=e}var Lg;function F7(){if(Lg==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");Lg=e}return Lg}function i_(){let e=F7();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function oy(e,t){let n=i_();if(n.has(e))return n.get(e);{let s=t();return n.set(e,s),n.get(e)}}var ol="Abs",uc="Acos",cc="Acosh",ya="Add",oo="AddN",dc="All",pc="Any",io="ArgMax",hc="ArgMin",fc="Asin",mc="Asinh",gc="Atan",yc="Atanh",Ac="Atan2",lo="AvgPool",Om="AvgPoolGrad",Rp="AvgPool3D",Mm="AvgPool3DGrad",uo="BatchMatMul",il="BatchToSpaceND",zm="Bincount",P7="BroadcastTo",Lm="BroadcastArgs",co="Cast",po="Ceil",Aa="ClipByValue",_p="Complex",Dp="ComplexAbs",ll="Concat",ho="Conv2D",Bm="Conv2DBackpropFilter",fo="Conv2DBackpropInput",$p="Conv3D",Wm="Conv3DBackpropFilterV2",Vm="Conv3DBackpropInputV2",mo="Cos",go="Cosh",ul="Cumprod",yo="Cumsum",cl="CropAndResize",Um="DenseBincount",dl="DepthToSpace",Ao="DepthwiseConv2dNative",Gm="DepthwiseConv2dNativeBackpropFilter",Hm="DepthwiseConv2dNativeBackpropInput",jm="Diag",Fp="Dilation2D",om="Dilation2DBackpropInput",im="Dilation2DBackpropFilter",xo="RealDiv",Pp="Einsum",bo="Elu",qm="EluGrad",xc="Erf",pl="Equal",vo="Exp",hl="ExpandDims",fl="Expm1",Xm="FFT",bc="Fill",ml="FlipLeftRight",wo="Floor",ko="FloorDiv",Io="FusedBatchNorm",gl="GatherV2",yl="GatherNd",Al="Greater",So="GreaterEqual",Co="Identity",Km="IFFT",Op="Imag",vc="IsFinite",wc="IsInf",kc="IsNan",To="LeakyRelu",xl="Less",bl="LessEqual",Zm="LinSpace",No="Log",Ic="Log1p",vl="LogicalAnd",Sc="LogicalNot",Mp="LogicalOr",O7="LogSoftmax",l_="LowerBound",zp="LRN",Ym="LRNGrad",Eo="Max",Ro="Maximum",_o="MaxPool",Jm="MaxPoolGrad",Lp="MaxPool3D",Qm="MaxPool3DGrad",e0="MaxPoolWithArgmax",Do="Mean",$o="Min",Fo="Minimum",Po="MirrorPad",Cc="Mod",t0="Multinomial",Oo="Multiply",wl="Neg",kl="NotEqual",Il="NonMaxSuppressionV3",Tc="NonMaxSuppressionV4",Sl="NonMaxSuppressionV5",Cl="OnesLike",Tl="OneHot",Nl="Pack",Mo="PadV2",u_="Pool",zo="Pow",Lo="Prelu",Bo="Prod",Nc="Range",Bp="Real",Ec="Reciprocal",Wo="Relu",El="Reshape",Rc="ResizeNearestNeighbor",n0="ResizeNearestNeighborGrad",Vo="ResizeBilinear",s0="ResizeBilinearGrad",Uo="Relu6",Rl="Reverse",_l="Round",Go="Rsqrt",Dl="ScatterNd",r0="SearchSorted",$l="Select",_c="Selu",Fl="Slice",Ho="Sin",Pl="Sinh",Dc="Sign",jo="Sigmoid",$c="Softplus",qo="Sqrt",Xo="Sum",Ol="SpaceToBatchND",Ml="SplitV",Ko="Softmax",Wp="SparseFillEmptyRows",Fc="SparseReshape",Vp="SparseSegmentMean",Up="SparseSegmentSum",Gp="SparseToDense",Zo="SquaredDifference",Pc="Square",zl="StridedSlice",Hp="StringNGrams",a0="StringSplit",o0="StringToHashBucketFast",Yo="Sub",Ll="Tan",Jo="Tanh",xa="Tile",Bl="TopK",Wl="Transform",Vr="Transpose",i0="Unique",Vl="Unpack",jp="UnsortedSegmentSum",c_="UpperBound",Ul="ZerosLike",Qo="Step",pp="FromPixels",Gl="RotateWithOffset",Xa="_FusedMatMul",Ka="FusedConv2D",Za="FusedDepthwiseConv2D";function La(...e){Y().getBool("IS_TEST")||Y().getBool("PROD")||console.warn(...e)}function d_(...e){Y().getBool("IS_TEST")||Y().getBool("PROD")||console.log(...e)}var ju=oy("kernelRegistry",()=>new Map),hp=oy("gradRegistry",()=>new Map);function lm(e,t){let n=iy(e,t);return ju.get(n)}function Qg(e){return hp.get(e)}function Gr(e){let t=ju.entries(),n=[];for(;;){let{done:s,value:r}=t.next();if(s)break;let[a,o]=r,[i]=a.split("_");i===e&&n.push(o)}return n}function or(e){let{kernelName:t,backendName:n}=e,s=iy(t,n);ju.has(s)&&La(`The kernel '${t}' for backend '${n}' is already registered`),ju.set(s,e)}function M7(e){let{kernelName:t}=e;hp.has(t)&&Y().getBool("DEBUG")&&La(`Overriding the gradient for '${t}'`),hp.set(t,e)}function p_(e,t){let n=iy(e,t);if(!ju.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);ju.delete(n)}function h_(e){if(!hp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);hp.delete(e)}function f_(e,t){Gr(e).forEach(s=>{let r=Object.assign({},s,{backendName:t});or(r)})}function iy(e,t){return`${t}_${e}`}var v={};Ve(v,{arraysEqual:()=>ao,assert:()=>M,assertNonNegativeIntegerDimensions:()=>ry,assertNonNull:()=>al,assertShapesMatch:()=>es,bytesFromStringArray:()=>E7,bytesPerElement:()=>Jg,checkConversionForErrors:()=>T7,clamp:()=>dp,computeStrides:()=>lc,createScalarValue:()=>b_,createShuffledIndices:()=>ZR,decodeString:()=>um,distSquared:()=>jR,encodeString:()=>Xp,fetch:()=>w_,fingerPrint64:()=>x_,flatten:()=>Ui,getArrayFromDType:()=>C7,getTypedArrayFromDType:()=>S7,hasEncodingLoss:()=>QR,hexToLong:()=>qp,indexToLoc:()=>n_,inferDtype:()=>Fm,inferFromImplicitShape:()=>JR,isBoolean:()=>R7,isFunction:()=>qa,isInt:()=>Hu,isNumber:()=>_7,isPromise:()=>ay,isScalarShape:()=>qR,isString:()=>Ba,isTypedArray:()=>Dn,isValidDtype:()=>N7,locToIndex:()=>t_,makeOnesTypedArray:()=>sy,makeZerosNestedTypedArray:()=>e_,makeZerosTypedArray:()=>Pm,nearestDivisor:()=>am,nearestLargerEven:()=>UR,now:()=>fp,parseAxisParam:()=>ar,randUniform:()=>HR,repeatedTry:()=>YR,rightPad:()=>ip,shuffle:()=>k7,shuffleCombo:()=>VR,sizeFromShape:()=>Rt,sizeToSquarishShape:()=>KR,squeezeShape:()=>I7,sum:()=>GR,swap:()=>rm,tanh:()=>XR,toNestedArray:()=>Lu,toTypedArray:()=>l0});var _4=rl(AR()),Di=_4.default||_4;function qp(e){return Di.fromString(e,!0,16)}var z7=qp("c3a5c85c97cb3127"),Ei=qp("b492b66fbe98f273"),Xn=qp("9ae16a3b2f90404f");function e3(e){return e.xor(e.shru(47))}function L7(e,t,n){let s=e.slice(t,t+n);return Di.fromBytes(Array.from(s),!0,!0)}function Et(e,t){return L7(e,t,8)}function D4(e,t){return L7(e,t,4)}function xn(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function Ua(e,t,n=qp("9ddfea08eb382d69")){let s=e.xor(t).mul(n);s=s.xor(s.shru(47));let r=t.xor(s).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function m_(e,t,n,s,r,a){r=r.add(e),a=xn(a.add(r).add(s),21);let o=r;return r=r.add(t),r=r.add(n),a=a.add(xn(r,44)),[r.add(s),a.add(o)]}function Df(e,t,n,s){return m_(Et(e,t),Et(e,t+8),Et(e,t+16),Et(e,t+24),n,s)}function g_(e,t=e.length){if(t>=8){let n=Xn.add(t*2),s=Et(e,0).add(Xn),r=Et(e,t-8),a=xn(r,37).mul(n).add(s),o=xn(s,25).add(r).mul(n);return Ua(a,o,n)}if(t>=4){let n=Xn.add(t*2),s=D4(e,0);return Ua(s.shl(3).add(t),D4(e,t-4),n)}if(t>0){let n=e[0],s=e[t>>1],r=e[t-1],a=n+(s<<8),o=t+(r<<2);return e3(Xn.mul(a).xor(z7.mul(o))).mul(Xn)}return Xn}function y_(e,t=e.length){let n=Xn.add(t*2),s=Et(e,0).mul(Ei),r=Et(e,8),a=Et(e,t-8).mul(n),o=Et(e,t-16).mul(Xn);return Ua(xn(s.add(r),43).add(xn(a,30)).add(o),s.add(xn(r.add(Xn),18)).add(a),n)}function A_(e,t=e.length){let n=Xn.add(t*2),s=Et(e,0).mul(Xn),r=Et(e,8),a=Et(e,t-8).mul(n),o=Et(e,t-16).mul(Xn),i=xn(s.add(r),43).add(xn(a,30)).add(o),l=Ua(i,s.add(xn(r.add(Xn),18)).add(a),n),u=Et(e,16).mul(n),c=Et(e,24),p=i.add(Et(e,t-32)).mul(n),d=l.add(Et(e,t-24)).mul(n);return Ua(xn(u.add(c),43).add(xn(p,30)).add(d),u.add(xn(c.add(s),18)).add(p),n)}function x_(e,t=e.length){let n=Di.fromNumber(81,!0);if(t<=32)return t<=16?g_(e,t):y_(e,t);if(t<=64)return A_(e,t);let s=n,r=n.mul(Ei).add(113),a=e3(r.mul(Xn).add(113)).mul(Xn),o=[Di.UZERO,Di.UZERO],i=[Di.UZERO,Di.UZERO];s=s.mul(Xn).add(Et(e,0));let l=0,u=(t-1>>6)*64,c=u+(t-1&63)-63;do s=xn(s.add(r).add(o[0]).add(Et(e,l+8)),37).mul(Ei),r=xn(r.add(o[1]).add(Et(e,l+48)),42).mul(Ei),s=s.xor(i[1]),r=r.add(o[0]).add(Et(e,l+40)),a=xn(a.add(i[0]),33).mul(Ei),o=Df(e,l,o[1].mul(Ei),s.add(i[0])),i=Df(e,l+32,a.add(i[1]),r.add(Et(e,l+16))),[a,s]=[s,a],l+=64;while(l!==u);let p=Ei.add(a.and(255).shl(1));return l=c,i[0]=i[0].add(t-1&63),o[0]=o[0].add(i[0]),i[0]=i[0].add(o[0]),s=xn(s.add(r).add(o[0]).add(Et(e,l+8)),37).mul(p),r=xn(r.add(o[1]).add(Et(e,l+48)),42).mul(p),s=s.xor(i[1].mul(9)),r=r.add(o[0].mul(9).add(Et(e,l+40))),a=xn(a.add(i[0]),33).mul(p),o=Df(e,l,o[1].mul(p),s.add(i[0])),i=Df(e,l+32,a.add(i[1]),r.add(Et(e,l+16))),[a,s]=[s,a],Ua(Ua(o[0],i[0],p).add(e3(r).mul(z7)).add(a),Ua(o[1],i[1],p).add(s),p)}function b_(e,t){return t==="string"?Xp(e):l0([e],t)}function v_(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function l0(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Ui(e)),Y().getBool("DEBUG")&&T7(e,t),v_(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let s=0;s{s=n()},a,o=fp();if(this.backendTimer.timerAvailable())a=this.backendTimer.time(r);else{r();for(let l of s)l.dataSync();a=Promise.resolve({kernelMs:fp()-o})}if(Y().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{I_(c,u.dtype,e)})}return{kernelName:e,outputs:s,inputs:t,timeMs:a.then(l=>l.kernelMs),extraInfo:a.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:s,inputs:r,extraInfo:a}=e;n.forEach(o=>{Promise.all([o.data(),s,a]).then(i=>{this.logger.logKernelProfile(t,o,i[0],i[1],r,i[2])})})}};function I_(e,t,n){if(t!=="float32")return!1;for(let s=0;s0?f:""} `}}console.log(`%c${i} %c${o} %c${l}D ${c} %c${u} %c${p} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function C_(e,t,n){let s={},r={};for(let l=0;ls[m.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let a={};a[n.id]=!0;let o={};for(let l=e.length-1;l>=0;l--){let u=e[l],c=u.inputs;for(let p=0;p=0;r--){let a=t[r],o=[];if(a.outputs.forEach(l=>{let u=e[l.id];u!=null?o.push(u):o.push(null)}),a.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${a.kernelName}.`);let i=a.gradient(o);for(let l in a.inputs){if(!(l in i))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(i)}.`);let u=n(()=>i[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${a.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let c=a.inputs[l];if(!ao(u.shape,c.shape))throw new Error(`Error in gradient for op ${a.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${c.shape}'`);if(e[c.id]==null)e[c.id]=u;else{let p=e[c.id];e[c.id]=s(p,u),p.dispose()}}}}var $4=20,qd=3,Bg=7;function N_(e,t,n,s){let r=lc(t),a=E_(e,t,n,r),o=t.length,i=Hf(e,t,n,r,a),l=["Tensor"];return s&&(l.push(` dtype: ${n}`),l.push(` rank: ${o}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(i.map(u=>" "+u).join(` `)),l.join(` `)}function E_(e,t,n,s){let r=Rt(t),a=s[s.length-1],o=new Array(a).fill(0),i=t.length,l=n==="complex64"?Jd(e):e;if(i>1)for(let u=0;u$4){let g=qd*o,y=Array.from(e.slice(0,g)),x=Array.from(e.slice((i-qd)*o,i*o));return n==="complex64"&&(y=Jd(y),x=Jd(x)),["["+y.map((A,b)=>Yd(A,r[b],n)).join(", ")+", ..., "+x.map((A,b)=>Yd(A,r[i-qd+b],n)).join(", ")+"]"]}let m=n==="complex64"?Jd(e):Array.from(e);return["["+m.map((g,y)=>Yd(g,r[y],n)).join(", ")+"]"]}let u=t.slice(1),c=s.slice(1),p=s[0]*o,d=[];if(i>$4){for(let m=0;m`Length of values '${s}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||C7(t,this.size),this.strides=lc(e)}set(e,...t){t.length===0&&(t=[0]),M(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let s of e){if(s<0||s>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let s=0;sum(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),xr().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=xr().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>um(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await xr().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(xr().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Pu.print(this,e)}clone(){return this.throwIfDisposed(),Pu.clone(this)}toString(e=!1){let t=this.dataSync();return N_(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Pu.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),xr().makeVariable(this,e,t,n)}};Object.defineProperty(st,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function re(){return oy("Tensor",()=>st)}re();var mp=class extends st{constructor(e,t,n,s){super(e.shape,e.dtype,e.dataId,s),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!ao(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);xr().disposeTensor(this),this.dataId=e.dataId,xr().incRef(this,null)}dispose(){xr().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(mp,Symbol.hasInstance,{value:e=>e instanceof st&&e.assign!=null&&e.assign instanceof Function});var kr={};Ve(kr,{assertTypesMatch:()=>W7,getTensorsInContainer:()=>ly,isTensorInList:()=>P_,makeTypesMatch:()=>Ht});var t3;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(t3||(t3={}));var n3;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(n3||(n3={}));var s3;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(s3||(s3={}));var r3;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(r3||(r3={}));var a3;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(a3||(a3={}));var F_={float32:r3,int32:n3,bool:s3,complex64:a3};function Fn(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return F_[e][t]}function Kp(e){return Fn(e,"int32")}function Ht(e,t){if(e.dtype===t.dtype)return[e,t];let n=Fn(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function W7(e,t){M(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function P_(e,t){return t.some(n=>n.id===e.id)}function ly(e){let t=[];return V7(e,t,new Set),t}function V7(e,t,n){if(e==null)return;if(e instanceof st){t.push(e);return}if(!O_(e))return;let s=e;for(let r in s){let a=s[r];n.has(a)||(n.add(a),V7(a,t,n))}}function O_(e){return Array.isArray(e)||typeof e=="object"}function Wg(e){return e.kernelName!=null}var F4=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},gp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new F4}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Gr(e).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof ic)&&typeof n.then=="function"){let s=++this.pendingBackendInitId,r=n.then(a=>s(sthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(s),()=>(s=t(),s instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),s))}scopedRun(e,t,n){e();try{let s=n();return t(),s}catch(s){throw t(),s}}nextTensorId(){return gp.nextTensorId++}nextVariableId(){return gp.nextVariableId++}clone(e){let t=B.runKernel(Co,{x:e}),n={x:e},s=a=>({x:()=>{let o="float32",i={x:a},l={dtype:o};return B.runKernel(co,i,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],s,r,{}),t}runKernel(e,t,n){if(this.backendName==null&&this.backend,!(lm(e,this.backendName)!=null))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let s=this.backend.numDataIds(),r=0;n.forEach(i=>{r+=i.dtype==="complex64"?3:1});let a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=s-t-r-a;if(o>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],s=this.isTapeOn(),r=this.state.numBytes,a=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let o;this.backendName==null&&this.backend;let i,l=Wg(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Wg(e)){let{kernelName:h,inputs:f,attrs:m}=e;this.backendName==null&&this.backend;let g=lm(h,this.backendName);M(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),o=()=>{let y=this.backend.numDataIds();i=g.kernelFunc({inputs:f,attrs:m,backend:this.backend});let x=Array.isArray(i)?i:[i];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,x);let A=x.map(b=>b.rank!=null?b:this.makeTensorFromTensorInfo(b));if(s){let b=this.getTensorsForGradient(h,f,A);n=this.saveTensorsForBackwardMode(b)}return A}}else{let{forwardFunc:h}=e,f=m=>{!s||(n=m.map(g=>this.keep(this.clone(g))))};o=()=>{let m=this.backend.numDataIds();i=this.tidy(()=>h(this.backend,f));let g=Array.isArray(i)?i:[i];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,m,g),g}}let{inputs:u,attrs:c}=e,p=Wg(e)?null:e.backwardsFunc,d;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=o():(d=this.profiler.profileKernel(l,u,()=>o()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs)}),s&&this.addTapeNode(l,u,t,p,n,c),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-a,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(i)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(e,t,n){let s=Qg(e);if(s!=null){let r=s.inputsToSave||[],a=s.outputsToSave||[],o;s.saveAllInputs?(M(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),o=Object.keys(t).map(l=>t[l])):o=r.map(l=>t[l]);let i=n.filter((l,u)=>a[u]);return o.concat(i)}return[]}makeTensor(e,t,n,s){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",s=s||this.backend;let r=e;n==="string"&&Ba(e[0])&&(r=e.map(i=>Xp(i)));let a=s.write(r,t,n),o=new st(t,n,a,this.nextTensorId());if(this.trackTensor(o,s),n==="string"){let i=this.state.tensorInfo.get(a),l=E7(r);this.state.numBytes+=l-i.bytes,i.bytes=l}return o}makeTensorFromDataId(e,t,n,s){n=n||"float32";let r={dataId:e,shape:t,dtype:n};return this.makeTensorFromTensorInfo(r,s)}makeTensorFromTensorInfo(e,t){let{dataId:n,shape:s,dtype:r}=e,a=new st(s,r,n,this.nextTensorId());return this.trackTensor(a,t),a}makeVariable(e,t=!0,n,s){n=n||this.nextVariableId().toString(),s!=null&&s!==e.dtype&&(e=e.cast(s));let r=new mp(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*Jg(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof mp||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*Jg(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(s=>s.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let s of this.state.activeProfile.kernels)s.kernelTimeMs=await s.kernelTimeMs,s.extraInfo=await s.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,s,r,a){let o={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},i=Qg(e);i!=null&&(s=i.gradFunc),s!=null&&(o.gradient=l=>(l=l.map((u,c)=>{if(u==null){let p=n[c],d=Pm(p.size,p.dtype);return this.makeTensor(d,p.shape,p.dtype)}return u}),s(l.length>1?l:l[0],r,a))),this.state.activeTape.push(o)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=ly(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===s.id&&this.track(r)})}gradients(e,t,n,s=!1){if(M(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));M(r instanceof st,()=>"The result y returned by f() must be a tensor.");let a=C_(this.state.activeTape,t,r);if(!s&&a.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let o={};o[r.id]=n==null?M_(r.shape):n,T_(o,a,l=>this.tidy(l),z_);let i=t.map(l=>o[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:i}})}customGrad(e){return M(qa(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{M(t.every(o=>o instanceof st),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,s={};t.forEach((o,i)=>{s[i]=o});let r=(o,i)=>(n=e(...t,i),M(n.value instanceof st,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),M(qa(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),a=(o,i)=>{let l=n.gradFunc(o,i),u=Array.isArray(l)?l:[l];M(u.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),M(u.every(p=>p instanceof st),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let c={};return u.forEach((p,d)=>{c[d]=()=>p}),c};return this.runKernelFunc({forwardFunc:r,backwardsFunc:a,inputs:s})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=fp(),n=await this.backend.time(e);return n.wallMs=fp()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new F4;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};gp.nextTensorId=0;gp.nextVariableId=0;function M_(e){let t=sy(Rt(e),"float32");return B.makeTensor(t,e,"float32")}function U7(){let e=F7();if(e._tfengine==null){let t=new $7(e);e._tfengine=new gp(t)}return o_(e._tfengine.ENV),__(()=>e._tfengine),e._tfengine}var B=U7();function z_(e,t){let n={a:e,b:t};return B.runKernel(ya,n)}var Zp={};Ve(Zp,{isBrowser:()=>G7,isMobile:()=>W_,mockIsMobile:()=>B_});function L_(){return typeof navigator!="undefined"&&navigator!=null}var o3;function B_(e){o3=e}function W_(e){if(o3!==void 0)return o3;if(e||L_()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function G7(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var sr=Y();sr.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});sr.registerFlag("IS_BROWSER",()=>G7());sr.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");sr.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));sr.registerFlag("PROD",()=>!1);sr.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>sr.getBool("DEBUG"));sr.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);sr.registerFlag("IS_TEST",()=>!1);sr.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);sr.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);sr.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function Hr(e,t){let n=e;if(Dn(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let s=[];for(;Array.isArray(n)||Dn(n)&&t!=="string";)s.push(n.length),n=n[0];return Array.isArray(e)&&Y().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&H7(e,s,[]),s}function H7(e,t,n){if(n=n||[],!Array.isArray(e)&&!Dn(e)){M(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}M(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),M(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let s=t.slice(1);for(let r=0;r=0&&(r=s),P4(s,r,t,n),e==null||!Dn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let l=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${l}'`)}let a=Hr(e,r);!Dn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?l0(e,r):Ui(e,[],!0);return B.makeTensor(i,a,r)}function yp(e,t,n,s="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((a,o)=>F(a,`${t}[${o}]`,n,s))}var j7="__op";function G(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],s=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+j7;let r=(...a)=>{B.startScope(n);try{let o=s(...a);return ay(o)&&console.error("Cannot return a Promise inside of tidy."),B.endScope(o),o}catch(o){throw B.endScope(null),o}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function V_(e,t){let n=F(e,"real","complex"),s=F(t,"imag","complex");es(n.shape,s.shape,`real and imag shapes, ${n.shape} and ${s.shape}, must match in call to tf.complex().`);let r={real:n,imag:s};return B.runKernel(_p,r)}var da=G({complex_:V_});function ei(e,t,n,s){if(s==null&&(s=Fm(e)),s==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!Dn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){ry(t);let r=Rt(t),a=Rt(n);M(r===a,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${a}`);for(let o=0;o`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!Dn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=s!=="string"?l0(e,s):Ui(e,[],!0),B.makeTensor(e,t,s)}function yt(e,t,n){let s=Hr(e,n);return ei(e,t,s,n)}var i3={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},cm=4;async function U_(e,t){let n=[],s=[],r=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);for(let o=0;o{let d=await l.bytes(),h=d.reduce((g,y)=>g+y.length,0)+cm*d.length,f=new Uint8Array(h),m=0;for(let g=0;g{if(t+=a.byteLength,n.push(a.byteLength===a.buffer.byteLength?a:new a.constructor(a)),!(a instanceof Float32Array||a instanceof Int32Array||a instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${a.constructor.name}`)});let s=new Uint8Array(t),r=0;return n.forEach(a=>{s.set(new Uint8Array(a.buffer),r),r+=a.byteLength}),s.buffer}var uy=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function O4(e){return uy?Buffer.byteLength(e):new Blob([e]).size}function H_(e){if(uy)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let s=0,r=t.length;s{t+=r.byteLength});let n=new Uint8Array(t),s=0;return e.forEach(r=>{n.set(new Uint8Array(r),s),s+=r.byteLength}),n.buffer}function M4(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function X7(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}async function dy(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),e.weightsManifest!=null){let[s,r]=await t(e.weightsManifest);n.weightSpecs=s,n.weightData=r}return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),n}function Yp(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:O4(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:O4(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function q_(){let e=n=>{let s=n<<13,r=0;for(;(s&8388608)===0;)r-=8388608,s<<=1;return s&=-8388609,r+=947912704,s|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function X_(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function K_(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function Z_(){let e=q_(),t=X_(),n=K_();return s=>{let r=new ArrayBuffer(4*s.length),a=new Uint32Array(r);for(let o=0;o>10]+(i&1023)]+t[i>>10];a[o]=l}return new Float32Array(r)}}var Xt=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Xt.instance==null&&(Xt.instance=new Xt),Xt.instance}static registerSaveRouter(e){Xt.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Xt.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Xt.getHandlers(e,"save")}static getLoadHandlers(e,t){return Xt.getHandlers(e,"load",t)}static getHandlers(e,t,n){let s=[];return(t==="load"?Xt.getInstance().loadRouters:Xt.getInstance().saveRouters).forEach(a=>{let o=a(e,n);o!==null&&s.push(o)}),s}},Y_=e=>Xt.registerSaveRouter(e),J_=e=>Xt.registerLoadRouter(e),Q_=e=>Xt.getSaveHandlers(e),eD=(e,t)=>Xt.getLoadHandlers(e,t),l3="tensorflowjs",u3=1,Oi="models_store",Wa="model_info_store";function K7(){if(!Y().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function c3(e){let t=e.result;t.createObjectStore(Oi,{keyPath:"modelPath"}),t.createObjectStore(Wa,{keyPath:"modelPath"})}var Gi=class{constructor(e){if(this.indexedDB=K7(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,s)=>{let r=this.indexedDB.open(l3,u3);r.onupgradeneeded=()=>c3(r),r.onsuccess=()=>{let a=r.result;if(t==null){let o=a.transaction(Oi,"readonly"),l=o.objectStore(Oi).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return a.close(),s(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=u=>(a.close(),s(l.error)),o.oncomplete=()=>a.close()}else{let o=Yp(t),i=a.transaction(Wa,"readwrite"),l=i.objectStore(Wa),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:o}),c;u.onsuccess=()=>{c=a.transaction(Oi,"readwrite");let d=c.objectStore(Oi).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:o});d.onsuccess=()=>n({modelArtifactsInfo:o}),d.onerror=h=>{l=i.objectStore(Wa);let f=l.delete(this.modelPath);f.onsuccess=()=>(a.close(),s(d.error)),f.onerror=m=>(a.close(),s(d.error))}},u.onerror=p=>(a.close(),s(u.error)),i.oncomplete=()=>{c==null?a.close():c.oncomplete=()=>a.close()}}},r.onerror=a=>s(r.error)})}};Gi.URL_SCHEME="indexeddb://";var Z7=e=>Y().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Gi.URL_SCHEME)?tD(e.slice(Gi.URL_SCHEME.length)):null;Xt.registerSaveRouter(Z7);Xt.registerLoadRouter(Z7);function tD(e){return new Gi(e)}function nD(e){return e.startsWith(Gi.URL_SCHEME)?e.slice(Gi.URL_SCHEME.length):e}var sD=class{constructor(){this.indexedDB=K7()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(l3,u3);n.onupgradeneeded=()=>c3(n),n.onsuccess=()=>{let s=n.result,r=s.transaction(Wa,"readonly"),o=r.objectStore(Wa).getAll();o.onsuccess=()=>{let i={};for(let l of o.result)i[l.modelPath]=l.modelArtifactsInfo;e(i)},o.onerror=i=>(s.close(),t(o.error)),r.oncomplete=()=>s.close()},n.onerror=s=>t(n.error)})}async removeModel(e){return e=nD(e),new Promise((t,n)=>{let s=this.indexedDB.open(l3,u3);s.onupgradeneeded=()=>c3(s),s.onsuccess=()=>{let r=s.result,a=r.transaction(Wa,"readwrite"),o=a.objectStore(Wa),i=o.get(e),l;i.onsuccess=()=>{if(i.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=o.delete(e),c=()=>{l=r.transaction(Oi,"readwrite");let d=l.objectStore(Oi).delete(e);d.onsuccess=()=>t(i.result.modelArtifactsInfo),d.onerror=h=>n(i.error)};u.onsuccess=c,u.onerror=p=>(c(),r.close(),n(i.error))}},i.onerror=u=>(r.close(),n(i.error)),a.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},s.onerror=r=>n(s.error)})}},la="/",Ou="tensorflowjs_models",Y7="info",rD="model_topology",aD="weight_specs",oD="weight_data",iD="model_metadata";function J7(e){return{info:[Ou,e,Y7].join(la),topology:[Ou,e,rD].join(la),weightSpecs:[Ou,e,aD].join(la),weightData:[Ou,e,oD].join(la),modelMetadata:[Ou,e,iD].join(la)}}function Q7(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function lD(e){let t=e.split(la);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(la)}function uD(e){return e.startsWith(Hi.URL_SCHEME)?e.slice(Hi.URL_SCHEME.length):e}var Hi=class{constructor(e){if(!Y().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=J7(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),s=Yp(e);try{this.LS.setItem(this.keys.info,JSON.stringify(s)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,H_(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:s}}catch(r){throw Q7(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${s.modelTopologyBytes}, weightSpecsBytes=${s.weightSpecsBytes}, weightDataBytes=${s.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let s=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(s==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=s;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let o=JSON.parse(r);t.format=o.format,t.generatedBy=o.generatedBy,t.convertedBy=o.convertedBy,o.signature!=null&&(t.signature=o.signature),o.userDefinedMetadata!=null&&(t.userDefinedMetadata=o.userDefinedMetadata),o.modelInitializer!=null&&(t.modelInitializer=o.modelInitializer),o.trainingConfig!=null&&(t.trainingConfig=o.trainingConfig)}let a=this.LS.getItem(this.keys.weightData);if(a==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=j_(a),t}};Hi.URL_SCHEME="localstorage://";var e6=e=>Y().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Hi.URL_SCHEME)?cD(e.slice(Hi.URL_SCHEME.length)):null;Xt.registerSaveRouter(e6);Xt.registerLoadRouter(e6);function cD(e){return new Hi(e)}var dD=class{constructor(){M(Y().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),M(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Ou+la,n=la+Y7;for(let s=0;s"scheme must not be undefined or null."),e.endsWith(Bu)&&(e=e.slice(0,e.indexOf(Bu))),M(e.length>0,()=>"scheme must not be an empty string.");let n=Vs.getInstance();M(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function jf(e){if(e.indexOf(Bu)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Vs.getSchemes().join(",")}`);return{scheme:e.split(Bu)[0],path:e.split(Bu)[1]}}async function t6(e,t,n=!1){M(e!==t,()=>`Old path and new path are the same: '${e}'`);let s=Xt.getLoadHandlers(e);M(s.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),M(s.length<2,()=>`Copying failed because more than one (${s.length}) load handlers for source URL ${e}.`);let r=s[0],a=Xt.getSaveHandlers(t);M(a.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),M(a.length<2,()=>`Copying failed because more than one (${s.length}) save handlers for destination URL ${t}.`);let o=a[0],i=jf(e).scheme,l=jf(e).path,u=i===jf(e).scheme,c=await r.load();n&&u&&await Vs.getManager(i).removeModel(l);let p=await o.save(c);return n&&!u&&await Vs.getManager(i).removeModel(l),p.modelArtifactsInfo}async function pD(){let e=Vs.getSchemes(),t={};for(let n of e){let s=await Vs.getManager(n).listModels();for(let r in s){let a=n+Bu+r;t[a]=s[r]}}return t}async function hD(e){let t=jf(e);return Vs.getManager(t.scheme).removeModel(t.path)}async function fD(e,t){return t6(e,t,!1)}async function mD(e,t){return t6(e,t,!0)}var gD=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(Y().get("IS_BROWSER")){Y().setPlatform("browser",new gD);try{Vs.registerManager(Hi.URL_SCHEME,new dD)}catch(e){}try{Vs.registerManager(Gi.URL_SCHEME,new sD)}catch(e){}}var yD={importFetch:()=>xR()},Vg,AD=class{constructor(){this.util=bR(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return Y().global.fetch!=null?Y().global.fetch(e,t):(Vg==null&&(Vg=yD.importFetch()),Vg(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};Y().get("IS_NODE")&&!Y().get("IS_BROWSER")&&Y().setPlatform("node",new AD);function We(e,t="float32",n){return t=t||"float32",ry(e),new fn(e,t,n)}function xD(e,t){let n=F(e,"x","cast");if(!N7(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let s={x:n},r={dtype:t};return B.runKernel(co,s,r)}var he=G({cast_:xD});function bD(e){let n={x:F(e,"x","clone","string_or_numeric")};return B.runKernel(Co,n)}var Jn=G({clone_:bD});function n6(e,t=!1){console.log(e.toString(t))}U7();var vD={buffer:We,cast:he,clone:Jn,print:n6};D_(vD);var $n={};Ve($n,{browserFiles:()=>ND,browserHTTPRequest:()=>$D,concatenateArrayBuffers:()=>cy,copyModel:()=>fD,decodeWeights:()=>q7,encodeWeights:()=>U_,fromMemory:()=>PD,fromMemorySync:()=>i6,getLoadHandlers:()=>eD,getModelArtifactsForJSON:()=>dy,getModelArtifactsInfoForJSON:()=>Yp,getSaveHandlers:()=>Q_,http:()=>hy,isHTTPScheme:()=>d3,listModels:()=>pD,loadWeights:()=>ED,moveModel:()=>mD,registerLoadRouter:()=>J_,registerSaveRouter:()=>Y_,removeModel:()=>hD,weightsLoaderFactory:()=>r6,withSaveHandler:()=>OD,withSaveHandlerSync:()=>MD});var wD="model",kD=".json",ID=".weights.bin";function z4(e){return new Promise(t=>setTimeout(t)).then(e)}var qu=class{constructor(e){if(!Y().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(qu.URL_SCHEME)&&(e=e.slice(qu.URL_SCHEME.length)),(e==null||e.length===0)&&(e=wD),this.modelJsonFileName=e+kD,this.weightDataFileName=e+ID}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],s=X7(e,n),r=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:"application/json"})),a=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=r,await z4(()=>a.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let o=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;o.download=this.weightDataFileName,o.href=t,await z4(()=>o.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Yp(e)}}}};qu.URL_SCHEME="downloads://";var SD=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=s=>{let r=JSON.parse(s.target.result),a=r.modelTopology;if(a==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:a});return}let i=dy(r,l=>this.loadWeights(l));e(i)},n.onerror=s=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let a of e)t.push(...a.weights),n.push(...a.paths);let s=this.checkManifestAndWeightFiles(e),r=n.map(a=>this.loadWeightsFile(a,s[a]));return Promise.all(r).then(a=>[t,cy(a)])}loadWeightsFile(e,t){return new Promise((n,s)=>{let r=new FileReader;r.onload=a=>{let o=a.target.result;n(o)},r.onerror=a=>s(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>M4(r.name)),s={};for(let r of e)r.paths.forEach(a=>{let o=M4(a);if(t.indexOf(o)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${o}'`);if(t.push(o),n.indexOf(o)===-1)throw new Error(`Weight file with basename '${o}' is not provided.`);s[a]=this.weightsFiles[n.indexOf(o)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return s}},CD=e=>Y().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(qu.URL_SCHEME)?TD(e.slice(qu.URL_SCHEME.length)):null;Xt.registerSaveRouter(CD);function TD(e="model"){return new qu(e)}function ND(e){return new SD(e)}function L4(e,t,n,s){o(e),n=n==null?0:n,s=s==null?1:s,i(n,s);let r=0,a=l=>(l.then(u=>{let c=n+ ++r/e.length*(s-n);return t(c),u}),l);function o(l){M(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function i(l,u){M(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),M(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),M(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(a))}async function s6(e,t){t==null&&(t={});let n=t.fetchFunc==null?Y().platform.fetch:t.fetchFunc,s=e.map(p=>n(p,t.requestInit,{isBinary:!0})),r=0,a=.5,i=(t.onProgress==null?await Promise.all(s):await L4(s,t.onProgress,r,a)).map(p=>p.arrayBuffer()),l=.5,u=1;return t.onProgress==null?await Promise.all(i):await L4(i,t.onProgress,l,u)}async function ED(e,t="",n,s){return r6(o=>s6(o,{requestInit:s}))(e,t,n)}function r6(e){return async(t,n="",s)=>{let r=t.map(()=>!1),a={},o=s!=null?s.map(()=>!1):[],i=[];if(t.forEach((h,f)=>{let m=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,x=i3[y]*Rt(g.shape),A=()=>{r[f]=!0,a[f]==null&&(a[f]=[]),a[f].push({manifestEntry:g,groupOffset:m,sizeBytes:x})};s!=null?s.forEach((b,w)=>{b===g.name&&(A(),o[w]=!0)}):A(),i.push(g.name),m+=x})}),!o.every(h=>h)){let h=s.filter((f,m)=>!o[m]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. Manifest JSON has weights with names: ${i.join(", ")}.`)}let l=r.reduce((h,f,m)=>(f&&h.push(m),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(f=>{let m=n+(n.endsWith("/")?"":"/")+f;u.push(m)})});let c=await e(u),p={},d=0;return l.forEach(h=>{let f=t[h].paths.length,m=0;for(let b=0;b{let w=g.slice(b.groupOffset,b.groupOffset+b.sizeBytes),k=q7(w,[b.manifestEntry]);for(let S in k)p[S]=k[S]}),d+=f}),p}}var RD="application/octet-stream",_D="application/json",py=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(M(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=Y().platform.fetch,M(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&M(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],s=X7(e,n);t.body.append("model.json",new Blob([JSON.stringify(s)],{type:_D}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:RD}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Yp(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(r){let a=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?a+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":a+=" Please make sure the server is serving valid JSON for this request.",new Error(a)}let n=t.modelTopology,s=t.weightsManifest;if(n==null&&s==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return dy(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,s]=DD(t),r=this.weightPathPrefix||n,a=[];for(let u of e)a.push(...u.weights);let o=[],i=[];for(let u of e)for(let c of u.paths)this.weightUrlConverter!=null?i.push(this.weightUrlConverter(c)):o.push(r+c+s);this.weightUrlConverter&&o.push(...await Promise.all(i));let l=await s6(o,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[a,cy(l)]}};py.URL_SCHEME_REGEX=/^https?:\/\//;function DD(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),s=e.substring(0,t),r=n>t?e.substring(n):"";return[s+"/",r]}function d3(e){return e.match(py.URL_SCHEME_REGEX)!=null}var a6=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(s=>d3(s)):n=d3(e),n)return hy(e,t)}return null};Xt.registerSaveRouter(a6);Xt.registerLoadRouter(a6);function hy(e,t){return new py(e,t)}function $D(e,t){return hy(e,t)}var Ug=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},o6=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},FD=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function PD(e,t,n,s){let r=arguments;return new FD(i6(...r))}function i6(e,t,n,s){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new Ug(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Ug({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Ug({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:s}))}function OD(e){return new o6(e)}function MD(e){return new o6(e)}var l6={};Ve(l6,{confusionMatrix:()=>QD});function zD(e,t,n=!1,s=!1){let r=F(e,"a","matMul"),a=F(t,"b","matMul");[r,a]=Ht(r,a);let o={a:r,b:a},i={transposeA:n,transposeB:s};return B.runKernel(uo,o,i)}var Je=G({matMul_:zD});function LD(e,t,n=1,s=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let a={indices:F(e,"indices","oneHot","int32")},o={depth:t,onValue:n,offValue:s};return B.runKernel(Tl,a,o)}var Xu=G({oneHot_:LD});function fy(){Y().set("PROD",!0)}function BD(){Y().set("DEBUG",!0)}function WD(){Y().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function my(e){Y().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}$_(my);function VD(){B.disposeVariables()}function sn(){return B}function dm(){return B.memory()}function UD(e){return B.profile(e)}function K(e,t){return B.tidy(e,t)}function ne(e){ly(e).forEach(n=>n.dispose())}function bn(e){return B.keep(e)}function GD(e){return B.time(e)}function gy(e){return B.setBackend(e)}function Oc(){return B.ready()}function ts(){return B.backendName}function HD(e){B.removeBackend(e)}function yy(e){return B.findBackend(e)}function jD(e){return B.findBackendFactory(e)}function Hl(e,t,n=1){return B.registerBackend(e,t,n)}function qs(){return B.backend}function qD(e,t){Y().setPlatform(e,t)}function XD(e){let n={input:F(e,"input","imag")};return B.runKernel(Op,n)}var Jp=G({imag_:XD});function KD(e){let n={x:F(e,"x","neg")};return B.runKernel(wl,n)}var Ft=G({neg_:KD});function ZD(e){let n={input:F(e,"input","real")};return B.runKernel(Bp,n)}var Ku=G({real_:ZD});function YD(e,t,n){let s=F(e,"x","transpose");if(t==null&&(t=s.shape.map((o,i)=>i).reverse()),M(s.rank===t.length,()=>`Error in transpose: rank of input ${s.rank} must match length of perm ${t}.`),t.forEach(o=>{M(o>=0&&o`All entries in 'perm' must be between 0 and ${s.rank-1} but got ${t}`)}),s.rank<=1)return s.clone();let r={x:s},a={perm:t};return s.dtype==="complex64"?K(()=>{let o=Ku(s),i=Jp(s);return o=B.runKernel(Vr,{x:o},a),i=B.runKernel(Vr,{x:i},a),n&&(i=Ft(i)),da(o,i)}):B.runKernel(Vr,r,a)}var rt=G({transpose_:YD});function JD(e,t,n){let s=F(e,"labels","confusionMatrix"),r=F(t,"predictions","confusionMatrix");M(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),M(s.rank===1,()=>`Expected the rank of labels to be 1, but got ${s.rank}`),M(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),M(s.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${s.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),M(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let a=Xu(he(s,"int32"),n),o=Xu(he(r,"int32"),n),i=rt(a),l=Je(i,o);return he(l,"int32")}var QD=G({confusionMatrix_:JD}),jl={};Ve(jl,{assertAndGetBroadcastShape:()=>wt,getBroadcastDims:()=>u6,getReductionAxes:()=>on});function u6(e,t){let n=e.length,s=[];for(let r=0;r1&&o===1&&s.unshift(a)}return s}function on(e,t){let n=[];for(let s=0;s1)&&n.unshift(a)}return n}function wt(e,t){let n=[],s=Math.max(e.length,t.length);for(let r=0;ro$,fromPixelsAsync:()=>r$,toPixels:()=>a$});function c6(e,t,n){if(al(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let s=Hr(e,n);if(s.length!==3&&s.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(s.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return ei(e,t,s,n)}var Ti;function d6(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,s=!1,r=!1,a=!1,o=!1,i=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)s=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)a=!0;else if(e.getContext!=null)o=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)i=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(r&&r&&e.readyState<2)throw new Error("The video element has not loaded data yet. Please wait for `loadeddata` event on the